Skip to content

See every Googlebot and AI bot request in the Bot log ​

The Bot log in EdgeComet Data Explorer lists every request a search engine or AI bot made to your site through EdgeComet, one row per request, with the page the bot received. Also called the bot request log or raw bot logs.

EdgeComet records each request in the request path as it serves it. There are no log files to collect, upload or parse, and new requests appear in the table as bots make them.

The Bot log has three tabs:

  • Requests: one row per bot request, with the bot, its IP verification, the status code, serve time and the page's SEO tags.
  • Pages: one row per URL, with the requests it received in the period, averages, SEO changes and its Google Search Console clicks.
  • New and lost URLs: URLs bots requested in one period and not in the other. See New and lost URLs in the Bot log.

Data Explorer > Bot log on edgecomet.com, Requests tab, for the last 30 days with the default row Event Type Not equals Precache and the filter Bot Type Equals AI Bots: 5,399 results. Each row shows the page title and path, the date and time, the index status, the bot with a green check for a verified IP (PerplexityBot, KeenableBot) or a grey question mark for an unverifiable one (Exa Search), a serve time under 0.01 seconds, the page size and the event type Bypass Cache

Where the Bot log gets its rows ​

Every request your CDN or proxy routes to EdgeComet becomes a row: Googlebot, Bingbot, AI crawlers such as GPTBot and ClaudeBot, AI assistants fetching a page for a user, SEO tools and other bots. See How EdgeComet collects data.

Each row records how EdgeComet handled the request, as its event type: Cache Hit, Render, Bypass, Bypass Cache, Precache, Error or Rate Limited. Rendered and fetched pages carry an SEO snapshot of the page: title, meta tags, canonical, headings, structured data and links. See Log Analyzer sees page content.

The same rows feed the Log Analyzer reports, Evergreen Crawl and Alerts. Almost every Log Analyzer number opens the Bot log rows behind it.

What the Bot log shows when it opens ​

The Bot log opens on Requests for the Last 30 days, newest first, with 50 rows per page. The columns are Page, Date/Time, Index Status, Bot, Serve Time, Page Size and Event Type.

Two defaults keep the table to real bot traffic:

  • Pre-cache fetches are hidden. The first filter row reads Event Type Not equals Precache. Remove it with its × to see the fetches EdgeComet made to fill its own cache. Clear All removes it too. Links from reports open without this row.
  • Fake bots are left out. Requests whose IP failed verification do not show until you ask for them: add an IP Validation filter, set Bot Type to Fake Bots or Bad Bots, or use Fakes claiming this bot in the bot details.

The Page cell shows the page title above its path, and "redirect" for a redirect. The magnifier icon opens the URL in Page Analysis, and the arrow icon opens the live page.

Requests: one row per bot request ​

Requests shows each bot request with 44 built-in columns, plus one per custom extraction rule, grouped in the column picker:

GroupColumns
URLPage, Index Status, Canonical URL, Date/Time, Request ID
BotBot, Bot Type, IP Validation, IP
ContentMeta Description, Meta robots, H1, Structured Data, Word Count, Title Length, H1 Count, Hreflang URLs, Hreflang Count
Links & MediaTotal Links, Internal Links, External Links, Nofollow Links, Total Images, Images With Alt, Images Without Alt
ResponseStatus code, Page Size, Cache Age
PerformanceServe Time, Render Time, Resource requests, Total Bytes, 3P Requests, 3P Bytes, Same-Origin Requests
EventEvent Type, Source
ErrorsError, JS Console Messages, JS Errors, JS Warnings, Failed resource requests, Blocked Requests
HeadersHeaders
Custom extractionOne column per extraction rule, titled with the rule's name

To add or reorder columns, click Columns. See Choose columns.

Find the requests of one bot or bot type ​

Use the Bot filter to pick one or more bots by name. To match a user agent the list does not know, type part of it and choose Search: "...".

Bot Type narrows to a group of bots:

  • Any Bot: every request from a bot.
  • Search Bots: search engine crawlers, such as Googlebot and Bingbot.
  • AI Bots: AI crawlers and AI assistants, such as GPTBot, ClaudeBot and ChatGPT-User.
  • Social Bots: the link preview fetchers of chat and social apps, such as iMessage, WhatsApp and Facebook, without spoofed requests and Meta and Apple platform checks. See Which apps count as social bots?
  • Other Bots: recognized bots outside Googlebot, Bingbot, ChatGPT, Claude and Meta AI, such as PerplexityBot and SEO tool crawlers.
  • Fake Bots: requests whose IP is outside the ranges published for the bot they claim to be.
  • Bad Bots: fake bots, plus bots that EdgeComet does not recognize and SEO tool bots. See What counts as a bad bot.

For the bots in each group, see Search bots, AI crawlers and AI user agents explained.

The Social bot check filter, in the URL group of the Requests tab, finds what a social bot ran into on a request, such as Shared page returns 404. Its values are the checks of Which shared links need attention?

Questions the Requests tab answers ​

Each question in this list is a set of filter rows. Add the rows with Add Filter, then click Apply Filters. See Filter Data Explorer tables by period, field and segment.

  • Which Googlebot requests got a server error? Bot Googlebot Mobile and Googlebot Desktop, Status code >= 500.
  • Which pages did ChatGPT fetch for its users this week? Bot ChatGPT User, Period Last 7 days.
  • Which requests did bots spend on low-value URLs? Budget Allocation Wasted. See Crawl budget and crawl waste explained.
  • Which renders failed? Error Type Broken Page.
  • Which requests carried an x-robots-tag from your server? Origin Response Header x-robots-tag Exists.
  • Which scanner probes for secrets got a 2xx? Probe category Secrets & Keys, Response class 2xx, IP Validation Unverifiable and Fake. See Find exposed .env, .git and backup files scanners probe for.

Check whether a bot is real ​

The mark after the bot's name shows the result of EdgeComet's IP check on that request. Hover it for the reason, and click it to open the bot's details.

MarkLabelWhat it means
Green checkVerified"The IP is inside the published IP ranges for {bot}."
Red crossFake"The user agent claims {bot}, but the IP is outside its published IP ranges."
Grey question markUnverifiable"EdgeComet has no IP list to check {bot} against, so its user agent is unconfirmed." For a bot EdgeComet does not recognize: "EdgeComet does not recognise this bot, so its IP was not checked."
Exclamation markError"The request arrived without a client IP, so it was not checked."

How EdgeComet verifies bots covers each check and the operators that publish IP ranges.

The details window is titled with the bot and its category, such as Googlebot Mobile / Search Bots. Under the verdict it lists:

  • Purpose: for AI bots, what the bot fetches for: "Crawl data for AI model training", "Build AI search indexes" or "Real-time user query fetching".
  • IP: the address the request came from.
  • IP owner: the organization that holds the address, from a WHOIS lookup. Full WHOIS shows the whole registry record.
  • User agent: the full user agent string the bot sent.

The bot details window for a Googlebot Mobile request on edgecomet.com. A green box reads "Verified. The IP is inside the published IP ranges for Googlebot Mobile." Below it: IP 66.249.64.234, IP owner Google LLC with a Full WHOIS link, and the Googlebot smartphone user agent. Three links at the bottom: Requests from this bot, Requests from this IP and Fakes claiming this bot

Three links open the matching requests in the Bot log, for the same period:

  • Requests from this bot: every request from the bot.
  • Requests from this IP: every request from the address, fake bots included.
  • Fakes claiming this bot: requests that used the bot's user agent from an address outside its ranges. It shows for bots EdgeComet can verify.

For a fake, IP owner shows who holds the sending address. In this example, a request claimed to be ClaudeBot, Anthropic's training crawler, from an address that belongs to Google LLC:

The bot details window for a fake ClaudeBot request. A red box reads "Fake. The user agent claims ClaudeBot, but the IP is outside its published IP ranges." Purpose: Crawl data for AI model training. The IP address is blurred. IP owner: Google LLC, with a Full WHOIS link. User agent: the ClaudeBot user agent string with claudebot@anthropic.com

To block bots that misuse a name, see How to block a bot.

Look up who owns an IP address ​

Add the IP column under Columns. The info icon beside an address, titled WHOIS lookup, opens WHOIS - {ip} with the Organization, IP Range, Network, Country, Status and Abuse Email of the address, then the raw registry text.

If the registry does not answer, the window reads "WHOIS lookup failed. Please try again later." Open it again a little later.

See the HTTP headers of a request ​

Add the Headers column to see how many headers each step of the request carried: Bot → EdgeComet, EdgeComet → Origin, Origin → EdgeComet and EdgeComet → Bot. Click the counts to open Request headers with every header of the four steps.

A request with no stored headers shows a dash and the tooltip "No headers were captured for this request." To find requests by header, use the filters Bot Request Header, Origin Request Header, Origin Response Header and Served Response Header.

The Request headers window for a Googlebot Mobile request to https://edgecomet.com/log-analyzer/ on Sep 26, 2026, served as Bypass with status 200. Four sections list the headers of each step: Bot to EdgeComet with 4 headers, including accept, from and the Googlebot user agent; EdgeComet to Origin with 3 headers, one value blurred; Origin to EdgeComet with 16 headers, including content-type, link, vary and server cloudflare; and EdgeComet to Bot with 5 headers, including content-length, ec-request-id and ec-source bypass. Each section has a Copy button

See the HTTP headers of each bot request covers what each step shows and the filter conditions.

Pages: one row per URL ​

Pages adds up the requests for each URL in the period. It opens with Page, Requests, Avg Serve Time, Avg Render Time and Error Rate, sorted by Requests.

Filters narrow the requests first, and each row adds up the requests that are left. With Bot Type set to AI Bots, Requests counts each page's AI bot requests, and Avg Serve Time averages them.

Other per-page columns include Avg Page Size, Cache Hit Rate, link and image averages, Word Count, Title Length and Structured Data.

Filter on totals and averages ​

The Aggregate Filters section, under the regular filters, filters on the per-page numbers instead of single requests:

  • Total Requests: pages with more than 100 bot requests, for example.
  • Avg Render Time and Avg Serve Time: pages that take over 2 seconds to render on average, for example.
  • SEO Changed in Period: pages whose SEO tags changed in the period. See See which pages changed their SEO tags.

Put Google clicks next to bot requests ​

The Search Console column group brings each page's Google numbers into the same row: GSC: Clicks, GSC: Impressions, GSC: CTR, GSC: Position, their change against the preceding period of the same length, the prior values, and the page's GSC: Decay bucket and GSC: Decay cause.

EdgeComet joins the two sources by URL for the same period, counted in whole days. You need no SQL, export or spreadsheet to put them side by side.

Data Explorer > Bot log > Pages on edgecomet.com for the last 30 days, filtered to Bot Equals Googlebot Mobile and Googlebot Desktop: 162 results with the columns Page, Requests, Avg Serve Time, GSC: Clicks, GSC: Impressions and GSC: Position. The homepage has 169 Googlebot requests, 87 clicks, 342 impressions and position 2.8, /blog/ has 42 requests, no clicks and position 26.9, and /log-analyzer/ has 19 requests, 5 clicks, 3,635 impressions and position 15.3

The GSC: ... filters work on Requests and Pages. They keep the pages, or the requests to pages, whose Search Console totals for the period match the rule. GSC: Presence set to Absent keeps pages with no Search Console data in the period, such as pages AI bots fetch that had no Google impressions.

How decay buckets and causes are defined is explained in Find pages and keywords losing traffic.

See which pages changed their SEO tags ​

The SEO Changes column group shows the first and last value EdgeComet recorded for a page in the period: Old Title and New Title, and the same pair for Canonical URL, Index Status, Meta Robots, H1 Headings, Structured Data and Hreflang.

To list only the pages where a field changed, add SEO Changed in Period under Aggregate Filters and pick the fields. A page matches when any picked field held more than one value in the period, including a tag that appeared or disappeared.

Data Explorer > Bot log > Pages on edgecomet.com for the last 90 days with the aggregate filter SEO Changed in Period Equals Title: 142 results with the columns Page, Requests, Old Title and New Title. /log-analyzer/ changed from "SEO Log File Analyzer for Crawl and Indexing Data | EdgeComet" to "SEO Log File Analyzer for Crawl & Bot Analysis | EdgeComet", and /javascript-rendering-for-seo/ from "JavaScript SEO Rendering for Better Indexing & AI Crawlers | EdgeComet" to "JavaScript Rendering for SEO & AI Crawlers | EdgeComet"

The values come from renders, pre-cache fetches and bypass fetches, the requests that carry a page snapshot. For one page's full history next to its Google traffic, see Track SEO changes on one page against its Google traffic.

Custom extraction columns ​

Each custom extraction rule adds a column and a filter, titled with the rule's name, in the Custom extraction group. On Requests, the column shows the value recorded with that request. On Pages, it shows the value from the page's latest render, pre-cache or bypass fetch.

If a link names a rule that was deleted, the table drops it and reads "Custom extraction field X no longer exists and was removed from this view."

Take the rows elsewhere ​

You can take a Bot log view out of EdgeComet three ways:

Where to find it ​

In the dashboard: Data Explorer > Bot log, with the tabs Requests, Pages and New and lost URLs.

Next ​

Related Articles