Generated banner for AI SEO
Generated logo for AI SEO

AI SEO

Corey HainesCommunityCreated by Corey Haines

  • Skill
  • Tool integration
  • Business and productivity
  • MIT
  • No issues found

From the author

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.
— the description by Corey Haines

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

AI SEO is a strategic approach to ensuring your brand and content are surfaced by generative AI systems like ChatGPT, Perplexity, and Google AI Overviews. Unlike traditional SEO, which focuses on ranking, this skill focuses on citation and extractability. It provides a structured methodology for auditing your current AI visibility, improving content structure for machine parsing, and building authority through data, expert attribution, and machine-readable files. The skill emphasizes that while Google prioritizes core search quality, other AI engines reward specific structural patterns, making a multi-layered approach essential for modern digital visibility.

What it does

  • Audits current AI visibility across major platforms like ChatGPT, Perplexity, and Google AI Overviews.
  • Provides structural templates for content blocks like definitions, comparisons, and FAQs to improve extractability.
  • Guides the implementation of machine-readable files like llms.txt and OKF bundles for agent-readiness.
  • Analyzes citation patterns to identify gaps in your brand's third-party consensus.
  • Offers a checklist for technical agent-readiness, including bot access and parsing optimization.
  • Aligns content strategy with E-E-A-T standards to increase citation-worthiness.

When to use it

  • When you want to increase your brand's presence in AI-generated answers.
  • When you need to optimize content for specific AI engines like Perplexity or Claude.
  • When you are preparing your site to be navigated and parsed by autonomous buying agents.
  • When you need to diagnose why an AI assistant is providing incorrect information about your product.
  • When you want to implement agent-specific files like llms.txt or structured pricing pages.

Advantages

  • Increases the likelihood of being cited as a primary source in AI-generated responses.
  • Improves the machine-readability of your site for both search crawlers and AI agents.
  • Helps bridge the gap between traditional SEO rankings and AI-driven discovery.
  • Provides actionable, evidence-based strategies for improving content extractability.
  • Supports a multi-platform approach to AI visibility beyond just Google.

Usage examples

“How do I make my product pricing page readable by AI agents?”
The agent will guide you through creating a structured Markdown pricing file, ensuring it is accessible, and linking it correctly to satisfy agent-readiness standards.
“Why is ChatGPT not citing my comparison page?”
The agent will help you audit the page's structure, check for extractable comparison tables, and verify if your content meets the criteria for citation-worthiness.
“How can I improve my visibility in Google AI Overviews?”
The agent will provide a strategy focused on core search quality, E-E-A-T, and semantic HTML, while explaining how to cover topical clusters to capture related queries.
“What is an llms.txt file and do I need one?”
The agent will explain the purpose of the llms.txt file as a context provider for AI systems and walk you through the steps to create and host one for your site.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/coreyhaines31/ai-seo/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip ai-seo.zip -d .agents/skills

Documentation by Corey Haines

AI SEO

You are an expert in AI search optimization — the practice of making content discoverable, extractable, and citable by AI systems including Google AI Overviews, ChatGPT, Perplexity, Claude, Gemini, and Copilot. Your goal is to help users get their content cited as a source in AI-generated answers.

Reference Routing

Start with this skill's core workflow. Open a reference when the user's question needs that detail; read additional references only when their topics are relevant.

User questionsLocal reference
Why can an agent not read our site? Are bot access, discovery files, or HTML blocking it? Can an agent sign up or check out for the user, through WebMCP or a skill file for our product?Agent readiness
AI barely shows up in referrals. How do we measure delayed visits, branded search, and pipeline from AI answers?AI attribution
Is AI saying something wrong about our price, features, or limits? How do we find and fix the source?Answer accuracy
Which vendor does Claude Code or Cursor pick when a user says "deploy this"? How do we become the tool an agent installs mid-task?Agent defaults
Why are we cited but absent from the shortlist? Can our own buyer's guide help competitors? How should we measure recommendations?Citations vs. recommendations
How should we structure a definition, comparison, or FAQ? What makes an answer block useful on its own?Content patterns
How does the approach differ for product pages, docs, local businesses, or ecommerce? Which content type should we improve?Content types
Did an engine change which page formats it cites? Should we still invest in listicles or comparison pages? How do we separate a shift from noisy measurements?Format volatility
Should we publish LinkedIn posts, articles, or company-page content? What makes that content discoverable and citable?LinkedIn citations
How do we run AEO in other languages and countries? Is ChatGPT Shopping worth it for our product?Multilingual and commerce
What belongs in an OKF bundle? Is it an established AI-search requirement or an emerging experiment?Open Knowledge Format
Which prompts should we track, how often, which topics are we losing, and how do we test multi-turn buying conversations?Prompt portfolio
Where should we start for a particular AI engine? Which search and training crawlers should we distinguish?Platform ranking factors
Why does AI describe our positioning incorrectly? How can third-party consensus reinforce a specific use case?Positioning and consensus
How should a video's title, captions, chapters, or description support citations? What should we check before publishing?YouTube citations

Read these bundled files from the installed skill directory; do not substitute a remote repository URL for a local reference. If a file is missing, say which reference is unavailable and use the core workflow without claiming to have read it. For time-sensitive statistics, platform behavior, or tool claims in any reference, check the source date and weigh evidence in this order: official platform documentation, then controlled experiments, then large observational datasets (often vendor research), then practitioner case studies. When documentation and observational data conflict, follow the documentation for eligibility and crawler controls and treat the data as a hypothesis to test. Never turn a study's percentage into a client forecast without matching engine, industry, language, market, and date.

Before Starting

Check for product marketing context first: If .agents/product-marketing.md exists (or .claude/product-marketing.md, or the legacy product-marketing-context.md filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.

Gather this context (ask if not provided):

1. Current AI Visibility
  • Do you know if your brand appears in AI-generated answers today?

  • Have you checked ChatGPT, Perplexity, or Google AI Overviews for your key queries?

  • What queries matter most to your business?

2. Content & Domain
  • What type of content do you produce? (Blog, docs, comparisons, product pages)

  • What's your domain authority / traditional SEO strength?

  • Do you have existing structured data (schema markup)?

3. Goals
  • Get cited as a source in AI answers?

  • Appear in Google AI Overviews for specific queries?

  • Compete with specific brands already getting cited?

  • Optimize existing content or create new AI-optimized content?

4. Competitive Landscape
  • Who are your top competitors in AI search results?

  • Are they being cited where you're not?

  • Do you have Wikipedia coverage or a presence on review sites?


How AI Search Works

The AI Search Landscape
PlatformHow It WorksSource Selection
Google AI OverviewsSummarizes top-ranking pagesStrong correlation with traditional rankings
ChatGPT (with search)Searches web, cites sourcesDraws from wider range, not just top-ranked
PerplexityAlways cites sources with linksFavors authoritative, recent, well-structured content
GeminiGoogle's AI assistantPulls from Google index + Knowledge Graph
CopilotBing-powered AI searchBing index + authoritative sources
ClaudeBrave Search (when enabled)Training data + Brave search results

For a deep dive on how each platform selects sources and what to optimize per platform, see references/platform-ranking-factors.md.

Key Difference from Traditional SEO

Traditional SEO gets you ranked. AI SEO gets you cited.

In traditional search, you need to rank on page 1. In AI search, a well-structured page can get cited even if it ranks on page 2 or 3 — AI systems select sources based on content quality, structure, and relevance, not just rank position. Strong organic rankings are still one of the best predictors of AI visibility, so treat structure as a layer on top of SEO, not a replacement.

Critical stats (they drift; re-check before quoting to a client, and distrust vendor stats with no source or date):

  • AI Overviews appeared on ~48% of the queries BrightEdge tracks (BrightEdge, Feb 2026), and position-one desktop CTR fell ~58% when one was present (Ahrefs, Dec 2025 data). Both are sample-specific, so don't forecast a site's traffic loss from them

  • Adding statistics and citations raised visibility by roughly 30–40% in the original GEO study (Aggarwal et al., 2023)

Google's Official Stance vs. Multi-Platform Reality

This is important to read once before doing anything else.

Google's position (AI features optimization guide):

"The best practices for SEO continue to be relevant because our generative AI features on Google Search are rooted in our core Search ranking and quality systems."

Google explicitly says:

  • No special markup or files are required for AI Overviews or AI Mode

  • Don't chunk content for AI — write for people, organize with normal headings and paragraphs

  • Don't write separate content for AI — that risks "scaled content abuse" spam policy

  • Helpful, reliable, people-first content wins — same E-E-A-T standards as regular Search

  • No AI-specific Search Console reporting — use standard SEO metrics

Other AI engines (ChatGPT, Claude, Perplexity, Copilot) behave differently:

  • They actively reward extractable structure — passages, FAQs, comparison tables, definition blocks

  • They parse llms.txt, structured pricing pages, and machine-readable files when present

  • They cite beyond top-ranked pages, including Reddit, Wikipedia, and review sites, in a mix that varies by engine

What this means for the work:

  • The structural patterns in this skill (40–60 word answer blocks, FAQ schema, comparison tables) help non-Google AI engines materially. They also don't hurt Google — they're just normal good content organization.

  • For Google AI Overviews / AI Mode specifically: optimize for people and core Search, full stop. Strong E-E-A-T, original information, semantic HTML, clean indexability.

  • For ChatGPT/Claude/Perplexity: layer on the extractable structure + llms.txt + machine-readable files. When in doubt, write for people and organize for clarity; that satisfies both camps.

Google's AI features don't just answer the one query a user typed — they generate concurrent, related queries under the hood and retrieve results for each.

Google's own example: a user asking "how to fix lawns" triggers fan-out queries about herbicides, chemical-free removal, weed prevention, etc. The AI synthesizes across all of them.

Implications:

  • Single-page-per-keyword targeting is less effective. Cover the full topical cluster so you're retrievable for the fan-out variants too.

  • Long-tail intent matters less than topical authority — Google's AI systems understand synonyms and semantic equivalence.

  • A page that comprehensively answers a parent topic (with sub-questions covered) will be retrieved more often than narrow per-query pages.

Action: when planning content, brainstorm the 5–10 related queries the AI is likely to fan out to and make sure your content (or your site as a whole) covers them, with one owning page per fact family (matrix in references/content-patterns.md).

ChatGPT fans out too — and you can extract its literal background queries for your niche via DevTools (method in references/format-volatility.md). Post-5.6, ChatGPT's fan-outs shifted away from "best/vs/top" modifiers toward site: and "official" searches — use the extraction to see where your category's fan-outs stand today.


AI Visibility Audit

Before optimizing, assess your current AI search presence.

Step 1: Check AI Answers for Your Key Queries

Test 10-20 of your most important queries across platforms:

QueryGoogle AI OverviewChatGPTPerplexityYou Cited?Competitors Cited?
[query 1]Yes/NoYes/NoYes/NoYes/No[who]
[query 2]Yes/NoYes/NoYes/NoYes/No[who]

Query types to test, spread across buyer awareness stages and written the way people actually type into a chat box:

  • Problem-aware: "How do I [problem your product solves]?"

  • Solution-aware: "What is [your product category]?" / "Best [category] for [use case]"

  • Product-aware: "[Your brand] vs [competitor]" / "Is [your brand] good for [use case]?"

  • Most aware: "[Your brand] pricing" / "Does [your brand] integrate with [tool]?"

Keep the list to prompts that would change revenue. A citation for a glossary question ("what is gross profit?") rarely sells anything. Track prompts like keywords: collapse wording variants of the same intent into one core prompt, then run each several times.

Step 2: Analyze Citation Patterns

When your competitors get cited and you don't, examine:

  • Content structure — Is their content more extractable?

  • Authority signals — Do they have more citations, stats, expert quotes?

  • Freshness — Is their content more recently updated?

  • Schema markup — Do they have structured data you're missing?

  • Third-party presence — Are they cited via Wikipedia, Reddit, review sites?

Turn findings into work. If an assistant states something wrong or vague about you, the page that should state that fact isn't saying it plainly; fix that page first. If you're absent, the sources it cites for the prompt are your target list for PR, review sites, and directories.

Step 3: Content Extractability Check

For each priority page, verify:

CheckPass/Fail
Clear definition in first paragraph?
Self-contained answer blocks (work without surrounding context)?
Statistics with sources cited?
Comparison tables for "[X] vs [Y]" queries?
FAQ section with natural-language questions?
Schema markup (FAQ, HowTo, Article, Product)?
Expert attribution (author name, credentials)?
Recently updated (within 6 months)?
Heading structure matches query patterns?
AI crawler policy matches discovery and training goals?
Step 4: AI Bot Access Check

Audit AI user agents by purpose. Search-discovery, user-triggered retrieval, model-training, and product-control tokens are not interchangeable:

  • Search discovery: OAI-SearchBot (ChatGPT), PerplexityBot, Claude-SearchBot, meta-webindexer (Meta AI), and the conventional search crawlers that feed an answer product

  • User-triggered retrieval: ChatGPT-User, Claude-User, Perplexity-User, and meta-externalfetcher; vendor handling can differ from automatic crawlers, so verify the current documentation

  • Potential model training: GPTBot, ClaudeBot, and meta-externalagent

  • Google product control: Google-Extended controls certain Gemini training and grounding uses of content Google already crawls; it does not affect Google Search inclusion or ranking

Default to one wildcard (User-agent: *) rule that allows agents, and add named groups only for deliberate exceptions such as a training opt-out; an allowlist of named crawlers silently excludes agent search APIs that run their own crawlers, and a named group replaces the * rules for that bot. Check each relevant user-agent group and any WAF or CDN rules separately. A publisher can allow search discovery while disallowing model-development crawlers; do not infer that blocking a training crawler necessarily blocks citations. See references/platform-ranking-factors.md for the full robots.txt configuration.


Optimization Strategy

The Three Pillars
1. Structure (make it extractable)
2. Authority (make it citable)
3. Presence (be where AI looks)
Pillar 1: Structure — Make Content Extractable

AI systems extract passages, not pages. Every key claim should work as a standalone statement.

Content block patterns:

  • Definition blocks for "What is X?" queries

  • Step-by-step blocks for "How to X" queries

  • Comparison tables for "X vs Y" queries

  • Pros/cons blocks for evaluation queries

  • FAQ blocks for common questions

  • Statistic blocks with cited sources

For detailed templates for each block type, see references/content-patterns.md.

Structural rules:

  • Lead every section with a direct answer (don't bury it)

  • Keep key answer passages to 40-60 words (optimal for snippet extraction)

  • Use H2/H3 headings that match how people phrase queries

  • Tables beat prose for comparison content

  • Numbered lists beat paragraphs for process content

  • Each paragraph should convey one clear idea

Pillar 2: Authority — Make Content Citable

AI systems prefer sources they can trust. Build citation-worthiness.

The Princeton GEO research (KDD 2024, studied across Perplexity.ai) ranked 9 optimization methods:

MethodVisibility BoostHow to Apply
Cite sources+40%Add authoritative references with links
Add statistics+37%Include specific numbers with sources
Add quotations+30%Expert quotes with name and title
Authoritative tone+25%Write with demonstrated expertise
Improve clarity+20%Simplify complex concepts
Technical terms+18%Use domain-specific terminology
Unique vocabulary+15%Increase word diversity
Fluency optimization+15-30%Improve readability and flow
Keyword stuffing-10%Actively hurts AI visibility

Best combination: Fluency + Statistics = maximum boost. Low-ranking sites benefit even more — up to 115% visibility increase with citations.

Statistics and data (+37-40% citation boost)

  • Include specific numbers with sources

  • Cite original research, not summaries of research

  • Add dates to all statistics

  • Original data beats aggregated data

Expert attribution (+25-30% citation boost)

  • Named authors with credentials

  • Expert quotes with titles and organizations

  • "According to [Source]" framing for claims

  • Author bios with relevant expertise

Freshness signals

  • "Last updated: [date]" prominently displayed

  • Regular content refreshes (quarterly minimum for competitive topics)

  • Current year references and recent statistics

  • Remove or update outdated information

E-E-A-T alignment

  • First-hand experience demonstrated

  • Specific, detailed information (not generic)

  • Transparent sourcing and methodology

  • Clear author expertise for the topic

Pillar 3: Presence — Be Where AI Looks

AI systems cite your own site and the places that talk about you, in proportions that vary by engine and category. In one large dataset, company sites took about 57% of citations (ChatGPT 47%, Gemini 69%; Profound, July 2026), while shortlist recommendations lean on third-party consensus. Measure your category's citation mix before choosing channels; see references/citations-vs-recommendations.md.

Third-party surfaces to cover:

  • Wikipedia (7.8% of ChatGPT citations in Profound's Aug 2024–Jun 2025 data)

  • Reddit (1.8% in the same data, then nearly wiped from ChatGPT by Aug 2026 retrieval changes; still retrieved elsewhere; see the volatility section in references/agent-readiness.md)

  • Industry publications and guest posts

  • LinkedIn — among the most-cited domains for professional queries, but which surface gets cited depends on the engine (ChatGPT now favors posts over articles; Gemini barely cites LinkedIn). Front-load the target phrase, since a post's first words become its URL slug. See references/linkedin-ai-citations.md

  • Review sites (G2, Capterra, TrustRadius for B2B SaaS)

  • YouTube (frequently cited by Google AI Overviews)

  • Podcasts (episodes get transcribed, show notes published — both get crawled and cited)

  • Quora answers

Actions:

  • Ensure your Wikipedia page is accurate and current

  • Participate authentically in Reddit communities — but as one surface in a portfolio, never the whole strategy (citation mixes shift overnight with retrieval updates)

  • Get featured in industry roundups and comparison articles

  • Make every third-party profile (G2, Capterra, Gartner, Crunchbase, LinkedIn) describe you with the same segment and positioning as your About page; models look for consensus. For repositioning, mergers, and head terms, see references/positioning-and-consensus.md

  • Create YouTube content for key how-to queries — models don't watch the video, they read the text layer around it; see references/youtube-ai-citations.md for the full anatomy (transcript, captions, chapters, description, pinned comment)

  • Guest on podcasts in your category (prep with the public-relations skill's podcast guest prep)

  • Answer relevant Quora questions with depth

Machine-Readable Files for AI Agents

Google's stance: not required for AI Overviews or AI Mode. Their guide explicitly says you don't need new markup, AI files, or markdown to appear in generative AI search.

Why include them anyway: non-Google AI engines (ChatGPT, Claude, Perplexity) and autonomous buying agents do reward extractable structure. The files below help with those engines without harming Google.

AI agents aren't just answering questions — they're becoming buyers. When an AI agent evaluates tools on behalf of a user, it needs structured, parseable information. If your pricing is locked in a JavaScript-rendered page or a "contact sales" wall, agents will skip you and recommend competitors whose information they can actually read.

Audit this layer first: references/agent-readiness.md — the access/discovery/parseability checklist, free scoring tools (npx is-agentic, Frase's checker), Markdown content negotiation + Link headers, llms-full.txt, and the emerging agent-actionable layer (WebMCP, and a skill file for your product with a prefilled checkout link).

Add these machine-readable files to your site root:

/pricing.md or /pricing.txt — Structured pricing data for AI agents

# Pricing — [Your Product Name]

## Free
- Price: $0/month
- Limits: 100 emails/month, 1 user
- Features: Basic templates, API access

## Pro
- Price: $29/month (billed annually) | $35/month (billed monthly)
- Limits: 10,000 emails/month, 5 users
- Features: Custom domains, analytics, priority support

## Enterprise
- Price: Custom — contact [email protected]
- Limits: Unlimited emails, unlimited users
- Features: SSO, SLA, dedicated account manager

Why this matters now:

  • AI agents increasingly compare products programmatically before a human ever visits your site

  • Opaque pricing gets filtered out of AI-mediated buying journeys

  • A simple markdown file is trivially parseable by any LLM — no rendering, no JavaScript, no login walls

  • Same principle as robots.txt (for crawlers), llms.txt (for AI context), and AGENTS.md (for agent capabilities)

Best practices:

  • Use consistent units (monthly vs. annual, per-seat vs. flat)

  • Include specific limits and thresholds, not just feature names

  • List what's included at each tier, not just what's different

  • Keep it updated — stale pricing is worse than no file

  • Link to it from your sitemap and main pricing page

/llms.txt — Context file for AI systems (see llmstxt.org)

If you don't have one yet, add an llms.txt that gives AI systems a quick overview of what your product does, who it's for, and links to key pages (including your pricing).

/okf/ — Open Knowledge Format bundle (Google-backed, v0.1)

Google introduced OKF in June 2026 — a markdown spec for representing site content as a directory of cross-linked files with YAML frontmatter, agent-readable without scraping. Built primarily for data-team catalog metadata; the site-readable-by-agents repurposing was popularized by Suganthan Mohanadasan. No confirmed AI-search ranking signal today — treat it as protocol-layer registration like early schema.org. For the full breakdown, implementation paths (free generator, WordPress plugin, by-hand), hosting guidance, and when to skip, see references/okf.md.

Schema Markup for AI

Structured data helps AI systems understand your content. Key schemas:

Content TypeSchemaWhy It Helps
Articles/Blog postsArticle, BlogPostingAuthor, date, topic identification
How-to contentHowToStep extraction for process queries
FAQsFAQPageDirect Q&A extraction
ProductsProductPricing, features, reviews
ComparisonsItemListStructured comparison data
ReviewsReview, AggregateRatingTrust signals
OrganizationOrganizationEntity recognition

No well-documented study isolates a schema lift on AI citations, so treat schema as context that helps engines parse your pages and expect no fixed lift from it. Google's note: structured data is "not required for generative AI search" but is recommended for overall SEO strategy. For implementation, use the schema skill.


Agentic Experiences

Beyond AI search engines summarizing content, autonomous agents are starting to access sites directly — clicking, reading, comparing, even buying on behalf of users. Google's guide flags this as an emerging category to plan for.

How agents access your site:

  • Visual rendering — they screenshot/read the page like a user would

  • DOM inspection — they parse the page's HTML structure

  • Accessibility tree — they rely on the same semantic information assistive tech uses (labels, roles, landmarks, headings)

What to do:

  • Render meaningful content without heavy JS gymnastics — if the page is blank until 4 frameworks finish loading, agents see blank

  • Semantic HTML — use <main>, <nav>, <article>, <button>, proper heading hierarchy, alt text on images

  • Clean accessibility tree — every interactive element labelled; ARIA used correctly (or not at all when native HTML suffices)

  • Stable selectors / predictable layouts — agents struggle with sites that re-render every interaction

  • Visible pricing, specs, contact info — anything an agent would need to make a buying recommendation should be on a public, indexable page (this is where /pricing.md and similar files help). Date the facts that change ("4.7 on G2 as of October 2026") so an agent can judge freshness

  • Proof as text — testimonials, ratings, and named customer logos in the HTML as text, not baked into images or injected by a widget script. If you can't select it with the mouse, an agent may not read it

Emerging — Universal Commerce Protocol (UCP): Google references UCP as a forthcoming protocol that will give agents standardized hooks for commerce interactions (catalog discovery, pricing, checkout). Watch for adoption; for now, the structural recommendations above are the precursor.

For ecom and local business specifically, Google highlights:

  • Merchant Center feeds + Google Business Profile for product/service visibility in AI Search

  • Business Agent for conversational customer engagement (where applicable)


Content Types That Get Cited Most

Not all content is equally citable — and the format mix is volatile. The long-standing baseline had comparison articles (~33%) and listicles (~10%) among the top citation earners, but ChatGPT 5.6 (Aug 2026) demoted the exploited formats: listicle citations fell −50.5% and comparison-page citations −32.1%, while site: and "official" retrieval surged — a shift toward primary sources and owned pages. Format strategy is now per-platform (comparisons still work on Google AIO/Gemini/Perplexity). See references/format-volatility.md for the shift data, the per-platform format table, LinkedIn's citation numbers, and the ChatGPT fan-out extraction diagnostic.

Evergreen winners across platforms: original research and data, definitive guides, and owned "official" pages — product, docs, pricing — with extractable structure.

Underperformers: generic unstructured posts, thin or gated or PDF-only content, and anything undated without author attribution.

Citation ≠ recommendation. Getting cited means your content was useful to consult; getting recommended — onto the buyer's actual shortlist — is governed by web-wide consensus (reviews, forums, analysts, press) and is largely independent of your own content. Self-promotional "best [category]" listicles can even backfire for emerging brands: in one 100-query B2B study, 69% of the AI Overview citations that self-promotional listicles earned came in answers that recommended competitors instead of the publishing brand. See references/citations-vs-recommendations.md for the visibility ladder (retrieved → cited → mentioned → recommended), stage-dependent buyer's-guide strategy, what earns recommendations, and the attribution blind spot.


Monitoring AI Visibility

What to Track
MetricWhat It MeasuresHow to Check
AI Overview presenceDo AI Overviews appear for your queries?Manual check or Semrush/Ahrefs
Brand citation rateHow often you're cited in AI answersAI visibility tools (see below)
Share of AI voiceYour citations vs. competitorsPeec AI, Otterly, ZipTie, Omnia
Citation sentimentHow AI describes your brandManual review + monitoring tools
Recommendation rateWhether you're on the shortlist, not just cited (see citations-vs-recommendations.md)Prompt tracking + mention framing
Source attributionWhich pages get cited, and what AI exposure does downstreamAI referrals plus delayed branded and direct visits (ai-attribution.md)
AI Visibility Monitoring Tools
ToolCoverageBest For
Otterly AIChatGPT, Perplexity, Google AI OverviewsShare of AI voice tracking
Peec AIChatGPT, Gemini, Perplexity, Claude, Copilot+Multi-platform monitoring at scale
ZipTieGoogle AI Overviews, ChatGPT, PerplexityBrand mention + sentiment tracking
LLMrefsChatGPT, Perplexity, AI Overviews, GeminiSEO keyword → AI visibility mapping
Profound, Ahrefs Brand Radar, SemrushMajor assistants and Google AI surfacesLarger programs: cited sources, answer text, prompt demand (Profound's studies are cited in the references as vendor research)
OmniaGoogle AI Mode, Google AI Overviews, ChatGPT, Perplexity, Gemini, Claude, CopilotAI visibility monitoring
DIY Monitoring (No Tools)

Monthly manual check:

  1. Pick your top 20 queries

  2. Run each through ChatGPT, Perplexity, and Google

  3. Record: Are you cited? Who is? What page? Log it in a spreadsheet and track month-over-month

AI answers are non-deterministic — one run is an anecdote, not a measurement. Run each query 3–5 times per platform and track the mention rate with its sample size ("cited 3/5, n=5"), comparing rates over time rather than single runs. Full rigor checklist in references/format-volatility.md.

Search Console expectations

Google's guide is explicit: there is no AI-specific Search Console reporting. AI Overviews and AI Mode use core Search ranking, so the standard Search Console reports (Performance, Coverage, Core Web Vitals) are still what you measure with for Google. The third-party tools above are the only way to see cross-platform AI citation behavior.


What NOT to Do

Google's guide calls these out explicitly — they hurt across both traditional Search and AI features.

  1. Write separate content "for AI". Same content should serve people and AI. Writing variants targeted at AI systems risks the scaled content abuse spam policy — Google's words.

  2. Chunk pages into AI-bait fragments. Google's guide is direct: "Don't break your content into tiny pieces for AI to better understand it." Use normal paragraph + heading structure.

  3. Generate at scale for ranking manipulation. AI-generated content is fine if it meets Search Essentials and spam policies. Mass-producing thin variations does not.

  4. Pursue inauthentic mentions. Don't fabricate citations, invent awards, run "independent" review sites you own, or bulk-spam Reddit/Wikipedia for AI visibility. Fake or misleadingly sourced reviews can also break the FTC's 2024 reviews rule. Real participation only.

  5. Treat every AI user agent as the same control. GPTBot, ClaudeBot, and Google-Extended have different documented purposes from OAI-SearchBot, Claude-SearchBot, and PerplexityBot. Decide separately for discovery, user retrieval, training, and grounding.

  6. Hide your main content behind JS that doesn't render. Both core Search and AI agents need to see your content; JS-only rendering loses both audiences.

  7. Skip E-E-A-T fundamentals. Author identity, first-hand experience, expertise signals, transparent sourcing — Google's guide leans heavily on these for AI features.


AI SEO by Content Type

For tactical guidance on SaaS product pages, blog content, comparison/alternative pages, documentation, and local/ecom (Google's emphasis on Merchant Center + Business Profile), see references/content-types.md.


Common Mistakes

  • Ignoring AI search entirely — AI Overviews appear on roughly half of tracked queries in many industries (BrightEdge, Feb 2026), and assistant usage keeps growing

  • Treating AI SEO as separate from SEO — Good traditional SEO is the foundation; AI SEO adds structure and authority on top

  • Writing for AI, not humans — If content reads like it was written to game an algorithm, it won't get cited or convert

  • No freshness signals — Undated content loses to dated content because AI systems weight recency heavily. Show when content was last updated

  • Gating all content — AI can't access gated content. Keep your most authoritative content open

  • Ignoring third-party presence — Shortlist recommendations lean on what reviews, forums, and press say about you, even where your own site earns most citations

  • No structured data — Schema markup gives AI systems structured context about your content

  • Keyword stuffing — Unlike traditional SEO where it's just ineffective, keyword stuffing actively reduces AI visibility by 10% (Princeton GEO study)

  • Hiding pricing behind "contact sales" or JS-rendered pages — AI agents evaluating your product on behalf of buyers can't parse what they can't read. Add a /pricing.md file

  • Blocking discovery crawlers without checking their purpose — Restricting OAI-SearchBot, PerplexityBot, or Claude-SearchBot may reduce search visibility; training controls are separate

  • Generic content without data — "We're the best" won't get cited. "Our customers see 3x improvement in [metric]" will

  • Forgetting to monitor — You can't improve what you don't measure. Check AI visibility monthly at minimum


Tool Integrations

For implementation, see the tools registry.

ToolUse For
semrushAI Overview tracking, keyword research, content gap analysis
ahrefsBacklink analysis, content explorer, AI Overview data
gscSearch Console performance data, query tracking
ga4Referral traffic from AI sources

  • seo-audit: For traditional technical and on-page SEO audits; link-building for earning links and mentions on the third-party pages AI engines cite

  • schema: For implementing structured data that helps AI understand your content

  • content-strategy: For planning what content to create

  • competitors: For building comparison pages that get cited

  • programmatic-seo: For building SEO pages at scale

  • copywriting: For writing content that's both human-readable and AI-extractable

  • lead-magnets: For packaging an owned course or content library as an installable agent skill (different from public-site AI visibility)

Files

evals/evals.json

{
  "skill_name": "ai-seo",
  "evals": [
    {
      "id": 1,
      "prompt": "How do I make sure our SaaS product shows up in AI search results? We're a project management tool and we keep getting left out of ChatGPT and Perplexity recommendations when people ask about project management software.",
      "expected_output": "Should check for product-marketing.md first. Should apply the three pillars framework: Structure (make content extractable), Authority (make content citable), Presence (be where AI looks). Should run through the AI Visibility Audit checklist across platforms (Google AI Overviews, ChatGPT, Perplexity, etc.). Should check content extractability (clear definitions, structured comparisons, statistics). Should reference Princeton GEO research findings (citations improve visibility +40%, statistics +37%). Should check AI bot access in robots.txt. Should provide a prioritized action plan.",
      "assertions": [
        "Checks for product-marketing.md",
        "Applies three pillars framework (Structure, Authority, Presence)",
        "Runs AI Visibility Audit across platforms",
        "Checks content extractability",
        "References Princeton GEO research findings",
        "Checks AI bot access in robots.txt",
        "Provides prioritized action plan"
      ],
      "files": []
    },
    {
      "id": 2,
      "prompt": "Should we block AI crawlers like GPTBot and PerplexityBot in our robots.txt? We're worried about content theft.",
      "expected_output": "Should address the crawler-access question directly and separate controls by purpose. GPTBot and ClaudeBot are potential model-training crawlers; blocking them is a training opt-out and does not by itself block search citations. PerplexityBot, OAI-SearchBot, and Claude-SearchBot support automatic search discovery, so blocking them may reduce visibility. ChatGPT-User, Claude-User, and Perplexity-User support user-triggered retrieval and may have vendor-specific robots behavior. Google-Extended controls certain Gemini training and grounding uses and does not affect Google Search inclusion or ranking. Should provide a purpose-specific robots.txt example and recommend verifying current vendor documentation before implementation.",
      "assertions": [
        "Addresses the blocking tradeoff directly",
        "Distinguishes search discovery from model-training controls",
        "Lists specific AI bot user agents",
        "Provides recommended robots.txt configuration",
        "Gives nuanced recommendation based on business goals",
        "Explains what each bot does"
      ],
      "files": []
    },
    {
      "id": 3,
      "prompt": "What kind of content gets cited most by AI systems? We want to create content specifically optimized for AI search.",
      "expected_output": "Should reference the content types that get cited most, including comparisons (~33% of AI citations), definitive guides (~15%), and other high-citation content types. Should explain why these formats work (they provide the structured, extractable, authoritative information AI systems need). Should provide specific recommendations for creating AI-optimized content: clear definitions, structured data, original statistics, comparison tables, expert quotes. Should reference the Princeton GEO research on what increases citation probability.",
      "assertions": [
        "References specific content types with citation rates",
        "Mentions comparisons as highest-cited format",
        "Explains why these formats work for AI",
        "Provides specific content creation recommendations",
        "References Princeton GEO research",
        "Mentions structured data, statistics, and clear definitions"
      ],
      "files": []
    },
    {
      "id": 4,
      "prompt": "we noticed our competitors are showing up in google AI overviews but we're not. what do we need to change?",
      "expected_output": "Should trigger on casual phrasing. Should focus specifically on Google AI Overviews visibility. Should explain how AI Overviews selects sources (authoritative, well-structured, directly answers queries). Should run through the Structure pillar checklist: content extractability, heading hierarchy, answer-first format, structured data. Should check Authority signals: domain authority, citations, E-E-A-T. Should recommend specific content structure changes. Should suggest monitoring approach.",
      "assertions": [
        "Triggers on casual phrasing",
        "Focuses on Google AI Overviews specifically",
        "Explains how AI Overviews selects sources",
        "Checks Structure pillar (extractability, headings, answer-first)",
        "Checks Authority signals",
        "Recommends specific content structure changes",
        "Suggests monitoring approach"
      ],
      "files": []
    },
    {
      "id": 5,
      "prompt": "Can you audit our website for AI search readiness? We want to know how visible we are across ChatGPT, Perplexity, Google AI Overviews, and other AI platforms.",
      "expected_output": "Should run the full AI Visibility Audit. Should check each platform in the landscape (Google AI Overviews, ChatGPT, Perplexity, Claude, Gemini, Copilot). Should evaluate all three pillars: Structure (content extractability, JSON-LD, clear definitions), Authority (citations, backlinks, E-E-A-T signals), Presence (AI bot access, platform-specific factors). Should provide findings organized by pillar. Should provide a prioritized action plan with specific fixes.",
      "assertions": [
        "Runs full AI Visibility Audit",
        "Checks multiple AI platforms",
        "Evaluates all three pillars (Structure, Authority, Presence)",
        "Checks content extractability",
        "Checks AI bot access",
        "Provides findings organized by pillar",
        "Provides prioritized action plan"
      ],
      "files": []
    },
    {
      "id": 6,
      "prompt": "Our organic search traffic has dropped 30% this quarter. Can you do a full SEO audit to figure out what's going on?",
      "expected_output": "Should recognize this is a traditional SEO audit request, not specifically an AI SEO task. Should defer to or cross-reference the seo-audit skill, which handles comprehensive traditional SEO audits including crawlability, technical foundations, on-page optimization, and content quality. May mention AI search as one factor to investigate but should make clear that seo-audit is the primary skill for this task.",
      "assertions": [
        "Recognizes this as a traditional SEO audit request",
        "References or defers to seo-audit skill",
        "Does not attempt a full traditional SEO audit using AI SEO patterns",
        "May mention AI search as one factor to consider"
      ],
      "files": []
    },
    {
      "id": 7,
      "prompt": "We're a seed-stage data-quality startup (barely anyone knows us yet). Plan: publish 20 'best data quality tools' style listicles ranking ourselves #1 so ChatGPT and AI Overviews recommend us. Good idea?",
      "expected_output": "Should apply references/citations-vs-recommendations.md rather than endorsing the plan as-is. Should explain the citation vs. recommendation distinction — self-promotional listicles from low-authority brands often earn citations while the AI answer recommends the competitors named in the guide instead (cites the study directionally: ~69% of self-promotional listicle citations — 224 of 323 — excluded the publisher from recommendations). Should present the visibility ladder (retrieved → cited → mentioned → recommended) and explain recommendation is governed by offsite consensus (reviews, forums, analysts, press). Should NOT say 'don't publish guides' — should reframe: publish a small number of genuinely useful guides for category framing, and rebalance investment toward reviews/communities/earned media. Should mention the attribution blind spot (AI-influenced visits mostly appear as branded search/direct; only a small share is visible AI traffic) and the measurement triad (prompt tracking, self-reported attribution, call recordings).",
      "assertions": [
        "Does not endorse 20 self-ranked listicles as a path to AI recommendations for a low-authority brand",
        "Distinguishes citations from recommendations with the different governing criteria",
        "References the visibility ladder (retrieved/cited/mentioned/recommended)",
        "Warns the guides may surface competitors in AI answers (vote-for-competitors mechanism)",
        "Recommends offsite consensus building (reviews, communities, analysts, or PR) as the recommendation lever",
        "Does not tell the user to stop publishing buyer's guides entirely — reframes expectations toward citation and category framing",
        "Mentions the attribution blind spot and at least two of: prompt tracking, self-reported attribution, call recordings"
      ],
      "files": []
    },
    {
      "id": 8,
      "prompt": "We publish YouTube tutorials for our category's biggest how-to queries but never get cited in AI answers, while a competitor's uglier videos show up in Google AI Overviews and ChatGPT constantly. The videos themselves are well produced. What are we missing?",
      "expected_output": "Should load references/youtube-ai-citations.md and diagnose the text layer, not the footage: models don't watch the video, they read everything around it. Should check, in leverage order: transcript quality (key answers spoken as complete, liftable sentences; entities said out loud), captions (cleaned/uploaded, not messy auto-captions), question-shaped title matching the real query, chapters titled by sub-question, a keyword-rich description restating the key points as text, and a pinned comment carrying the summary. Should note engagement/thumbnail feeds YouTube ranking which feeds AI surfacing, and should not recommend re-shooting or higher production value as the fix.",
      "assertions": [
        "States that AI models read the text layer (transcript, captions, title, chapters, description, pinned comment) rather than watching the video",
        "Recommends cleaning/uploading captions and speaking key answers as complete liftable statements with entities said aloud",
        "Recommends question-shaped titles, chapters titled by sub-question, a structured description, and a pinned summary comment",
        "Does not attribute the gap to production quality or recommend re-shooting as the primary fix"
      ],
      "files": []
    },
    {
      "id": 9,
      "prompt": "Our content is well-written and we have schema markup, but AI assistants never seem to use our site. Someone said our site might not be 'agent-ready.' We also put most of our AI-visibility effort into Reddit this year since that's where ChatGPT cites from. What should we do?",
      "expected_output": "Should load references/agent-readiness.md and address both halves. (1) Agent readiness: recommend running a free scoring tool (npx is-agentic and/or Frase's Agent Readiness Checker) and walk the access/discovery/parseability triad — core content must be in the initial HTML without JavaScript execution, no bot challenge/firewall blocking intended search-discovery crawlers, purpose-specific robots.txt controls that separate discovery from model training, a clean sitemap, llms.txt (+llms-full.txt as bonus), structured data, and a Markdown representation via content negotiation (Accept: text/markdown at the same canonical URL) or a Link header. May mention WebMCP as the emerging agent-actionable layer, labeled emerging. (2) Reddit concentration: flag citation-source volatility — ChatGPT's Aug 2026 retrieval changes nearly wiped Reddit as a source (practitioner-reported), so single-surface concentration is fragile; recommend the portfolio approach across third-party surfaces plus owned-site fundamentals (which dominate Gemini citations), and verifying any citation-share stat against their own monitoring before betting budget.",
      "assertions": [
        "Recommends running an agent-readiness scoring tool (is-agentic or Frase checker) and structures the audit as access / discovery / parseability",
        "Identifies JavaScript-only content rendering and bot/firewall blocking as first-order access failures",
        "Covers the discovery/parseability file stack: robots.txt AI stance, sitemap, llms.txt or llms-full.txt, structured data, and a Markdown representation (content negotiation or Link header)",
        "Flags the Reddit-only strategy as fragile, citing citation-source volatility (Aug 2026 ChatGPT retrieval change, labeled practitioner-reported) and recommends a portfolio plus owned-site fundamentals",
        "Does not present citation-share statistics as stable facts; recommends verifying against the user's own citation monitoring"
      ],
      "files": []
    },
    {
      "id": 10,
      "prompt": "We're a B2B SaaS planning our 2026 content roadmap. The plan is 40 comparison pages ('us vs competitor') and 20 'best tools' listicles, mainly to win ChatGPT citations. Also, how do I know if it's working — I checked ChatGPT once last week and we weren't mentioned.",
      "expected_output": "Should load references/format-volatility.md and push back on the rationale with the ChatGPT 5.6 shift (Aug 2026, Peec AI data): listicle citations fell ~50% and comparison-page citations ~32% post-5.6, with fan-out queries dropping 'best/vs/top/comparison' modifiers in favor of site: and 'official' searches — so 'win ChatGPT citations' no longer justifies scaled comparison/listicle production. Should NOT say comparison pages are dead: they still convert humans and still earn citations on Google AI Overviews, Gemini, and Perplexity — format strategy is per-platform. Should steer investment toward owned 'official' pages (product, docs, pricing, original research), which are rising as the citable class and dominate Gemini (~60% business sites). May suggest extracting ChatGPT's real fan-out queries via the DevTools method for coverage planning (while warning against mass-generating a page per query — scaled content abuse). On measurement: one ChatGPT check is an anecdote — AI answers are non-deterministic; run each query 3–5 times per platform, track mention rate with sample size (e.g. 'cited 3/5'), and compare rates over time. Numbers should be treated as dated snapshots to verify against own monitoring."
    },
    {
      "id": 11,
      "prompt": "We've been known as a mid-market HR platform for ten years. Next quarter we're repositioning as enterprise and rewriting the whole site at once. How do we make sure ChatGPT and Google's AI start recommending us for enterprise HR software?",
      "expected_output": "Should warn that LLM brand associations move slowly: enterprise prompts are already tied to incumbents, and rewriting the whole site at once can lose mid-market answers before enterprise ones arrive. Should recommend recording a baseline for both old- and new-segment prompts, setting expectations for a dip, moving off-site signals first (G2/Capterra/Gartner profiles, reviews, analyst and press coverage) so they match the new About page, and staging the on-site rewrite. Should suggest extracting real fan-out queries to see which third-party domains (e.g. site: searches on Gartner/G2) matter for the category. Should label these as practitioner experience rather than proven data, and not recommend invented awards or self-owned review sites.",
      "assertions": [
        "Flags a possible visibility dip as practitioner experience, not a certainty",
        "Recommends baselining old- and new-segment prompts",
        "Prioritizes aligning third-party profiles with the new positioning",
        "Suggests staging the on-site rewrite instead of switching all at once",
        "Uses fan-out analysis to find which third-party sources matter",
        "Doesn't recommend fake awards or self-owned review sites"
      ],
      "files": []
    },
    {
      "id": 12,
      "prompt": "I keep hearing LinkedIn articles get cited by ChatGPT. Should I republish all our blog posts as LinkedIn articles to get more AI citations?",
      "expected_output": "Should not recommend blanket republishing. Should explain that which LinkedIn surface gets cited depends on the engine and shifted in 2026: ChatGPT now cites feed posts far more than Pulse articles, while Perplexity, Copilot, and Google's AI features still cite articles and company pages, and Gemini barely cites LinkedIn. Should warn that LinkedIn sets its own canonical, so full republishing competes with the blog; recommend publishing on the site first and posting adapted versions or summaries. Should suggest checking articles for crawler noindex, note that engagement and follower count barely predict citation while original, specific, technical content does, and recommend tracking citations per engine. Should label figures as dated vendor or platform data.",
      "assertions": [
        "Does not recommend republishing everything as-is",
        "Explains the engine split (ChatGPT favors posts; others still cite articles; Gemini barely cites LinkedIn)",
        "Warns about canonical/duplication and recommends site-first with adapted versions",
        "Mentions checking for crawler noindex",
        "Notes engagement and followers barely predict citation",
        "Labels figures as dated and vendor/platform-reported"
      ],
      "files": []
    },
    {
      "id": 13,
      "prompt": "We ran 40 buying prompts through ChatGPT, Claude, Gemini and Google AI Mode, three runs each. We show up sometimes but competitors show up way more. My plan is to write a new blog post for every prompt where we're missing. Good plan?",
      "expected_output": "Should load references/prompt-portfolio.md and push back on writing one post per missing prompt. Should group the prompts into buying topics and count appearances per topic for the user and each competitor across runs, then start with the biggest consistent gaps (e.g. a competitor in 18 of 25 runs vs the user in 4) rather than one-off misses. For losing topics: open the sources cited when competitors won and record page, domain, page type and competitor; check whether an existing page should already win and fix it first; rule out indexing, crawler access and internal links; then choose the fix (new page, better existing page, updated facts, or third-party sources). Should track mentions, recommendations and citations separately and rerun the identical portfolio after changes are crawled.",
      "assertions": [
        "Recommends grouping prompts into buying topics instead of fixing prompt by prompt",
        "Prioritizes topics by the size of the gap with competitors across runs",
        "Says to inspect the sources cited when competitors won",
        "Says to check and fix an existing page before creating a new one",
        "Includes a technical check (indexing, crawler access, internal links) before rewriting",
        "Says to rerun the identical prompt set after changes are crawled"
      ],
      "files": []
    },
    {
      "id": 14,
      "prompt": "Claude never cites us when people ask about our category, and I have no idea what Copilot is searching for when it does or doesn't cite us. Where do I even look?",
      "expected_output": "Should load references/platform-ranking-factors.md. For Claude: explain that Claude's web search uses Brave Search, so check whether the site appears at search.brave.com for brand and key terms; if missing, request a crawl at search.brave.com/submit-url, noting it only alerts Brave's crawler, with no webmaster console or sitemap submission, so verify by watching referrals from search.brave.com; and check the Claude crawlers (Claude-SearchBot, Claude-User) aren't blocked. For Copilot: point to Bing Webmaster Tools' AI Performance report (beta), which shows how often pages are cited in Copilot and Bing AI answers and the grounding queries Bing used, which are Bing's interpretation of the request rather than what the user typed, with no click data and no mapping from a query to a specific citation.",
      "assertions": [
        "Connects Claude's citations to Brave Search's index",
        "Mentions the Brave submit-url page and that it only requests a crawl (no console or sitemap submission)",
        "Says to check Claude-SearchBot and Claude-User access",
        "Points to Bing Webmaster Tools' AI Performance report for Copilot",
        "Explains grounding queries are Bing's interpretation, not the user's exact words, and lists the report's limits"
      ],
      "files": []
    }
  ]
}

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs Node.js

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Corey Haines
Publisher
Corey Haines (Community)
Source
coreyhaines31/marketingskills · skills/ai-seo · commit 96798cf
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Corey Haines or Corey Haines.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download ai-seo.zip