로그 파일 분석

원시 서버 액세스 로그로 Googlebot·Bingbot·AI 크롤러의 실제 요청을 확인하고 봇 검증, 크롤링 낭비·고아 페이지를 찾는 방법을 설명합니다.

최초 게시: 2026년 6월 22일 · 최근 업데이트: 2026년 8월 22일 · Advanced
언어
이 페이지의 근거 신호 1개

로그 파일 분석은 서버가 받은 모든 요청의 비표본 원장인 원시 액세스 로그를 읽어 Googlebot, Bingbot, AI 크롤러가 어떤 URL을 얼마나 자주 어떤 상태 코드로 가져갔는지 확인하는 작업입니다. 사용자 에이전트는 위조되므로 역방향 + 정방향 DNS 또는 Google 공개 IP 범위로 먼저 실제 봇을 검증해야 합니다. 이후 크롤링 낭비, 최다·최소 크롤링 URL, 빈도별 상태 코드, 고아 페이지, 모바일·데스크톱 비율을 확인합니다. 로그는 GSC Crawl Stats를 보완하며 대체하지 않습니다. 주로 대규모 사이트·전자상거래·마이그레이션에 필요한 도구입니다.

요약 — 로그는 모든 요청·봇·상태 코드를 담은 비표본 크롤링 원장입니다. 반드시 먼저 역방향 + 정방향 DNS 또는 Google 공개 IP 범위 JSON으로 Googlebot/Bingbot을 검증하고 검증된 집합만 계산해야 합니다. 사용자 에이전트는 끊임없이 위조됩니다. 이후 가장 많이·적게 크롤링된 URL과 섹션, 시간별 빈도, 빈도 우선 상태 코드, 매개변수·패싯·내부 검색·무한 페이지 같은 크롤링 낭비, 사이트 크롤과 대조한 고아·미크롤링 페이지, 모바일·데스크톱 Googlebot 비율을 읽습니다. Bing은 공식 IP 범위를 공개하지 않아 *.search.msn.com DNS가 검증 방식입니다. 로그는 GSC Crawl Stats를 보완하지 대체하지 않습니다. 2026년에는 AI 봇도 매우 큰 비중을 차지합니다.

Evidence for this claim Web-server access logs record HTTP requests and commonly include request, response-status, user-agent, and timing fields depending on configuration. Scope: Apache HTTP Server access-log behavior; other servers vary by configuration. Confidence: high · Verified: Apache HTTP Server: Log Files Evidence for this claim User-agent text alone does not authenticate Googlebot; Google recommends DNS verification or matching published IP ranges. Scope: Google crawler verification, applicable when classifying log traffic. Confidence: high · Verified: Google Search Central: Verify Googlebot

로그가 진실한 근거인 이유

검색엔진 크롤링을 ‘보는’ 세 방식은 동등하지 않습니다.

  • Screaming Frog SEO Spider나 Ahrefs Site Audit 같은 크롤 도구는 크롤링을 시뮬레이션합니다. 봇이 찾을 수 있는 것을 보여 줄 뿐 Google이 실제 가져간 것은 아닙니다.
  • GSC Crawl Stats는 실제 상황을 요약하지만 표본·집계·상한이 있습니다(약 1000개 행, 약 90일, URL별 내보내기 없음).
  • 서버 로그는 정확한 URL·타임스탬프·상태 코드와 함께 모든 봇의 모든 요청을 기록합니다.

검토한 Ahrefs 로그 파일 안내서는 서버 로그가 “the most trustworthy source of information to understand the URLs that search engines have crawled.” (번역) 「검색엔진이 크롤링한 URL을 이해하는 데 가장 신뢰할 수 있는 정보원」이라고 설명합니다. 이 기법이 존재하는 이유입니다. Googlebot이 할 수도 있는 일이나 반올림된 요약이 아니라 실제로 한 일을 알려면 로그를 봅니다.

일반적인 로그 줄에는 IP 주소, 사용자 에이전트, URL 경로, 타임스탬프, 요청 메서드(GET/POST), HTTP 상태 코드가 있습니다. 아래 작업은 이 필드를 유용하게 나누는 과정입니다.

실제로 필요한 경우와 그렇지 않은 경우

로그 파일 분석은 대규모 사이트용 도구입니다. URL 수만 개, 전자상거래·패싯 탐색, 마이그레이션 중인 사이트, Discovered – currently not indexed 상태의 사이트에서 값어치를 합니다. 크롤링 예산 안내서에서 “Most sites don’t need to worry about crawl budget, but there are few cases where you may want to take a look.” (번역) 「대부분의 사이트는 크롤링 예산을 걱정할 필요가 없지만 살펴볼 만한 몇 가지 경우가 있습니다」라고 썼습니다. Google Daniel Waisberg도 Crawl Stats에 관해 비슷하게 설명했으며 Search Engine Journal 보도에 따르면 약 1000페이지 미만 사이트에는 큰 걱정거리가 아닙니다.

페이지가 수백 개이고 잘 크롤링된다면 건너뛰고 더 효과가 큰 문제를 고치세요.

로그 구하기(가장 어려운 부분은 접근권)

로그는 요청이 실제로 끝난 곳에 있습니다.

  • Apache·Nginx → 가장 흔한 Apache ‘combined’ 로그 형식
  • Microsoft IIS → W3C 형식
  • AWS ELB/ALB → ELB 형식
  • CDN(Cloudflare, Fastly, Akamai) → 자체 로그 내보내기. CDN 앞단 사이트에서 오리진 전용 로그는 에지 캐시 적중을 놓치므로 봇이 실제 도달한 계층의 로그를 가져오세요.

크롤링 빈도 변화를 포착하려면 최소 30일, 이상적으로 90일을 확보하세요. 서버 로그 접근권을 받는 과정 자체가 DevOps 승인 때문에 가장 어려울 때가 많습니다. Google 담당자도 Search Off the Record의 마이그레이션 에피소드에서 실무상 로그 파일 확보가 어렵다고 말했습니다. 요청 시간을 계획하세요.

로그에는 봇뿐 아니라 실제 방문자의 모든 요청이 있으며 URL 경로와 함께 쿼리 문자열, 세션 식별자, 기타 민감 정보가 들어갈 수 있습니다. OWASP 로깅 지침은 인증 자격 증명, 액세스 토큰, 개인 식별 정보를 로그에 직접 남기지 말고 먼저 제거·마스킹·해시하라고 명시합니다. 분석용 로그를 누구에게 넘기기 전에 접근 통제와 내보내기 과정에 반영하세요.

1단계 — 봇이 진짜인지 검증(모든 작업보다 먼저)

많은 안내서가 한 줄로 넘기는 단계지만 그렇게 하지 마세요. Ahrefs 설명대로 많은 봇이 방화벽을 피하려 Googlebot인 척합니다. 사용자 에이전트는 인증되지 않은 텍스트이므로 모든 ‘Googlebot’ 줄을 입증해야 할 주장으로 취급하세요.

Googlebot — 유효한 두 방식:

  1. 역방향 + 정방향 DNS(양방향 검사). Google 절차대로 로그 IP에 host 명령으로 역방향 DNS를 실행하고 도메인이 googlebot.com, google.com, googleusercontent.com인지 확인합니다. 그 호스트 이름에 정방향 DNS를 실행해 원래 IP로 돌아오는지 검증합니다. 위조자가 역방향 DNS를 *.googlebot.com처럼 보이게 할 수 있어도 같은 IP로 돌아오는 왕복 검사가 신뢰성을 만듭니다. macOS/Linux·Windows 명령은 스크립트 탭에 있습니다.
  2. Google 공개 IP 범위와 대조. Google은 크롤러 IP를 CIDR 형식 JSON으로 공개합니다. Googlebot 등에 common-crawlers.json, special-crawlers.json, 사용자 트리거 fetcher 파일, 전체 Google의 goog.json이 있습니다. Googlebot 안내서에서 Google이 “provided a list of public IPs you can use to verify the requests are from Google… You can compare this to the data in your server logs.” (번역) 「요청이 Google에서 왔는지 확인할 공개 IP 목록을 제공했으며 서버 로그 데이터와 비교할 수 있다」고 설명했습니다.

Bingbot — DNS만 사용. 핵심 차이는 Bing이 공식 IP 범위를 공개하지 않는다는 것입니다. Bing은 “…like other search engines, Bing does not publish a list of IP addresses or ranges from which we crawl the Internet,” (번역) 「다른 검색엔진처럼 인터넷 크롤링에 쓰는 IP 주소나 범위 목록을 공개하지 않는다」고 하며 이유는 “the IP addresses or ranges we use can change any time.” (번역) 「사용하는 IP 주소나 범위가 언제든 바뀔 수 있기 때문」이라고 설명합니다. 따라서 *.search.msn.com으로 끝나는 호스트(예: msnbot-157-55-33-18.search.msn.com)에 역방향 + 정방향 DNS를 사용하거나 Verify Bingbot 도구를 씁니다. 이후 Microsoft가 bingbot IP JSON을 공개했지만 공식 검증 지침은 IP 변경 때문에 여전히 DNS 중심입니다.

가짜는 제외하세요. 모든 크롤링 계산은 검증된 집합만 사용합니다. 검증되지 않은 ‘Googlebot’은 대개 스크레이퍼나 위조 봇이며 크롤링 낭비 분석이 아니라 보안 검토 대상입니다.

2단계 — 확인할 항목

검증된 적중만 남긴 뒤 다음을 읽습니다.

  • 가장 많이·적게 크롤링된 URL과 섹션. URL·디렉터리별 요청 순위를 내면 크롤링 예산이 실제 어디에 쓰이는지 드러납니다.
  • 시간별 크롤링 빈도. URL·섹션별 추세에서 마이그레이션 문제로 인한 감소나 새 섹션·스파이더 트랩의 무한 URL로 인한 급증을 찾습니다.
  • 빈도 우선 봇 상태 코드. 200, 301/302와 체인, 404, 5xx를 정량화합니다. 주 5000회 적중한 404는 한 번 적중한 404와 다릅니다. 존재 여부가 아니라 크롤링 빈도로 우선 처리하세요.
  • 크롤링 낭비. 패싯 탐색, URL 매개변수, 내부 검색 결과, 무한 달력·페이지가 예산을 크게 소모할 수 있으며 로그가 봇이 시간을 쓰는 불필요한 패턴을 보여 줍니다.
  • 고아·미크롤링 페이지. 두 데이터세트가 모두 필요합니다. 로그에는 있지만 사이트 크롤에는 없는 URL은 고아·오래된 리디렉션·외부 링크 페이지이고, 크롤에는 있지만 로그에 없는 URL은 Google이 가져간 적 없는 페이지입니다.
  • 모바일·데스크톱 Googlebot. 사용자 에이전트별로 나눕니다. 모바일 우선 전환 후에는 Googlebot Smartphone이 다수여야 하며 데스크톱 비중이 높으면 조사할 가치가 있습니다.
  • 응답 시간·크롤링 상태. 평균 응답 시간이 지속해서 늘면 크롤링 감소와 연관됩니다. Waisberg 안내를 다룬 SEJ 보도는 “Watch out for a consistent increase in average response time. Google says it might not affect crawl rate immediately, but it’s a good indicator that your servers might not be handling all the load.” (번역) 「평균 응답 시간이 꾸준히 증가하는지 살피세요. 크롤링 속도에 즉시 영향을 주지는 않을 수 있지만 서버가 전체 부하를 감당하지 못하고 있음을 보여 주는 지표입니다」라고 설명합니다.

로그가 알려주지 않는 것

데이터를 과도하게 해석하지 않도록 다음을 구분하세요.

  • 크롤링 ≠ 색인. Googlebot이 매일 가져가도 계속 미색인일 수 있습니다. 로그는 가져오기만 입증하므로 GSC 페이지 색인·URL 검사와 함께 색인 상태를 확인하세요.
  • 크롤링 ≠ 순위이며 더 많이 크롤링해도 도움이 되지 않습니다. “The rate of crawling isn’t going to impact your rankings.” (번역) 「크롤링 속도는 순위에 영향을 주지 않습니다」라고 반복해 설명했습니다. 크롤링 양을 순위 수단처럼 좇지 마세요.
  • noindex는 크롤링을 줄이지 않습니다. noindex는 색인만 제어하며 실제 크롤링을 막으려면 robots.txt나 상태 코드를 사용합니다.
  • 크롤링 ≠ 모델 학습·인용. 검증된 GPTBot·ClaudeBot·PerplexityBot 적중은 그 요청, 즉 가져오기가 있었음을 입증할 뿐입니다. 모델 학습에 사용됐는지, 이후 보관됐는지, 채팅 답변에 인용됐는지는 별개의 관찰되지 않은 결과입니다.

2026년의 변화: 로그에 가득한 AI 봇

현대 로그 파일의 등장인물이 바뀌었습니다. Cloudflare Radar 분석 새로운 웹 크롤러 만나기에서는 검색엔진 봇이 여전히 가장 많이 크롤링하지만 AI 봇이 확실한 2위이고 몇 년 안에 추월할 추세입니다. GPTBot·ClaudeBot·PerplexityBot 등이 많이 나타나므로 검증 적중을 사용자 에이전트별로 나누면 요청 비중에서 AI 크롤러가 검색엔진과 비슷해도 놀랄 일이 아닙니다. Screaming Frog Log File Analyser도 이를 위한 AI 봇 전용 안내를 추가했습니다.

전체 크롤링에서의 위치

로그는 크롤링 클러스터 전체의 진단 계층입니다. Gary Illyes가 “the number of URLs Googlebot can and is willing or is instructed to crawl” (번역) 「Googlebot이 크롤링할 수 있고 하려 하거나 지시받은 URL 수」라고 정의한 크롤링 예산 소비를 실제로 측정합니다. 달력·패싯의 무한 URL 공간이 거의 같은 요청의 홍수로 나타나는 스파이더 트랩도 잡습니다. 정확한 lastmod, 중요 페이지 내부 링크 같은 크롤링 빈도 작업이 봇 행동을 바꿨는지도 확인합니다. 로그는 GSC Crawl Stats를 보완하지 대체하지 않습니다. Crawl Stats는 표본 입구이고 로그는 비표본·다중 봇·URL별 세부 정보입니다.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.