크롤링 예산 최적화
이 가이드에서는 매우 크고 자주 업데이트되는 사이트의 Google 크롤링을 최적화하는 방법을 설명합니다.
사이트에 빠르게 변경되는 페이지가 많지 않거나 페이지가 게시된 당일에 크롤링되는 것 같다면 이 가이드를 참조하지 않아도 됩니다. 특히 Google 검색의 경우 사이트맵을 최신 상태로 유지하고 페이지 색인 생성 보고서를 정기적으로 확인하는 것만으로 충분합니다.
가이드의 대상 독자
이 가이드의 권장사항은 일반적으로 좋은 방법이지만, 주로 다음과 같은 유형의 사이트를 대상으로 하는 고급 가이드입니다.
- 대규모 사이트: 고유한 페이지 수가 1백만 개 이상이며 콘텐츠가 적당한 간격으로 변경됨(1주일에 한 번)
- 중간 규모 이상 사이트: 고유한 페이지 수가 1만 개 이상이며 콘텐츠가 매우 빠르게 변경됨(매일)
- 전체 URL 중 상당 부분이 Search Console에서 발견됨 - 현재 색인이 생성되지 않음으로 분류된 사이트
크롤링 일반 이론
웹 공간은 거의 무한하므로 공개적으로 액세스할 수 있는 모든 URL을 탐색하는 Google의 능력을 넘어섭니다. 따라서 Google이 단일 사이트를 크롤링하는 데 쓸 수 있는 시간과 리소스에는 제한이 있습니다. 이러한 리소스의 할당을 일반적으로 사이트의 크롤링 예산이라고 합니다. 이 경우, Google의 크롤링 인프라는 사이트를 고유한 호스트 이름으로 정의합니다. 예를 들어 https://www.example.com/과 https://code.example.com/는 별도의 사이트로 취급되며 크롤링 예산도 별도로 할당됩니다. 사이트의 크롤링 예산은 크롤링 용량 한도와 크롤링 수요라는 두 가지 기본 요소로 결정됩니다.
크롤링 용량 한도
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 검색의 경우 인기도, 전반적인 사용자 가치, 콘텐츠 고유성, 게재 용량 등이 포함됩니다.