How it works

Detect. Classify. Compare.

EdgeShaping answers one simple question:
Which AI bot is reading which page, when — and why?

Step — Detect

Dictionary-based detection

A continuously updated crawler dictionary identifies traffic from the ChatGPT, Claude, Perplexity and Gemini families and beyond, logging bot name, URL, timestamp and user agent. The dictionary grows with every update.

Step — Classify

Grouped by purpose

Not every "AI bot" means the same thing. Training crawls feed models. Search & RAG fetches back answers. User-triggered fetches happen because a person just asked an AI about you. EdgeShaping reports each visit by what it was for.

Step — Compare

Side by side with humans

AI visits are matched against human page views (AHTG) or Google Search clicks (AHQG), turning the gap between your two audiences into a four-quadrant map, per page.

AHTG / AHQG Matrix

Four quadrants to read.

The AHTG matrix plots AI visits against human page views; the AHQG matrix plots them against Google Search clicks. Different human-side data, same way of reading the map.

LATENT GAP AI reads it — humans haven’t arrived 3 pages
URLAIHumans
/blog/consent-mode-checklist 3 0
/docs/api-reference 2 0
/blog/server-side-tagging 2 0
ALIGNED Reaching both audiences 2 pages
URLAIHumans
/blog/ga4-migration-guide 3 12
/features 2 8
INCUBATION Still growing 1 pages
URLAIHumans
/blog/release-note-v2 0 1
STANDARD Humans read it — AI hasn’t noticed 3 pages
URLAIHumans
/pricing 0 21
/contact 0 14
/blog/campaign-report 1 9
Beyond the matrix

Two observations past the quadrants.

Inferred Path

URLs the AI assumed would exist

URLs that AI bots request even though they're not in your sitemap. Some are stale links. Others are paths an AI invented because it expected your site to have that page — which makes them a signal of demand you haven't written yet.

Dark Pages

Pages nobody reaches

Pages that exist in your sitemap but are reached by neither AI nor humans. For important pages, that's a linking problem. For the rest, it's a merge, delete or noindex decision waiting to be made.