--- id: soft-404 title: "Soft 404" category: "SEO/Indexing" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["소프트 404", "Soft 404 오류", "유사 404", "소프트 404 응답"] duplicate_of: "" source_trust_level: "A" confidence_score: 0.92 created_at: 2026-06-10 updated_at: 2026-06-10 review_reason: "" merge_history: [] tags: ["research", "indexing", "http-status", "SEO", "technical-seo"] raw_sources: [ "Google 검색 센터 - 페이지 색인 생성 보고서 (Soft 404)", "Search Console 도움말 - soft 404 수정 방법", "Search Console 도움말 - 라이브 URL 검사" ] applied_in: ["빈 결과 페이지의 404 처리", "라이브 URL 검사 기반 진단"] github_commit: "" --- # [[Soft 404]] ## 🎯 한 줄 통찰 (One-line insight) 실제로는 '찾을 수 없는' 페이지인데도 사용자에게는 안내 메시지를 보여주면서 정작 404 HTTP 응답 코드를 반환하지 않아, Google이 색인을 거부하는 상태 [S1]. ## 🧠 핵심 개념 (Core concepts) - **정의:** 페이지 요청에 대해 'soft 404'로 판단되는 응답이 반환됨 — 즉 사용자 친화적 '찾을 수 없음' 메시지는 보이지만 [[SEO를 위한 HTTP 상태 코드|404 코드]]는 반환하지 않음 [S1]. - **Google의 처리:** soft 404로 판단된 페이지는 색인이 생성되지 않으며, '페이지 색인 생성 보고서'의 미색인 이유로 표시됨 [S1]. - **권장 처리:** 실제로 없는 페이지는 명확히 404(또는 410) 응답 코드를 반환해 soft 404가 아님을 Google에 알려야 함 [S1]. - **진단 도구:** 라이브 URL 검사 테스트 후 '테스트된 페이지 보기'로 Google의 렌더링 스크린샷을 확인해 페이지 상태를 점검함 [S1]. ## 🧩 추출된 패턴 (Extracted patterns) - **상태 코드 일치 패턴:** 콘텐츠가 없으면 본문 메시지뿐 아니라 HTTP 상태 코드도 404/410으로 '없음'을 일관되게 신호함 [S1]. - **빈 결과 페이지 함정:** 검색 결과 0건, 품절 상품, 빈 카테고리 등이 200 코드로 응답하면 soft 404로 분류되기 쉬움 [S1]. - **정보 보강 vs 제거 판단:** 실제 콘텐츠가 있어야 할 페이지라면 정보를 추가해 빈약함을 해소하고, 없어야 할 페이지라면 404로 정리함 [S1]. ## ⚖️ 비교 및 선택 기준 (Comparison & decision criteria) | 상황 | 잘못된 응답(soft 404 유발) | 올바른 처리 | |---|---|---| | 페이지가 영구히 없음 | 200 + "없음" 메시지 | 404 또는 410 반환 [S1] | | 콘텐츠가 너무 빈약 | 200 + 거의 빈 본문 | 콘텐츠 보강 또는 통합 [S1] | | 다른 곳으로 이동함 | 200 안내 페이지 | 301로 새 위치 리디렉션 — [[301 Redirect]] [S1] | ## 📖 세부 내용 (Details) soft 404는 '실제 응답(HTTP 코드)'과 '사용자에게 보이는 의미'가 어긋날 때 발생합니다 [S1]. Google은 200 OK로 응답하는 페이지를 정상 콘텐츠로 가정하므로, "찾을 수 없습니다" 같은 메시지를 200으로 내보내면 신호가 모순되어 색인을 보류합니다 [S1]. 해결의 핵심은 의도를 상태 코드로 정확히 표현하는 것입니다. 페이지가 정말 없으면 404(또는 영구 삭제 시 410)를 반환하고, 잘못 분류된 것이라면(예: 실제 콘텐츠가 충분한데 soft 404로 잡힘) 라이브 URL 검사로 Google의 렌더링을 확인한 뒤 색인 생성을 다시 요청합니다 [S1]. 페이지가 이동했다면 [[301 Redirect|301 리디렉션]]으로 새 위치를 알립니다 [S1]. ## ⚖️ 모순 및 업데이트 (Contradictions & updates) - **404가 항상 나쁜 것은 아님:** 대체 페이지 없이 삭제된 페이지의 404는 정상적인 신호이며 굳이 막을 필요가 없습니다 — 오히려 soft 404가 더 문제입니다 [S1]. - **렌더링 차이:** 클라이언트 렌더링(JS) 페이지는 초기 HTML이 비어 soft 404로 오인될 수 있어, 라이브 테스트의 렌더 결과를 확인해야 합니다 [S1]. ## 🛠️ 적용 사례 (Applied in summary) - **품절/빈 결과 페이지:** 200으로 빈 화면을 내던 상품·검색 결과 페이지를 404 처리하거나 관련 콘텐츠로 보강 [S1]. - **렌더 스크린샷 확인:** 라이브 URL 검사 → '테스트된 페이지 보기'로 Google이 본 실제 화면을 점검 [S1]. ## 💻 코드 패턴 (Code patterns) ### 존재하지 않는 페이지에 404 반환 (예: Express) ```javascript app.use((req, res) => { res.status(404).send('