Question

How to check GPTBot visits

Use raw access logs first. GPTBot checks are easy to misread when OAI-SearchBot and ChatGPT-User are mixed into one dashboard line.

Quick process

  1. Export recent access log lines with user-agent fields.
  2. Filter for GPTBot only (case-insensitive).
  3. Separate GPTBot from OAI-SearchBot and ChatGPT-User traffic.
  4. Review status mix and path distribution before changing policy.

Nginx checks

grep -i "GPTBot" /var/log/nginx/access.log | tail -n 60
grep -i "GPTBot" /var/log/nginx/access.log | awk '{print $9}' | sort | uniq -c | sort -nr
grep -i "GPTBot" /var/log/nginx/access.log | awk '{print $7}' | sort | uniq -c | sort -nr | head -n 20

Caddy JSON checks

jq -r 'select(((.request.headers."User-Agent"[0]) // "") | test("GPTBot"; "i")) | "\(.status)\t\(.request.uri)"' /var/lib/caddy/logs/llmsfile-access.log | head -n 80
jq -r 'select(((.request.headers."User-Agent"[0]) // "") | test("GPTBot"; "i")) | .status' /var/lib/caddy/logs/llmsfile-access.log | sort | uniq -c | sort -nr

Useful distinction

What healthy GPTBot evidence looks like

  1. You can see stable hits across multiple days, not a single burst.
  2. Status mix is mostly 200/304 (unless intentionally blocked).
  3. Paths include crawl-entry files and selected public content.

Common misreads

Related pages: check OAI-SearchBot visits and 403 behind Cloudflare troubleshooting.

Open AI crawler log checker