Most SEO reporting is theater. Rank trackers, “visibility scores”, third-party domain authority numbers, none of it tells you whether the work you paid for made the business any money. Google Search Console does, if you read it correctly and compare the right things.
This is the process I use to evaluate a round of SEO or AEO work: read the Performance screen for direction, export the comparison data to Google Sheets, then hand that sheet to Claude for a full evaluation. The last step is what turns a pile of numbers into something you can act on.
Reading the Performance Screen
Search Console’s Performance report gives you four metrics. They are not equal in value, and the ranking of their importance is where most people get this wrong.

Clicks Are the Only Metric That Pays
Total clicks is the metric that matters. It’s the count of people who saw you in Google and chose you. Everything else is a supporting detail that explains why clicks moved.
In the screenshot above, clicks went from 1.18K to 1.74K, a ~50% increase. That’s the headline. That’s real humans arriving on the site who weren’t arriving before. If clicks are up and nothing else looks good, the work is still working.
Impressions Can Drop and That’s Often Good
Impressions count how many times a URL of yours appeared in a search result, including position 87 on page nine where nobody has ever clicked anything.
A large chunk of most sites’ impressions are worthless: thin pages, tag archives, old posts, and near-duplicate content ranking deep for queries nobody converts on. When you consolidate that content, impressions fall. That’s the intended outcome, not a regression.
The relationship to watch is clicks up while impressions are flat or down. That means you’re winning a bigger share of the searches you appear in. It’s the single healthiest pattern in the entire report.
Average CTR Is the Efficiency Ratio
CTR is just clicks ÷ impressions. It’s useful as a sanity check on the two above: if clicks rose and CTR rose, you got better at converting the same visibility. If clicks rose only because impressions exploded, you got louder, not better.
Average Position Is the Most Misleading Number in the Report
Average position is an average across every query and every page, weighted by impressions. It moves for reasons that have nothing to do with quality.
In the screenshot, position “worsened” from 9 to 11.1 while clicks went up 50%. That looks like a contradiction until you understand what happened: low-value pages that ranked well for irrelevant queries and earned zero clicks in six months were removed. Those pages were propping up the average. Deleting them dropped the average position and increased revenue-relevant traffic at the same time.
Never report average position to a business stakeholder as a primary metric. It invites the wrong conclusion in both directions.
The Generative AI Features Report
For AEO work specifically, Search Console now has a Performance → Generative AI features report (still beta). This isolates impressions and clicks coming from AI Overviews and AI Mode, separate from the classic blue-link results.

This is the closest thing to direct proof that AEO work is landing. In the case above, AI-surface impressions went from 13K to 23.7K, just under 2x, over the same period the structural AEO work was deployed. Google shows almost no click data for AI surfaces, so impressions and the trend line are what you have. Use them.
It’s also a reasonable leading indicator for ChatGPT, Claude, and Perplexity citations, because the same machine-readable structure that gets you pulled into AI Overviews is what those systems parse.
Setting Up the Comparison
Direction only means something against a baseline. In Search Console:
- Open Performance → Search results
- Click the Date filter → Compare tab
- Choose Custom and set two ranges of identical length
- Set the split point at the date your changes went live
Rules that matter:
- Equal-length ranges, always. Comparing 28 days to 14 days produces garbage that looks like a catastrophe.
- Leave a buffer after deployment. Google needs to recrawl and reprocess. Two to three weeks after the change is the earliest the data means anything.
- Watch for seasonality and day-of-week alignment. Compare 14 days to the preceding 14 days, not to a holiday week.
- Don’t filter before exporting. Export everything. Claude can slice it far better than the Search Console UI can, and filters applied in the UI carry through to the export.
Exporting to Google Sheets
Hit EXPORT in the top right, choose Google Sheets. Search Console writes a sheet with one tab per dimension:
- Queries, the search terms, with both periods side by side
- Pages, URL-level performance
- Countries
- Devices
- Search appearance
- Dates, the daily series
With comparison mode active, every tab has paired columns, e.g. Last 14 days clicks and Previous 14 days clicks. That paired structure is exactly what makes this exportable data useful to an LLM: every row already contains its own before and after.
Two limits to know:
- 1,000 rows per tab. Fine for most sites. If you have more meaningful queries than that, you need the Search Console API or the BigQuery bulk export instead.
- Anonymized queries are omitted. Google hides low-volume queries, so query-tab click totals will not sum to the site total. Don’t chase the difference.
Google Sheets over CSV, specifically: it stays one linked document with every tab intact, and Claude can read it directly rather than you juggling six separate CSV files.
Handing It to Claude
Once the sheet exists, connect Claude to Google Drive and ask it to evaluate the export.

The prompt I use:
evaluate the data in the "{Client} Search Console: 8/24-9/7 vs. 8/10-8/24" google
sheet we've exported from search console, then provide a brief summary of our
SEO/AEO optimizations: are they working in impactful ways that help our business?
Three things make this prompt work:
- It names the sheet exactly. No ambiguity about which document to open.
- The date ranges are in the title. Claude knows which period is “after” without you explaining the comparison structure.
- It asks a business question, not a data question. “Are they working in impactful ways that help our business?” forces synthesis rather than a restatement of the numbers you already have.
That last point is the whole trick. Ask “summarize this data” and you get a table read back to you. Ask whether the work helped the business and you get an argument, with the numbers as evidence.
Claude will work across the tabs, cross-reference the query and page dimensions, and catch the things that are tedious to find by hand: a page whose clicks doubled while impressions fell, a query that went from zero to real volume, section-level URL anchors appearing in the index for the first time.
Follow-Up Prompts Worth Running
Which pages lost clicks, and is the loss meaningful or noise?Which queries are in striking distance — position 11-20 with real impression volume?Are there pages with high impressions and near-zero CTR that need a title/meta rewrite?What's the device breakdown telling us? Did mobile and desktop move in the same direction?
A Sample Report
Here’s an actual output from this process. Two-week comparison, immediately following an AEO restructure with no new content published.
In two weeks, with no new content, the AEO restructure drove 12% more clicks on 12% fewer impressions, lifted rankings on every device, and got Google indexing our pages section by section as jump links, which is the same machine-readable structure LLMs cite from. The WIDS buyer’s guide jumped from position 29 to 11 on a core category term, and every major threat-device research page roughly doubled its clicks.
Quick facts
- Clicks +12% (935 → 1,046) while impressions fell 12%. That’s a CTR jump from 0.96% to 1.21%, meaning the site is winning a bigger share of the searches it shows up for, not just showing up more.
- Average position improved on every device. Mobile went from 9.1 to 8.0 and mobile clicks rose 39%.
- US clicks up, UK +114%, Australia +121%, Mexico +183%, Turkey +333%, Saudi Arabia +300%. Translated-result clicks went from 2 to 32. International reach expanded without any localized content.
AEO restructure is verifiably working
- Google is now indexing individual sections as jump links.
#how-do-i-detect-an-o-mg-cable,#has-an-o-mg-cable-ever-been-used-in-a-real-attack,#do-data-blockers-and-charge-only-cables-help, plus Bash Bunny and Flipper Zero section anchors, all went from 0 impressions to hundreds. That only happens when the heading and FAQ structure is machine-readable, which is exactly what the llms.txt, schema, and page restructure work was for. - Those same structural signals are what LLMs pull from, so this is the leading indicator for ChatGPT/Perplexity citations too.
Page-level results
| Page | Clicks | Change | Position |
|---|---|---|---|
| omg-cable | 99 → 208 | +110% | 7.3 → 6.3 |
| bash-bunny | 25 → 62 | +148% | 5.4 → 4.5 |
| wifi-pineapple | 2 → 29 | +1,350% | impressions 437 → 4,013 |
| flipper-zero | 8 → 20 | +150% | impressions +83% |
| mousejack | 20 → 26 | +30% | 5.1 → 4.4 |
| usb-charger-bug | 1 → 6 | +500% | CTR 0.85% → 3.92% |
| WIDS buyer’s guide | , | impressions 197 → 3,792 | 29 → 11 |
| contact-us | 5 → 13 | +160% | 3.4 → 2.5 |
| about | 21 → 29 | +38% | CTR 1.30% → 2.32% |
| platform/products | 9 → 14 | +56% | CTR 0.96% → 1.67% |
| sensor-arrays | 5 → 9 | +80% | CTR 2.06% → 3.83% |
On the WIDS guide specifically: “intrusion detection systems” went from 1 to 3,586 impressions. That page is now in striking distance of page one for a core category term.
Business impacts
- Bastille now owns the top organic results for the threat-device research that security teams, TSCM practitioners, and government evaluators read before they ever talk to a vendor. Every one of those pages is Bastille content, not a competitor’s.
- The research pages are the authority engine. They earn the links, citations, and topical trust that lift the commercial pages over time. The WIDS guide’s jump from position 29 to 11 in two weeks is that halo already showing up.
- Contact-us and product pages improving in CTR and position means the brand is getting more of the high-intent clicks it does receive.
- Query-level wins on commercial terms: “wireless intrusion detection system” 3 → 7 clicks, “wireless intrusion detection systems” 0 → 2, “what is wids” 0 → 2, “rf detection system” 0 → 2, “radio frequency monitoring system” 0 → 2, “technical surveillance countermeasures (tscm)” 1 → 2 with position 7.0 → 3.3.
Notice what that report does that a dashboard can’t: it connects a URL-fragment impression count to the reason the AEO work was done, and it connects a position change on one page to the commercial pages it will lift later. That’s the analysis layer, and it’s the part that used to take an afternoon.
What to Watch Out For
- Don’t declare victory in week one. Recrawling and reprocessing take time. Two to three weeks minimum, four to eight for anything structural.
- Don’t let Claude’s summary go out unverified. Spot-check two or three of the biggest claims against the sheet. The numbers come from the export so they’re accurate, but the causal story is inference, and inference can be wrong.
- Separate correlation from cause. If a competitor deindexed themselves, or Google shipped a core update mid-window, your numbers moved for reasons that had nothing to do with you. Check the Google Search Status Dashboard for updates overlapping your comparison window.
- Clicks, not rankings, in the client report. Every time you report position as the headline, you set yourself up to explain away a number that doesn’t measure anything a business cares about.
The Short Version
Export the comparison. Ask Claude a business question about it. Verify the big claims. Report clicks.
The compounding benefit is that once you run this a few times, you build a genuine sense of which optimizations move clicks and which just move impressions. That’s the difference between doing SEO and knowing whether your SEO worked.