410 Gone
410 Gone은 요청한 리소스가 서버에서 영구적으로 제거되었으며 다시 돌아올 가능성이 거의 없음을 나타내는 HTTP 4xx 상태 코드입니다. 영구성이 불분명할 때 쓰는 404 Not Found와 의미는 비슷하지만, 410은 '의도적·영구적 삭제'를 더 명확히 전달합니다.
- 410 Gone은 리소스가 서버에서 영구적으로 사라졌음을 알리는 HTTP 클라이언트 오류 코드입니다.
- 404 Not Found가 부재의 영구성을 명시하지 않는 반면, 410은 '의도적으로 제거됨'을 분명히 전달합니다.
- 구글의 처리 방식에서 404와 410의 차이는 매우 미미하며, John Mueller는 SEO 관점에서 둘 중 하나를 선호할 이유를 찾기 어렵다고 밝혔습니다.
- 410은 색인에서 약간 더 빠른 제거 신호로 작동하지만, 구글은 410 페이지도 오랜 기간 다시 크롤링합니다.
- 삭제가 영구적임이 확실할 때 410을, 일시적이거나 불확실할 때 404를 쓰는 것이 권장됩니다.
개요
410 Gone은 요청한 리소스가 원본 서버에서 더 이상 제공되지 않으며, 그 상태가 영구적일 가능성이 높음을 나타내는 HTTP 4xx 클라이언트 오류 상태 코드입니다. MDN 문서에 따르면 클라이언트는 410 응답을 받은 리소스에 대한 요청을 반복하지 않아야 하며, 사이트 운영자는 해당 코드를 반환하는 링크를 제거하거나 교체하는 것이 바람직합니다. 410 응답은 기본적으로 캐시 가능(cacheable)합니다.
410의 핵심은 '영구성'을 명시적으로 전달한다는 점입니다. 부재의 영구성 여부를 특정하지 않는 404 Not Found와 달리, 410은 리소스가 의도적으로 삭제되었고 다시 돌아오지 않음을 분명히 신호합니다. 따라서 만료된 프로모션 페이지, 영구 삭제된 콘텐츠, 폐기된 API 엔드포인트처럼 '되살아나지 않을 것이 확실한' 경우에 적합합니다.
404와의 차이
404와 410은 둘 다 4xx 클라이언트 오류이며 '리소스를 제공하지 않음'을 의미하지만, 전달하는 의도가 다릅니다. MDN은 서버 운영자가 부재가 일시적인지 영구적인지 모를 때는 404를, 영구 삭제가 확실할 때는 410을 쓰도록 권고합니다.
| 구분 | 404 Not Found | 410 Gone |
|---|---|---|
| 의미 | 리소스를 찾을 수 없음(영구성 불특정) | 리소스가 영구적으로 제거됨 |
| 영구성 신호 | 모호함(일시·영구 둘 다 가능) | 명시적·영구적 |
| 권장 상황 | 부재 사유·기간이 불확실할 때 | 의도적 영구 삭제가 확실할 때 |
| 구글 색인 제거 | 일정 기간 보호 후 제거 | 약간 더 빠른 제거 신호 |
| 재크롤링 | 장기간 지속 | 장기간 지속(410도 멈추지 않음) |
SEO 관점에서 가장 중요한 사실은, 구글의 실제 처리에서 둘의 차이가 거의 없다는 점입니다. 구글의 John Mueller는 "404와 410의 처리 차이는 너무 미미해서 SEO 목적상 어느 한쪽을 선호할 만한 경우를 떠올리기 어렵다"라고 밝혔습니다. 또한 반복 크롤링에 대한 질문에 "이것들은 문제를 일으키지 않으니 그냥 두면 됩니다. 오랫동안 다시 크롤링될 수 있고, 410이라고 해서 그게 달라지지 않습니다"라고 답했습니다.
다만 구글 관계자들은 410이 색인에서 페이지를 제거하는 속도가 약간 더 빠르다고 일관되게 언급해 왔습니다. 410은 운영자가 의도적으로 '이 페이지는 사라졌다'라고 선언한 것으로 해석되어, 404처럼 일정 기간 보호하지 않고 더 즉시 오류로 전환하는 경향이 있습니다. 그러나 이는 실무상 거의 차이를 만들지 않으며, 410을 반환해도 구글은 해당 URL을 오랜 기간 계속 재크롤링합니다.
사용 사례
- 만료되어 더 이상 유효하지 않은 프로모션·이벤트 페이지를 영구 종료할 때.
- 중복·저품질 콘텐츠를 의도적으로 영구 삭제하고 색인에서 빠르게 빼고 싶을 때.
- 폐기(deprecated)된 API 엔드포인트나 단종된 제품 페이지를 명시적으로 제거할 때.
- 대체 페이지가 없어 301 리다이렉트가 부적절하고, 부재가 영구적임이 확실할 때.
응답 예시
GET /promotions/summer-2023 HTTP/1.1
Host: example.com
HTTP/1.1 410 Gone
Content-Type: text/htmlnginx 설정 예시
location = /promotions/summer-2023 {
return 410;
}실행 체크리스트
- 삭제가 영구적임이 확실한 URL에만 410을 적용하고, 불확실하면 404를 사용합니다.
- 대체할 페이지가 있다면 410·404 대신 301 영구 리다이렉트를 우선 검토합니다.
- 410을 반환하는 내부 링크는 제거하거나 유효한 대상으로 교체합니다.
- 색인 제거 속도에 과도하게 집착하지 않습니다. 구글 처리상 404와의 차이는 미미합니다.
- 410 페이지에도 사용자를 위한 안내·내비게이션을 제공해 이탈을 줄입니다.