# AEO veneer, SEO core — anatomy of one 2026 analyzer report

We ran our own agency through a free analyzer marketed for ChatGPT, Claude, and Perplexity visibility. It came back with nine recommendations and zero tests of what an AI crawler actually reads.

By AgentSite · 6 min read · Updated 2026-06-18

We ran our own agency's homepage through a free analyzer at [neilpatel.com](https://neilpatel.com/seo-analyzer/) — a tool whose marketing surface promises "Track mentions on Gemini and ChatGPT," "Research AI prompts and responses," and "Do you want your business to be found on Perplexity?" The report came back with nine recommendations. We found that zero of them tested the answer to that headline question.

The result page is public and bookmarkable. The recommendations are reproducible — anyone can submit a URL and see the same shape of output. So this is a fair piece of evidence for what one widely-marketed AEO-flavored analyzer is actually measuring in 2026.

## The nine items

Below is every recommendation the analyzer returned for our homepage, in the order it surfaced them, with the published time estimate and what each item actually tests against the [five-layer AEO model](/five-layer-aeo).

| # | Recommendation | Time est. | What it measures | AEO relevance |
| --- | --- | --- | --- | --- |
| 1 | "Your backlink profile needs work…" | 3–6 months | External link authority | Indirect — external citations help LLM grounding |
| 2 | "Not using your most popular keywords in your Title tag" | 10 min | Layer 1 head metadata | Direct — title is the highest-confidence signal a non-JS reader has |
| 3 | "Your Meta description is too long…" | 15 min | Layer 1 head metadata | Secondary — some extractors still parse it |
| 4 | "Add a H1 to your webpage" | 10 min | Document structure | Layer 4 — chunk extraction relies on headings |
| 5 | "This table shows your most used keywords." | — | Diagnostic display, no action | None |
| 6 | "You should write more copy for this page" | 2–4 hours | Content depth | Layer 4 — depth helps citability |
| 7 | "Improve the exposure your content gets on social media" | 2 months | Off-site brand exposure | Indirect — mention probes pick up brand voice |
| 8 | "Optimize this page, to make it load faster" | 1–2 weeks | Core Web Vitals | Negligible — non-JS crawlers don't run Lighthouse |
| 9 | **"Create an AMP version for this URL"** | 8 hours | AMP-formatted mirror | **Net negative — see below** |

Across the table: zero items check whether the homepage returns a hydrate-only `<div id="app">` to a non-JS reader. Zero items check the site's robots.txt for AI-crawler entries. Zero items check whether the same URL serves a 403 to GPTBot and a 200 to a browser. Zero items check for a markdown twin, a `/llms.txt`, JSON-LD schema validity, or what ChatGPT actually says when asked about the site.

> **0 of 9.** Number of items in the report that test what an AI crawler actually fetches.

## The AMP item

Item nine recommends building an AMP version of the page. AMP, the open-source mobile-page framework, lost its Top Stories ranking advantage in [April 2021](https://developers.google.com/search/blog/2021/04/more-details-page-experience), when Google announced that the carousel would open to any page meeting its broader page experience criteria, regardless of AMP status. The trade-press coverage at the time — from [Search Engine Land](https://searchengineland.com/amp-wont-be-required-for-googles-top-stories-section-335276) and others — framed the move as the end of AMP's structural advantage. Active development on the AMP project has wound down every year since.

Recommending it in 2026 is the load-bearing tell that the underlying scoring rubric predates the agent era. The "Perplexity / Claude / ChatGPT" marketing language is the wrap; the rubric inside is a 2018 SEO audit with the time estimates intact.

## The drift

This pattern is not unique to one analyzer. It is the dominant shape of "AEO" tooling shipping today: an SEO scoring engine with a new marketing skin. The skin is responsive to demand — Gartner's February 2024 [search-volume forecast](https://www.gartner.com/en/newsroom/press-releases/2024-02-19-gartner-predicts-search-engine-volume-will-drop-25-percent-by-2026-due-to-ai-chatbots-and-other-virtual-agents) (25% decline in search engine volume by 2026, 50% by 2028, driven by AI chatbots) made every SEO product reposition. The scoring engines underneath have moved more slowly.

The mechanical gap matters because the bytes an AI crawler downloads are not the bytes a Chromium tab renders. Vercel measured 569 million GPTBot fetches in a single month and reported that ["none of the major AI crawlers currently render JavaScript"](https://vercel.com/blog/the-rise-of-the-ai-crawler). A title-tag-and-meta-description audit catches a small fraction of the failure modes that empty the visible response to a non-JS reader. The rest sit in [SSR-junk and bot walls](/ssr-junk-bot-wall), in [robots exclusion entries](/robots-exclusion-protocol) that block ClaudeBot or PerplexityBot at the edge, in [/llms.txt](/llms-txt) presence or absence, and in [schema-content fit](/schema-content-fit) that decides whether a citation extractor can quote you confidently.

## Diagnose your own URL in 60 seconds

The five checks below run from any shell against any URL and return the snapshot an AI crawler would see. None of them require a tool.

```bash
URL='https://example.com'

# 1. SPA-shell test — how many visible-text words does a non-JS reader get?
WORDS=$(curl -sS "$URL" \
  | sed -E 's/<script[^>]*>.*<\/script>//gI; s/<[^>]+>/ /g' \
  | tr -s ' \n' ' ' | wc -w)
echo "$URL — visible words: $WORDS"
# < 50  = SPA shell.  < 200 = thin.  Healthy marketing page: 500+.

# 2. Robots — which AI crawlers does the site block?
curl -sS "${URL%/}/robots.txt" \
  | grep -iE 'gptbot|claudebot|perplexitybot|oai-searchbot|user-agent' \
  || echo "no AI-bot rules"

# 3. Bot-wall test — does the same URL serve different status codes?
curl -sS -A 'GPTBot/1.0 (+https://openai.com/gptbot)' -o /dev/null \
  -w "GPTBot:  %{http_code}\n" "$URL"
curl -sS -A 'Mozilla/5.0 Safari/537.36' -o /dev/null \
  -w "Browser: %{http_code}\n" "$URL"

# 4. Markdown twin presence
curl -sS -o /dev/null -w "Markdown twin: %{http_code}\n" "${URL%/}/.md"

# 5. /llms.txt presence
curl -sS -o /dev/null -w "/llms.txt:     %{http_code}\n" "${URL%/}/llms.txt"
```

Anything that returns a 403 to the bot UA, a sub-100 word count to a browser UA, or a 404 to the markdown-twin and `/llms.txt` paths is a Layer 1 finding that a title-tag SEO audit will not catch.

## The category fork

Two kinds of report ship under the "AEO" label today. The first inherits a 2015 SEO rubric and repaints the marketing surface: find your brand on Perplexity, here is your title tag, here is your AMP version. The second runs the actual fetch the AI crawler runs, walks the response, and tells you what the model sees today. The fork is becoming the most useful single test of an analyzer: ask whether the report tells you anything that depends on the body the crawler downloaded. If the answer is no, the report is SEO. The marketing surface is decoration.

For the corpus context on what an agent-era report ought to include, the [agent-readability piece](/agent-readability) covers the failure modes; the [May 2026 llms.txt field report](/llms-txt-field-report-2026-05) covers what production sites are actually doing; the [five-layer AEO model](/five-layer-aeo) is the rubric this comparison maps against.

* * *

**Run an AEO report against your own URL →** [agentsite.app/score](/score) · paste a URL · ~90 seconds · no signup. The scoring path runs the curl checks above plus 9 more across the five-layer model and returns a single composite 0–100 you can bookmark and share.