크롤링 예산 최적화
이 가이드에서는 매우 크고 자주 업데이트되는 사이트의 Google 크롤링을 최적화하는 방법을 설명합니다.
사이트에 빠르게 변경되는 페이지가 많지 않거나 페이지가 게시된 당일에 크롤링되는 것 같다면 이 가이드를 참조하지 않아도 됩니다. 특히 Google 검색의 경우 사이트맵을 최신 상태로 유지하고 페이지 색인 생성 보고서를 정기적으로 확인하는 것만으로 충분합니다.
가이드의 대상 독자
이 가이드의 권장사항은 일반적으로 좋은 방법이지만, 주로 다음과 같은 유형의 사이트를 대상으로 하는 고급 가이드입니다.
- 대규모 사이트: 고유한 페이지 수가 1백만 개 이상이며 콘텐츠가 적당한 간격으로 변경됨(1주일에 한 번)
- 중간 규모 이상 사이트: 고유한 페이지 수가 1만 개 이상이며 콘텐츠가 매우 빠르게 변경됨(매일)
- 전체 URL 중 상당 부분이 Search Console에서 발견됨 - 현재 색인이 생성되지 않음으로 분류된 사이트
크롤링 일반 이론
웹 공간은 거의 무한하므로 공개적으로 액세스할 수 있는 모든 URL을 탐색하는 Google의 능력을 넘어섭니다. 따라서 Google이 단일 사이트를 크롤링하는 데 쓸 수 있는 시간과 리소스에는 제한이 있습니다. 이러한 리소스의 할당을 일반적으로 사이트의 크롤링 예산이라고 합니다. 이 경우, Google의 크롤링 인프라는 사이트를 고유한 호스트 이름으로 정의합니다. 예를 들어 https://www.example.com/과 https://code.example.com/는 별도의 사이트로 취급되며 크롤링 예산도 별도로 할당됩니다. 사이트의 크롤링 예산은 크롤링 용량 한도와 크롤링 수요라는 두 가지 기본 요소로 결정됩니다.
크롤링 용량 한도
Google은 서버에 과부하를 주지 않으면서 사이트를 크롤링하려고 합니다. 이를 방지하기 위해 Google 크롤러는 크롤링 용량 한도(호스트 부하)를 계산합니다. 이렇게 하면 병렬 연결 수와 연결 기간을 모두 고려하여 서버가 Google을 위해 연결을 열어 두는 총 시간이 제한됩니다. 이렇게 하면 Google에서 서버에 과부하를 주지 않으면서 중요한 모든 콘텐츠를 포함할 수 있습니다.
모든 사이트는 동일한 기본적인 보수적 크롤링 용량 한도로 시작합니다. 더 많은 크롤링이 필요하고 사이트가 정상 상태를 유지하는 경우 Google 시스템에서 시간이 지남에 따라 이 한도를 자동으로 조정합니다.
크롤링 용량 한도는 다음 몇 가지 요인에 따라 올라가거나 내려갈 수 있습니다.
- 크롤링 상태: 사이트가 일관되게 응답하고 응답 시간(지연 시간 및 첫 바이트까지의 시간 포함)이 안정적으로 유지되거나 개선되면 한도가 올라가므로 크롤링에 사용할 수 있는 연결이 많아집니다. 사이트의 속도가 느려지거나(지연 시간 증가 또는 응답 시간 증가) 서버 오류(
5xx HTTP상태 코드) 또는 속도 제한 신호(예:HTTP 429)로 응답하면 한도가 내려가고 Google이 크롤링을 줄입니다. - Google의 크롤링 한도: Google의 리소스는 광범위하지만 유한하므로 웹 전반에서 리소스 할당의 우선순위를 지정해야 합니다.
크롤링 수요
각 크롤러마다 고유한 요소에 따라 웹 크롤링에 관한 자체 '수요'가 있습니다. 예를 들어 AdsBot은 일반적으로 사이트에서 동적 광고 타겟을 실행할 때 수요가 더 높고, Google 쇼핑은 판매자 피드에 있는 제품에 대한 수요가 더 높습니다.
Googlebot의 경우 다른 사이트와 비교하여 사이트의 크기, 업데이트 빈도, 페이지 품질, 관련성에 따라 수요가 달라집니다. 영향을 줄 수 있는 주요 요소는 다음과 같습니다.
- 인식된 인벤토리: 사용자의 안내가 없으면 Google은 사이트에서 인식하는 URL의 전부 또는 대부분을 크롤링하려고 합니다. 이러한 URL 중 다수가 중복되거나 다른 이유(삭제됨, 중요하지 않음 등)로 크롤링되지 않아야 한다면 사이트에서 Google 크롤링 시간을 많이 낭비하게 됩니다. 이 문제는 가장 분명하게 제어할 수 있는 요소입니다.
- 인기도: 인터넷에서 인기가 높은 URL은 Google 시스템에서 최신으로 유지하기 위해 더 자주 크롤링되는 경향이 있습니다.
- 비활성: Google 시스템에서는 변경사항을 충분히 포착하도록 자주 문서를 다시 크롤링하려고 합니다.
또한 사이트 이동과 같은 사이트 전체 이벤트는 새 URL에서 콘텐츠를 재처리하기 위해 크롤링 수요의 증가를 유발할 수 있습니다.
요약
Google은 크롤링 용량과 크롤링 수요를 함께 고려하여 사이트의 크롤링 예산을 Google이 크롤링할 수 있고 크롤링하려는 URL 집합으로 정의합니다. 크롤링 용량 한도에 도달하지 않더라도 크롤링 수요가 낮으면 Google의 사이트 크롤링이 줄어듭니다.
권장사항
크롤링 효율성을 극대화하려면 다음 권장사항을 따르세요.
-
URL 인벤토리 관리: 적절한 도구를 사용하여 크롤링할 페이지와 크롤링하지 않을 페이지를 Google에 알립니다. Google에서 크롤링해서는 안 되는 URL을 크롤링하는 데 너무 많은 시간을 소비하면 Google 크롤러가 사이트의 나머지 부분을 탐색하지 않거나 크롤링 예산을 늘리지 않을 수 있습니다.
- 중복 콘텐츠 통합하기. 중복 콘텐츠를 제거하여 고유한 URL이 아닌 고유한 콘텐츠에 크롤링을 집중합니다.
- robots.txt를 사용하여 URL 크롤링 차단. 일부 페이지는 사용자에게 중요할 수 있지만 Google 표시 경로에 표시되거나 Google 시스템에서 다시 처리되지 않도록 할 수 있습니다. 예를 들어 링크된 페이지의 정보를 복제하는 무한 스크롤 페이지 또는 동일한 페이지의 다르게 정렬된 버전이 있습니다. 첫 번째 항목에서 설명한 대로 페이지를 통합할 수 없는 경우 robots.txt를 사용하여 중요하지 않은 이러한 페이지를 차단하세요. robots.txt로 URL을 차단하면 Google이 해당 URL을 크롤링하지 못하게 되며, URL이 다른 Google 시스템에 의해 처리(예: Google 검색에서 색인이 생성됨)될 가능성이 크게 줄어듭니다.
-
영구 삭제된 페이지의
404또는410상태 코드를 반환합니다. Google은 알고 있는 URL을 기억하지만404상태 코드는 그 URL을 다시 크롤링하지 말라는 강력한 신호입니다. 그러나 차단된 URL은 크롤링 대기열에 훨씬 더 오래 남아 있으며 차단이 해제되면 다시 크롤링됩니다. -
soft 404오류 제거.soft 404페이지는 계속 크롤링되며 예산을 낭비합니다. 페이지 색인 생성 보고서에서soft 404오류를 확인합니다. -
사이트맵을 최신으로 유지. Google에서는 정기적으로 사이트맵을 읽습니다. 따라서 Google에서 크롤링하기를 바라는 모든 콘텐츠를 포함해야 합니다. 사이트에 업데이트된 콘텐츠가 있다면
<lastmod>태그를 포함하는 것이 좋습니다. - 긴 리디렉션 체인 사용하지 않기. 크롤링에 부정적인 영향을 미칩니다.
-
로드하기 효율적인 페이지 만들기.
Google에서 페이지를 더 빠르게 로드하고 렌더링할 수 있으면 사이트에서 더 많은 콘텐츠를 읽을 수 있습니다.
- 로드 속도 개선: 서버 응답 시간과 리소스를 최적화하여 페이지 로드 속도를 높입니다.
-
HTTP 캐싱 사용:
304 (Not Modified)HTTP 상태 코드를 지원합니다. Google에서 마지막으로 크롤링한 이후 페이지가 변경되지 않은 경우304코드를 반환하면 Google에서 캐시된 버전을 재사용하여 서버 대역폭과 리소스를 절약할 수 있습니다.
- 크롤링 예산 문제 디버그 크롤링 중에 사이트에 가용성 문제가 있는지 확인하고 크롤링 효율을 높일 수 있는 방법을 찾아보세요.
크롤링 예산을 늘리려면 어떻게 해야 하나요?
크롤링 예산을 늘리는 방법에는 다음과 같이 두 가지가 있습니다.
- 서버 리소스 추가: 사용자의 서버 용량으로 인해 사이트를 크롤링할 수 없는 경우(예: URL 검사 도구에 호스트 로드 초과가 표시됨) 비즈니스에 적합하다면 서버 리소스를 추가합니다.
- 타겟팅하는 Google 제품에 맞게 콘텐츠 품질 최적화: Google은 특정 Google 제품과 관련된 요소를 고려하여 각 사이트에 할당된 크롤링 리소스를 결정합니다. 예를 들어 Google 검색의 경우 인기도, 전반적인 사용자 가치, 콘텐츠 고유성, 게재 용량 등이 포함됩니다.