← library
skill🧰 Engineering practicev1 · published 2026-11-09 · updated 2026-11-09

SEO and AEO audit

Creates and verifies the search, answer-engine and agent setup for a site's public pages, from titles, canonicals and structured data to sitemaps, robots rules, llms.txt and the files AI agents look for, then gates it on checks that catch real failures. Use when adding or auditing SEO, AEO or GEO, when a site publishes pages from a database or library, or when new pages should appear in search automatically.

By Uplift Duo

Run it as a prompt

Paste this into any AI agent, or fetch it: curl -s https://uplift.page/api/v1/prompts/seo-aeo-audit/raw

prompt.md
# SEO and AEO audit

Search engines, answer engines and browsing agents reward the same base: a crawlable page with real content in its raw HTML. This skill sets that up once so every new page gets it for free, then proves it on the live site after each publish.

## When to use

- A site publishes many pages from a database, CMS or content folder
- Someone asks why pages aren't found, indexed or cited by AI search
- Setting up metadata, a sitemap, robots rules or llms.txt
- New pages should reach search with no manual step

## Steps

1. Run `scripts/seo-audit.mjs <site-url>` (or download it from `https://uplift.page/tools/seo-audit.mjs`) and read the errors, warnings and notes. Fix agent findings with agent-readiness.
2. Build one metadata helper that derives every field from the page's own record: title, description, canonical, Open Graph, share image, JSON-LD. Never write SEO per page.
3. Generate the sitemap, robots rules and llms.txt from the same data source, so a new record lists itself. Check they refresh after deploy; some frameworks freeze them at build time.
4. Show who made each page, its source and its dates in the visible text, so markup matches the page.
5. Give each category a real path URL with its own title and description. Keep sort and search in query strings. Return 404 for an empty or unknown one.
6. Add the audit to the publish pipeline after content goes live: pass the new paths with `--expect`, add `--wait` for caches, and let a failure fail the job. `--save` and `--compare` catch drift between releases.
7. Optionally add `--indexnow <key>` (with a public `<key>.txt`) to tell Bing what changed.
8. Report what passed and failed. Rankings and citations need search-performance.

## Rules

- Fail builds only on provable faults. Never gate on character counts or scores.
- Never create pages per keyword variation, or thin groups of one item: keep those noindex and out of the sitemap.
- Never invent ratings, install counts, authors or dates. `lastmod` changes only when content changes.
- Don't block search crawlers such as OAI-SearchBot, Claude-SearchBot or PerplexityBot. Blocking training crawlers is a separate policy choice.
- Review generated titles and descriptions for accuracy, and never promise citations.
- Send site data only to official services (Google, Bing, IndexNow), never to third-party graders.

## What the evidence says

Checked November 2026. No study covers prompt or skill pages, and no randomized live-site trial of any tactic was found.

| Tactic | Evidence | Do |
|---|---|---|
| Crawlable, indexed, server-rendered content | Google requires indexing; measured AI crawlers didn't run JavaScript | Required |
| Original, useful content | Google's main AI guidance; formatting effects were near zero in controlled tests | Highest value, and no audit can check it |
| Unique titles and descriptions, correct canonicals | Google documentation | Required |
| Accurate `lastmod` | Google uses it only if verifiably accurate; ignores `priority` and `changefreq` | Required |
| Breadcrumb and Article JSON-LD | Google rich results; no proven effect on AI citations | Cheap, keep it accurate |
| FAQPage and HowTo markup | Google retired both rich results | Skip |
| `SoftwareApplication` markup | Google's rich result needs genuine ratings or reviews | Only with real ratings |
| llms.txt | Google doesn't use it; about 97% of files got no requests in one large log study | Fine if generated, expect little |
| IndexNow | Official for Bing and others; Google isn't a listed engine | Cheap for Bing and Copilot |
| Statistics, quotes, long pages | Correlational gains; a controlled benchmark found statistics hurt in most settings | Don't add for optimization |

Most answer-engine citations come from third-party pages, so being mentioned on places like GitHub and in community posts probably matters more than anything on the page itself.

Install it as a skill

Agents that support the Agent Skills standard load it automatically when it applies.

download
curl -fsSL https://uplift.page/p/seo-aeo-audit/SKILL.md --create-dirs -o .agents/skills/seo-aeo-audit/SKILL.md
or from any MCP client
MCP server: https://uplift.page/mcp
Tool: pull_skill  {"slug": "seo-aeo-audit"}

The full skill

Search engines, answer engines and browsing agents reward the same base: a crawlable page with real content in its raw HTML. This skill sets that up once so every new page gets it for free, then proves it on the live site after each publish.

When to use

  • A site publishes many pages from a database, CMS or content folder
  • Someone asks why pages aren't found, indexed or cited by AI search
  • Setting up metadata, a sitemap, robots rules or llms.txt
  • New pages should reach search with no manual step

Steps

  1. Run scripts/seo-audit.mjs <site-url> (or download it from https://uplift.page/tools/seo-audit.mjs) and read the errors, warnings and notes. Fix agent findings with agent-readiness.
  2. Build one metadata helper that derives every field from the page's own record: title, description, canonical, Open Graph, share image, JSON-LD. Never write SEO per page.
  3. Generate the sitemap, robots rules and llms.txt from the same data source, so a new record lists itself. Check they refresh after deploy; some frameworks freeze them at build time.
  4. Show who made each page, its source and its dates in the visible text, so markup matches the page.
  5. Give each category a real path URL with its own title and description. Keep sort and search in query strings. Return 404 for an empty or unknown one.
  6. Add the audit to the publish pipeline after content goes live: pass the new paths with --expect, add --wait for caches, and let a failure fail the job. --save and --compare catch drift between releases.
  7. Optionally add --indexnow <key> (with a public <key>.txt) to tell Bing what changed.
  8. Report what passed and failed. Rankings and citations need search-performance.

Rules

  • Fail builds only on provable faults. Never gate on character counts or scores.
  • Never create pages per keyword variation, or thin groups of one item: keep those noindex and out of the sitemap.
  • Never invent ratings, install counts, authors or dates. lastmod changes only when content changes.
  • Don't block search crawlers such as OAI-SearchBot, Claude-SearchBot or PerplexityBot. Blocking training crawlers is a separate policy choice.
  • Review generated titles and descriptions for accuracy, and never promise citations.
  • Send site data only to official services (Google, Bing, IndexNow), never to third-party graders.

What the evidence says

Checked November 2026. No study covers prompt or skill pages, and no randomized live-site trial of any tactic was found.

Tactic Evidence Do
Crawlable, indexed, server-rendered content Google requires indexing; measured AI crawlers didn't run JavaScript Required
Original, useful content Google's main AI guidance; formatting effects were near zero in controlled tests Highest value, and no audit can check it
Unique titles and descriptions, correct canonicals Google documentation Required
Accurate lastmod Google uses it only if verifiably accurate; ignores priority and changefreq Required
Breadcrumb and Article JSON-LD Google rich results; no proven effect on AI citations Cheap, keep it accurate
FAQPage and HowTo markup Google retired both rich results Skip
SoftwareApplication markup Google's rich result needs genuine ratings or reviews Only with real ratings
llms.txt Google doesn't use it; about 97% of files got no requests in one large log study Fine if generated, expect little
IndexNow Official for Bing and others; Google isn't a listed engine Cheap for Bing and Copilot
Statistics, quotes, long pages Correlational gains; a controlled benchmark found statistics hurt in most settings Don't add for optimization

Most answer-engine citations come from third-party pages, so being mentioned on places like GitHub and in community posts probably matters more than anything on the page itself.

Served from the uplift.page library and refreshed within 5 minutes of every update.