# AEO for engineering teams: making pages readable to AI answer engines

> Why clean visual design is still invisible to ChatGPT, Claude, and Perplexity when crawlers hit blocked robots rules or missing markdown twins.

A landing page can score 0 out of 100 on the design-slop fingerprint and still be completely invisible when a buyer asks an AI assistant to compare tools in your category. Answer Engine Optimization (AEO) measures whether automated research agents can fetch, parse, and cite your canonical content over HTTP.

## The eight-check verification circuit

The AEO axis evaluates eight concrete HTTP and HTML signals totaling 100 points (70 required points + 30 recommended bonus points):

- `html.reachable` (10 pts, required): verifies that normal browser HTTP fetch returns a 2xx HTML document.
- `bot.notBlocked` (25 pts, required): confirms that fetching with the `GPTBot` User-Agent returns 2xx rather than a WAF challenge or 403 block.
- `robots.aiAllowed` (20 pts, required): verifies that `robots.txt` does not disallow major AI crawlers (`GPTBot`, `ClaudeBot`, `PerplexityBot`, `Google-Extended`).
- `html.indexable` (15 pts, required): confirms the page does not emit `noindex` in `X-Robots-Tag` headers or `<meta name="robots">`.
- `md.twin` (10 pts, recommended): checks for a clean `<url>.md` markdown twin (or `/index.md` for the root path) returning `text/markdown`.
- `html.linkAlternate` (8 pts, recommended): checks that HTML advertises the markdown twin via `Link: rel="alternate"; type="text/markdown"` or `<link rel="alternate">`.
- `site.llmsTxt` (7 pts, recommended): checks for a structured `/llms.txt` discovery file at the root domain.
- `html.vary` (5 pts, recommended): checks that the response sends `Vary: Accept` for content-negotiation awareness.

## Serving markdown twins

Every documentation and blog route on `slop-detect.com` exposes a direct markdown twin alongside its HTML page. Run `npx slop-detect <url> --aeo` or `POST /api/aeo` to audit any URL against all eight checks.
