본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.

404와 410 상태 코드 기준 정리
삭제한 페이지에 어떤 응답 코드를 돌려줄지는 검색 색인 정리와 운영 의미를 함께 좌우한다. 2026년 7월 14일 확인 기준으로 RFC 9110은 404 Not Found를 현재 표현이 없거나 존재 여부를 숨기고 싶을 때 쓰는 코드로 설명하고, 410 Gone은 더 이상 접근할 수 없고 그 상태가 영구적일 가능성이 높을 때 쓰는 코드로 설명한다.
검색엔진 쪽 동작도 같이 봐야 한다. Google의 HTTP 상태 코드 문서를 보면 429를 제외한 4xx는 모두 같은 부류로 처리되며, 이미 색인된 URL은 시간이 지나며 색인에서 제거되고 크롤링 빈도도 점진적으로 줄어든다. 즉 Google Search 기준으로는 404와 410의 차이가 절대적인 색인 제거 속도 차이로 보장되는 것은 아니고, 운영 의도를 명확히 표현하는 의미 차이가 더 크다.
404와 410은 무엇이 다를까?
RFC 9110의 핵심 차이는 영구성 판단 가능 여부다. 404는 현재 표현을 찾지 못했음을 뜻하지만, 그 부재가 일시적인지 영구적인지는 말해 주지 않는다. 반면 410은 서버가 해당 리소스가 의도적으로 사라졌고, 이 상태가 지속될 가능성이 높다고 알고 있을 때 쓰는 응답이다.
404: 리소스가 없지만 영구 삭제인지 확실하지 않거나, 서버가 그 판단 근거를 갖고 있지 않을 때.410: 리소스가 의도적으로 제거되었고, 다시 제공하지 않을 계획이 분명할 때.
RFC는 서버가 영구 여부를 알지 못하면 404를 써야 한다고 설명한다. 반대로 운영자가 삭제 정책을 알고 있고 외부에 그 의도를 알리고 싶다면 410이 더 정확한 표현이다.
Google 크롤러는 404와 410을 어떻게 볼까?
Google 문서에서 중요한 부분은 429를 제외한 모든 4xx가 같은 처리 범주에 들어간다는 점이다. Google은 4xx를 받으면 해당 URL 콘텐츠를 사용하지 않고, Google Search에서는 새 404 페이지를 색인하지 않으며 이미 색인된 URL도 시간이 지나며 제거한다고 설명한다.
문서에는 404와 410를 따로 구분한 인덱싱 규칙이 나오지 않는다. 따라서 Google Search 관점만 놓고 보면 두 코드 모두 "이 URL은 더 이상 유효한 콘텐츠를 제공하지 않는다"는 신호로 보는 편이 맞다. 실무에서는 410을 쓰면 무조건 더 빨리 빠진다고 단정하기보다, 영구 삭제 의도가 분명한 URL에 의미적으로 맞는 코드를 선택하는 것이 안전하다.
언제 404를 선택하는 편이 맞을까?
404는 삭제 상태를 확정하기 어려운 경우에 가장 무난하다. 제품 페이지가 일시적으로 내려갔는지, CMS에서 잠시 비공개 처리된 것인지, 나중에 같은 URL에 다시 콘텐츠를 올릴 수 있는지 확실하지 않다면 404가 더 맞다.
- 배포 실수나 설정 오류 때문에 잠시 페이지가 비어 있는 경우
- 콘텐츠 복구 가능성이 남아 있는 경우
- 리소스 부재는 확인했지만 영구 삭제 정책은 판단할 수 없는 경우
- 권한 문제나 차단 여부를 숨기기 위해 존재 자체를 노출하고 싶지 않은 경우
RFC 9110은 403 Forbidden 대신 존재를 숨기기 위해 404를 반환할 수 있다고도 설명한다. 따라서 보안 또는 권한 은닉 목적까지 포함하면 404의 쓰임새는 더 넓다.
언제 410을 선택하는 편이 맞을까?
410은 운영자가 "이 리소스는 의도적으로 종료했다"는 사실을 알고 있을 때 적합하다. RFC는 410이 웹 유지보수 작업을 돕기 위한 코드라고 설명하며, 외부 링크를 제거해 달라는 신호를 전달하는 데도 의미가 있다고 본다.
- 기간 한정 이벤트 페이지를 종료했고 재사용 계획이 없는 경우
- 문서 구조 개편으로 특정 URL을 영구 폐기한 경우
- 계정 삭제나 서비스 종료로 해당 리소스가 다시 생기지 않는 경우
- 수집기나 파트너 시스템에 명시적으로 "영구 삭제"를 알리고 싶은 경우
다만 RFC는 모든 영구 삭제 리소스에 반드시 410을 붙일 필요는 없고, 얼마 동안 유지할지도 서버 소유자 재량이라고 설명한다. 즉 410은 선택 가능한 더 구체적 신호이지, 의무 규칙은 아니다.
크롤링과 캐시 관점에서 주의할 점은?
RFC 9110은 404와 410 모두 heuristic cacheable이라고 설명한다. 즉 별도 캐시 지시자가 없어도 중간 캐시나 클라이언트가 일정 기준으로 재사용할 수 있다. 삭제 직후 상태가 자주 바뀔 수 있는 시스템이라면 Cache-Control 정책을 같이 설계하는 편이 안전하다.
또한 자체 크롤러를 운영한다면 두 코드를 완전히 같은 의미로 합치지 않는 편이 좋다. 404는 재시도 후보 목록에 남길 여지가 있지만, 410은 재수집 우선순위를 더 강하게 낮추거나 링크 정리 대상으로 분류할 수 있다. 이 차이는 RFC가 말하는 영구성 힌트를 파이프라인에 반영하는 방식이다.
운영 기준은 어떻게 잡으면 좋을까?
선택 기준은 결국 "이 URL이 다시 살아날 가능성을 시스템이 아는가"로 정리할 수 있다. URL 생명주기 상태를 애플리케이션이 관리한다면 active, soft-deleted, retired 같은 내부 상태를 두고 응답 코드를 매핑하는 방식이 실무에서 가장 안정적이다.
- 삭제 여부만 알고 영구성은 모르면
404 - 영구 폐기가 명확하면
410 - 새 위치가 확정되어 이동시킬 수 있으면
301또는308 - 일시 장애나 점검이면
404/410대신503
특히 이전 URL을 새 URL로 자연스럽게 이어 줄 수 있다면 삭제 코드보다 영구 리디렉션이 더 나은 선택일 때가 많다. 삭제와 이동은 다른 의미이므로 같은 규칙으로 묶지 않는 편이 좋다.
FAQ
Q. SEO만 보면 410이 404보다 항상 더 좋은가?
그렇게 단정할 수는 없다. Google 문서는 429를 제외한 4xx를 같은 범주로 설명한다. 따라서 Google Search 기준으로는 두 코드 모두 색인 제외 신호이며, 차이는 주로 운영 의도와 의미 표현에 있다.
Q. 삭제 페이지를 모두 410으로 바꿔야 할까?
그럴 필요는 없다. RFC도 모든 영구 삭제 리소스를 반드시 410으로 표시해야 한다고 요구하지 않는다. 영구 폐기 여부를 확실히 아는 URL에만 선택적으로 적용해도 충분하다.
Q. 없는 페이지인데 잠시 후 복구될 수도 있다면?
이 경우는 410보다 404가 더 적절하다. 복구 가능성을 알고 있다면 영구 삭제를 뜻하는 410은 의미상 과한 신호가 된다.
정리
404는 "지금은 없다"에 가깝고, 410은 "의도적으로 없어졌고 다시 제공하지 않을 가능성이 높다"에 가깝다. RFC 9110 기준으로 영구성 판단이 가능할 때만 410을 선택하는 것이 맞고, Google Search 문서 기준으로는 두 코드 모두 4xx로 처리되어 콘텐츠가 사용되지 않는다. 따라서 실제 운영에서는 SEO 속설보다 URL 생명주기와 삭제 의도를 기준으로 코드를 고르는 편이 가장 정확하다.
참고 자료
'시리즈물 > 데이터 수집을 위한 크롤링' 카테고리의 다른 글
| X-Robots-Tag 헤더 기준 정리 (0) | 2026.07.21 |
|---|---|
| canonical 링크 기준 정리 (0) | 2026.07.05 |
| [크롤링] 데이터 수집을 위한 크롤링 11편 : RSS와 Atom 피드 사용법 (0) | 2026.06.24 |
| [크롤링] 데이터 수집을 위한 크롤링 10편 : Sitemap XML과 sitemap index 사용법 (0) | 2026.06.11 |
| [크롤링] 데이터 수집을 위한 크롤링 9편 : Last-Modified와 If-Modified-Since 사용법 (0) | 2026.05.22 |





