Technical

How to check which AI crawlers visit your WordPress site

Published October 15, 2026 · 6 min read

Short answer: your server access log knows. Search it for the bot names, count the hits, and check a few IPs against the vendor's published ranges. Ten minutes if you know where the log lives. This post shows you where, what to grep for, and how to spot a fake.

"Is ChatGPT reading my site?" is the question behind half the emails about AI SEO. The honest answer is not in Google Analytics and not in Search Console. It is in the access log, the boring text file your web server writes for every request. Let us go look at it.

Step 1: find the log

Where it lives depends on your host:

If you are on Cloudflare, remember it sits in front of your server. Your origin log only shows requests Cloudflare let through, which is actually useful: it tells you what got past the firewall.

Step 2: grep for the names that matter

The current names, straight from OpenAI's bot documentation and Perplexity's bot guide:

On a Linux box the check is one line:

grep -Ei 'OAI-SearchBot|GPTBot|ChatGPT-User|PerplexityBot|ClaudeBot' /var/log/nginx/access.log | awk '{print $1, $12, $13, $14}' | sort | uniq -c | sort -rn | head -20

The count per bot per IP is the interesting part. One hit from OAI-SearchBot on your best guide is worth more than fifty hits on your tag pages.

Step 3: check the bot is real

Anyone can write "GPTBot" in a User-Agent header. It takes one curl command, so scrapers do it constantly. Two checks separate real from fake:

  1. Reverse DNS. Take the IP and run host 1.2.3.4. Real OpenAI crawlers resolve back to openai.com domains. Real Perplexity bots resolve to perplexity.ai. Random hosting providers in the result mean fake.
  2. Behavior. Real crawlers fetch robots.txt first and space their requests. A "GPTBot" pulling 300 pages in a minute is neither polite nor OpenAI.

Step 4: decide what the numbers mean

A few patterns we see in audits: