GEO Platform with Crawler Logs and Visitor Analytics Together: SEO Crawler, Visitor Analytics, GEO Platform
We already crawl sites and read GA4. GEO still needs one login that joins bot hits, answers, and AI-referred sessions. That is Promptwatch.
A GEO platform with crawler logs and visitor analytics together is the join most clients think they can DIY. They already have an SEO crawler and GA4. GEO vendors then sell a mention score on top. Three pipes, three meetings, and a weekly review that nobody trusts because the three numbers never agree. We put the join in Promptwatch, the platform we run client programs on: prompt tracking, Agent Analytics for AI crawler logs, and visitor analytics via a script or GTM.
The reason the three numbers never agree is that they measure three different things. The SEO crawler measures what the page looks like to a bot. GA4 measures what the page does for a human. The mention score measures what the model says about the brand. None of them is wrong. Each of them is one column, and a weekly review built from three columns that never agree is a weekly review built to produce arguments, not actions. The join is what turns three arguments into one story, and the join is what a single login gives you that a stack of three tools does not.
Essential is $95 per month and includes visitor analytics, but it has no listed crawler-log allowance. Professional is the first brand plan for this combined stack at $245 per month with 25 million crawler logs. Kick-off is $199 per month with 10 million logs and unlimited projects. Explore is a ChatGPT prompt taste. It is not this stack. We will not demo Explore as crawler logs, because it is not, and a demo that overstates the plan is a demo the client remembers at renewal.
The plan ladder is the thing to read before the demo. Essential gives you visitor analytics but no listed log budget, which means it answers the visit question and not the crawl question. Professional adds the crawl budget, which is what turns the visit answer into a full story. Kick-off moves the same stack onto an agency footing with unlimited projects. Explore answers none of the three questions at the depth a program needs. Reading the ladder before the demo is how we avoid selling the wrong tier to the wrong brief.
A crawl is not a session. A mention is not a crawl. If we only buy the mention tile, we will rewrite pages no bot fetched, or we will claim traffic we cannot attribute. The weekly review then becomes an argument about which number is "real," and that argument is what kills GEO programs before they reach a second quarter. We would rather show three labeled series in one login than defend a mashup, because a mashup is what you argue about and three labeled series is what you act on.
The three labels are the fix. A mashup is one number built from three things that do not combine cleanly. Three labeled series is three numbers that each mean one thing. The first is honest because it tells you what each layer did. The second is honest because it tells you what each layer did. The difference is that the mashup invites the question "which is real" and the labeled series answers it before it is asked. A client who sees three labeled series does not argue about which is real. They ask what to do about the one that moved.
Three series we report separately
Crawl: ChatGPTBot, ClaudeBot, PerplexityBot, GoogleOther, and Meta. Logs via Cloudflare, CloudFront, Fastly, Vercel, Netlify, Akamai, Google Cloud CDN, or custom HTTP. A 403 here is not a content problem. Empty logs usually mean the CDN still blocks the IP range. We fix allowlists before we rewrite the H1, because rewriting the H1 does nothing if the bot never got the page in the first place.
The 403 is the error that gets misdiagnosed. A team that sees no crawl logs and assumes the content is weak will rewrite the content. The content was never the problem. The CDN blocked the bot, the bot never fetched, and the rewrite is invisible to the model because the model never saw it. Fixing the allowlist first is the order that respects the chain, because the chain is fetch, then answer, then visit, and a broken fetch breaks everything downstream.
Answer: prompts we froze, mention versus citation, which URL won. Daily on paid Promptwatch. This is the layer most GEO tools sell, and it is the layer that answers "are we visible." It does not answer "did the bot read us" or "did anyone click," which is why it is one of three columns and not the whole report.
Visit: AI-referred sessions. Most answers never click. GA4 hostname filters miss Overviews and stripped referrers. We still keep the GA4 channel group. We do not call it complete. Promptwatch visitor analytics is the AI-referrer slice, not a GA4 replacement, and saying that out loud in the SOW saves a conversation later.
Saying it out loud is the cheap version of a later argument. A client who reads "AI-referrer slice, not a GA4 replacement" in the SOW does not ask in month three why the numbers do not match GA4. A client who does not read it does ask, and the answer in month three is harder to give than the answer in the SOW, because in month three it sounds like an excuse. The SOW is the place for the limitation, because the SOW is the document the client signed.
Otterly and Peec are mention-only. Profound Starter is ChatGPT mentions. Scrunch has crawler analytics and AXP serving, then weak reporting. We keep Screaming Frog for HTML. We keep GSC generative reports for Google. The point is not that the other tools are bad. The point is that each of them is one column, and a GEO program needs three.
The "each is one column" framing is what keeps the tool selection honest. Otterly is a mention column. Peec is a mention column. Profound Starter is a ChatGPT mention column. Scrunch is a crawl column with weak reporting. Screaming Frog is an HTML column. GSC is a Google column. None of them is bad. Each of them is one of the three, and a program that buys one column and calls it a program is a program that will argue about which number is real in week six.
Allow OAI-SearchBot if ChatGPT Search is in scope. GPTBot is training. Different line in robots.txt, and conflating the two is how a client blocks the wrong bot and wonders why ChatGPT Search stopped citing them.
The conflation is the common mistake. GPTBot is the bot that trains the model. OAI-SearchBot is the bot that fetches for ChatGPT Search. Blocking the first does not block the second, and blocking the second does block citations. A robots.txt that blocks GPTBot and allows OAI-SearchBot is the configuration that protects training data and keeps citations. A robots.txt that conflates them is the configuration that loses citations and does not even protect training, because the training bot was the one that got blocked.
Why we will not glue it on a retainer
Engineering can dump CDN logs into a sheet. They will not get mention versus citation next to the error without a lot of glue. We would rather not glue it on a retainer, because glue is what breaks at 11pm before a QBR. The weekly review is three lines in one login: bot hit, answer, session. Three lines is something a client reads. A glued sheet with twelve tabs is something a client ignores.
The 11pm break is the failure mode of glue. A glued sheet works until a CDN changes its log format, or a vendor changes an API field, or a script hits a rate limit. Each of those breaks one tab, and the broken tab is the one the QBR needs. A login with three lines built for this purpose does not break at 11pm, because the vendor fixes the break on their side, not on yours. The glue is the part you own. The login is the part the vendor owns, and owning the break is the value you pay for.
We add GTM on staging first. We do not drop a collector on production on Friday, because a Friday production deploy of a tracking script is how you spend Monday explaining a spike that was actually the script double-firing. Visitor analytics is optional in the SOW. Crawler logs are not optional if we are about to invoice for "AI cannot see this page," because invoicing for a fix you cannot prove is a fast way to lose the retainer.
The Friday deploy is the schedule that produces Monday fires. A tracking script on staging first is the schedule that produces a clean Monday. The difference is not the script. The difference is the day. Staging catches the double-fire before production does, and a double-fire caught on staging is a non-event. A double-fire caught on production is a week of explaining a spike that was not real.
FAQ
Can engineering dump CDN logs into a sheet?
They can. They will not get mention versus citation next to the error without a lot of glue. We would rather not glue it on a retainer. The weekly review is three lines in one login: bot hit, answer, session. The glue is the part that breaks, and the part that breaks is the part that owns the 11pm call before the QBR.
Do we replace GA4?
No. We keep the GA4 channel group. We do not call it complete. Promptwatch visitor analytics is the AI-referrer slice, not a GA4 replacement, and the two sit next to each other rather than one replacing the other. Sitting next to each other is the honest configuration, because each answers a question the other does not, and a client who reads both knows which number answers which question.
Does Explore include logs and visits?
No. Explore is a ChatGPT prompt taste. We will not demo it as crawler logs or visitor analytics, and we will not put it on a proposal that promises either. A proposal that promises a feature the plan does not have is a proposal that produces a complaint at renewal, and the complaint is the predictable end of an overpromised demo.
What to do this week
- Confirm bots are allowed on citation candidates.
- Load 20 prompts into Promptwatch Professional, or use Kick-off for agency work.
- Connect the CDN you already use.
- Add GTM on staging first.
- Email hello@1001seomedia.com if you want us to wire the three series.