Cloudflare server log monitoring

See every crawler, bot and error on your Cloudflare site.

Cloudflare's dashboard shows traffic totals and what your rules blocked. Salience shows each Googlebot request, AI crawler, scraper and error response that reaches your site, with crawler identities checked.

  • Any Cloudflare plan, including Free
  • No change to your site's code
  • Set up in about 10 minutes

Explore sample data

Example Log Explorer rows for a documentation site on Cloudflare: verified Googlebot, OAI-SearchBot, Bingbot and ClaudeBot requests, a request from an address claiming to be GPTBot that failed verification, and a redirect returned to Bingbot on an old-version URL, with an alert about the unverified GPTBot claims.

Log Explorer

docs.example · requests in real time

Example
  • GooglebotVerified/guides/webhooks200
  • OAI-SearchBotVerifiedAI search/api/reference/payments200
  • GPTBotUnverified/guides/rate-limits200
  • BingbotVerified/v1/guides/auth301
  • ClaudeBotVerifiedTraining/changelog200
  • GooglebotVerified/search?q=retry200
WarningUnverified bots claiming to be GPTBot

Requests to /guides/* and /api/* from 198.51.100.61, an address outside OpenAI's published GPTBot ranges.

Recommended: review the address in Recommendations and add the generated WAF rule, which challenges the fake bot.

Cloudflare Analytics and Salience answer different questions

Cloudflare's dashboard reports the zone's traffic as totals and lists the requests your security rules acted on. Salience records each request that passes those rules and reaches the Worker, and reads it for crawler identity, status code and request pattern.

Cloudflare Analytics and Security Events

Zone traffic totals and the actions of your security rules

  • How many requests did the zone serve, and how many came from cache?
  • Which requests did a WAF, rate limiting or bot rule block or challenge?
  • Which countries, paths and status codes make up the traffic?
  • Is an attack under way, and is a rule stopping it?

Blocking, challenging and rate limiting stay in Cloudflare.

Salience

Every request that reaches the Salience Worker on your zone

  • Which crawlers requested which URLs, and were they who they said they were?
  • What status code and cache status did each request get back?
  • Which AI systems request your pages, and which pages do AI assistants send people to?
  • Which automated sources got past your rules, and what are they requesting?

Salience suggests WAF rules for you to paste and applies none itself.

Questions your Cloudflare dashboard can't answer

Four examples from the four teams that use Salience on a Cloudflare site. The site, addresses and figures in the panels are examples.

01Search and SEO

Is Googlebot reaching the pages you want indexed?

Internal search results, parameter URLs and old versions of pages can take a large share of Googlebot's requests while new pages wait. Cloudflare's analytics report the zone's traffic by path, country and status, with no comparison against your sitemap.

Salience records every verified Googlebot request with the URL, the status code, the cache status and the time, groups the requests by section, and compares the URLs Googlebot fetched with the URLs in your sitemap.

Find sitemap URLs Googlebot has not fetched, see how much crawling goes to search and old-version URLs, and see error responses to Googlebot on the day they start.

How Salience reports search crawler activity

Verified Googlebot by section

docs.example · last 7 days

Example
Verified Googlebot requests by site section over 7 days, the URLs fetched, and sitemap URLs with no Googlebot request (example data)
Guides/guides/*3,904URLs fetched812Sitemap URLs not fetched27
API reference/api/*2,177URLs fetched1,460Sitemap URLs not fetched0
Old versions/v1/*1,688URLs fetched1,215Sitemap URLs not fetchedNot in sitemap
Search results/search?q=1,021URLs fetched977Sitemap URLs not fetchedNot in sitemap
31%of 8,790 verified Googlebot requests went to old-version and search result URLs
27guide URLs in the sitemap had no Googlebot request in 7 days

Automated sources that reached the Worker

docs.example · last 24 hours

Example

Requests per hour from unverified automation

peak 1,962

Unverified automated requests ran at about 65 an hour, rose to between 1,874 and 1,962 an hour from 13:00 to 18:59, then returned to about 65.

  • 203.0.113.0/24Not a crawler9,612

    Hosting provider · 3 rotating browser user agents · Every /api/reference/* page in order, no images or scripts

  • 198.51.100.61Unverified2,248

    Hosting provider · GPTBot (claimed) · /guides/* and /api/*, about 40 a minute

  • GooglebotVerified1,431

    Google · Googlebot · Guides and API reference, follows robots.txt

  • 192.0.2.140Not a crawler873

    Hosting provider · Go-http-client/1.1 · /search?q= with sequential terms

02Security and bot threats

Which automated traffic is getting past your Cloudflare rules?

Scrapers rotate browser user agents or borrow a crawler's name from a datacentre address. A request that matches none of your WAF or bot rules is served like any other.

Salience groups the requests that reach the Worker by source address and user agent, checks every claimed crawler name against the operator's published addresses, and shows each source's paths, request rate and timing.

Recommendations list the addresses and fake crawler user agents and generate a Cloudflare WAF custom-rule expression for you to paste: a block for the addresses and a challenge for the fake bots.

How Salience evidences scrapers and bot threats

03AI search and discovery

Which AI systems are requesting your pages?

AI companies run separate crawlers for collecting training data, for building an AI search index and for fetching a page when someone asks an assistant a question. Each one is a separate decision in robots.txt or in your Cloudflare rules.

Salience puts every AI crawler in one of those three classes, verifies it where the operator publishes its addresses, and lists the pages each one requested.

A recorded request shows that a page was fetched. It does not show whether an answer used or cited the page.

The AI referral traffic report counts the human visits that arrive from ChatGPT, Perplexity, Claude, Gemini, Copilot and other assistants, by landing page.

How Salience reports AI crawler activity

AI crawlers by purpose

docs.example · last 7 days · verified requests

Example
Training
  • GPTBot1,846
  • ClaudeBot1,163

Most requested /guides/webhooks

AI search
  • OAI-SearchBot534
  • PerplexityBot377

Most requested /api/reference/payments

User-triggered
  • ChatGPT-User318
  • Claude-User64

Most requested /guides/rate-limits

83human visits referred by chatgpt.com, claude.ai and perplexity.ai, landing on 21 guide pages · AI referral traffic report

04Engineering and operations

Did a Cloudflare rule change start turning crawlers away?

A new WAF custom rule, rate limiting rule or bot setting can refuse Googlebot or AI crawlers while the site loads normally in a browser. Requests a Cloudflare rule refuses before Workers run never reach the Worker.

Salience tracks each verified crawler's daily requests and status codes against your own history, and Site Events mark your releases and rule changes on every chart. The Crawler Rate Dropped alert fires when a crawler that normally visits stops or sharply reduces its visits, and the Edge Policy Change alert fires when 401, 403 or 429 responses to crawlers rise.

Each alert email explains what changed, lists the top URLs or addresses involved and links to the dashboard at the time the alert fired.

How Salience monitors site reliability

Verified crawler requests reaching the Worker

docs.example · daily, % of 14-day average

Example
Verified crawler requests reaching the Worker each day as a share of the 14-day average. Verified search crawlers and verified AI crawlers stayed between 92% and 108% from 6 to 18 October, then fell to 3.1% and 46.8% on 19 October, the day a WAF custom rule was deployed. Human visitors stayed near 100%.0%50%100%6 Oct8101214161819 Oct3.1%46.8%99.2%
Verified search crawlers
103% 3.1%
Verified AI crawlers
100% 46.8%
Human visitors
100% 99.2%
  • Site event · WAF custom rule deployed
WarningCrawler Rate Dropped · 19 Oct

Googlebot and Bingbot requests fell to 3.1% of their usual daily level, and verified AI crawler requests to 46.8%. Human visitors are at their usual level.

Recommended: check Cloudflare Security Events for the rules that acted on verified bots today, and exclude verified bots from them.

Example investigation

Googlebot started receiving 503s on 10 guide pages

An example of how an alert becomes a fix, step by step. The site, URLs and figures are illustrative.

  1. 1

    The alert fires

    At 15:10 a Crawler Error Spike alert reports that verified Googlebot requests to /guides/ URLs are returning 503 far above the site's usual rate.

  2. 2

    The crawler is Google's

    Every request came from an address inside Google's published Googlebot ranges, so these are Google's own fetches receiving a server error.

  3. 3

    The affected URLs

    87 requests across 10 guide URLs. Every response carries the cache status BYPASS, so the origin answered each one.

  4. 4

    When it started

    The first 503 arrived at 14:01, 11 minutes after a Cloudflare cache rule change your team recorded as a Site Event at 13:50. The errors continued into the evening.

  5. 5

    The next step

    Restore caching for /guides/* in the Cloudflare cache rule, then check that Googlebot receives 200 responses on its next visits to the 10 guides.

Explore an investigation in sample data

Crawler Error Spike

docs.example · opened 15:10 · Googlebot · 503

Example
CriticalGooglebot is receiving 503s on guide pages
GooglebotVerified66.249.79.0/24 · in Google's published ranges
Affected URLs10 URLs · 87 requests
  • /guides/authentication50315
  • /guides/pagination50313
  • /guides/idempotency-keys50311
  • /guides/webhooks/signature-verification50310
  • /guides/errors-and-status-codes5039
  • /guides/sandbox-testing5038
  • 4 more URLs · 21 requests
Googlebot 503s per hour

13:50 Site event · cache rule changed

No 503s in the 13:00 hour, when the cache rule changed at 13:50; then 4, 12, 17, 15, 13, 10, 8, 5 and 3 per hour from 14:00 to 22:00, 87 in total.

Recommended next step

Restore caching for /guides/* in the Cloudflare cache rule changed at 13:50, then confirm Googlebot receives 200 on the 10 guide URLs.

What Salience shows for a Cloudflare site

Every report comes from the same request data. Search Console and Google Analytics 4 add search and session figures to the same URLs if you connect them.

URL detail

docs.example/guides/webhooks · last 28 days

Example

/guides/webhooks

Segment · GuidesIn sitemap.xml200 to Googlebot
  • LogsVerified Googlebot fetchesLast 200 at 09:4718
  • LogsAI page fetchesChatGPT-User, Claude-User24
  • LogsAI-referred visitschatgpt.com, claude.ai19
  • Search ConsoleImpressions, 28 daysIndexed, last inspected 8 Oct4,260
  • Google AnalyticsSessions, 28 daysOrganic search 64%905

Who is requesting

  • Verified crawler identities

    200+ crawler identities, checked against published address ranges where the operator publishes them.

  • AI crawlers and AI referrals

    Training, AI search and user-triggered fetches separated, with AI-referred visits by landing page.

  • Scraper and automation patterns

    Systematic requests grouped by address, network and user agent.

What they request

  • Every request, URL by URL

    Log Explorer and a URL page for each path, with status, cache status, client, timing and source.

  • Sections, segments and parameters

    Page groups you define by prefix, pattern or query string, or add from a library of common groups, applied to all history.

  • Sitemap and robots.txt

    Checked automatically when the site is added, with crawl activity set against sitemap coverage.

What happens next

  • Status codes and errors

    Status codes per path, soft 404s and redirects against your own baseline.

  • Alerts and recommendations

    Alerts by email, Slack or webhook with a recommended next step, and a Cloudflare WAF rule generated from the recommendations.

  • Reports

    A weekly email report, a daily digest and a written technical SEO report.

Salience also runs its own site crawler and crawl audit, and has a public API, a CLI and an MCP server.

How to set up server log monitoring on Cloudflare

Setup takes about 10 minutes. The app installs the Worker for you or walks you through each step, and checks the connection at the end.

  1. 1

    Enter your domain and create your account

    Use the domain your visitors see, such as yoursite.com. The Free plan needs no card.

  2. 2

    Deploy the Salience Worker on your zone

    Choose automatic setup with a Cloudflare API token limited to the site's zone, or follow the steps in the app: create the Worker, store your ingest key as a secret, and add routes for yoursite.com/* and www.yoursite.com/* with Failure mode set to Fail open.

  3. 3

    Confirm requests are arriving and check your site

    The connection check sends three test requests to your site and confirms they reach Salience. Then open your site in a browser and check its pages still work. From then on, requests appear in Log Explorer within seconds.

What you need

  • A site on a Cloudflare zone, on any plan including Free
  • The site's DNS records set to Proxied (orange cloud)
  • Permission to deploy a Worker and add routes on the zone

What stays the same

  • No change to your site's code
  • No DNS change when the records are already proxied
  • Your security, cache and bot rules run as before

Before you start

  • Setup checks whether another Worker already handles the site, and stops without changing anything if one does
  • Set Fail open on every Worker route. It lets requests through to your origin if the Worker's daily allowance runs out
  • Collection covers requests on proxied records that reach the Worker, after your security rules have run
  • History starts when collection is connected

Someone else manages Cloudflare? Send them a delegated setup link from the app. It is limited to this site for 30 days, and they complete the Worker steps without access to your Salience account. Your AI agent can also do the setup from a prompt the app gives you.

How your request data is collected and controlled

What is collected

  • Timestamp, method, host and path
  • Status code and response size
  • Client address and user agent
  • Referrer, country and cache status

What is not collected

  • Requests a Cloudflare rule refuses before the Worker runs
  • Requests to DNS-only (grey cloud) records
  • Request and response bodies
  • Cookie contents

Where it is processed

  • AWS eu-west-2 (London), with encrypted S3, DynamoDB and Aurora storage
  • A GDPR Article 28 DPA applies to every account
  • Never sold, used for advertising or shared between customers

Who controls it

  • The Worker runs in your own Cloudflare account
  • Removing its routes stops collection straight away
  • WAF rules from Salience are applied only when you paste them

The Cloudflare Worker allowance

Cloudflare's Workers Free plan allows 100,000 Worker requests a day across your Cloudflare account, resetting at 00:00 UTC. The Worker runs on every request to the routed hostnames, including images, scripts and bots, so a busy site can use the allowance within hours; after that, Salience receives no requests until midnight UTC and Fail open keeps the site serving. Workers Paid costs $5 a month and includes 10 million requests. Cloudflare Logpush sends the zone's request logs with no Worker where Cloudflare offers it for the zone, and Cloudflare bills it by usage.

Salience security and data protection

Cloudflare questions

Do I need Cloudflare Enterprise or Logpush?

No. The Salience Worker works on any Cloudflare plan, including Free. Logpush is an alternative that needs no Worker: Cloudflare sends the zone's own request logs to Salience, where Cloudflare offers the HTTP requests dataset for the zone, and bills Logpush by usage on your Cloudflare account.

Cloudflare Worker and Logpush setup

Will the Worker slow down or break my site?

The Worker passes each request straight through to your origin and sends a compact log record to Salience in the background. Automatic setup fetches your pages before and after it adds the routes, and removes its routes if a page answers differently. Fail open on every route lets requests through when the Worker's daily allowance is used up; it does not cover an error in the Worker or at your origin. Removing the Worker's routes stops collection.

What if another Worker already runs on my site?

Setup checks the zone's Worker routes and Workers Custom Domains first. If one already covers your hostname, it stops, lists what it found and changes nothing; an existing Worker is never replaced or removed. You can send the findings to a developer with a delegated setup link, or use Cloudflare Logpush, which needs no Worker.

Does Salience see requests my Cloudflare rules block?

Requests a Cloudflare rule refuses before Workers run never reach the Worker, so they are not collected. Salience shows the effect as a drop in that crawler's requests, and Cloudflare's Security Events list what each rule acted on. Refusals sent by your origin (401, 403 and 429 responses) are collected. With Logpush as the log source, each request also carries Cloudflare's security action.

Can I see Googlebot and AI crawlers?

Yes. Every request from Googlebot, Bingbot, GPTBot, ClaudeBot, PerplexityBot and 200+ other crawlers that reaches the Worker is recorded with the URL and the status code it received, and checked against the operator's published addresses where they publish them. AI crawlers are split into training, AI search and user-triggered fetches. A recorded fetch shows that a page was requested. It does not show whether an answer used it.

Is this my site's request data or my Worker's application logs?

Request data for your site: the requests Cloudflare proxies for your domain. Salience does not collect console output or exceptions from Workers you have written yourself.

Can I see data from before I connected?

Collection starts when the Worker is connected; the Worker cannot send requests from before it was deployed. Older Apache, Nginx or CloudFront log files can be uploaded with Import Logs to backfill earlier dates.

What does monitoring cost?

The Free plan covers one website, 500,000 requests a month and 30 days of history, with no card. Paid plans start at $19 a month, each with a 14-day trial. On the Cloudflare side, Workers Free allows 100,000 Worker requests a day and Workers Paid is $5 a month for 10 million.

Salience plans and pricing

Start monitoring your Cloudflare site for free.

The Free plan needs no card. Setup needs permission to deploy a Worker on your Cloudflare zone.

Explore sample data