Log File Analysis for SEO in 2026
Search Console shows you a summary of how Google crawls your site. Your server logs show every request, from Googlebot and from the AI crawlers. This guide covers how to get the right logs, how to tell real bots from fakes, the six questions worth answering, and what to fix first, checked against Google's, OpenAI's and Anthropic's documentation on 2 November 2026.
Every crawler that visits your site leaves a line in a log file: the URL it asked for, when, what it got back and who it said it was. Most teams never read those lines. They rely on Search Console, which is useful but summarised, and on crawling tools, which show what could be crawled rather than what was.
The logs answer different questions. Where Googlebot actually spends its time. Which important pages it rarely visits. Which junk URLs it keeps coming back to. Whether the AI crawlers can reach your pages at all, and whether people asking ChatGPT or Claude about your category are being sent to you. This guide is the method we use: what to collect, how to verify the bots, what to look for, and the short list of fixes the findings usually point to.
Key takeaways
- Logs record what crawlers did, not what they could do. They are the only place to see wasted crawling, pages Google never visits, and how AI crawlers treat your site.
- Verify every bot before you count it. User agents are easy to fake. Google, Bing, OpenAI, Perplexity and Anthropic all document a way to confirm their crawlers, usually a DNS check or a published IP list.
- Most findings lead to the same few fixes: stop linking to URLs you do not want crawled, return honest status codes, repair internal links to important pages, and keep the server fast and free of 5xx errors.
In this article
What a log file tells you that no other tool does
An access log is a plain list of requests. Each line holds the visitor's IP address, the time, the URL, the HTTP status returned, the size of the response, the referrer and the user agent. Filter it to search and AI crawlers and you have a complete record of how machines read your site.
Search Console's Crawl Stats report, under Settings, gives a good summary of Google's side: total requests, response codes, file types, Googlebot types, and whether requests were for discovery of new URLs or a refresh of known ones. It covers roughly the last 90 days and shows example URLs rather than all of them. It also says nothing about Bing or the AI crawlers. A crawling tool tells you what a bot could reach. Only the logs tell you what each one actually requested.
Getting the right logs
Take the logs from the layer that answers the request. If your site sits behind a CDN, the origin server only sees cache misses, so its logs undercount crawling badly. Most CDNs and hosting platforms can export request logs, often on paid plans. On a plain server, the Nginx or Apache access log is the source.
| Field | Example | What it is for |
|---|---|---|
| IP address | 66.249.66.1 | Verifying that a bot is who it says it is |
| Timestamp | 02/Nov/2026:08:14:03 +0000 | Crawl frequency, time from publishing to first visit |
| Method and URL | GET /pricing?ref=nav | Where crawling goes, including parameters |
| Status code | 200, 301, 404, 503 | What the crawler actually received |
| Bytes sent | 48211 | Spotting empty or truncated responses |
| User agent | Googlebot/2.1; GPTBot/1.2 | Grouping requests by crawler before verification |
| Host | www.example.com | Separating subdomains and stray hostnames |
Collect at least 30 days, ideally 60 to 90, so weekly patterns and slow recrawls show up.
Verify the bots before you count them
Anyone can send a request that says Googlebot. Scrapers do it to get past firewalls, and some of them crawl harder than Google ever would. If you analyse user agents without verifying them, you will draw conclusions about Google from traffic that is not Google.
| Crawler | Purpose | How to verify |
|---|---|---|
| Googlebot (smartphone and desktop) | Crawling for Google Search | Reverse DNS on the IP must end in googlebot.com, google.com or googleusercontent.com, and a forward lookup of that name must return the same IP. Or match against Google's published IP range files, which moved to developers.google.com/crawling/ipranges/ in March 2026. |
| Google-Extended | A robots.txt token that controls use of content for Gemini training and grounding | It never appears in logs. Google crawls with its normal user agents and applies the token afterwards. |
| Bingbot | Crawling for Bing, which also feeds Copilot | Reverse DNS must end in search.msn.com, confirmed by a forward lookup. Bing Webmaster Tools has a Verify Bingbot tool. |
| OAI-SearchBot, GPTBot, ChatGPT-User | ChatGPT search results, model training, and visits made when a user asks ChatGPT something | OpenAI publishes a separate IP list for each: searchbot.json, gptbot.json and chatgpt-user.json on openai.com. |
| ClaudeBot, Claude-SearchBot, Claude-User | Training, search quality for Claude, and visits made for a user's question | Anthropic's help centre links to the IP addresses its crawlers use, and recommends robots.txt rather than IP blocking to control them. |
| PerplexityBot, Perplexity-User | Perplexity's index, and visits made for a user's question | Perplexity publishes IP ranges for both on its crawler documentation page. |
Providers change their crawler names and IP ranges. Re-read each page when you set up the analysis, and match on the bot name rather than the full version string.
Two details matter for interpretation. User-triggered fetchers such as ChatGPT-User, Claude-User and Perplexity-User may not follow robots.txt, because a person asked for the page. And a request from them is not crawling in the usual sense: it means someone asked an assistant a question and the assistant came to your page for the answer. That makes them the most commercially interesting lines in the file.
Six questions to answer from the logs
Group URLs by template or section first: product pages, categories, guides, filters, internal search, everything else. Questions about thousands of single URLs are hard to act on. Questions about ten groups are not.
Where does Googlebot spend its requests?
Compare each group's share of verified Googlebot requests with its share of organic clicks or revenue. A section that gets 40% of crawling and 2% of traffic is usually filters, parameters or thin pages that should not be crawlable.
What does it get back?
Break responses down by status code and group. Look for redirect chains on internal links, 404s on URLs your own pages still link to, 5xx spikes, and any 429s. Google lowers its crawl rate when a site slows down or returns server errors.
Is it crawling URLs you never meant to publish?
Sort the crawled URLs by pattern. Sorting and tracking parameters, faceted combinations, internal search results, old staging hostnames and calendar pages are the usual offenders. Each one is a link or a sitemap entry somewhere.
How fast does it find new pages?
For pages published in the period, measure the time from publishing to the first verified Googlebot request. Days rather than hours on a site that publishes often points to weak internal linking from frequently crawled pages, or to sitemaps without honest lastmod dates.
Which important pages does it rarely visit?
Join the logs to a crawl of your site or your sitemap. Indexable pages with no Googlebot visit in 30 days are close to invisible. They are usually deep, orphaned or linked only from pages that are themselves rarely crawled.
What are the AI crawlers doing?
Split them into training, search and user-triggered. Check that the ones you want, especially the search and user agents, receive 200s and not 403s from a firewall rule nobody remembers. Count user-triggered visits by page: they show which pages assistants are fetching to answer questions.
What the findings usually point to
| Finding | Likely cause | Fix |
|---|---|---|
| Heavy crawling of parameter or filter URLs | Links to them in navigation, or no rules for which combinations are crawlable | Stop linking to combinations you do not want found, block the rest in robots.txt, keep canonicals consistent |
| Many 3xx responses on internal URLs | Old links after a migration, or http and trailing-slash variants | Update internal links to the final URL; keep redirects for external links only |
| Googlebot keeps requesting removed pages | They return 200 with an error message, a soft 404 | Return 404 or 410 for pages that are gone |
| Important pages visited rarely | Deep or orphaned in the internal link graph | Link them from pages Google crawls daily; see internal linking as a system |
| 5xx or 429 spikes, slow responses | Server or CDN limits, bot protection, deploys | Fix capacity and rules first; Google crawls less until the site recovers |
| AI search and user agents blocked | WAF or bot-protection defaults | Allow the verified retrieval agents you want; decide training crawlers separately, as in which AI crawlers to allow |
A monthly routine that takes an hour
- Export 30 days of logs from the layer that answers requests, filtered to crawler user agents.
- Verify Googlebot, Bingbot and the AI crawlers against each provider's DNS check or IP list, and discard the rest from the analysis.
- Update the six numbers: crawl share by section against traffic share, error rate, share of requests to unwanted URLs, median time to first crawl for new pages, important pages not crawled in 30 days, and AI user-triggered visits by page.
- Check the Crawl Stats report in Search Console for host status problems and a sudden change in total requests.
- Pick one fix, ship it, and watch the same number next month. Add the check to your release list if a deploy caused it, the same way you would for a stray noindex.
The bottom line
- Use the logs for what only they show: wasted crawling, important pages Google rarely visits, and how each AI crawler treats your site.
- Collect from the layer that answers requests, keep 30 to 90 days, strip ordinary visitors' IPs, and verify every bot before you count it.
- Group by section, answer the six questions, and expect the fixes to be about links, status codes, internal linking and server stability rather than anything exotic.
Frequently asked questions
- What is log file analysis in SEO?
- It is the review of your server or CDN access logs to see exactly which URLs search and AI crawlers requested, how often, and what they received. It shows real crawler behaviour, where tools such as site crawlers only show what could be crawled.
- How do I know a request really came from Googlebot?
- Run a reverse DNS lookup on the IP address. Google's documentation says the name must end in googlebot.com, google.com or googleusercontent.com. Then run a forward lookup on that name and confirm it returns the same IP. You can also match the IP against the ranges Google publishes for its crawlers.
- Does crawl budget matter for a small website?
- Usually not. Google's own guidance aims crawl budget advice at sites with hundreds of thousands to millions of URLs, or tens of thousands that change daily. On a small site, pages that are slow to be crawled usually have a linking or quality problem, not a budget problem.
- Can I see ChatGPT or Claude visits in my logs?
- Yes. OpenAI's crawlers identify as OAI-SearchBot, GPTBot and ChatGPT-User, and Anthropic's as ClaudeBot, Claude-SearchBot and Claude-User. Visits from ChatGPT-User or Claude-User happen when a person asks the assistant something and it fetches your page to answer. Verify them against each provider's published IP information before you count them.
How this guide was put together
- Crawler behaviour and verification methods were read from the providers' own documentation on 2 November 2026: Google's crawl budget guide, its page on verifying Google crawlers and fetchers, the March 2026 announcement of the new IP range location, and the Crawl Stats report help page; OpenAI's overview of its crawlers; and Anthropic's help article on its crawlers.
- The six questions and the monthly routine are the method we use on client sites. The thresholds in the callouts are Google's published estimates, which Google itself describes as rough guidance rather than exact limits.
Sources
- Google: Optimize your crawl budget
- Google: Verify requests from Google crawlers and fetchers
- Google Search Central Blog: New location for the Google crawlers' IP range files (March 2026)
- Search Console Help: Crawl Stats report
- OpenAI: Overview of OpenAI crawlers
- Anthropic: Does Anthropic crawl data from the web, and how can site owners block the crawler?
- Lucidens: The Technical SEO Audit Checklist for 2026
- Lucidens: AI Crawlers: What to Allow, What to Block
Founder of Lucidens. A decade of organic-search practice across English-, French- and Arabic-speaking markets, with a particular interest in measurement and in how answer engines choose their sources.
Related capabilities
- Technical SEO
Crawlability, rendering, performance and indexation, engineered so nothing you publish is lost.
- Answer Engine Visibility
Becoming a source generative systems can parse, verify and cite with confidence.
Related research
- Schema Markup That Still Matters in 2026
Google has retired more rich results in the last three years than it has launched, FAQ included as of May 2026. Most schema advice online predates that. This guide lists what is gone, what still earns something, and the small set of markup worth maintaining on a normal business site, checked against Google's own documentation on 22 October 2026.
- AI Crawlers: What to Allow, What to Block
Every AI provider now runs at least two bots, and they do different jobs. One feeds training. One feeds the answers your buyers read. Block the wrong one and you disappear from ChatGPT search or Claude without noticing. Here is each bot, what it does, and a robots.txt that says what you mean.
- Internal Linking as a System
Internal links are the cheapest ranking lever most sites never pull on purpose. This guide turns them from a chore into a system: three link roles, a hub-and-spoke map you can draw in an afternoon, anchor rules, a four-check audit, and a routine that keeps it alive after launch.
Want your logs read for you?
We collect and verify the crawler traffic, answer the six questions for your site, and hand your team the fixes in order, with the monthly check set up so the numbers stay honest.