HTTP 상태 코드, 네트워크 오류 및 DNS 오류가 Google 검색에 미치는 영향

이 페이지에서는 다양한 HTTP 상태 코드와 네트워크 오류, DNS 오류가 Google 검색에 어떠한 영향을 미치는지 설명합니다. 그리고 Googlebot이 웹에서 발견한 상위 20개의 상태 코드와 가장 눈에 띈 네트워크 오류 및 DNS 오류에 관해서도 다룹니다. 418 (I'm a teapot) 같은 익숙하지 않은 상태 코드에 관해서는 다루지 않습니다. 이 페이지에 언급된 모든 문제는 Search Console의 크롤링 통계 보고서에 나와 있는 관련 오류 또는 경고를 생성합니다.

HTTP 상태 코드

HTTP 상태 코드는 사이트를 호스팅하는 서버가 클라이언트(예: 브라우저 또는 크롤러)의 요청에 응답할 때 생성됩니다. 모든 HTTP 상태 코드는 의미가 각기 다르지만 요청 결과는 주로 동일합니다. 예를 들어 리디렉션을 나타내는 상태 코드가 여러 개 있지만 결과는 동일합니다.

Search Console은 4xx–5xx 범위의 상태 코드와 실패한 리디렉션(3xx)에 관한 오류 메시지를 생성합니다. 서버가 2xx 상태 코드로 응답하면 응답에서 수신된 콘텐츠는 색인 생성 시 고려될 수 있습니다.

HTTP 상태 코드
2xx (success)

Google은 색인 생성 시 콘텐츠를 고려합니다. 콘텐츠에 빈 페이지나 오류 메시지 같은 오류가 제시되면 Search Console에 soft 404 오류가 표시됩니다.

200 (success)

Googlebot이 콘텐츠를 색인 생성 파이프라인에 전달합니다. 색인 생성 시스템이 콘텐츠의 색인을 생성할 수도 있지만 보장되지는 않습니다.

201 (created)
202 (accepted)

Googlebot이 제한된 시간 동안 콘텐츠를 기다린 후, 수신한 모든 콘텐츠를 색인 생성 파이프라인에 전달합니다. 시간 초과는 사용자 에이전트에 따라 다릅니다. 예를 들어 Googlebot 스마트폰은 Googlebot 이미지와 시간 초과 기준이 다를 수 있습니다.

204 (no content)

Googlebot이 수신한 콘텐츠가 없다고 색인 생성 파이프라인에 알립니다. Search Console은 사이트의 색인 생성 범위 보고서에 soft 404 오류를 표시할 수 있습니다.

3xx (redirects)

Googlebot은 최대 10개의 리디렉션 홉을 따릅니다. 크롤러가 10개 이하의 홉에 콘텐츠를 수신하지 않으면 Search Console은 사이트의 색인 생성 범위 보고서에 리디렉션 오류를 표시합니다. Googlebot이 따르는 홉 개수는 사용자 에이전트에 따라 다릅니다. 예를 들어 Googlebot 스마트폰에서의 홉 개수는 Googlebot 이미지와 다를 수 있습니다.

301 (moved permanently)

Googlebot이 리디렉션을 따르고, 색인 생성 파이프라인은 리디렉션 대상이 표준이어야 한다는 강력한 신호로 리디렉션을 사용합니다.

302 (found)

Googlebot이 리디렉션을 따르고, 색인 생성 파이프라인은 리디렉션 대상이 표준이어야 한다는 약한 신호로 리디렉션을 사용합니다.

303 (see other)
304 (not modified)

Googlebot이 콘텐츠가 마지막으로 크롤링되었을 때와 동일하다고 색인 생성 파이프라인에 알립니다. 색인 생성 파이프라인은 URL의 신호를 다시 계산할 수 있지만 그 외에 상태 코드는 색인 생성에는 아무런 영향을 미치지 않습니다.

307 (temporary redirect) 302와 같습니다.
308 (moved permanently) 301과 같습니다.
4xx (client errors)

Google의 색인 생성 파이프라인은 4xx 상태 코드를 반환하는 URL을 색인 생성 대상으로 고려하지 않습니다. 이미 색인 생성된 URL 중 4xx 상태 코드를 반환하는 URL은 색인에서 삭제됩니다.

400 (bad request)

429를 제외한 모든 4xx 오류는 동일하게 처리됩니다. Googlebot이 콘텐츠가 존재하지 않는다고 색인 생성 파이프라인에 알립니다.

색인 생성 파이프라인은 이전에 색인 생성된 URL을 색인에서 삭제합니다. 새로 발견된 404 페이지는 처리되지 않습니다. 크롤링 빈도가 서서히 감소합니다.

401 (unauthorized)
403 (forbidden)
404 (not found)
410 (gone)
411 (length required)
429 (too many requests)

Googlebot은 429 상태 코드를 서버가 과부하 상태라는 신호로 취급하기 때문에 서버 오류로 간주합니다.

5xx (server errors)

5xx429 서버 오류는 Google 크롤러에 크롤링 속도를 일시적으로 낮추라고 요청합니다. 이미 색인 생성된 URL은 색인에 보존되지만 결국에는 삭제됩니다.

500 (internal server error)

Googlebot이 사이트의 크롤링 속도를 낮춥니다. 크롤링 속도 감소는 서버 오류를 반환하는 개별 URL의 수에 비례합니다. Google의 색인 생성 파이프라인은 서버 오류를 지속적으로 반환하는 색인에서 URL을 삭제합니다.

502 (bad gateway)
503 (service unavailable)

네트워크 오류 및 DNS 오류

네트워크 오류와 DNS 오류는 Google 검색에 URL이 존재하는 데 즉각적으로 부정적인 영향을 미칩니다. Googlebot은 네트워크 시간 초과, 연결 재설정, DNS 오류를 5xx 서버 오류와 유사하게 처리합니다. 네트워크 오류는 서버가 실행 중인 로드를 처리하지 못할 수 있다는 신호이기 때문에 크롤링 속도가 즉시 저하되기 시작합니다. 이미 색인 생성된 URL 중 연결할 수 없는 URL은 며칠 내에 Google 색인에서 삭제됩니다. Search Console은 각각의 오류와 관련해 오류 메시지를 생성할 수 있습니다.

네트워크 오류 디버그

이러한 오류는 Google에서 URL 크롤링을 시작하기 전이나 크롤링하는 중에 발생합니다. 서버가 응답하기 전에 오류가 발생할 수 있고 이때 문제의 의미를 나타내는 상태 코드가 없기 때문에 오류를 진단하기가 더 어려울 수 있습니다. 시간 초과 및 연결 재설정 오류를 디버그하려면 다음과 같이 합니다.

  • 방화벽 설정 및 로그를 확인합니다. 설정된 차단 규칙이 지나치게 광범위할 수 있습니다. Googlebot IP 주소가 방화벽 규칙에 의해 차단되지 않는지 확인합니다.
  • 네트워크 트래픽을 확인합니다. tcpdumpWireshark 같은 도구를 사용해 TCP 패킷을 캡처, 분석하고 특정 네트워크 구성요소나 서버 모듈을 가리키는 이상 징후를 찾습니다.
  • 의심스러운 항목을 찾지 못하면 호스팅 업체에 문의합니다.

네트워크 트래픽을 처리하는 서버 구성요소에 오류가 있을 수 있습니다. 예를 들어 과부하된 네트워크 인터페이스가 시간 초과(연결을 설정할 수 없음) 및 연결 재설정(포트가 실수로 닫혀서 RST 패킷이 전송됨)을 초래한 패킷을 삭제할 수 있습니다.

DNS 오류 디버그

DNS 오류는 주로 잘못된 구성으로 인해 발생하지만, Googlebot DNS 쿼리를 차단하는 방화벽 규칙에 의해 발생할 수도 있습니다. DNS 오류를 디버그하려면 다음과 같이 합니다.

  • 방화벽 규칙을 검사합니다. 방화벽 규칙에 의해 차단된 Google IP가 없고 UDPTCP 요청이 모두 허용되는지 확인합니다.
  • DNS 레코드를 확인합니다. A 레코드와 CNAME 레코드가 각각 올바른 IP 주소와 호스트 이름을 가리키는지 다시 확인합니다. 예:
    dig +nocmd example.com a +noall +answer
    dig +nocmd www.example.com cname +noall +answer
  • 모든 네임서버가 사이트의 올바른 IP 주소를 가리키는지 확인합니다. 예:
    dig +nocmd example.com ns +noall +answer
    example.com.    86400  IN  NS  a.iana-servers.net.
    example.com.    86400  IN  NS  b.iana-servers.net.
    dig +nocmd @a.iana-servers.net example.com +noall +answer
    example.com.    86400  IN  A  93.184.216.34
    dig +nocmd @b.iana-servers.net example.com +noall +answer
    ...
  • 최근 72시간 이내에 DNS 구성을 변경한 경우 변경사항이 전역 DNS 네트워크에 전파될 때까지 기다려야 할 수도 있습니다.
  • 자체 DNS 서버를 실행 중인 경우 서버가 정상 상태로 유지되고 과부하되지 않도록 합니다.