AEO Log Analyzer
Drop in your server access log. We'll show which AI crawlers actually hit your site — IP-verified against the operators' published ranges — plus status codes and any rate-limit blocks.
🔒 Runs entirely in your browser · No log content uploaded · No IP addresses stored
No log handy? Download a sample log →
Analyzing log…
Reading file…
Analytics & Search Console Dashboard
Search Console
● Loading…Total Clicks
—
Impressions
—
CTR
—
Avg Position
—
What is the AEO Log Analyzer?
The AEO Log Analyzer is a free, client-side tool that parses your server access log and shows which AI crawlers actually hit your site — not just which ones the User-Agent claims to be. It matches every request against 18 known crawler patterns, then verifies the source IP against the operator's published IP ranges. Only hits where both the User-Agent and the source IP match are marked verified. Spoofed claims are flagged as unverified. Your log content never leaves your browser.
How it works — and what it can't see ▾
What the tool does: parses your log line by line, identifies every request whose User-Agent claims to be a known crawler, then verifies the source IP against the operator's published IP ranges. Only requests where both UA and IP match are marked verified. Mismatches are flagged as unverified — usually spoofed scrapers.
What you'll see per bot: total hits, verified vs unverified counts, status code breakdown (2xx / 3xx / 4xx / 5xx), the count of 401 / 403 / 429 / 503 responses (rate-limit and block indicators), first and last seen timestamps, top requested paths, and any unverified source IPs.
What this tool can't see: CDN-level blocks and rate limits that never reach your origin (Cloudflare, Fastly, Akamai) are invisible in your origin log. Cached responses served from the CDN edge also never hit origin. If you suspect CDN blocks, check your CDN provider's own analytics.
What it does not do: no reverse DNS lookups (they require per-IP server-side queries, which would break the privacy promise and add latency). UA + IP range verification catches the vast majority of spoofing attempts.
IP list freshness: operators update their ranges rarely. The tool caches the list for 24 hours. Force a refresh by clearing browser storage.
Supported bots and IP-list availability ▾
Have published IP ranges (verified matching):
- Googlebot, Googlebot-Image, Googlebot-News — Google published ranges
- Bingbot — Microsoft published ranges
- Applebot — Apple published ranges
- GPTBot, OAI-SearchBot, ChatGPT-User — OpenAI published ranges
- PerplexityBot, Perplexity-User — Perplexity published ranges
- ClaudeBot, Claude-User, Claude-SearchBot — Anthropic published ranges
UA only (no published IP ranges):
- Claude-Web, anthropic-ai — legacy UA names, no published ranges
- CCBot — Common Crawl, UA-only
- Bytespider — ByteDance, UA-only
- Amazonbot — Amazon does not publish a range
- DuckAssistBot, YandexBot — UA-only
For UA-only bots, hits are shown as "UA only" rather than "verified" — the tool can't confirm IP authenticity, so we don't pretend to.
Verified the crawlers. Now audit the page.
Log analysis tells you who reached your site. The AEO Performance Tool tells you whether they could actually read what they found — render fidelity, DOM stability, schema parse, and 6 more modules.
Frequently Asked Questions
What is the AEO Log Analyzer? ▼
A free client-side tool that parses your server access log and identifies which AI crawlers actually hit your site. It matches the User-Agent of every request against 18 known crawler patterns, then verifies the source IP against the operator's published IP ranges — Googlebot, Bingbot, Applebot, GPTBot, OAI-SearchBot, ChatGPT-User and Amazonbot all publish ranges, so hits are shown as verified or unverified. The tool also surfaces status codes, rate-limit responses (401, 403, 429, 503), first and last seen timestamps, and top requested paths per bot.
How do I verify AI crawlers are actually hitting my site? ▼
Download your server access log for the period you want to analyze (Apache combined, Nginx combined, Nginx JSON, or Cloudflare CSV format), then drop the file into the AEO Log Analyzer. The tool parses each line, identifies crawler User-Agents, and cross-references the source IP against the operators' published IP ranges. Requests where both the UA and IP match are marked verified. Requests where the UA claims a known crawler but the IP does not match any published range are marked unverified — usually spoofed scrapers rather than the real bot.
Why does GPTBot show as "unverified" in the results? ▼
GPTBot is verified against OpenAI's published IP ranges. If a hit is shown as unverified, the request's source IP is not in OpenAI's published range for GPTBot — even though the User-Agent claims to be GPTBot. This is usually a spoofed scraper, not the real OpenAI crawler. Any tool or person can set the User-Agent string to "GPTBot", but only OpenAI's infrastructure can send requests from OpenAI's IP ranges. The unverified count in the report shows you how many hits claimed to be a given bot but came from a non-matching source.
What does a 429 response mean for an AI crawler? ▼
HTTP 429 means "Too Many Requests" — the server (or a CDN/WAF in front of it) is rate-limiting the crawler because it sent too many requests in a short window. For AI crawlers this is important: if a verified crawler is being rate-limited, it may reduce its crawl rate for your site, delay re-visits, or skip pages entirely. The AEO Log Analyzer flags 429 responses per bot so you can see whether your rate limits are blocking legitimate crawlers. Other suspicious statuses include 401 (Unauthorized), 403 (Forbidden), and 503 (Service Unavailable).
Is my log file uploaded anywhere? ▼
No. The tool parses your log file entirely in your browser. Nothing is uploaded to any server. The only network request the tool makes is to fetch the operators' published IP ranges — a public, static list that contains no information about your site or your logs. Your IP addresses, URL paths, referrers, and User-Agent data never leave your device.
Does the AEO Log Analyzer work with Cloudflare, Nginx, and Apache logs? ▼
Yes. The tool auto-detects and parses four common access log formats: Apache combined (the default on most Apache setups), Nginx combined (the default on most Nginx setups), Nginx JSON (if you have configured Nginx with a JSON log format), and Cloudflare CSV (exported from the Cloudflare dashboard). The format is detected automatically from the first few lines of the file. If you paste a log in an unsupported format, the tool will tell you rather than silently parsing it wrong.