2024년 12월 3일 화요일
웹페이지가 Google 검색 결과에 표시되려면 먼저 Google 검색에서 약간의 작업이 필요하다고 들어본 적이 있으실 겁니다. 그중 한 단계가 크롤링입니다. Google 검색 크롤링은 Google 서버에서 실행되는 프로그램인 Googlebot이 수행합니다. Googlebot은 URL을 검색하고 네트워크 오류, 리디렉션 및 웹에서 작업하는 동안 발생할 수 있는 기타 사소한 문제를 처리합니다. 하지만 자주 언급되지 않는 몇 가지 세부정보가 있습니다. 이번 달에는 사이트 크롤링 방식에 큰 영향을 미칠 수 있는 이러한 세부정보 몇 가지를 매주 살펴보겠습니다.
복습: 크롤링이란 무엇인가요?
크롤링은 새 웹페이지를 발견하고 업데이트된 웹페이지를 다시 방문하여 다운로드하는 프로세스입니다. 간단히 말해 Googlebot은 URL을 가져와 이를 호스팅하는 서버에 HTTP 요청을 한 다음 해당 서버의 응답을 처리하여 리디렉션, 오류 처리, 페이지 콘텐츠를 Google의 색인 생성 시스템으로 전달하는 등의 작업을 수행합니다.
하지만 최신 웹페이지는 순수한 HTML만 있는 것이 아닌데 페이지를 구성하는 다른 리소스는 어떻게 될까요? 이러한 리소스를 크롤링하면 '크롤링 예산'에 어떤 영향을 미칠까요? 리소스를 Google 측에서 캐시할 수 있나요? 이전에 크롤링되지 않은 URL과 이미 색인이 생성된 URL에는 차이가 있을까요? 이 게시물을 통해 이러한 질문에 답변해 드리겠습니다.
Googlebot 및 페이지 리소스 크롤링
최신 웹사이트는 HTML 외에도 JavaScript, CSS 등 다양한 기술을 조합하여 사용자에게 생생한 환경과 유용한 기능을 제공합니다. 브라우저로 이러한 페이지에 액세스하면 브라우저는 먼저 사용자를 위해 페이지 빌드를 시작하는 데 필요한 데이터(페이지의 HTML)를 호스팅하는 상위 URL을 다운로드합니다. 이 초기 데이터에는 JavaScript 및 CSS와 같은 리소스에 대한 참조뿐만 아니라 브라우저가 최종 페이지를 구성하기 위해 다시 다운로드하여 사용자에게 표시되는 이미지와 동영상도 포함될 수 있습니다.
Google도 정확히 동일한 작업을 실행하지만 약간의 차이가 있습니다.
- Googlebot은 상위 URL(페이지의 HTML)에서 초기 데이터를 다운로드합니다.
- Googlebot은 가져온 데이터를 웹 렌더링 서비스(WRS)에 전달합니다.
- WRS는 Googlebot을 사용하여 원본 데이터에 참조된 리소스를 다운로드합니다.
- WRS는 사용자의 브라우저처럼 다운로드한 모든 리소스를 사용하여 페이지를 구성합니다.
브라우저에 비해 페이지 렌더링에 필요한 리소스를 호스팅하는 서버의 감지된 부하와 같은 스케줄링 제약 조건으로 인해 각 단계 사이의 시간이 훨씬 더 길어질 수 있습니다. 이때 크롤링 예산을 고려해야 합니다.
페이지를 렌더링하는 데 필요한 리소스를 크롤링하면 해당 리소스를 호스팅하는 호스트 이름의 크롤링 예산이 줄어듭니다. 이를 개선하기 위해 WRS는 렌더링하는 페이지에서 참조되는 모든 리소스(JavaScript 및 CSS)를 캐시하려고 시도합니다. WRS 캐시의 TTL(수명)은 HTTP 캐싱 지시어의 영향을 받지 않습니다. 대신 WRS는 최대 30일 동안 모든 항목을 캐시하여 다른 크롤링 작업에 사용할 사이트의 크롤링 예산을 보존하는 데 도움이 됩니다.
사이트 소유자의 입장에서 크롤링하는 방법과 리소스를 관리하는 것은 사이트의 크롤링 예산에 영향을 미칠 수 있는 문제이므로 다음을 권장합니다:
- 사용자에게 우수한 환경을 제공할 수 있도록 가능한 한 적은 리소스를 사용합니다. 페이지 렌더링에 필요한 리소스가 적을수록 렌더링 중에 크롤링 예산이 적게 소요됩니다.
- 캐시 무효화 매개변수를 신중히 사용하세요. 리소스의 URL이 변경되면 콘텐츠가 변경되지 않았더라도 Google에서 리소스를 다시 크롤링해야 할 수 있습니다. 당연히 크롤링 예산도 소모됩니다.
- CDN을 사용하거나 다른 하위 도메인에 리소스를 호스팅하는 등 기본 사이트와 다른 호스트 이름으로 리소스를 호스팅합니다. 이렇게 하면 크롤링 예산 문제가 리소스를 제공하는 호스트로 이전됩니다.
이 모든 사항은 미디어 리소스에도 적용됩니다. Googlebot(구체적으로는 각각 Googlebot-Image
및 Googlebot-Video
)이 미디어 리소스를 가져오면 사이트의 크롤링 예산이 소모됩니다.
목록에 robots.txt도 추가하고 싶을 수 있으니 렌더링 시 리소스 크롤링을 허용하지 않으면 일반적으로 문제가 발생합니다. WRS가 렌더링에 중요한 리소스를 가져올 수 없는 경우 Google 검색에서 페이지의 콘텐츠를 추출하고 페이지가 검색 순위에 오르는 데 문제가 발생할 수 있습니다.
Googlebot 크롤링이란 무엇인가요?
Google에서 크롤링하는 리소스를 분석하는 가장 유용한 소스는 브라우저와 크롤러에서 모두 요청한 모든 URL 항목이 포함된 사이트의 원시 액세스 로그입니다. Google은 액세스 로그에서 Google 크롤러를 식별할 수 있도록 개발자 문서에 IP 범위를 게시합니다.
두 번째로 유용한 리소스는 크롤러별로 각 리소스 유형을 분류하는 Search Console 크롤링 통계 보고서입니다.
마지막으로 크롤링과 렌더링에 관심이 있고 다른 사용자의 생각도 궁금하다면 검색 센터 커뮤니티를 방문하세요. LinkedIn에서도 확인할 수 있습니다.
업데이트
- 2024년 12월 6일 업데이트: 다른 출처의 리소스를 게재할 때 성능에 미치는 영향이 확인되었습니다.