SEO & Discoverability

HTTP 상태 코드가 SEO에서 실제로 의미하는 것

크롤링, 색인 생성, 리디렉션, 색인 제거에 영향을 주는 응답 코드에 대한 실용적인 가이드 — 모든 코드를 순위 위기로 취급하지 않기 위해.

The Wux Webtools Team The Wux Webtools Team 13 읽기 최소 시간 AI 지원, 인간 검토
Illustration of HTTP status code paths affecting how a search crawler reaches or skips web pages.
목차
  1. 상태 코드가 SEO의 전부는 아닙니다
  2. 200 OK: 색인 생성 가능하지만, 자동으로 가치 있는 것은 아닙니다
  3. 301 및 308: 영구 리디렉션
  4. 302 및 307: 임시 리디렉션
  5. 304 Not Modified: 유용하지만 순위 상승 지름길은 아닙니다
  6. 404 Not Found: 페이지가 사라졌을 때 정상입니다
  7. 410 Gone: 404보다 강하지만 신중하게 사용해야 합니다
  8. 401, 403, 그리고 차단된 접근
  9. 429 Too Many Requests: 결과를 동반하는 크롤링 제어
  10. 500, 502, 503, 504: 안정성 신호
  11. 리디렉션 체인과 루프는 특별한 주의가 필요합니다
  12. 실용적인 우선순위 목록
  13. 올바른 코드를 선택하는 간단한 규칙

HTTP 상태 코드는 SEO 조언이 이상할 만큼 극적으로 변하기 쉬운 주제 중 하나입니다. 404 하나가 “권위 손실”이 되고, 리디렉션 하나가 “링크 자산 누수”가 됩니다. 500은 배포 중 6분 동안만 지속되었더라도 긴급 상황처럼 취급되기도 합니다.

더 차분하게 말하면 이렇습니다. HTTP 상태 코드는 지시와 신호입니다. 브라우저, 봇, 캐시, 그리고 다른 클라이언트가 URL을 요청했을 때 무슨 일이 일어났는지 알려줍니다. 검색 엔진은 이러한 응답을 사용해 페이지를 크롤링할지, 색인에 넣을지, 유지할지, 대체할지, 제거할지를 결정합니다.

하지만 모든 상태 코드가 SEO에서 같은 무게를 갖는 것은 아닙니다. 일부는 일상적입니다. 일부는 규모가 커질 때만 문제가 됩니다. 몇 가지는 즉시 주의가 필요합니다.

상태 코드가 SEO의 전부는 아닙니다

상태 코드는 HTTP 응답의 한 부분일 뿐입니다. 검색 엔진은 다음도 함께 봅니다.

  • 리디렉션 후의 최종 URL
  • canonical 태그
  • robots 지시문
  • 페이지 콘텐츠
  • 내부 링크
  • sitemap 신호
  • 과거 크롤링 동작
  • 시간에 따른 서버 안정성

즉 “페이지가 200을 반환한다”는 말은 “페이지가 색인 생성 가능하다”는 말과 같지 않습니다. URL이 200을 반환하더라도 noindex로 차단되어 있거나, 다른 곳으로 canonical 처리되어 있거나, 콘텐츠가 얇거나 비어 있어 soft 404로 취급될 수 있습니다.

마찬가지로 404가 자동으로 나쁜 것은 아닙니다. 삭제된 페이지는 보통 404 또는 410을 반환해야 합니다. SEO 문제는 누락된 페이지가 존재한다는 사실 자체가 아닙니다. 중요한 페이지가 잘못된 코드를 반환하거나, 사이트가 서로 모순되는 신호를 보내는 경우가 문제입니다.

프로덕션에서 이를 디버깅한다면 브라우저에 보이는 내용에만 의존하지 마세요. 실제 응답 체인을 확인해야 합니다. 원시 헤더 확인, command-line 요청, 리디렉션 추적은 눈에 보이는 페이지보다 더 많은 정보를 제공합니다. 실무 흐름은 프로덕션에서 리디렉션과 HTTP 헤더를 디버깅하기 위한 작은 도구 모음에서 다룬 바 있습니다.

200 OK: 색인 생성 가능하지만, 자동으로 가치 있는 것은 아닙니다

200 OK 응답은 요청이 성공했고 서버가 콘텐츠를 반환했다는 뜻입니다. SEO 관점에서는 크롤링되고 잠재적으로 색인되기를 원하는 페이지의 정상 응답입니다.

하지만 200은 색인 생성을 보장하지 않습니다. 검색 엔진은 페이지가 중복이거나, 품질이 낮거나, 페이지 수준 지시문으로 차단되어 있거나, 링크를 통해 발견될 수 없다면 여전히 색인하지 않을 수 있습니다.

200 응답에서 가장 흔한 SEO 실수는 실제 페이지가 아닌 것에 200을 반환하는 것입니다.

  • 비어 있는 검색 결과 페이지
  • “죄송합니다, 이용할 수 없습니다”라는 문구만 있는 삭제된 상품 페이지
  • 의미 있는 콘텐츠가 없는 지역 페이지
  • 껍데기만 렌더링하는 깨진 템플릿
  • 제거되거나 리디렉션되어야 하는 만료된 목록

이런 페이지는 soft 404가 될 수 있습니다. soft 404는 서버는 “OK”라고 말하지만, 콘텐츠는 크롤러에게 “여기에는 유용한 것이 없다”고 말하는 경우입니다. 검색 엔진은 결국 해당 URL을 누락된 페이지처럼 취급할 수 있습니다.

좋은 기준은 이렇습니다. 사람이 “이 페이지는 더 이상 존재하지 않는다”고 말할 상황이라면, 서버도 아마 200이라고 말해서는 안 됩니다.

301 및 308: 영구 리디렉션

301 Moved Permanently308 Permanent Redirect는 클라이언트에게 URL이 영구적으로 이동했음을 알려줍니다. SEO에서는 페이지에 명확한 대체 대상이 있을 때 적절한 도구입니다.

  • HTTP에서 HTTPS로의 마이그레이션
  • 이전 slug에서 새 slug로 변경
  • 병합된 글을 더 강한 글로 연결
  • 단종된 상품을 가까운 후속 상품으로 연결
  • trailing slash 또는 canonical host 정규화

검색 엔진은 일반적으로 영구 리디렉션을 통해 canonicalization 신호를 전달합니다. 쉽게 말하면, 이전 URL을 올바른 새 URL로 리디렉션하면 검색 엔진은 이전 페이지와 관련된 많은 신호를 통합할 수 있습니다.

위험은 301 자체가 본질적으로 해롭다는 데 있지 않습니다. 위험은 잘못된 매핑에 있습니다.

나쁜 리디렉션 패턴은 다음과 같습니다.

  • 모든 이전 URL을 홈페이지로 리디렉션
  • 삭제된 페이지를 막연히 관련 있는 카테고리 페이지로 리디렉션
  • A → B → C → D 같은 체인 생성
  • 차단되었거나, noindex 처리되었거나, 다른 곳으로 canonical 처리된 URL로 리디렉션
  • 모바일과 데스크톱에서 일관되지 않게 리디렉션

영구 리디렉션은 한 가지 질문에 답해야 합니다. “이 URL의 현재 최선의 동등한 대상은 무엇인가?” 동등한 대상이 없다면 404 또는 410이 더 정직할 수 있습니다.

302 및 307: 임시 리디렉션

302 Found307 Temporary Redirect는 이동이 임시적임을 나타냅니다. 원래 URL은 시간이 지나도 기본 URL로 남을 것으로 예상됩니다.

진정으로 임시적인 상황에 임시 리디렉션을 사용하세요.

  • 짧은 기간의 캠페인 라우팅
  • canonical URL을 대체해서는 안 되는 지리적 위치 기반 또는 A/B testing
  • 임시 유지보수 대안
  • 자주 바뀌는 재고 또는 이용 가능 여부 흐름

SEO에서 핵심 문제는 모호성입니다. “임시” 리디렉션이 몇 달 또는 몇 년 동안 유지되면 검색 엔진은 결국 목적지를 canonical로 취급할 수 있습니다. 하지만 그 해석에 의존해서는 안 됩니다.

이동이 영구적이면 영구 리디렉션을 사용하세요. 임시라면 임시 리디렉션을 사용하세요. 지루한 답이 올바른 답입니다.

304 Not Modified: 유용하지만 순위 상승 지름길은 아닙니다

304 Not Modified는 HTTP 캐싱의 일부입니다. 클라이언트가 이미 가진 버전 이후로 리소스가 변경되지 않았음을 알려줍니다.

이 코드는 크롤링 효율성과 성능 관리 측면에서 좋습니다. 불필요한 데이터 전송을 줄이고 반복 요청 비용을 낮출 수 있습니다. 하지만 단순한 의미의 직접적인 순위 요소는 아닙니다.

304는 인프라 품질로 생각하면 됩니다. 클라이언트와 크롤러가 사이트와 효율적으로 상호작용하도록 돕습니다. 약한 콘텐츠를 강한 콘텐츠로 바꾸지는 않습니다.

404 Not Found: 페이지가 사라졌을 때 정상입니다

404 Not Found는 서버가 요청한 리소스를 찾을 수 없다는 뜻입니다. 이것이 자동으로 SEO 재앙을 의미하지는 않습니다.

404가 적절한 경우는 다음과 같습니다.

  • 페이지가 제거되었고 대체 대상이 없음
  • 잘못된 외부 링크가 존재하지 않는 URL을 가리킴
  • 사용자가 URL을 잘못 입력함
  • 오래된 테스트 또는 staging URL이 애초에 존재할 의도가 없었음

검색 엔진은 지속적으로 404를 반환하는 URL을 결국 색인에서 제거합니다. 이는 보통 원하는 결과입니다.

다음처럼 중요한 URL에 영향을 줄 때 404를 수정해야 합니다.

  • 가치 있는 backlinks가 있는 페이지
  • 의미 있는 트래픽을 받는 URL
  • 마이그레이션 중 실수로 제거된 중요한 페이지
  • 누락된 페이지를 가리키는 내부 링크
  • 404를 반환하는 sitemap URL

모든 404를 홈페이지로 리디렉션하지 마세요. 사용자와 검색 엔진 모두에게 혼란을 줍니다. 관련 있는 대체 대상이 있다면 리디렉션하세요. 그렇지 않다면 404를 반환하고 사람을 위한 유용한 오류 페이지를 제공하세요.

410 Gone: 404보다 강하지만 신중하게 사용해야 합니다

410 Gone은 리소스가 의도적으로 사라졌고 다시 돌아올 것으로 예상되지 않는다는 뜻입니다.

SEO에서 410은 URL을 더 단호하게 제거하고 싶을 때 유용할 수 있습니다.

  • 만료된 법적 고지 페이지
  • 제거된 사용자 프로필
  • 삭제된 스팸 페이지
  • 대체 대상이 없는 오래된 landing page

검색 엔진은 410을 404보다 더 강한 제거 신호로 취급할 수 있습니다. 실무적인 차이는 종종 결과가 아니라 속도입니다. 지속적인 404와 410 응답은 모두 색인 제거로 이어질 수 있습니다.

페이지가 영구적으로 사라졌다고 확신할 때 410을 사용하세요. 페이지가 다시 돌아올 수 있다면 404 또는 임시 처리가 더 안전할 수 있습니다.

401, 403, 그리고 차단된 접근

401 Unauthorized는 인증이 필요하다는 뜻입니다. 403 Forbidden은 서버가 요청을 이해했지만 접근을 거부한다는 뜻입니다.

SEO 관점에서 이러한 코드는 일반적으로 보호된 콘텐츠의 정상적인 크롤링과 색인 생성을 막습니다. 비공개 대시보드, 계정 영역, staging 시스템, 공개 색인에 포함되면 안 되는 유료 콘텐츠에는 문제가 없습니다.

문제는 공개 페이지가 다음 이유로 크롤러에게 실수로 401 또는 403을 반환할 때 나타납니다.

  • bot 보호 규칙
  • 잘못 설정된 방화벽
  • 국가 차단
  • CDN 규칙
  • 만료된 인증 가정
  • 프로덕션으로 넘어온 staging 제한

로그인한 상태에서 당신에게 작동하는 페이지가 크롤러에게도 작동하는 것은 아닙니다. 항상 인증되지 않은 클라이언트로 테스트하세요.

429 Too Many Requests: 결과를 동반하는 크롤링 제어

429 Too Many Requests는 클라이언트가 rate limit에 걸렸음을 알려줍니다. 봇이 실제로 인프라를 압도하고 있을 때는 적절할 수 있습니다.

하지만 429를 가볍게 사용하면 크롤링 활동이 줄어들 수 있습니다. 검색 엔진은 rate limiting을 반복적으로 만나면 요청 속도를 늦출 수 있습니다. 이는 새 콘텐츠나 업데이트된 콘텐츠의 발견을 지연시킬 수 있습니다.

rate limiting이 필요하다면 정밀하게 적용하세요. 주요 검색 크롤러를 실수로 차단하지 않도록 하세요. 서버 로그를 사용해 공격적인 scraping과 정상적인 크롤링을 구분하세요. 가능하다면 Retry-After 헤더를 반환해 규칙을 지키는 클라이언트가 언제 다시 와야 하는지 알 수 있게 하세요.

500, 502, 503, 504: 안정성 신호

5xx 계열은 서버가 유효한 요청을 처리하지 못했음을 의미합니다.

일반적인 예는 다음과 같습니다.

  • 500 Internal Server Error
  • 502 Bad Gateway
  • 503 Service Unavailable
  • 504 Gateway Timeout

가끔 발생하는 5xx 응답은 있을 수 있습니다. 짧은 배포 이슈는 보통 치명적이지 않습니다. 지속적인 5xx 오류는 다릅니다. 이는 크롤러에게 사이트가 안정적이지 않다는 신호를 주며, 검색 엔진은 해당 페이지를 반복적으로 가져올 수 없을 경우 크롤링 속도를 줄이거나 영향을 받은 페이지를 일시적으로 제거할 수 있습니다.

503 Service Unavailable은 계획된 유지보수에 올바른 코드이며, 특히 Retry-After 헤더와 함께 사용하면 좋습니다. 이 코드는 “일시적이니 나중에 다시 오라”고 말합니다. 유지보수 페이지에 200을 반환하는 것은 더 나쁩니다. 크롤러가 유지보수 콘텐츠를 해당 페이지의 콘텐츠로 취급할 수 있기 때문입니다.

장애가 중요한 URL에 영향을 주었다면 복구를 모니터링하세요. 원래 페이지가 다시 200을 반환하는지 확인해야 합니다. 캐시된 오류 페이지, 리디렉션 루프, 임시 유지보수 템플릿이 아니어야 합니다.

리디렉션 체인과 루프는 특별한 주의가 필요합니다

리디렉션은 정상입니다. 리디렉션 체인은 피할 수 있는 부채입니다.

이전 URL에서 새 URL로 가는 단순한 리디렉션은 괜찮습니다. 다섯 단계의 리디렉션 체인은 지연 시간을 늘리고, crawl budget을 낭비하며, 요청이 실패할 지점을 더 많이 만듭니다. 루프는 더 나쁩니다. 클라이언트가 최종 페이지에 도달하지 못합니다.

SEO 마이그레이션에서는 리디렉션 맵을 유지하고 출시 전에 테스트하세요. 폐기된 각 URL은 이상적으로 한 번의 hop으로 최종 목적지에 도달해야 합니다. 출시 후에는 오래된 URL, 트래픽이 높은 URL, backlinks가 많은 URL을 샘플링하세요.

이 지점은 성능과 SEO가 겹치는 곳이기도 합니다. 리디렉션은 실제 페이지 로드 시작을 지연시킵니다. 크롤링 가능성과 함께 사용자 경험을 검토하고 있다면 Lighthouse 보고서를 당황하지 않고 읽는 방법이 심각한 로드 문제와 소음에 가까운 진단을 구분하는 데 도움이 될 수 있습니다.

실용적인 우선순위 목록

상태 코드를 감사할 때 모든 경고를 똑같이 취급하지 마세요. 여기서 시작하세요.

  1. 5xx를 반환하는 중요한 URL — 서버 안정성을 먼저 고치세요.
  2. 잘못된 상태를 반환하는 색인 가능 페이지 — 의도한 200 응답을 복원하세요.
  3. 리디렉션 체인과 루프 — 한 번의 hop 리디렉션으로 단순화하세요.
  4. non-200 응답을 반환하는 sitemap URL — sitemap을 깨끗하게 유지하세요.
  5. 404를 가리키는 내부 링크 — 내비게이션과 콘텐츠 링크를 수정하세요.
  6. soft 404 패턴 — 비어 있거나 삭제된 페이지에 200을 반환하지 마세요.
  7. 우발적인 크롤러 차단 — 예상치 못한 401, 403, 429 응답을 조사하세요.

목표는 404가 전혀 없는 사이트가 아닙니다. 그것은 비현실적이며 종종 불필요합니다. 목표는 각 URL이 진실하고 일관된 응답을 제공하는 사이트입니다.

<!-- tool-cta:start -->

💡 사용해 보세요: 크롤러가 보는 전체 체인을 보여주는 Redirect Checker로 URL이 실제로 반환하는 상태 코드를 확인하세요.

<!-- tool-cta:end -->

올바른 코드를 선택하는 간단한 규칙

확신이 없다면 사용자에게 보이는 사실과 일치하는 코드를 선택하세요.

  • 페이지가 존재하고 이용 가능해야 함: 200
  • 페이지가 영구적으로 이동함: 301 또는 308
  • 페이지가 임시로 이동함: 302 또는 307
  • 페이지가 더 이상 존재하지 않고 대체 대상이 없음: 404
  • 페이지가 의도적으로 영구 삭제됨: 410
  • 페이지가 일시적으로 이용 불가함: 503
  • 요청이 차단되었거나 비공개임: 401 또는 403

검색 엔진은 일반적인 웹의 혼란을 잘 처리합니다. SEO 문제를 일으키는 것은 규모가 커진 불일치입니다. 영구 이동을 임시로 표시하거나, 삭제된 페이지가 유효한 것처럼 보이게 하거나, 서버 오류를 방치하거나, 마지막 마이그레이션 이후 아무도 테스트하지 않은 리디렉션 로직을 운영하는 경우입니다.

HTTP 상태 코드는 마법 같은 SEO 레버가 아닙니다. 기본적인 웹 의미론입니다. 정직하게 사용하면 대부분의 SEO 이점은 따라옵니다.

자주 묻는 질문

404는 SEO에 나쁜가요?
그 자체로는 아닙니다. 404는 더 이상 존재하지 않고 대체 대상이 없는 페이지에 올바른 응답입니다. 중요한 페이지, sitemap URL, 또는 내부 링크된 URL이 예기치 않게 404를 반환할 때 SEO 문제가 됩니다.
SEO를 위해 301과 302 리디렉션 중 무엇을 사용해야 하나요?
이동이 영구적이면 301 또는 308을 사용하세요. 이동이 임시적이면 302 또는 307을 사용하세요. 검색 엔진은 오래 지속되는 임시 리디렉션을 해석할 수 있지만, 이에 의존하는 것보다 올바른 신호를 보내는 편이 더 명확합니다.
5xx 오류는 순위에 영향을 주나요?
짧게 지속되는 5xx 오류는 보통 재앙이 아닙니다. 지속적인 서버 오류는 크롤링 속도를 줄이고, 색인 생성을 지연시키며, 검색 엔진이 시간이 지나도 페이지에 접근할 수 없으면 페이지가 일시적으로 제거되는 원인이 될 수 있습니다.
soft 404란 무엇인가요?
soft 404는 URL이 200 OK를 반환하지만 콘텐츠가 누락되었거나, 비어 있거나, 쓸모없는 페이지처럼 보이는 경우입니다. 서버는 요청이 성공했다고 말하지만, 검색 엔진은 이를 404처럼 취급할 수 있습니다.
삭제된 페이지를 홈페이지로 리디렉션해야 하나요?
대체로 아닙니다. 삭제된 페이지는 실제로 관련 있는 대체 대상이 있을 때만 리디렉션하세요. 유용한 동등한 대상이 없다면 404 또는 410을 반환하고 사용자에게 도움이 되는 오류 페이지를 제공하세요.

출처 및 추가 읽기

  1. Google Search Central: HTTP status codes and network errors
  2. MDN Web Docs: HTTP response status codes
  3. RFC 9110: HTTP Semantics
  4. Google Search Central: Redirects and Google Search
저자에 대하여
The Wux Webtools Team

마지막 업데이트:

계속 읽기