Show automated and AI traffic separately in Ghost Analytics

Title: Show automated and AI traffic separately in Ghost Analytics

Ghost Analytics does a great job of showing how people visit and engage with a publication in their browsers. I would also like some visibility into the automated services accessing our content.

When I previously routed my Ghost publication through a Cloudflare Worker, I could inspect requests at the edge. I was surprised to discover that browser visits recorded by JavaScript analytics were only the tip of the iceberg.

There was considerably more automated activity, including:

  • Search-engine crawlers

  • SEO and monitoring tools

  • Feed readers and link-preview services

  • AI training and search crawlers

  • AI assistants retrieving a page in response to a user request

That last distinction is becoming particularly important. A request from an AI assistant is automated, but it can still represent genuine human interest in an article.

For example, OpenAI distinguishes between GPTBot for potential model training, OAI-SearchBot for ChatGPT Search, and ChatGPT-User for actions initiated by a ChatGPT user. Lumping all of these together as “bots” misses useful information about how content is being discovered and consumed.

Because these requests do not execute Ghost’s browser-based analytics, they are currently invisible. Publishers therefore cannot tell whether an article is being indexed for search, collected for AI training, or actively retrieved on behalf of a person.

I would love to see a separate Automated traffic section in Ghost Analytics. Keeping it separate would ensure that bots never inflate normal visitor and page-view statistics.

A useful first version could answer:

  • Which known services are accessing my publication?

  • How much automated activity is search, AI training, AI search, user-directed retrieval, or another category?

  • Which posts and pages are requested most often?

  • Is automated access increasing over time?

The main goal is visibility, not necessarily blocking. Some automated services are beneficial, some publishers may prefer to exclude, and others—such as an assistant retrieving an article for a user—represent a new form of readership.

Cloudflare provides this kind of visibility and control, but using Cloudflare as a proxy in front of Ghost(Pro) is not supported. Ghost(Pro) customers therefore cannot simply enable Cloudflare’s bot analytics or AI crawler controls, even if their DNS is managed there. Self-hosted publishers may be able to build their own solution, but doing so requires additional infrastructure and technical knowledge.

This makes Ghost itself the most logical place to provide a publisher-friendly view of automated and AI traffic—particularly for Ghost(Pro) customers who otherwise have no access to the request data handled by Ghost’s own infrastructure.