Index of every page on this site: llms.txt
All skills
coreyhaines31 avatar

/ai-seo

@e85f3cb
Run it yourself

When the user wants to optimize content for AI search engines, get cited by LLMs, or appear in AI-generated answers. Also use when the user mentions 'AI SEO,' 'AEO,' 'GEO,' 'LLMO,' 'answer engine optimization,' 'generative engine optimization,' 'LLM optimization,' 'AI Overviews,' 'optimize for ChatGPT,' 'optimize for Perplexity,' 'AI citations,' 'AI visibility,' 'zero-click search,' 'how do I show up in AI answers,' 'LLM mentions,' 'optimize for Claude/Gemini,' 'llms.txt,' 'llms-full.txt,' 'OKF,' 'Open Knowledge Format,' 'knowledge bundle,' 'agent-readable site,' 'agent readiness,' 'is my site agent-ready,' 'WebMCP,' 'do listicles still work for AI,' 'ChatGPT stopped citing comparison pages,' 'how do LLMs see our brand,' 'LinkedIn for AEO,' or 'AI citation format shift.' Use this whenever someone wants their content to be cited or surfaced by AI assistants and AI search engines. For traditional technical and on-page SEO audits, see seo-audit. For structured data implementation, see schema.

Use this Skill: https://skilld.dev/gh/coreyhaines31/marketingskills/ai-seo

Nothing lands on disk. Nothing to clean up.

Fork this Skill

Edit a local copy. It keeps the author and licence.

referencesagent-defaults.md

≈2.3k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Agent Defaults: When the Agent Picks the Vendor

A growing share of buying decisions happens inside a task. A developer tells Claude Code "deploy this," "add auth," or "send a welcome email," and the agent chooses a vendor, installs it, and moves on. There is no search results page and no shortlist for the user to compare. Whatever the agent reaches for first wins.

This applies most to developer tools, APIs, infrastructure, and SaaS with a CLI or SDK. It is spreading to anything a computer-use agent can sign up for. The rest of this skill covers being cited and recommended in answers; this reference covers being the default an agent acts on.

Case: Railway (October 2026). Founder Jake Cooper said on a podcast that the company grew from about $20M to about $100M ARR in a year with a go-to-market team of about seven, and named getting the models to "recommend us more and more" as a go-to-market goal. Practitioner breakdowns of their site counted thousands of self-hosting template pages, a deploy guide per framework, comparison and migration pages for each major competitor, an llms.txt with a summary per docs page, plugins inside ChatGPT and Claude Code, and ssh railway new to get a server with no signup. The same breakdowns claimed Claude Code picks Railway for most Python apps and Vercel for every Next.js app tested. Those counts and percentages are third-party and unverified; the pattern is the point.

Measure your share of agent defaults

You can't improve a default you haven't measured, and nobody reports this number for you.

  1. Build a task panel. 20–50 realistic tasks spread across the stacks your buyers use (a FastAPI service, a Next.js app, a Rails app, a cron worker, a static site). Write each the way a user would: "deploy this," "add a Postgres database," not "deploy this to [you]."
  2. Run each task in a clean environment on every agent your buyers use (Claude Code, Cursor, Codex, plus ChatGPT or Claude chat for the "how do I" version). No project rules, memory, or MCP servers that name a vendor.
  3. Run each task 3+ times. Agent choices vary run to run, and one sample is noise.
  4. Record per run: the vendor chosen, whether the agent got to a working result, where it stalled (signup, email verification, payment, a failing CLI step), and which docs or URLs it fetched.
  5. Report share by stack. The gap is usually one stack ("we win Python, lose everything front-end"). That stack is where content and tooling work goes.
  6. Rerun on every major model release. Defaults can move overnight when a model changes, and new models tend to bring more code to deploy. Run it monthly between releases; the agent-default check loop in marketing-loops schedules it.

Where the agent stalled tells you more than which vendor it picked. A run that chose you and then died at email verification is a loss you can fix.

What moves the default

Lever Why agents respond to it Railway's version
Shortest path to a working result Agents favor the route with the fewest human-gated steps: account creation, email verification, CAPTCHA, a credit card before first use ssh railway new provisions a server before any signup; the account is claimed later
Agent setup in one step An agent that has your MCP server, CLI, or skill installed uses it instead of guessing A docs section for agents with one command that installs what Claude Code or Cursor needs
Presence inside the assistants If the assistant has a native connector or plugin, deploying never leaves the chat Plugins in ChatGPT and Claude Code
Task-shaped pages per stack Agents fetch docs mid-task; a page that matches the exact task ("deploy Django") and ends in a working result gets followed A guide per framework, each ending with the app live
Template pages per popular tool Self-hosting and setup queries ("how do I run n8n") are a long tail that programmatic pages cover, see programmatic-seo Thousands of one-click template pages
Migration guides per competitor An agent moving a project follows steps; see competitors for the comparison side A comparison page with a migration guide for each major competitor
Docs agents can read An llms.txt index with one-line summaries, plus a markdown version of every page, lets the agent find the right page and quote it correctly (the Discovery checks in agent-readiness.md) An index of every docs page with a summary each, and a plain-text version of each page
Fresh, dated changes Recently updated docs and changelogs keep answers current for search and models A changelog page every week since 2021
CLI output an agent can recover from Non-interactive flags, JSON output, and errors that say what to run next keep the run alive past a failure (General practice, not from the Railway breakdowns)

Fix the stall points from your measurement first. Content won't help if the agent picks you and then can't finish.

Audit your docs for coding agents

Treat a coding agent as its own answer engine. In Profound's sample of 24,135 responses with web search enabled, Claude searched the web in 93% of responses and Claude Code in 13%, and the brands each one mentioned overlapped only about 20% (Profound, August 2026; observational). When Claude Code did fetch pages, nearly three-quarters of visits went to documentation, informational, and pricing pages. So your chat-assistant visibility tells you little about your coding-agent visibility, and the pages agents read are docs and pricing.

Profound sells AI visibility tracking; treat these as vendor research and run your own panel (above) before acting on them.

1. Map tasks to pages. List what users ask a coding agent to do with your product: install, authenticate, integrate, migrate, debug, compare, estimate cost, check compatibility. Give each task one canonical page and list the facts that page must state.

Task Canonical page Facts it must state Gap
Install in a Next.js app /docs/nextjs Package name, minimum version, env vars, one working example Example uses a deprecated import
Estimate cost /pricing Pricing unit, free tier limits, overage rate Overage only in a PDF

2. Check retrieval. For each canonical page:

  • The title and headings name the task and the stack
  • The answer or command comes before background
  • Prerequisites, versions, and dates are explicit
  • Examples are copyable and current
  • Anchors and URLs stay stable between releases
  • The text renders without JavaScript, and a markdown version exists (see agent-readiness.md)

Use question-shaped headings only where they match a real task. Don't stuff product names into docs.

3. Keep a technical fact ledger. One row per fact an agent might act on: supported versions and runtimes, regions, rate limits, pricing units, auth methods, data handling, deprecations. Record the canonical source and an owner for each. Then check the same fact everywhere it appears: docs, pricing page, README, package registry descriptions (npm, PyPI), examples, and changelog. An agent that finds two different rate limits will guess, or pick a vendor whose docs agree with themselves.

4. Fill missing decision pages. Compatibility matrices, migration guides, troubleshooting references, and a plain pricing explainer are the pages agents most often need and vendors most often skip.

5. Test in fresh sessions. Run your task panel in both the chat assistant and the coding agent, recording whether you were mentioned, which pages were fetched, and whether the facts came back right. Log errors in the claim ledger from answer-accuracy.md.

Don't infer official Anthropic or OpenAI ranking factors from any of this. Check crawler and access controls against current vendor documentation.

Limits and rules

  • Some defaults are structural. A framework's own maker, or the vendor whose examples dominate the framework's docs, may hold that stack no matter what you publish. Railway's reported answer was to win adjacent stacks rather than fight Vercel on Next.js. Pick stacks where the default is still open.
  • Write instructions for using your product only. Agent-facing docs, llms.txt, and skill files that tell agents to prefer your product over what the user asked for are prompt injection. Agent platforms treat them as manipulation, and users who notice stop trusting the tool. Describe how to do the task with your product; let the task decide.
  • Agent-provisioned resources still need guardrails. No-signup provisioning needs abuse limits, expiry for unclaimed resources, and a clear path to claim and pay. Treat that as product work, with growth as the reason to do it.
  • Placements in agent tool registries change fast. Recheck plugin and MCP registry listings when you rerun the panel, and treat any share figure, including the ones above, as dated.

Framework lineage: the coding-agent docs audit (task-to-page map, technical fact ledger, Claude vs. Claude Code testing) is adapted (re-expressed and restructured) from Profound's MIT-licensed claude-code-discoverability-auditor skill and its August 2026 study, credited.

Source: SKILL.md on GitHub

skilld matched fixed text patterns in SKILL.md and file names. Patterns miss obfuscated code.

skilld run checks every file with the same patterns. It asks for approval before it loads a Skill with a behavior marked Needs approval.

1 warning1d5 checks · Risk SAFE
  • Gen Agent Trust Hub1d

    The skill provides expert guidance on AI Search Engine Optimization (AEO). The main security consideration is a low-severity risk of indirect prompt injection, as the agent is tasked with analyzing external websites and AI search outputs that may contain untrusted content.

  • Socket4d

    No alerts

  • Snyk4d

    Risk: LOW · No issues

  • Runlayer7mo

    2/3 files flagged

  • ZeroLeaks6mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at e85f3cb. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 4 days ago.

Activeupdated 5 days ago
metadata
{
  "version": "2.10.1"
}
  • ai-seo
  • aeo
  • llm-optimization
  • answer-engine
  • content-marketing
  • structured-data
  • generative-search
  • ai-visibility

README badge

README badge for coreyhaines31/marketingskills/ai-seo

Optimizes content to be discovered and cited by AI search engines like ChatGPT, Perplexity, Claude, Google AI Overviews, and Copilot. Covers content structure for extractability, authority signals, platform-specific ranking factors, and AI bot access configuration.

Generated from the current SKILL.md.

Does this skill help with Google AI Overviews?
Yes, but the approach differs from other AI platforms. For Google AI Overviews, follow standard SEO practices and E-E-A-T — Google explicitly states no special markup or AI-specific optimization is required. For ChatGPT, Claude, and Perplexity, layer on extractable structure (definition blocks, FAQs, comparison tables) and llms.txt files.
What if my site is blocked from AI crawlers?
You won't be cited by that platform. Check your robots.txt for blocks on GPTBot, PerplexityBot, ClaudeBot, Google-Extended, and Bingbot. You can allow search/citation crawlers while blocking training-only crawlers like CCBot.
Does AI SEO require creating separate content from traditional SEO?
No. Write for people and organize with clear headings, paragraphs, and structure. This satisfies both traditional search and AI platforms. Avoid creating scaled or duplicate content specifically for AI, which violates Google's spam policies.
Which optimization methods boost AI visibility the most?
According to Princeton GEO research, citing sources (+40%), adding statistics with sources (+37%), and including expert quotations (+30%) deliver the largest visibility boosts across AI platforms like Perplexity. Combining fluency improvements with statistics yields the highest gains.
Can I rank on page 2 or 3 and still get cited in AI answers?
Yes. AI systems select sources based on content quality, structure, and relevance — not just rank position. A well-structured page with clear answers and authority signals can be cited even if it ranks lower in traditional search.

Generated from the current SKILL.md. These answers refresh after source changes.