plugins/seo/skills/ai-ready/SKILL.md
Makes websites discoverable and citable by AI search engines and agents (ChatGPT, Perplexity, Claude, Gemini) through llms.txt setup, robots.txt for AI crawlers, markdown serving via content negotiation, and structured data for AI citations. Use when launching a new site wanting AI discoverability, existing site not appearing in AI search results, optimizing for AI citations and referral traffic, or setting up SaaS marketing site for AI. Trigger phrases include "AI search", "llms.txt", "AI crawlers", "Perplexity citations". NOT for traditional Google SEO (use on-page-seo), technical performance audits (use technical-seo), or keyword research (use keyword-research).
npx skillsauth add petrogurcak/skills ai-readyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Make your website discoverable and citable by AI search engines and agents.
When to use:
When NOT to use:
on-page-seotechnical-seokeyword-researchContext:
| User says... | Go to... |
| -------------------------------------- | -------------------------------------------------------------- |
| "chci byt v ChatGPT", "AI search" | Full Audit (all phases) |
| "llms.txt", "jak na llms.txt" | Phase 1: llms.txt |
| "robots.txt pro AI", "AI crawlers" | Phase 2: robots.txt |
| "markdown pro agenty", "Accept header" | Phase 3: Markdown Serving |
| "structured data pro AI", "schema" | Phase 4 (AI strategy) + schema-markup skill (implementation) |
| "jak merit AI traffic" | Phase 5: Monitoring |
What: Markdown file at /llms.txt — curated map of your site for AI agents.
Spec: https://llmstxt.org/
Adoption: 844,000+ websites (Anthropic, Cloudflare, Stripe use it).
# [Project Name]
> [One-sentence description with key info]
## Docs
- [Page Name](https://example.com/page): Short description
- [Another Page](https://example.com/other): Short description
## API
- [Endpoint Docs](https://example.com/api): API reference
## Optional
- [Blog](https://example.com/blog): Articles and updates
- [About](https://example.com/about): Company info
Rules:
[name](url): description## Optional section = can be skipped for shorter context# [Product Name]
> [What it does, for whom, key differentiator]
## Product
- [Features](https://product.com/features): Complete feature overview
- [Pricing](https://product.com/pricing): Plans and pricing
- [How It Works](https://product.com/how-it-works): Step-by-step guide
## Resources
- [FAQ](https://product.com/faq): Frequently asked questions
- [Getting Started](https://product.com/docs/getting-started): Quick start guide
## Optional
- [Blog](https://product.com/blog): Industry articles and updates
- [About](https://product.com/about): Company information
- [Contact](https://product.com/contact): Contact details
Optional companion file at /llms-full.txt — complete content of your site in one markdown file. Useful for agents that want full context in one request. Generate from your key pages.
Add to ALL page responses (nginx):
add_header Link '</llms.txt>; rel="llms-txt"';
This lets agents discover your llms.txt from any page without inspecting the body.
| Crawler | Company | Purpose | Allow? | | -------------------- | ------------ | ---------------------------- | --------------- | | GPTBot | OpenAI | Model training | Your choice | | ChatGPT-User | OpenAI | Real-time browsing for users | YES | | OAI-SearchBot | OpenAI | Search indexing | YES | | ClaudeBot | Anthropic | Model training | Your choice | | Claude-User | Anthropic | Real-time user access | YES | | Claude-SearchBot | Anthropic | Search indexing | YES | | Google-Extended | Google | Gemini training | Your choice | | Gemini-Deep-Research | Google | Research agent | YES | | PerplexityBot | Perplexity | Answer engine | YES | | Perplexity-User | Perplexity | Real-time browsing | YES | | Meta-ExternalAgent | Meta | LLM training (Llama) | Your choice | | Bytespider | ByteDance | TikTok LLM training | NO (aggressive) | | CCBot | Common Crawl | Open archive | Your choice | | DuckAssistBot | DuckDuckGo | Search indexing | YES | | Amazonbot | Amazon | Alexa/AI services | Your choice |
Strategy: Allow search/browsing bots (they drive traffic). Training bots = your choice.
# AI Search & Browsing — ALLOW (drives referral traffic)
User-agent: ChatGPT-User
Allow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: Claude-User
Allow: /
User-agent: Claude-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Perplexity-User
Allow: /
User-agent: Gemini-Deep-Research
Allow: /
User-agent: DuckAssistBot
Allow: /
# AI Training — BLOCK (optional, no traffic benefit)
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: Meta-ExternalAgent
Disallow: /
User-agent: Bytespider
Disallow: /
User-agent: CCBot
Disallow: /
# Sitemap
Sitemap: https://example.com/sitemap.xml
Note: Blocking training bots does NOT prevent your site from appearing in AI search results. Search bots and training bots are separate.
Serve markdown versions of your pages when AI agents request them via Accept: text/markdown header.
At build/deploy time, convert HTML pages to markdown:
# Using html-to-markdown CLI
mkdir -p /var/www/site/markdown
find /var/www/site/html -type f -name "*.html" | while read -r file; do
relative="${file#/var/www/site/html/}"
dest="/var/www/site/markdown/${relative%.html}.md"
mkdir -p "$(dirname "$dest")"
npx @wcj/html-to-markdown-cli "$file" --stdout > "$dest"
done
Or for PHP sites (Nette), create a simple script/command that renders pages and converts to markdown.
# Detect Accept: text/markdown header
map $http_accept $is_markdown_request {
default 0;
"~text/markdown" 1;
}
server {
# ... existing config ...
# Markdown for AI agents
location / {
if ($is_markdown_request) {
rewrite ^/(.*)$ /markdown/$1.md last;
}
# Normal HTML serving
# ... existing rules ...
}
# Serve markdown files
location /markdown/ {
alias /var/www/site/markdown/;
types { text/markdown md; }
default_type text/markdown;
add_header X-Markdown-Tokens $upstream_http_x_markdown_tokens;
add_header Content-Signal "ai-input=yes, search=yes";
}
}
Tell AI agents what they can do with your content:
# On all responses
add_header Content-Signal "search=yes, ai-input=yes";
# If you DON'T want training:
add_header Content-Signal "search=yes, ai-input=yes, ai-train=no";
Signals:
search=yes — appear in AI search resultsai-input=yes — agents can use content for user queriesai-train=no — don't use for model trainingAI engines strongly prefer structured content. GPT-4 accuracy jumps from 16% to 54% with proper structured data (SchemaApp/Data World research). This is no longer just a Google-ranking signal — it is an AI visibility requirement.
LLMs use JSON-LD to build entity understanding. When GPT-4 or Perplexity reads your page, structured data tells them definitively: what your product is, who made it, what it costs, what questions it answers. Without schema, the model infers — and inference is less accurate and less likely to generate a citation.
The 16% → 54% accuracy improvement means AI engines are twice as likely to cite your page correctly (and at all) when structured data is present.
1. SoftwareApplication — highest priority for SaaS product pages. Tells AI engines your product name, category, pricing, and ratings in a machine-readable format. AI Overviews and ChatGPT product recommendations pull directly from this.
2. FAQPage — 3.4x more Perplexity citations. Each Q&A pair becomes a citable snippet. AI engines extract and surface individual answers, not just the page URL.
Note: Google restricted FAQPage rich results to government/health sites (August 2023). However, AI engines (Perplexity, ChatGPT) still read and cite FAQPage markup. The 3.4x citation boost is for AI search, not Google rich results. Implement FAQPage for AI visibility even though it no longer generates Google rich snippets. For implementation → see schema-markup skill.
3. Organization — critical for Knowledge Panel and entity disambiguation. Lets AI engines link your brand across sources (LinkedIn, Twitter, Crunchbase) via sameAs. Without this, AI may confuse you with a similarly named company.
4. HowTo — for tutorial and guide pages. AI engines (especially Perplexity) surface step-by-step answers directly from HowTo markup. Each step is a potential citation unit.
→ See schema-markup skill. It covers: required properties per type, validation workflow, Rich Results Test, common errors, @id entity graphs, and video schema.
AI search engines add referrer data. Track these in Google Analytics:
| Source | Referrer Pattern |
| ------------ | ---------------------------------------- |
| ChatGPT | chatgpt.com, chat.openai.com |
| Perplexity | perplexity.ai |
| Google AI | Shows as organic with AI-related queries |
| Claude | claude.ai |
| Bing Copilot | bing.com (with copilot parameter) |
Create a custom channel group for "AI Referral":
chatgpt.com|perplexity.ai|claude.ai|you.comRun this for each website:
/llms.txt exists and is well-structuredrobots.txt allows AI search bots (ChatGPT-User, PerplexityBot, Claude-SearchBot)robots.txt blocks aggressive training bots (Bytespider)/llms-full.txt with complete site contentdevelopment
Builds a pre-launch social proof strategy through structured beta programs using D'Souza Brain Audit interviews. Use when launching new products/services and need compelling testimonials, planning a beta cohort, designing interview questions to harvest objection-busting social proof, improving video testimonials for landing pages, or designing case studies with metrics. Trigger phrases include "beta tester program for testimonials", "pre-launch social proof", "Brain Audit testimonial framework", "case study harvest", "reverse testimonial", "video testimonial mechanics", "social proof landing page", "sběr referencí", "beta tester program", "testimonial pro landing page", "social proof před launchem", "rozhovor s klientem", "case study sběr", "reference před spuštěním". NOT for ongoing case study production (use growth-hacking case-study approach), offer design (use offer-creation), or conversion optimization (use ux-optimization).
development
Use when planning a product launch and the product type is unclear or could be either generic (SaaS/app/physical) or info-product. Routes between marketing:launch-strategy (generic launches) and marketing:info-product-launch (courses, memberships, ebooks, cohorts, communities). Trigger phrases - "launch", "spuštění", "go-to-market", "product launch", "release strategy", "uvedení na trh", "launch plan", "spuštění produktu", "launch sequence", "launch strategy". Do NOT trigger when product type is already clear (use specific skill directly).
testing
Specialized 8-week launch cadence for info-products — online courses, cohort programs, memberships, communities, ebooks, masterminds. Combines Jeff Walker's Product Launch Formula (Seed/Internal/JV variants, PLC sequence, open-cart day-by-day) with Stu McLaren's membership mechanics (closed cart, Success Path) and Hormozi Grand Slam Offer stacking. Use when planning "launch online kurzu", "info-product launch", "PLF launch", "course launch", "membership launch", "cohort launch", "ebook launch", "open cart close cart", "8-week launch of online course", "beta cohort to launch sequence", "spuštění kurzu", "launch členské sekce", "open cart strategie". Differentiates from marketing:launch-strategy (generic SaaS/app launches) — info-product-specific. NOT for SaaS launches, physical products, or services.
development
Use when releasing an Expo/React Native mobile app to App Store and Google Play - covers eas submit, ASC "Submit for Review", Play promote Internal→Production, OTA update, and decoding common silent failures (Apple agreement expiry, missing English locale, Background Location declaration, web bundle failure on react-native-maps).