Search Console shows aggregated crawl trends; server logs show every real request. A step-by-step guide to exporting logs, verifying Googlebot, catching spoofed crawlers, and reading crawl activity — by hand and with a free browser tool.

Server logs are the most direct way to understand how search-engine crawlers actually access your website. Search Console can show crawl trends and aggregated crawl activity, but server logs record the individual requests made to your server.

That makes log-file analysis useful when you need to answer questions such as:

  • Is Googlebot actually crawling my newly published page?
  • Which URLs are search engines crawling?
  • How often are important pages being crawled?
  • Are crawlers hitting redirects or error pages?
  • Which bots are consuming server resources?
  • Are some requests pretending to be Googlebot?
  • Which pages are being ignored by crawlers?

This guide explains how to get your logs, verify crawler requests, analyze the data manually, and use a free browser-based tool to automate the process.

The examples use a real Hostinger Access Log export containing 455 requests recorded over roughly six hours.


Why use server logs for SEO? #

Server logs show individual requests to your server. Search Console does not provide that level of detail.

Search Console's Crawl Stats report is useful for understanding Google's overall crawling activity, but it is an aggregated view of crawl activity and can lag behind what is happening on the server.

Server logs contain the actual request, including:

  • The requesting IP address
  • The requested URL
  • The user-agent
  • The HTTP status code
  • The timestamp

This means you can move from:

"Google appears to be crawling my website."

to:

"Googlebot requested this URL at this exact time, from this IP address, and received a 200 response."

That distinction is important when diagnosing crawling and indexing problems.

Server logs also contain traffic from crawlers other than Google, including Bingbot, AI crawlers, SEO crawlers, scrapers and automated scanners.


How to analyze server logs for SEO #

There are three practical ways to analyze log files:

  1. Manually using a spreadsheet or terminal.
  2. Using a dedicated log-analysis tool, such as Screaming Frog Log File Analyser.
  3. Using a browser-based tool that automatically classifies and visualizes the requests.

The manual method is important because it shows exactly what the data means. Once you understand the process, a tool can automate the repetitive parts.


Step 1: Get your server log files #

You need access to the logs generated by the server that actually serves your website.

Ideally, the log should contain:

  • Timestamp
  • IP address
  • Requested URL
  • HTTP status code
  • User-agent

If your website uses Cloudflare #

If you are using Cloudflare's free plan, you may not have access to raw per-request logs through Cloudflare.

In that case, get the logs from your hosting provider or origin server instead.

If you use Hostinger #

In Hostinger's hPanel, go to:

Websites → Your Website → Manage → Analytics → Access Logs

The Access Logs section provides information such as:

  • Timestamp
  • IP address
  • User-agent
  • Request
  • Response information

You can also filter the logs. For example, searching for Googlebot will show requests claiming to come from Googlebot.

Hostinger's interface provides a downloadable CSV export.

The dataset used in this walkthrough came from this export.

Other hosting providers #

If you use cPanel, VPS hosting, managed WordPress hosting or another provider, look for:

Raw Access Logs

If you cannot find them, ask your hosting provider where the raw server access logs are located.


Step 2: Understand the log format #

Before analyzing a log file, understand what each row represents.

Here is an example request from the dataset:

status: 200
ipAddress: 66.249.64.227
request: GET /blog/google-ai-mode-and-the-evolution-of-search-behavior HTTP/1.1
userAgent: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
timestamp: 2026-09-13T09:49:58.000000Z

This row tells us five important things:

1. Status code #

200 means the server successfully returned the requested resource.

2. IP address #

66.249.64.227 is the IP address that made the request.

3. Requested URL #

The request was made to:

/blog/google-ai-mode-and-the-evolution-of-search-behavior

4. User-agent #

The request claims to be:

Googlebot/2.1

5. Timestamp #

The request happened at:

2026-09-13 09:49:58 UTC

There is one important limitation here.

The user-agent is only a claim.

Anyone can send a request using:

Googlebot/2.1

That does not make the request genuine Googlebot traffic.

So crawler verification is an important part of log-file analysis.


Step 3: Verify whether Googlebot is genuine #

Do not trust the Googlebot user-agent alone.

Google's recommended verification process uses two DNS checks.

Step 3.1: Perform a reverse DNS lookup #

Take the IP address from the log and perform a reverse DNS lookup.

For example:

host 66.249.64.227

The result should resolve to a hostname associated with Google's crawler infrastructure, such as a hostname ending in:

  • googlebot.com
  • google.com
  • googleusercontent.com

If the IP has no relevant hostname or resolves to an unrelated domain, treat the request as suspicious.


Step 3.2: Perform a forward DNS lookup #

Do not stop after the reverse lookup.

Take the hostname returned by the reverse lookup and resolve it again.

For example:

host crawl-66-249-64-227.googlebot.com

The hostname should resolve back to the same IP address you started with.

This two-step process prevents a fake hostname from being used to impersonate Googlebot.


Step 4: Identify spoofed Googlebot requests #

The dataset used for this analysis contained 15 requests claiming to be Googlebot.

Two of them failed verification.

IP address Reverse DNS result Verdict
66.249.64.234 crawl-66-249-64-234.googlebot.com → confirms to same IP Genuine
66.249.64.224 crawl-66-249-64-224.googlebot.com → confirms to same IP Genuine
116.96.86.247 No reverse DNS record Spoofed
130.12.168.65 Generic hosting-provider domain Spoofed

This is why checking the user-agent alone is insufficient.

Both suspicious requests used the Googlebot user-agent but did not originate from verified Google infrastructure.

They also requested the same page about checking Google's indexed pages, which is consistent with automated scraping.


Step 5: Verify crawler IPs at scale #

Manually checking every IP becomes impractical when a log contains thousands or millions of requests.

Major crawler operators publish IP ranges that can be used to automate this verification.

For example:

Crawler Verification source
Google crawlers Google's published crawler IP ranges
GPTBot / ChatGPT-User / OAI-SearchBot OpenAI's published crawler ranges
Claude crawlers Anthropic's published bot ranges
Perplexity crawlers Perplexity's published crawler ranges
Bingbot Bing's verification tools or reverse DNS

The important principle is:

Classify a crawler based on its infrastructure, not just its user-agent string.


Step 6: Analyze the logs for SEO problems #

Once you have identified genuine crawler requests, look for patterns.

There are four areas you should check first:

  1. Crawl frequency by URL
  2. Status codes
  3. Crawler distribution
  4. Crawl activity over time

6.1 Check crawl frequency by URL #

Find out which URLs are being crawled and how frequently.

Look for:

  • Important pages receiving no crawler requests
  • Pages being crawled unusually frequently
  • Newly published pages receiving crawler visits
  • Low-value URLs consuming crawl activity
  • Repeated requests for the same URL

In the sample dataset, the homepage, robots.txt and sitemap.xml received significant crawler activity.

One particular blog post was requested five times by different bots within six hours.

That tells you the page was receiving active crawler attention during the period analyzed.


6.2 Check status codes by crawler #

Next, analyze the HTTP status codes returned to crawlers.

Pay particular attention to:

  • 200 — successful response
  • 301 / 302 — redirects
  • 404 — page not found
  • 410 — permanently gone
  • 5xx — server errors

A crawler repeatedly hitting redirected URLs is worth investigating.

For example, the sample contained genuine Googlebot requests to:

/content-mapping-for-customer-intent-a-complete-guide

The URL returned a 301 redirect to the correct /blog/... URL.

The redirect itself is not necessarily an SEO problem.

However, if internal links or sitemap entries still point to the old URL, Googlebot is being sent through an unnecessary redirect.

The fix is straightforward:

Update the source of the internal link or sitemap entry to point directly to the final URL.


6.3 Analyze the crawler mix #

Do not assume that all bot traffic is Googlebot or Bingbot.

A server log can contain:

  • Googlebot
  • Bingbot
  • AhrefsBot
  • Bytespider
  • YandexBot
  • OpenAI crawlers
  • PerplexityBot
  • Amazonbot
  • Security scanners
  • Scrapers
  • Other automated clients

The sample dataset contained several different crawler types.

It also contained a CMS-fingerprinting scanner requesting:

/admin
/admin/login.php

That traffic has nothing to do with search-engine crawling.

This distinction matters because not every bot request should be treated as SEO traffic.


6.4 Analyze crawl activity over time #

Sort requests by timestamp.

Then look for:

  • Crawl bursts
  • Repeated requests
  • Sudden increases in bot traffic
  • Crawling immediately after publishing content
  • Long periods without crawler activity
  • Repeated requests for the same URLs

For example, if a newly published article receives several verified Googlebot requests shortly after publication, you have direct evidence that Google has requested the page.

This is much stronger than simply assuming that a page was crawled because Search Console eventually reports activity.


Step 7: Analyze the logs using a spreadsheet #

You do not need specialist software to perform basic log analysis.

A spreadsheet is enough for a few hundred or thousand rows.

Create a crawler classification column #

Group user-agents into categories such as:

  • Googlebot
  • Bingbot
  • OpenAI
  • Perplexity
  • Ahrefs
  • Human
  • Other

Then create a pivot table.

For example:

Rows: Bot name Values: Count of requests

This gives you a ranking of crawler activity.

Check status codes #

Filter the status-code column for values other than 200.

This quickly exposes:

  • Redirects
  • 404s
  • Server errors
  • Other unusual responses

Check URLs #

Sort or group by requested URL.

This shows which pages are receiving the most crawler attention.


Step 8: Use the terminal for faster analysis #

For larger files, command-line tools can answer simple questions quickly.

For example:

grep -c "Googlebot" access.csv

This counts rows containing Googlebot.

To count requests by IP:

awk -F, '{print $2}' access.csv | sort | uniq -c | sort -rn

This helps identify IP addresses generating unusually large numbers of requests.

However, request volume alone is not enough to determine whether a bot is genuine.

A single IP generating many requests may be a scraper, but genuine crawlers can also generate concentrated traffic.

Always combine volume analysis with crawler verification.


Step 9: Use a browser-based log analyzer #

If you have hundreds or thousands of rows, a browser-based analyzer can automate the repetitive work.

The tool used in this walkthrough works directly in the browser.

Step 9.1: Upload the CSV #

Drop your log CSV into the tool or select it from your computer.

The tool processes the file in the browser rather than uploading it to a server.

Upload/drop zone
Upload/drop zone

Step 9.2: Review the summary #

The tool automatically calculates:

  • Total requests
  • Bot requests
  • Percentage of bot traffic
  • Number of detected crawlers

For the sample dataset:

  • 455 total requests
  • 152 bot requests
  • 33% bot traffic
  • 14 detected bots
Top-line statistics showing total requests, bot requests, bot percentage, and detected bots
Top-line statistics showing total requests, bot requests, bot percentage, and detected bots

Step 9.3: Check Googlebot verification #

The tool identifies requests claiming to be Googlebot and compares their IP addresses against Google's published IP ranges.

There is an important technical limitation:

A browser cannot perform the reverse-DNS verification required for Google's complete two-step verification process.

Therefore, IP-range verification can be automated in the browser, while reverse-DNS verification remains the fallback for cases where full verification is required.

If Google's IP-range file cannot be fetched because of browser restrictions, the tool should report that limitation rather than treating the request as verified.

Googlebot verification card listing the claimed Googlebot IPs
Googlebot verification card listing the claimed Googlebot IPs

Step 9.4: Review the crawler charts #

The tool automatically generates:

  • Top crawlers by request count
  • Requests over time
  • Bot vs. human traffic
  • HTTP status codes
  • URLs receiving the most bot requests

These are the same questions you would answer manually with a spreadsheet.

Top crawlers and bots by request count
Top crawlers and bots by request count
Requests over time, split by bot vs. human
Requests over time, split by bot vs. human
HTTP status-code distribution
HTTP status-code distribution
Top URLs hit by bots
Top URLs hit by bots

Step 9.5: Search individual requests #

Use the searchable request table to investigate specific:

  • URLs
  • IP addresses
  • User-agents
  • Crawlers

For example, searching for:

googlebot

returns the requests claiming to be Googlebot, allowing the genuine and spoofed IPs to be compared directly.

Request table filtered for
Request table filtered for "googlebot", showing genuine and spoofed IPs side by side

What the sample log analysis found #

The six-hour sample produced several useful findings.

1. Two of fifteen Googlebot requests were spoofed #

Of the 15 requests claiming to be Googlebot, two failed verification.

Both requested the same page.

This demonstrates why crawler verification matters.


2. Bytespider generated more requests than Googlebot #

Bytespider generated 39 requests in the sample.

That was more than Bingbot and more than twice the number of genuine Googlebot requests in this dataset.

This is a useful reminder that the crawler mix on a website may be very different from what you assume.


3. Bots generated 33% of requests #

Of the 455 requests in the sample, 152 were identified as bot requests.

That represents approximately 33% of all requests during the analyzed period.

This matters when evaluating server load, caching and traffic patterns.


4. Googlebot encountered redirects #

Googlebot requested an old URL and received a 301 redirect to the correct URL.

This is a signal to investigate whether an internal link, sitemap entry or other source is still referencing the old URL.


5. Some automated traffic was unrelated to SEO #

The logs also contained a scanner probing administrative URLs such as:

/admin
/admin/login.php

This traffic is not search-engine crawling.

It is another reason to analyze the entire bot ecosystem rather than looking only at Googlebot.


What can you answer with log-file analysis? #

After analyzing server logs, you can answer questions such as:

Is Google actually crawling my new page? #

Find requests for that exact URL, then verify that the requesting IP belongs to Google.

Which pages does Google crawl most frequently? #

Filter verified Googlebot requests and group them by URL.

Are crawlers hitting redirects? #

Filter crawler requests by 301 and 302 status codes.

Are crawlers receiving errors? #

Filter for 4xx and 5xx responses.

Are fake bots pretending to be Googlebot? #

Compare the claimed Googlebot requests against Google's IP ranges and DNS verification process.

Which bots consume the most crawl activity? #

Group requests by verified crawler identity and compare request counts.

Are important pages being crawled? #

Filter the logs for your important URLs and check whether verified search-engine crawlers are requesting them.


The practical SEO workflow #

If you are using log files for SEO, follow this process:

1. Export the raw server logs.

2. Make sure the logs contain IP, URL, user-agent, timestamp and status code.

3. Identify crawler requests from their user-agents.

4. Verify important crawler traffic using published IP ranges or DNS verification.

5. Group requests by crawler.

6. Group requests by URL.

7. Analyze status codes.

8. Check crawl activity over time.

9. Investigate redirects, errors and repeatedly crawled low-value URLs.

10. Compare the findings with your site's SEO priorities and fix the underlying issues.

This turns a raw access log into an actual SEO diagnostic dataset.


Final takeaway #

Search Console tells you about Google's crawl activity. Server logs show the requests that actually reached your server.

That difference is what makes log-file analysis valuable.

With server logs, you can determine:

  • What was requested
  • When it was requested
  • Which IP requested it
  • Which crawler claimed to make the request
  • What response the server returned
  • How frequently URLs are being crawled

And, importantly, you can verify whether a request claiming to be Googlebot is actually coming from Google.

In the sample analyzed here, that process exposed two spoofed Googlebot requests out of fifteen — something that would not be apparent from simply looking at the user-agent string.

The key principle is simple:

Do not treat crawler identity as a claim. Verify it.

Once you understand that principle, log-file analysis becomes much more than looking at server traffic. It becomes a practical way to understand how search engines and other crawlers interact with your website.


Analyze your own logs #

The browser-based log analyzer used in this walkthrough can be used to process your own Hostinger Access Log CSV and automatically generate the crawler, status-code, URL and traffic analysis described above.

[TODO: Add final log analyzer tool URL]

If you want to go beyond identifying crawl activity and learn how to diagnose and fix the SEO issues revealed by server logs, log-file analysis is covered hands-on in Day 1 of the Technical SEO Workshop on November 21.

Register for the Technical SEO Workshop →

Related: Log File Analysis · Crawl Budget