크롤링 에러가 SEO에 끼치는 영향 – HTTP 상태코드, DNS 오류, 네트워크 오류

크롤링 에러가 SEO에 끼치는 영향 – HTTP 상태코드, DNS 오류, 네트워크 오류 크롤링 에러가 SEO에 끼치는 영향 – HTTP 상태코드, DNS 오류, 네트워크 오류

검색엔진의 크롤러들은 크롤링 과정에서 여러 오류 유형이 발생하게 됩니다. 각 오류가 검색 엔진 최적화 (SEO)에 미치는 영향을 살펴보겠습니다. 주요 내용은 HTTP 상태 코드, DNS 오류, 네트워크 오류이며, 각 오류 발생 시 크롤러의 동작과 웹사이트의 대응 방안을 살펴보겠습니다.

크롤링 오류 이해가 중요한 이유? 크롤링 예산 관리 때문!

크롤링 예산(Crawl Budget)은 검색엔진 크롤러가 특정 웹사이트에 할당하는 시간과 자원을 의미합니다.
각 검색엔진은 웹사이트 별로 다른 크롤링 예산을 분배하며, 중요성을 판단해 웹사이트 별로 더 많은 크롤링 예산을 분배하기도, 더 적게 분배하기도 합니다.

크롤링 오류는 직접적으로 크롤링 예산과 밀접한 관계를 갖고 있고 또한 간단하기 때문에 확실하게 개념을 알고 SEO를 이해하는것이 중요합니다.

HTTP 상태 코드 (HTTP Status Codes)

HTTP 응답은 크롤러가 콘텐츠를 처리할 방법을 지시하는 중요한 지침을 담고있습니다. HTTP 상태코드는 크롤러가 서버로부터 받은 응답을 어떻게 해석하거나 처리할 지 알려주는 역할을 하게됩니다. 예를 들어 정상 응답을 확인은 크롤러는 HTML을 렌더링하거나, 이미지나 비디오를 처리해야한다는 것을 확인하기도합니다. 단순히 콘텐츠 자체뿐만 아닌, 그 콘텐츠의 상태, 위치, 처리 방법 등의 다양한 정보를 함께 전달하여 검색 엔진이 해당 페이지를 올바르게 이해하고 처리할 수 있도록 돕습니다.

HTTP 상태 코드는 크게 5가지의 범주로 나누어집니다.

1xx (정보 응답)

서버가 요청을 이해했으며 추가 정보가 제공될 것임을 나타냅니다.

  • 크롤러는 서버가 다른 응답을 제공할 때까지 연결이 열린 상태로 유지될 것으로 예상하고 다음 응답을 기다립니다.
  • 단독으로는 크롤링에 직접적인 의미가 없으며, 후속 응답이 필요합니다.

2xx (성공 응답)

서버가 클라이언트의 요청을 성공적으로 이해하고 완료했음을 나타냅니다.

  • 200 : “OK” 가장 흔하고 안전한 ‘녹색 신호’ 응답입니다. 이 페이지는 색인이 가능하다는 신호를 검색엔진에게 보내는 역할을 합니다.
  • 204 : “No Content” 실제로 내용은 없고 서버가 아무것도 응답하지 않음을 뜻하는 응답 코드입니다. 크롤러는 실제 이러한 페이지들을 유용하지 않다고 판단하여 색인하지 않습니다. 실제 페이지가 비어있거나 쓸모없는 콘텐츠로 간주하여, 검색 엔진은 해당 코드 응답하는 페이지들을 색인하지 않습니다.

3xx (리디렉션)

요청한 콘텐츠가 다른 위치에 있어 추가 조치가 필요하다는 것을 서버가 클라이언트에게 알릴 때 사용하는 코드입니다.

  • 301 / 308 : “영구 리디렉션” 콘텐츠가 영구적으로 다른 URL로 이동했음을 나타냅니다.
  • 302 / 307 : “임시 리디렉션” 콘텐츠가 일시적으로 다른 URL로 이동했음을 나타냅니다.
  • 304 : “Not Modified” 캐시 제어에 사용됩니다. Googlebot이 마지막으로 서버에 접근한 이후 콘텐츠가 업데이트되지 않았음을 의미합니다. 이 경우 서버는 새로운 콘텐츠를 제공하지 않으며, Googlebot은 캐시된 콘텐츠를 사용합니다.

크롤링 관점에서 영구 및 임시 리디렉션은 동일하게 처리되지만, 색인 관점에서는 다르게 처리된다는 점을 유의해야합니다. 콘텐츠의 유지 관리와 목적에 따라서 리디렉션이 선택되어야 한다는 것을 꼭 염두해야합니다. 어떻게 처리하느냐에 따라 기존 링크가 가진 권위를 옮길 수도 유지할 수도 있기 때문입니다.

또한 크롤링 예산의 관점에서는 단일 콘텐츠를 크롤링하기 위해서 크롤러가 더 많은 요청을 보내고 시간을 소모할 수 있기 때문에, 크롤링 예산의 소모가 증가할 수 있습니다. 무분별하게 리디렉션을 늘리다보면, 다른 콘텐츠들이 크롤링될 수 있는 예산을 의미없이 소진시킬 수 있어 웹사이트 전체적인 관리 측면에서 그리고 대형 웹사이트의 경우에는 효율적인 관리 체계를 정리하는 것이 중요합니다.

4xx (클라이언트 오류)

서버가 클라이언트의 요청을 이해하지 못했거나 처리할 수 없음을 나타냅니다. 해당 URL에는 아무것도 없다는 의미를 나타냅니다.

  • 404 Not Found / 410 Gone: 요청된 URL에 콘텐츠가 없음을 나타냅니다. 일반적으로 검색 엔진에 색인되지 않습니다.
  • 403 Forbidden: 크롤러가 해당 URL의 콘텐츠에 접근할 권한이 없음을 나타냅니다.
  • 429 Too Many Requests: 크롤러의 요청이 너무 많거나 빠르다는 것을 서버가 알려줍니다. 이 경우 Googlebot은 크롤링 속도를 늦추게 됩니다. 이는 500 오류와 유사한 효과를 가진다는 것을 서치 센트럴 딥다이브 세션에서 언급해주었습니다. 사이트가 너무 많은 크롤링 요청으로 인해 과부하되는 경우 이 코드를 반환할 수 있도록 하는 것이 웹사이트 관리 측면에서 고려할 수 있는 옵션이 될 수 있습니다.
  • Soft 404 : 실제 상태 코드는 200이지만 페이지 콘텐츠는 오류 메시지인 경우입니다. Google은 이를 유용한 정보가 없는 페이지로 간주하여 색인하지 않기로 결정합니다. 간혹 페이지 콘텐츠가 존재하지만 빈약한 (thin-content) 콘텐츠로 인하여 크롤러가 가치가 없는 콘텐츠로 인식하여 색인을 하지 않도록 해당 오류 메시지를 나타내기도 합니다. 콘텐츠가 충분히 존재하는 경우에도 해당 오류 메시지를 보이는 경우에는 JavaScript를 크롤러가 확인할 수 있도록 콘텐츠가 렌더링하는 지 확인할 필요가 있습니다.

이번 구글 서치 센트럴 딥다이브에서는 특히 크롤링 예산 (crawling budget) 에 관한 내용을 짧게 짧게 다루었는데요, HTTP 4xx 응답은 크롤링 버짓을 소진하지 않는다는 것을 추가적으로 계속 확인해주었습니다.

SEO 실무자들은 4xx 코드에 대한 막연한 두려움과 페이지 권위 상실에 대한 두려움 때문에, 3xx 처리를 하거나하여 리디렉션을 올바르지 않게 사용하여 크롤링 예산을 소진하는 사례를 흔하게 볼 수 있습니다. 트래픽 이전을 위한 전략적인 선택을 하기 위해서는 기존 페이지로 유입되는 트래픽을 고려하여 4xx / 3xx 페이지 응답을 선택하는 것이 중요합니다.

5xx (서버 오류)

서버가 유효한 요청을 수행하지 못했음을 나타냅니다. 이는 서버 측에 문제가 있음을 의미합니다.

  • 해당 오류 메시지는 크롤러가 접근할 수 없고, 페이지가 색인될 수 없으며 크롤러는 크롤링 속도를 늦추게 됩니다.
  • 크롤러는 서버가 다운되었음을 인지하고 크롤링 속도를 늦추고 더 이상 크롤링 요청을 보내지 않습니다.
  • 503 Service Unavailable은 특히 크롤링 속도를 늦추도록 Google이 선호하는 방법임을 이번 세션에서 언급했습니다. 이는 Google뿐만 아니라 다른 검색 엔진에도 사이트가 일시적으로 다운되거나 오프라인 상태임을 알리는 데 유용합니다.

DNS 오류 및 네트워크 오류

HTTP 상태 코드 외에도, DNS 오류와 네트워크 오류는 크롤링 및 색인에 부정적인 영향을 미칩니다.

DNS 오류 (DNS Errors)

  • Googlebot (구글 크롤러)은 DNS 서버를 사용하여 사이트의 위치를 찾습니다.
  • DNS 서버가 응답하지 않거나 요청에 대한 블록을 제공하면 Google은 사이트가 실제로 어디에 있는지 찾을 수 없습니다.
  • DNS 오류는 사이트가 Google 검색에서 제외될 수 있으며 크롤링 속도를 늦출 수 있습니다.
  • Search Console과 같은 도구를 사용하여 해당 오류가 발생하는지 확인할 수 있습니다.

네트워크 오류 (Network Errors)

  • 크롤러가 사이트의 서버에 도달하거나 연결하는 데 오류가 발생한 경우입니다.
  • 연결 차단 또는 네트워크가 특정 요청만 통과시키도록 허용하는 경우 문제로 발생할 수 있습니다.
  • 네트워크 타임아웃 (Network Timeouts): 네트워크 문제의 하위 집합으로, 크롤러가 사이트에 연결하는 시도가 시간 초과된 경우입니다. 크롤링 속도를 늦출 수 있습니다.
  • 네트워크 오류 또한 Search Console에서 확인할 수 있으며, 발생 시 반드시 조사해야 합니다. 이는 사이트가 Google 검색에서 제외될 수 있고 크롤링 속도를 늦출 수 있기 때문입니다.

오류 식별 및 해결 방안

DNS오류 혹은 네트워크 오류는 종종 인프라 또는 방화벽 문제로 인해 발생하기도 합니다. 크롤러는 웹사이트 소유자 측에서 발생한 문제에 대해 직접적인 지원을 제공하기 어렵기때문에 서버 측 또는 서비스 제공업체 측에 어떤 오류가 있는지 알 수 없습니다.

권장되는 조치:

  • CDN 제공업체(Fastly, Cloudflare, Akamai 등)에 문의: 요청-응답 문제에 대한 로그를 가지고 있을 수 있습니다.
  • 호스팅 제공업체에 문의: 인프라 관련 문제를 해결하는 데 도움을 줄 수 있습니다.
  • DNS 제공업체에 문의: 크롤링에 비정상적인 동작이 감지될 경우 DNS 문제를 확인할 수 있습니다.
  • Google Search Console 활용: 크롤링 상황, 행동 및 사례를 이해하는 데 유용합니다.

크롤링 오류는 SEO에 직접적인 영향을 미치며, 특히 크롤링 예산과 관련이 있습니다. 이러한 오류를 이해하고 적절히 대응하는 것은 SEO 의 시작이며, 웹사이트의 검색 가시성을 유지하고 개선하는 데 필수적인 과정이자 기초입니다.

*참고: 구글의 HTTP 상태코드 및 DNS 네트워크 에러 관련 문서