AI search engineering · ~7 minute read

How Admaxxer is engineered for AI search

Plain-English guide to the AI-crawlability work that makes Admaxxer surface in Google AI Overview, Perplexity, ChatGPT search, Claude search, and DeepSeek. Six canonical practices, the worked JSON-LD that ships on every page, and the official Google guide we follow.

From our AI-visibility audit · 50+ SSR-rendered doc pages · 17 AI bots allow-listed

There is no “AI SEO.” There is just SEO.

Quoting Google’s AI Optimization Guide verbatim (the link to the original is at the foot of this page):

“AI Overviews and AI Mode use the same index and ranking systems as Search. Standard SEO best practices remain relevant. There are no additional requirements or special optimizations.” — Google’s AI Optimization Guide

The grift industry around “GEO” / “AEO” / “AI Optimization” sells the opposite premise. Most of it is wrong. Admaxxer’s engineering follows Google’s canonical position: write helpful content with clear structure, ship full HTML to crawlers, use the standard Schema.org schemas, and let the AI extraction layer do its job.

Things that work

Things to ignore

The six practices — what Admaxxer actually ships

Six engineering practices, each mapping 1:1 onto a specific recommendation in Google’s guide. Each one ships with the evidence: a postbuild canary that enforces it, or a route to the artifact (robots.txt, an SSR template, the structured-data blob).

1. Crawlable by every AI bot — by default

robots.txt explicitly allows GPTBot, ClaudeBot, PerplexityBot, DeepSeek-Bot, Google-Extended, and 12+ other AI crawlers. Server-side rendering returns full HTML (not just meta tags) to every crawler. Verified via a postbuild link canary that cross-references every internal <Link href> against the SSR route-matcher. View robots.txt.

2. Visible-DOM h1 + first-paragraph TL;DR on every page

Every public page has exactly ONE <h1> and a first-paragraph “lede” that summarizes the page in 1–2 sentences. AI crawlers prioritize first-paragraph content for snippet extraction. The lede is a structural prop on our reusable doc shell — pages literally cannot ship without one. See the reusable doc cards.

3. Structured data (JSON-LD) that matches visible content

Article, BreadcrumbList, FAQPage, HowTo, TechArticle, DefinedTermSet — every JSON-LD schema is derived from the same data array the visible UI renders from. No mismatched markup. A postbuild validity canary parses every blob on every build. Read the audit lesson.

4. Sitewide max-snippet meta for the richest AI Overview rendering

A <meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"> ships on every page via the shared doc shell. Google AI Overview / AI Mode use these signals to decide how much of the page to render in the answer; the default cap is ~160 characters, which we explicitly lift.

5. Self-contained content — every page makes sense alone

AI crawlers index pages, not site graphs. Every doc page on Admaxxer is a standalone article: full context up top, worked examples in the middle, FAQ at the bottom, related-doc links at the foot. No “continued on page 2” navigation. Per Google’s guide: “Standard SEO best practices remain relevant” — we just enforce them harder.

6. Worked examples on every concept

For every concept (MER formula, pixel install, paste-token, attribution model, cohort LTV), the page shows a literal example. AI models trained on documentation extract example-to-concept pairs more reliably than prose-only explainers. The metric glossary is the canonical demonstration: every KPI ships with its formula and a 3-way comparison.

Observable AI-crawlability surface area

50+ — Doc SSR templates
Every /documentation/* page renders full content for crawlers, not just meta tags.
71 — Pages with structured data
Article + BreadcrumbList + FAQPage + HowTo + TechArticle JSON-LD coverage.
17 — AI bots explicitly allowed
GPTBot, ClaudeBot, PerplexityBot, DeepSeek-Bot, Google-Extended, and 12+ more.
10% — Web-vitals beacon sample rate
Native PerformanceObserver — no extra dependencies. LCP / CLS / FCP / TTFB / INP tracked.

The two snippets that do most of the work

Article JSON-LD (for canonical citation surfaces) and the sitewide robots meta (for max-snippet:-1 rendering). Both ship on every page via the shared doc shell.

Article JSON-LD (emitted on every doc page)

Renders inline when article metadata is provided. Matches the visible h1 + h2 hierarchy + canonical URL exactly.

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "How /dashboard/analytics works — every card mapped to its source",
  "description": "Per-card guide to the Admaxxer web analytics dashboard...",
  "url": "https://admaxxer.com/documentation/dashboard/analytics",
  "datePublished": "2026-04-15",
  "dateModified": "2026-05-17",
  "author": { "@type": "Organization", "name": "Admaxxer AI Analytics", "url": "https://admaxxer.com" },
  "publisher": { "@type": "Organization", "name": "Admaxxer AI Analytics", "url": "https://admaxxer.com" },
  "mainEntityOfPage": { "@type": "WebPage", "@id": "https://admaxxer.com/documentation/dashboard/analytics" }
}

Sitewide max-snippet meta

The shared doc shell emits this on every render. It lifts Google’s ~160-character snippet cap so AI Overview renders the full canonical answer.

<!-- Ships on every page automatically. -->
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">

<!-- Google AI Overview / AI Mode reads these to decide how much
     of the page to render in its answer. The default cap is ~160
     characters; max-snippet:-1 explicitly lifts it. -->

How to verify it yourself

  1. Visit /robots.txt and confirm GPTBot, ClaudeBot, and other AI crawlers are explicitly allowed.
  2. Run curl -A "GPTBot" https://admaxxer.com/documentation/getting-started and confirm the response is full HTML (not a stub SPA shell).
  3. Paste any application/ld+json blob into validator.schema.org and confirm zero errors.
  4. Open Google’s Rich Results Test with any /documentation/* URL and confirm Article + FAQPage + BreadcrumbList structured data parses.
  5. Ask Perplexity / ChatGPT / Claude search “what does Admaxxer call MER?” — the answer should cite our metric glossary with the canonical formula.

Further reading: Google’s AI Optimization Guide · Admaxxer’s llms.txt.

FAQ

Six questions our AI-visibility audit raised — answered with quotes from Google’s official guide.

Will Admaxxer show up in Google AI Overview / AI Mode?
Yes — Google AI Overview and AI Mode use the SAME index and ranking system as classic Search. Admaxxer’s documentation surface meets every canonical signal: full server-rendered HTML for crawlers, sitewide max-snippet:-1 meta, JSON-LD that matches visible content, a single h1 per page with a first-paragraph TL;DR, and clean semantic HTML5 landmarks. Per Google’s official guide: “standard SEO best practices remain relevant — no additional requirements or special optimizations.” We follow the canonical SEO playbook, just harder.
Why does Admaxxer ship an llms.txt file?
For Perplexity, Claude search, and ChatGPT search — they actively use llms.txt as a structured site-content index. Google does NOT consult llms.txt and explicitly says so in their AI Optimization Guide. We ship it because the cost is zero and 3 major AI surfaces benefit; we don’t pitch it as a “Google SEO move” (it isn’t). See /llms.txt for the live index.
Should I break my content into micro-paragraphs “for AI chunking”?
No. Google’s AI Optimization Guide explicitly calls this out as a tactic to ignore: “AI models extract relevant passages from full pages on their own.” Write for humans first; the AI extraction layer handles passage selection. Admaxxer’s docs use full prose paragraphs, plain-English headings, and worked examples — exactly the shape that AI search engines parse reliably.
Is there an “AI-specific” schema markup we should add?
No. There is no AI-specific schema. Per Google’s guide: “Use structured data that matches visible content — Article, Product, FAQPage, HowTo, BreadcrumbList for rich-result eligibility.” Admaxxer ships exactly those canonical schemas via the reusable DocPageShell + DocFAQList components. Pages that claim “AI-specific schemas” are typically GEO/AEO grift — ignore them.
Does page experience / Core Web Vitals still matter for AI search?
Yes. Google’s AI Optimization Guide is explicit: “page experience signals still count.” Admaxxer ships a native PerformanceObserver web-vitals beacon (no extra npm package) that samples 10% of page loads for LCP, CLS, FCP, TTFB, and INP. Telemetry lands in our infrastructure logs; histograms are downstream-ready for our analytics warehouse parsing when we need them.
Why does Admaxxer enforce “JSON-LD must match visible content”?
Per Google’s AI Optimization Guide: “Use structured data that matches visible content. Don’t lie in JSON-LD about what’s on the page — Google can flag misleading markup and demote the page.” Admaxxer’s reusable doc cards (DocFAQList, DocBreadcrumbs, DocPageShell) emit JSON-LD derived from the SAME data array the visible UI renders from. Drift is impossible by construction. The postbuild validity canary catches any human-authored slip.

Pages that build on or complement this one. Internal linking is the crawl-budget mechanism — we link generously between related topics so Googlebot and AI tools both reach every page in one or two hops.

Ship measurable AI-search visibility

Every doc page you visit is a live demonstration of the AI-crawlability playbook. Start free and ship the same engineering on your own surfaces.

Start your 7-day free trial · Read Google’s official guide