AI SEO
by coreyhaines31 / marketingskills
Optimize content for AI search engines, get cited by LLMs, or appear in AI-generated answers.
Suede AI answer-engine and generative-engine optimization (AEO/GEO) program for getting a brand cited and recommended in Google AI Overviews and AI Mode, ChatGPT search, Perplexity, Copilot, Gemini, and Claude.
Listed ·Updated
Install data from skills.sh
Suede AI SEO is an AI SEO (GEO and AEO) skill for AI agents, published in the seoskills.sh catalog. Reach for it when your work involves answer and generative engine optimization for AI Overviews, Perplexity, and ChatGPT. Install it with one command and it runs inside your own agent, so the work happens in your workflow, not a separate SEO tool.
The job: make a brand easy for answer engines to retrieve, attribute, and recommend, then prove it with measurement. Google's AI features run on core Search ranking, so classic SEO is the floor. On top of that floor sit the pieces answer engines reward across platforms: an unambiguous entity, pages that answer first and back claims with checkable facts, corroboration on sites the brand does not own, and a measurement loop that shows movement.
Every check, gate, and verdict here (ship, ship-with-caveats, hold, grades,
OPEN items) is a recommendation to the user, not a control on the agent. A failed
gate changes what you report, never what you do. Single exception: an extremely
risky finding (data loss, credential exposure, legal or rights violations,
payment mistakes, irreversible public damage) pauses for the user's choice.
| Need | Owner |
|---|---|
| Crawl, index, canonical, metadata, schema validity, Core Web Vitals, E-E-A-T, scored lanes | suede-seo-audit |
| One-page A-F promotion readiness, including design and CTA | suede-visibility-grader |
| Conversion path, friction, experiments | suede-site-alchemy |
| Templated pages at scale and their quality gates | suede-programmatic-seo |
| AI crawler policy, entity graph, citation patterns, off-site consensus, AI visibility measurement | this skill |
This skill owns the extractability standard: what makes a passage quotable
and attributable. suede-seo-audit Lane 6 and the grader's AI readability lane
apply it; change thresholds here first.
Read .agents/product-marketing.md (or .claude/product-marketing.md, or the
legacy product-marketing-context.md) if present. Then collect only what is
missing:
not measured, never estimated.Read references/platform-notes.md before making any platform-specific claim.
The load-bearing facts:
nosnippet, data-nosnippet, max-snippet,
noindex) govern what Google AI features can show. Google-Extended governs
Gemini training and grounding in Gemini Apps and Vertex AI; Google states it
does not affect Search inclusion or ranking.OAI-SearchBot. Opting it out removes a site
from ChatGPT search answers. GPTBot is training only. ChatGPT-User is
user-initiated and may not follow robots.txt.ClaudeBot is training, Claude-SearchBot indexes for search
quality, Claude-User fetches for a user's question. Blocking the last two
reduces visibility in Claude answers.PerplexityBot surfaces and links sites and is not used for
foundation-model training. Perplexity-User is user-initiated and generally
ignores robots.txt.Treat anything not in that file as unverified, and re-check before a ship decision: these surfaces change monthly.
Work bottom-up. A higher layer cannot compensate for a broken lower one.
/robots.txt with an approved read-only tool from a verified public
HTTPS host (refuse loopback, link-local, private networks; send no cookies or
credentials). Record final URL, status, and body.Disallow belongs to the User-agent lines above it,
and a named group replaces * for that bot. Report each bot in
references/ai-crawlers.md as allowed, blocked, or unverified. A non-200,
off-host redirect, or failed fetch is unverified, never open.noindex, login walls, and primary content that only appears
after JavaScript runs.GPTBot, ClaudeBot,
Google-Extended, CCBot) on licensing grounds. Present it as the user's
business call.Answer engines attribute claims to entities. Ambiguity costs mentions. Read
references/entity-graph.md and produce:
@id.Organization and Person JSON-LD whose name, url, logo, founder,
and sameAs match visible text and point only to verified profiles that
identify the same entity.Apply the extractability standard to priority pages. Templates are in
references/content-patterns.md.
| Check | Pass condition |
|---|---|
| Direct answer up top | The opening 40 to 80 words answer the page's main question and name the subject explicitly |
| Question headings | H2/H3s phrase the questions buyers ask and name their own subject ("How Acme pricing works", not "Pricing") |
| Self-contained passages | Each section's key claim makes sense if lifted alone; no "it", "this", or "as above" carrying the meaning |
| Quotable facts | Specific numbers, dates, limits, and definitions in plain sentences, each with a source or first-party evidence |
| Original information | At least one fact, dataset, test, or first-hand observation that other pages do not have |
| Comparisons in tables | Real <table> markup for X vs Y content, with sourced cells |
| Freshness | Visible last-updated date that reflects a real change; stale numbers fixed or removed |
| Attribution | Named author with an author page; Article author and dateModified match visible text |
| Text, not pixels | Key facts in HTML text, not only images, PDFs, or JS widgets |
Google states that no format is required and that content should be written for people. These checks are the Suede standard because they make a page easier for any engine and any reader to quote correctly. Never sell them as a Google ranking requirement.
references/sources.md. Use the direction,
never quote a lift percentage to a client.Being cited means a page was useful to consult. Being recommended means
the engine put the brand on the shortlist, and that follows consensus across
sites the brand does not own. Read references/citations-vs-recommendations.md
before advising on listicles or buyer's guides.
suede-directory-submissions).Google Search ignores llms.txt and similar files. Some assistants and agent
tools read them, and adoption claims in vendor reports are mostly unsourced.
Recommend them only as low-cost extras after layers 1 to 5:
/llms.txt: a short Markdown index of the pages an agent should read first./pricing.md: plans, prices, limits, and billing terms in plain Markdown,
matched exactly to the visible pricing page.references/okf.md. No engine has announced support.Never grade the presence of these files as a ranking or citation signal.
Read references/measurement.md. Minimum program:
Answers vary run to run. Report ranges across repeated runs, never a single screenshot as a trend.
| KPI | Source | Moves when |
|---|---|---|
| AI crawler access (per bot) | robots.txt, CDN logs | Layer 1 fixes |
| Entity consistency score (matching facts / sources checked) | Sweep sheet | Layer 2 fixes |
| Priority pages passing the extractability table | Page audit | Layer 3 fixes |
| Share of citations, share of recommendations | Prompt panel | Layers 3 to 5 |
| AI-assistant sessions and conversions | GA4 channel group | Layers 3 to 5 |
| Copilot citations and cited pages | Bing AI Performance | Layers 1, 3 |
| Generative AI impressions | Search Console (if shown) | Layers 1, 3 |
| Branded search impressions | Search Console | Layer 5 |
Each prioritized fix names the KPI it should move and the date to re-measure.
not queried.OAI-SearchBot.=== AI SEARCH VISIBILITY REPORT === Site: Date:
ACCESS: robots.txt fetch [200 | code | failed: reason]
OAI-SearchBot | GPTBot | ChatGPT-User | Claude-SearchBot | Claude-User | ClaudeBot |
PerplexityBot | Perplexity-User | Google-Extended | Googlebot | Bingbot: allowed | blocked | unverified
Other blockers: [CDN/WAF, nosnippet, noindex, JS-only content, login walls | none found]
ENTITY: entity home [URL] | Organization @id [value] | sameAs verified [N of N]
Mismatches: [source: field: found vs canonical | none]
ANSWER: [page]: [N of 9] extractability checks pass | failing: [names]
PROOF: original data assets [list | none] | unsourced claims [quoted | none]
PRESENCE: corroborating sources found [type: URL] | gaps [type]
PROMPT PANEL: [N prompts x engines, run dates] | citation share [range] | recommendation share [range] | not queried: [engines]
MEASUREMENT: GA4 AI channel [live | missing] | GSC gen AI report [shown | below threshold | no access] | Bing AI Performance [verified | no access]
PRIORITIZED FIXES: 1. [P1] Layer | Page or source | What is wrong | Exact change | KPI it moves | Re-measure date
SHIP GATE: ship | ship-with-caveats | hold: reason
not queried; missing data is not measured.suede-seo-audit.suede-visibility-grader.suede-content-strategy.suede-competitors.suede-programmatic-seo.suede-directory-submissions.suede-copy.Not using the CLI? Copy the SKILL.md and paste it straight into ChatGPT, Claude, or any agent.