본문 바로가기
SEO·GEO 용어사전

HTTP 상태 코드 (HTTP Status Code)

마지막 업데이트
선호 출처로 추가

HTTP 상태 코드는 서버가 요청을 처리한 결과를 알리는 세 자리 숫자입니다. 브라우저와 검색로봇은 이 응답으로 요청 성공, 이동, 오류 등을 구분합니다. 화면이 같아 보여도 상태 코드에 따라 검색로봇의 처리가 달라질 수 있습니다.

앞자리로 나뉘는 응답 유형

범위의미SEO에서 자주 보는 코드
2xx요청 성공200 OK
3xx리디렉션 등 요청 완료를 위한 추가 처리301, 302, 304, 307, 308
4xx요청 또는 접근 문제401, 403, 404, 410, 429
5xx서버 처리 문제500, 502, 503

1xx는 요청을 계속 처리하고 있음을 알리는 중간 응답입니다. 일반적인 색인 진단에서는 2xx부터 5xx를 주로 살펴봅니다.

3xx가 모두 다른 URL로 이동하라는 뜻은 아닙니다. 301과 302는 이동할 주소를 알리지만, 304 Not Modified는 이전에 받은 콘텐츠가 바뀌지 않았으므로 저장해 둔 응답을 재사용할 수 있다는 뜻입니다.

SEO에서 자주 보는 코드

200 OK

서버가 요청을 정상 처리했다는 응답입니다. 200은 요청 성공을 뜻하며 색인을 보장하지는 않습니다. Google은 받은 콘텐츠를 색인 처리 단계로 넘긴 뒤, 본문과 색인 설정 등을 평가합니다.

301과 308

URL이 영구적으로 이동했음을 알립니다. Google은 두 코드를 목적지 URL을 대표 URL로 선택하는 강한 신호로 봅니다.

302와 307

URL이 일시적으로 이동했음을 알립니다. 행사 기간에만 다른 페이지로 보내고 이후 원래 주소에서 다시 콘텐츠를 제공할 때 쓸 수 있습니다. 서버 점검으로 요청 자체를 처리할 수 없는 상황은 503 응답으로 알립니다.

404와 410

404는 요청한 리소스를 찾을 수 없다는 뜻이며, 그 상태가 일시적인지 영구적인지까지 알리지는 않습니다. 410은 리소스를 더 이상 제공하지 않으며 그 상태가 영구적일 것으로 예상한다는 뜻입니다. 페이지를 삭제하고 대체할 콘텐츠도 없다면 404나 410으로 응답할 수 있습니다.

5xx

서버가 요청을 처리하지 못한 상태입니다. 500은 서버 내부 오류, 502는 중간 서버가 상위 서버에서 잘못된 응답을 받은 경우, 503은 과부하나 점검 등으로 일시적으로 요청을 처리할 수 없는 경우를 뜻합니다.

Google은 5xx 응답을 받으면 크롤링 속도를 낮춥니다. 오류가 계속되는 URL은 색인에서 제외할 수 있으므로, 서버 로그에서 오류가 시작된 시점과 영향을 받는 URL을 찾아 문제를 해결해야 합니다.

200 응답과 색인의 관계

200으로 응답하는 페이지가 색인되지 않았다면 본문과 색인 설정을 살펴야 합니다.

  • 본문이 비어 있거나 오류 메시지만 있으면 Google이 soft 404로 판단할 수 있습니다.
  • noindex가 있으면 페이지를 정상적으로 가져왔어도 색인 대상에서 제외합니다.
  • 다른 페이지와 내용이 중복되거나 Google이 다른 URL을 대표 URL(canonical)로 선택하면 이 URL은 검색결과에 따로 노출되지 않을 수 있습니다.
  • Google이 콘텐츠를 색인할 가치가 낮다고 판단하면 200 응답이어도 색인하지 않을 수 있습니다.

실제 응답과 이동 경로 확인법

  • 브라우저 개발자 도구의 Network 탭을 연 상태에서 페이지를 새로고침합니다. 문서 요청을 선택해 상태 코드를 읽고, 리디렉션이면 Location 응답 헤더에 적힌 목적지도 확인합니다.
  • 터미널에서는 curl -sS -o /dev/null -w '%{http_code}\n' https://example.com/page로 해당 URL의 GET 응답 코드를 확인할 수 있습니다.
  • 검색로봇이 어떤 응답을 받았는지는 서버 접근 로그에서 요청 URL, 시각, 응답 코드를 대조합니다.
  • Google의 수집 성공 여부와 색인 상태는 Search Console의 URL 검사에서 확인합니다.

curl -I는 본문을 받지 않는 HEAD 요청을 보냅니다. 서버 설정에 따라 GET 요청과 다른 응답이 나올 수 있으므로, 결과가 예상과 다르면 위의 GET 명령이나 브라우저에서 다시 확인합니다. 리디렉션을 점검할 때는 최초 응답뿐 아니라 이동을 거친 최종 URL에서 의도한 콘텐츠와 상태 코드가 나오는지도 확인해야 합니다.

자주 묻는 질문

삭제한 페이지는 모두 홈페이지로 보내야 하나요?

관련 대체 페이지가 있으면 그 주소로 연결하고 없으면 404나 410을 반환합니다. 관련 없는 홈페이지로 보내면 사용자는 찾던 내용을 확인하지 못하고 검색엔진도 페이지의 상태를 잘못 해석할 수 있습니다.

404가 많으면 사이트 전체 SEO가 나빠지나요?

존재하지 않는 URL에 404를 반환하는 것은 정상입니다. 중요한 내부 링크가 깨졌거나 가치 있는 기존 페이지를 실수로 삭제한 경우를 찾아 고치세요.

점검 중에는 어떤 코드를 사용하나요?

서버 점검으로 일시적으로 콘텐츠를 제공할 수 없다면 503 Service Unavailable로 응답합니다. 재시도 시점을 알릴 수 있을 때는 Retry-After 헤더에 대기할 초 단위 시간이나 HTTP 날짜를 지정합니다.

점검 안내 화면만 띄우고 200이나 404를 보내지 않도록 실제 응답을 확인해야 합니다. 복구한 뒤에는 원래 콘텐츠와 정상 상태 코드를 다시 제공해야 하며, 503도 오래 지속되면 Google 색인에서 제외될 수 있습니다.

함께 알아두면 좋은 용어

  • 404 오류: 요청한 페이지를 찾을 수 없다는 응답
  • 301 리디렉션: URL의 영구 이동을 알리는 상태 코드
  • soft 404: 200 응답이지만 내용이 오류 페이지처럼 보이는 상태
  • 5xx: 서버가 요청을 정상 처리하지 못했음을 나타내는 코드 범위

참고 문서