404 에러
404 에러는 요청한 페이지나 리소스를 서버가 찾지 못했음을 알리는 HTTP 상태 코드입니다. 자원이 일시적으로 없는지 영구적으로 사라졌는지는 구분하지 않습니다.
- 404 에러는 클라이언트가 요청한 URL의 리소스를 서버가 찾지 못했음을 뜻하는 4xx 계열 HTTP 상태 코드입니다.
- 404 자체는 웹에서 정상적인 현상이며, 정상 작동하는 다른 페이지의 검색 순위에는 영향을 주지 않습니다.
- 가짜 성공(2xx) 응답으로 위장한 soft 404는 색인 혼란을 유발하므로 더 나쁘며, 실제 404 또는 410을 반환하는 편이 낫습니다.
- 되살아날 수 있는 페이지는 404, 영구 삭제된 페이지는 410, 대체 페이지로 이동한 경우는 301 리다이렉트로 처리합니다.
개요
404 에러는 브라우저나 클라이언트가 요청한 페이지 또는 리소스를 서버가 찾지 못했을 때 반환하는 HTTP 상태 코드입니다. 정식 명칭은 "404 Not Found"이며, 4xx 클라이언트 오류 계열에 속합니다. 브라우저에서는 입력한 URL을 인식하지 못한 경우를, API에서는 엔드포인트는 유효하지만 해당 리소스가 존재하지 않는 경우를 의미합니다.
중요한 점은 404가 해당 자원이 일시적으로 없는지 영구적으로 사라졌는지를 구분하지 않는다는 것입니다. 리소스가 영구적으로 제거된 경우라면 서버는 410 Gone 상태 코드를 사용하도록 권장됩니다. 404로 이어지는 링크는 흔히 "깨진 링크" 또는 "죽은 링크"라고 부릅니다.
404가 발생하는 대표적인 원인으로는 잘못 입력된 URL, 리다이렉트 없이 이동되거나 삭제된 페이지, 잘못 연결된 내부·외부 링크 등이 있습니다.
SEO 관점
404 에러는 웹에서 지극히 정상적인 현상입니다. 구글은 사이트에 404가 존재하는 것이 200 성공 코드를 반환하는 다른 URL의 검색 순위에 영향을 주지 않는다고 명확히 밝히고 있습니다. 검색엔진 자신의 사이트에도 404가 존재하며, 검색엔진은 이를 정상적인 상황으로 인식합니다.
다만 404가 과도하게 많아지면 두 가지 문제가 생깁니다. 첫째, 깨진 링크를 클릭한 방문자가 막다른 길에 도달해 사용자 경험(UX)이 나빠집니다. 둘째, 존재하지 않는 URL을 검색엔진 크롤러가 반복적으로 방문하면 크롤 예산이 낭비될 수 있습니다. 따라서 내부·외부의 깨진 링크 수는 최소화하는 편이 좋습니다.
404 vs soft 404 vs 410 차이
세 가지는 의미와 처리 방식이 다릅니다.
- 404 (Not Found) — 리소스를 찾지 못함. 일시적인지 영구적인지는 명시하지 않으며, 페이지가 다시 살아날 가능성이 있을 때 적합합니다.
- soft 404 — 실제로는 존재하지 않는 페이지인데도 서버가 2xx 성공 코드를 반환하는 경우입니다. 빈 페이지나 "페이지를 찾을 수 없습니다" 같은 오류 문구를 200 코드와 함께 내보내면 구글은 이를 soft 404로 판단합니다. 성공 코드로 위장하기 때문에 검색엔진의 색인 이해를 방해하며, 올바른 404·410보다 더 나쁜 신호로 취급됩니다.
- 410 (Gone) — 리소스가 영구적으로 제거되어 다시 돌아오지 않음을 명시적으로 알립니다. 구글은 색인 처리 단계에서 404와 410을 사실상 동일하게 다루며(4xx 오류는 429를 제외하고 동일 처리), 두 경우 모두 색인에서 URL을 제거하고 크롤 빈도를 점차 낮춥니다.
올바른 처리 방법
페이지를 삭제할 때는 soft 404를 만들지 말고 적절한 404 또는 410 응답 코드를 반환하는 것이 핵심입니다. 페이지가 다시 살아날 수 있으면 404, 영구히 사라졌다고 확신하면 410을 사용합니다. 콘텐츠가 다른 위치로 이동했다면 404 대신 301 영구 리다이렉트로 새 주소를 연결하는 편이 사용자와 검색엔진 모두에게 유리합니다.
또한 맞춤형 404 페이지를 제공해 사용자가 막다른 길에서 빠져나갈 수 있도록 돕는 것이 좋습니다. 맞춤 404 페이지에는 사이트 검색창, 인기 콘텐츠 링크, 홈으로 돌아가는 경로 등을 배치합니다. 단, 맞춤 404 페이지도 반드시 HTTP 200이 아닌 404 상태 코드를 반환해야 하며, 그렇지 않으면 그 자체가 soft 404가 됩니다.
근거
위 내용은 MDN의 404 Not Found 문서(404는 일시/영구를 구분하지 않으며 영구 제거 시 410 권장), 구글 검색 센터 블로그(404는 다른 페이지 순위에 영향 없음, soft 404는 지양), 구글 HTTP 상태 코드 문서(404·410 동일 처리, soft 404 정의)에 근거합니다.
실행 체크리스트
- 깨진 내부·외부 링크를 점검하고 수정하거나 제거합니다.
- 삭제한 페이지가 적절한 404 또는 410 상태 코드를 반환하는지 확인합니다.
- 존재하지 않는 페이지가 200 코드를 반환하는 soft 404 상황이 없는지 점검합니다.
- 영구 삭제된 페이지는 410, 다시 살릴 수 있는 페이지는 404로 구분해 처리합니다.
- 콘텐츠가 이동한 경우 404 대신 301 영구 리다이렉트로 새 URL을 연결합니다.
- 맞춤형 404 페이지에 검색창·주요 링크·홈 이동 경로를 제공하되 상태 코드는 404를 유지합니다.
- Search Console의 색인 보고서에서 404 및 soft 404 추이를 주기적으로 모니터링합니다.