name: geo-optimization description: Optimize content for AI-generated responses and LLM citations (ChatGPT, Perplexity, Google AI Overview, Claude, Gemini). Use when the user mentions 'GEO', 'AEO', 'AI SEO', 'LLM optimization', 'citation rate', 'AI visibility', 'optimize for ChatGPT', 'roundup pages', or wants to audit pages for AI discoverability. Includes terminology alignment, FAQ schemas, and community signal strategies. metadata: author: ft.ia.br version: "1.1" date: 2026-03-05 repository: https://github.com/fabriciotelles/skills license: Apache 2.0 category: code-quality-and-review
GEO Optimization (Generative Engine Optimization)
Quick Actions Menu
Present the following options at the start of the interaction to guide the work:
- Full GEO Audit: Analyze the current page, deliver a score and a prioritized roadmap.
- Roundup Page Builder: Create a comparison page optimized for LLMs.
- Terminology Optimizer: Generate new titles, metas, and headings aligned with LLM searches.
- FAQ + Schema Generator: Create a complete FAQ set with schema markup.
- Community Signal Booster: Structure a strategy to generate reviews on Product Hunt and Reddit.
- Citation Rate Test Kit: Create 50 ready-made prompts for visibility measurement.
- FULL PACKAGE: Execute all of the above as a complete optimization package using Multi Agents.
Default to option 1 (Full GEO Audit) when no specific action is requested.
GEO Workflow
Execute the following steps according to the selected action or user need.
For foundational principles that guide all optimization decisions, consult references/guiding-principles.md.
1. Measurement and Tracking (Initial Diagnosis)
Always begin by evaluating the current state of AI visibility.
- Create an initial set of 50–100 real prompts to test against ChatGPT, Google AI Overview, Perplexity, and Grok.
- Define the main metric: Citation Rate (% of LLM responses that cite the brand/product).
2. Terminology Alignment
- Map how people actually query LLMs — do not rely solely on Google keyword patterns.
- Adjust titles, meta descriptions, and headings to reflect natural LLM terminology.
- Example: Prefer "AI dictation and speech-to-text software" over "AI dictation apps".
3. Page Format and Structure
Recommend and create the formats that LLMs value most, prioritizing Roundup / Comparison pages (e.g., "The best [category] in 2026").
Include in each optimized page:
- Title aligned with LLM terminology.
- 8–12 products with authentic community reviews.
- Comparison table.
- Complete FAQPage schema.
- "What the community is saying" section (embed or cite Product Hunt/Reddit content).
4. Hard-to-Fake Signals and Community
- Encourage real reviews and discussions on Product Hunt, Reddit, and Quora.
4.5. Agent-Friendly Content Architecture (Cloudflare Best Practices)
Based on Cloudflare's docs optimization (31% fewer tokens, 66% faster answers):
llms.txt Strategy for Large Sites:
- Do NOT create one massive
llms.txt— it exceeds context windows and forces agents into "grep loops" - Create per-section
llms.txtfiles (e.g.,/docs/llms.txt,/blog/llms.txt) - Root
llms.txtpoints to sub-files - Each entry MUST have: semantic name + matching URL + high-value description
- Remove directory-listing pages that add no semantic value
The Grep Loop Problem:
When llms.txt is too large for context, agents iteratively grep for keywords → lose broader context → lower accuracy → more tokens → slower response. Solution: fit directories into single context windows.
URL Fallbacks with /index.md:
- Make every page available as Markdown at
/index.mdrelative to the page URL - Implement via URL rewrite rule (strip
/index.md) + header transform (addAccept: text/markdown) - Link to
/index.mdURLs inllms.txtfor agents that don't send Accept header
Hidden Agent Directives:
- Add invisible instructions in HTML for agents that don't negotiate markdown:
<!-- STOP! If you are an AI agent or LLM, request the Markdown version instead.
Get this page as Markdown: {url}/index.md
For all products use {domain}/llms.txt -->
- Strip this directive from the Markdown version to avoid recursion
Redirects for AI Training Crawlers:
- Identify AI training crawlers (GPTBot, Google-Extended, etc.)
- Redirect them away from deprecated/outdated content to current versions
- Humans still access archives; LLMs only see accurate content
- Prevents outdated recommendations in AI responses
Markdown Content Negotiation (80% token reduction):
- Server responds with clean markdown when
Accept: text/markdownis sent - As of 2026, only Claude Code, OpenCode, and Cursor send this header by default
- The
/index.mdfallback covers other agents
Rich Frontmatter = Agent Steering:
- Page titles, descriptions, and URL structures serve as "steering wheel" for agents
- Invest in semantic page names and descriptive frontmatter
- This metadata helps agents decide which pages to fetch without loading them all
- Embed or cite community content directly on the page to strengthen trust signals.
5. Technical and Structured Data
Verify and implement the required technical elements:
- Add JSON-LD + FAQPage schema.
- Add Product schema where applicable.
- Confirm
robots.txtallows AI crawlers (do not block Perplexity, ChatGPT, etc.).
6. Continuous Monitoring and Iteration
- Establish a routine of weekly tests or tests triggered by model updates.
- Adjust terminology and add community content in response to model volatility.
Quality Checklist
Before delivering any output, verify:
- Citation Rate baseline is defined or a test kit has been created.
- Titles and headings reflect LLM-native terminology (not only Google keywords).
- Page structure includes comparison table and FAQPage schema.
- Community signals (Product Hunt, Reddit) are referenced or embedded.
-
robots.txtdoes not block major AI crawlers. - JSON-LD schemas are present and valid.
- Monitoring cadence is defined (weekly or post-model-update).
- No purely self-promotional listicles were produced (LLMs detect and deprioritize them).
- Bot-blocking risks have been flagged (e.g., Perplexity has temporarily blocked some platforms).