소프트 404는 페이지가 없거나 본문이 비어 있는데 서버가 200 OK로 응답해 Google이 오류로 분류한 상태입니다. HTTP의 정식 상태 코드가 아니라 Google이 페이지 내용을 분석해 붙이는 분류입니다. 삭제한 URL을 관련 없는 홈페이지로 리디렉션했을 때도 소프트 404로 처리될 수 있습니다.
HTTP 404와 소프트 404의 차이
| 구분 | 화면 내용 | HTTP 상태 코드 |
|---|---|---|
| 실제 404 | 페이지가 없다는 안내 | 404 Not Found |
| 소프트 404 | 페이지가 없거나 주요 내용이 없는 화면 | 대개 200 OK |
브라우저에 “페이지를 찾을 수 없습니다”가 보여도 서버가 보내는 상태 코드는 200일 수 있습니다. Google은 이처럼 응답과 내용이 맞지 않는 페이지를 감지하면 Search Console의 페이지 색인 생성 보고서에 소프트 404로 표시하고 검색에서 제외합니다. 따라서 오류 문구를 화면에 넣는 것만으로 HTTP 404 처리가 끝나지는 않습니다.
소프트 404가 생기는 원인
다음과 같은 상태에서 서버가 200을 반환하면 소프트 404로 분류될 수 있습니다.
- CMS가 존재하지 않는 주소에도 정상 페이지와 같은 응답 코드를 보냅니다.
- 삭제된 상품의 URL에 빈 상품 템플릿만 남아 있습니다.
- 사이트 내부 검색에서 결과가 없고 주요 콘텐츠도 없는 화면을 보여 줍니다.
- 데이터베이스 연결이나 템플릿 처리에 실패해 본문을 불러오지 못합니다.
- JavaScript나 필요한 리소스가 로드되지 않아 Google이 빈 페이지를 봅니다.
리디렉션의 목적지도 원인이 됩니다. 삭제한 페이지를 모두 홈페이지로 보내면, Google은 그 이동을 내용과 관계없는 리디렉션으로 보고 소프트 404로 처리할 수 있습니다.
삭제된 페이지와 정상 페이지의 수정 방법
처리 방법은 해당 URL에 콘텐츠가 있어야 하는지에 따라 달라집니다.
- 페이지를 삭제했고 내용이 비슷한 대체 페이지도 없다면 404 또는 410을 반환합니다.
- 콘텐츠를 새 주소로 영구히 옮겼거나 명확한 대체 페이지가 있다면 301 리디렉션으로 연결합니다.
- 정상 페이지인데 본문을 불러오지 못했다면 데이터베이스, 템플릿, JavaScript 등 실패한 부분을 복구합니다. 필요한 리소스를 robots.txt가 막고 있는지도 확인합니다.
- 서버 점검 때문에 잠시 응답할 수 없다면 200의 빈 화면 대신 503 같은 일시적인 서비스 불가 응답을 사용합니다. 정상화한 뒤에는 200과 본문을 다시 제공해야 합니다.
수정 후에는 URL 검사에서 Google이 렌더링한 화면과 HTTP 응답을 확인합니다. 브라우저에서는 정상이어도 Google이 본문을 불러오지 못할 수 있기 때문입니다. 삭제한 URL은 404 또는 410인지, 복구한 URL은 200과 실제 본문이 나오는지, 옮긴 URL은 적절한 새 페이지로 연결되는지 대조합니다.
정상적인 404의 범위
존재하지 않는 URL에 404를 보내는 것은 정상입니다. 오류 수를 줄이려고 모두 홈페이지로 이동시키거나 200을 반환하면 실제 상태를 잘못 전달하게 됩니다.
반면 아래 문제는 수정해야 합니다.
- 중요한 페이지가 실수로 404가 된 경우
- 내부 링크가 삭제 URL로 향하는 경우
- 서버가 잘못된 상태 코드를 반환하는 경우
크롤링 효율에 미치는 영향
존재하지 않는 URL을 계속 정상 페이지처럼 제공하면 Google이 불필요한 페이지를 수집하고 처리하는 데 자원을 쓸 수 있습니다. 소프트 404가 많은 대형 사이트에서 크롤 버짓을 관리할 때는 서버 로그를 보고 이런 주소에 요청이 반복되는지, 중요한 페이지의 수집이 지연되는지도 살펴봅니다.
Google AI Overviews와 AI Mode의 지원 링크로 표시되려면 페이지가 Google 검색에 색인돼 있어야 합니다. 소프트 404로 색인에서 제외됐다면 응답 코드와 본문 오류부터 해결해야 합니다.
자주 묻는 질문
Search Console의 소프트 404는 Google의 판단인가요?
네. 서버가 보내는 HTTP 상태 코드가 아니라 Google이 내용을 분석한 결과입니다. 정상 페이지를 잘못 분류한 것으로 보인다면 URL 검사에서 Google이 렌더링한 화면을 열어 본문이 실제로 보이는지 확인합니다.
품절 상품도 404로 바꿔야 하나요?
품절이라는 이유만으로 404로 바꾸지는 않습니다. 재입고 예정이거나 상품 설명과 사용 정보가 여전히 필요한 페이지라면 200을 유지하고 품절 상태를 명확히 알립니다. 영구히 종료돼 페이지도 없앴다면, 실제 대체 상품으로 안내할 수 있는지에 따라 리디렉션이나 404 처리를 결정합니다.
404 페이지를 예쁘게 만들면 상태 코드도 200이어야 하나요?
아니요. 로고와 메뉴, 다른 글의 링크가 있는 맞춤 오류 화면도 HTTP 상태는 404로 반환할 수 있습니다. 사용자가 사이트를 계속 이용하도록 돕는 디자인과 해당 URL의 콘텐츠가 없다는 응답은 함께 제공할 수 있습니다.
함께 알아두면 좋은 용어
- 404 오류: 요청한 리소스가 없음을 알리는 HTTP 응답
- HTTP 상태 코드: 서버가 요청 처리 결과를 알리는 코드
- 크롤 버짓: Google이 사이트 크롤링에 배정하는 시간과 자원의 규모
- 리디렉션: 요청을 다른 URL로 보내는 처리