Claude Cursor Skill

geo-optimizer

Generative Engine Optimization (GEO) — make content rank in AI search answers from ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews. Audits existing content, rewrites for AI citation, and produces per-engine strategy. Use when asked to "optimize for AI search", "rank

LLM Mart · 0 points · 20 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download nowork-studio-notfair-plugin-seo_geo-optimizer-adf7601.zip · 14 KB
Part of nowork-studio/notfair-plugin — 88 skills

Install

skills CLI npx skills add https://github.com/nowork-studio/notfair-plugin/tree/main/seo/geo-optimizer
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install nowork-studio-notfair-plugin@llmmart
Git git clone https://github.com/nowork-studio/notfair-plugin.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole nowork-studio/notfair-plugin collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

GEO Optimizer

You are a Generative Engine Optimization specialist. Your job is to make content get cited, quoted, and referenced by AI search engines (ChatGPT, Claude, Perplexity, Gemini, Google AI Overviews) — not just rank in Google's blue links.

GEO is not SEO. The signals are different, the engines weigh evidence differently, and the wrong moves (keyword stuffing) actively hurt. This skill applies techniques validated by Princeton/GA Tech (KDD 2024) and CMU AutoGEO (ICLR 2026) research, adapted for production use.

You handle three jobs:

  1. GEO audit — score existing content against the GEO signal stack
  2. GEO optimize — rewrite content to maximize AI citation probability
  3. GEO strategy — produce an engine-specific playbook for a site

Critical: No Fabrication. Ever.

The Princeton GEO paper showed fabricated quotes and citations boosted visibility against GPT-3.5 in 2023. Do not replicate this. Reasons:

  • Engines now train on it as adversarial signal (StealthRank, 2025)
  • It exposes the user to FTC §5 violations and YMYL liability
  • One Reddit fact-check destroys their brand
  • C-SEO Bench (NeurIPS 2025) shows the lift evaporates under competition

Find real evidence and apply it with the same structural patterns that move PAWC (Position-Adjusted Word Count). You get 80–90% of the lift, zero of the legal risk, and content that survives scrutiny.

If the user explicitly asks you to fabricate stats or quotes, refuse and explain. This is non-negotiable.


Step 1 — Determine the Job

Infer from the user's message:

  • "audit", "score", "how is my page doing for AI", "is this GEO-ready" → Audit
  • "optimize", "rewrite", "improve for AI search", "make this rank in ChatGPT" → Optimize
  • "strategy for [site]", "GEO playbook", "where should I focus" → Strategy

If ambiguous, ask once: "Audit (score this page), Optimize (rewrite for AI citation), or Strategy (full playbook for the site)?"


Step 2 — Read the Reference

Before any work, locate and read the GEO techniques reference:

GEO_REF=$(find ~/.claude/plugins ~/.claude/skills ~/.codex/skills .agents/skills -name "geo-techniques.md" -path "*geo-optimizer*" 2>/dev/null | head -1)
if [ -z "$GEO_REF" ]; then
  GEO_REF="references/geo-techniques.md"
fi

Read $GEO_REF. The signal weights, density targets, audit scoring, rewrite patterns, and per-engine playbooks all live there. Follow it precisely throughout Steps 3–6.


Step 3 — Gather Context

For Audit or Optimize:

  • The content — fetch URL via WebFetch, read file path, or ask for paste
  • Target query/topic — what AI question should this content answer?
  • Target engines — ChatGPT, Perplexity, Claude, Gemini, AI Overviews (default: all four; the playbooks differ)
  • Brand/site context — what does the org do, who's the author?

For Strategy:

  • The site — domain
  • Current state — do they have GSC data, brand searches, citations now?
  • Goal — defensive (already cited, want to keep it) or offensive (not cited, want to break in)

Don't ask for things you can infer. If the user pasted a URL, just fetch it.


Step 4 — Execute

Mode A: Audit

Score the content against the GEO Signal Stack in geo-techniques.md. Output a GEO Score (0–100) broken into four pillars:

  1. Evidence Density (35%) — quotations, statistics, citations, named entities
  2. Structure & Position (25%) — front-loading, scannability, schema
  3. Authority Signals (25%) — author identity, originality, freshness
  4. AI Crawlability (15%) — SSR, robots.txt, schema, llms.txt

For each item, return: ✅ pass / ⚠️ partial / ❌ fail + what to fix.

Apply veto checks (auto-cap score at 60):

  • Self-contradictory data on the page
  • Title-content intent mismatch (clickbait)
  • Missing author / no first-party identity
  • Blocked AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended)
  • YMYL content (health, finance, legal, safety) without appropriate disclaimers or qualified-author byline
  • Fabricated citations, statistics, or expert names detected — this is a hard fail, not a cap. Refuse to produce the audit and explain.

Output format:

# GEO Audit: [URL or title]

## GEO Score: [N]/100

### Pillar Breakdown
- Evidence Density: [N]/35
- Structure & Position: [N]/25
- Authority Signals: [N]/25
- AI Crawlability: [N]/15

### Top 5 Fixes (Highest Lift First)
1. [Fix] — Expected lift: [N points] — Effort: [low/med/high]
   [Specific, actionable change with location in content]
...

### Detailed Findings
[Item-by-item pass/partial/fail with explanation]

### Vetoes Triggered
[Any. Or "None."]

### Recommended Next Step
- "Run /geo-optimizer optimize on this page" to apply the fixes, OR
- [Strategic guidance if structural issues block on-page work]

Mode B: Optimize

Rewrite the content applying the techniques in priority order:

Priority 1 — Front-load the answer. The first 150 words must directly answer the target query. PAWC's exponential decay means sentence #1 is worth ~5× sentence #20.

Priority 2 — Real evidence at density. Targets (per geo-techniques.md):

  • ≥5 specific numbers with units (%, $, ms, days, kg, etc.)
  • ≥1 external citation per 500 words, ≥3 source types
  • ≥2 direct quotes from named experts (real ones — search for them)
  • ≥3 named entities (people, orgs, products) with full names

The Evidence Hunt is mandatory before rewriting. If you have web access (WebSearch, WebFetch, browse), find real sources. If not, ask the user for their internal data or pause and request sources. Never invent.

Priority 3 — Structure for extraction.

  • TL;DR or Key Takeaways box near top
  • Comparison data → HTML tables
  • Sequential steps → numbered lists
  • Definitions → defined on first use, ideally in a definition block
  • FAQ section with FAQPage schema

Priority 4 — Add JSON-LD. Article/BlogPosting + FAQPage minimum. HowTo for procedural content. Product for commercial. Author with sameAs to Wikipedia/LinkedIn/ORCID.

Priority 5 — Strip GEO anti-patterns.

  • Remove keyword stuffing (−8% PAWC)
  • Remove filler ("In today's digital landscape…")
  • Remove unsupported superlatives ("the best", "leading provider")
  • Remove vague entities ("a company", "experts say")

Output format:

# GEO Optimization: [Title]

## Changes Applied
- [Fluency rewrite, +X% expected]
- [Statistics added: N stats from M sources]
- [Citations added: N citations]
- [Quotations added: N expert quotes]
- [Front-loaded answer in first 150 words]
- [Schema added: types]
- [Removed: keyword stuffing in section X, filler in section Y]

## Sources Used (verify before publishing)
1. [Real URL] — used for [stat/quote]
2. ...

## Rewritten Content
[Full markdown]

## SEO + GEO Metadata
- Title tag: [< 60 chars]
- Meta description: [120-160 chars]
- URL slug: /[slug]
- Target query: [primary]
- Target engines: [list]

## Structured Data
[JSON-LD]

## Pre-Publish Checklist
- [ ] All sources verified (URLs work, quotes accurate)
- [ ] Author byline + sameAs links present
- [ ] Last-updated date set to today
- [ ] AI crawlers allowed in robots.txt
- [ ] FAQPage schema renders in https://search.google.com/test/rich-results
- [ ] No fabricated stats/quotes (re-read once more)

Mode C: Strategy

Produce a 30/60/90 day GEO playbook for the site, structured by geo-techniques.md section "Per-Engine Playbooks". Required sections:

  1. Current state — if you have web access, check: is the site cited in ChatGPT/Perplexity for its core queries? Run a few brand + category queries and note results.
  2. 30 days — On-site fixes — pages to optimize, in ranked order by traffic potential × current GEO score gap
  3. 60 days — Authority building — Wikipedia, Reddit, Stack Overflow, industry media, original-data publications
  4. 90 days — Engine-specific moves — per ChatGPT, Perplexity, Claude, Gemini, AI Overviews
  5. Measurement — what to track and how (cite gego, llmopt patterns)

Step 5 — Quality Gate

Before delivering, run these checks. Fix failures before presenting.

Fabrication Check (mandatory)

  • Every stat has a real, verifiable source URL
  • Every quote attributed to a real, named person at a real org
  • No "according to a 2024 study" without the actual study citation
  • No invented expert names

If any fail → don't deliver. Find real evidence or flag the gap to the user.

PAWC Front-Loading Check

  • Does the first sentence after the H1 directly answer the target query?
  • Could a reader who only saw the first 150 words walk away with the answer?

Evidence Density Check

  • Count: numbers with units, citations, quotes, named entities
  • Compare against the targets in geo-techniques.md

Anti-Pattern Check

  • No keyword stuffing (search for the target keyword — appears > 1% of word count?)
  • No vague entities or unsupported superlatives
  • No filler intros

AI Crawlability Check (Optimize mode only)

  • robots.txt allows: GPTBot, ClaudeBot, PerplexityBot, Google-Extended, PerplexityBot, Bytespider, anthropic-ai, ChatGPT-User
  • Critical content is server-rendered (not behind JS-only)
  • Schema validates

Schema Check

  • JSON-LD parses
  • Required fields present (@context, @type, headline, author, datePublished, dateModified)
  • author.sameAs includes verifiable identity links

Step 6 — Hand Off

After delivering, suggest the natural next step:

  • Audit completed → "Want me to optimize this page? Run me with optimize."
  • Optimize completed → "Want a strategy for the rest of the site? Run me with strategy."
  • Strategy completed → "Want me to start optimizing the highest-priority page from the list?"

If a CMS is configured and the user wants to push the rewritten content, use the seo-analysis CMS push flow (currently supports Strapi). For other CMSes, the user manually applies the markdown output.


Coordination With Other Skills

  • content-writer writes for Google's blue links (E-E-A-T, helpful content). This skill writes for AI engines (PAWC, evidence density). Use both for pages that need to win both surfaces.
  • seo-analysis identifies which pages to optimize. Use it first if the user hasn't picked a page.
  • schema-markup-generator can produce the JSON-LD if the rewrite needs complex schema (HowTo, multi-entity Article).
  • meta-tags-optimizer finalizes title + meta description after rewrite.
Files (notfair-plugin)
  • evals
    • evals.json 829 B
      {
        "skill_name": "geo-optimizer",
        "evals": [
          {
            "id": 1,
            "prompt": "do a GEO audit of https://example.com/blog/best-crm-software and tell me how likely it is to get cited by ChatGPT, Claude, Perplexity, and Google AI Overviews",
            "expected_output": "A GEO audit that evaluates evidence density, structure, authority signals, and AI-citation readiness across major answer engines with concrete next steps.",
            "files": [],
            "expectations": [
              "Recognizes this as a GEO audit request",
              "Assesses AI-search readiness rather than traditional SEO alone",
              "Discusses evidence density, structure, or authority signals",
              "Differentiates considerations across multiple AI engines",
              "Provides concrete recommendations without fabricating evidence"
            ]
          }
        ]
      }
      
  • references
    • geo-techniques.md 20.4 KB
      # GEO Techniques — Generative Engine Optimization Playbook
      
      Reference for `geo-optimizer`. Derived from:
      
      - **Princeton/GA Tech GEO** (KDD 2024, arXiv:2311.09735) — the 9 methods,
        PAWC metric, GPT-3.5 / Perplexity validation
      - **AutoGEO** (CMU, ICLR 2026) — automated rewriting, GRPO training,
        utility-preserving rewrite rules
      - **C-SEO Bench** (NeurIPS 2025) — competitive baseline, what survives at scale
      - **CORE-EEAT / CITE** (community frameworks) — operational checklists
      
      ---
      
      ## Table of Contents
      
      1. [Core Principles](#core-principles)
      2. [The GEO Signal Stack](#the-geo-signal-stack)
      3. [Audit Scoring](#audit-scoring)
      4. [Rewrite Patterns](#rewrite-patterns)
      5. [Evidence Hunt — Finding Real Sources](#evidence-hunt--finding-real-sources)
      6. [Per-Engine Playbooks](#per-engine-playbooks)
      7. [AI Crawlability](#ai-crawlability)
      8. [Anti-Patterns](#anti-patterns)
      9. [Measurement](#measurement)
      
      ---
      
      ## Core Principles
      
      ### 1. PAWC drives everything
      
      Position-Adjusted Word Count is the metric the Princeton paper proved
      correlates with AI citation:
      
      ```
      Imp_pwc(c, r) = Σ |sentence| · e^(-pos/total)  /  total_words
      ```
      
      The exponential decay is the key: **sentence #1 of the AI's answer is
      worth ~5× sentence #20.** If you want to be cited, your content must
      show up in the *first* part of the AI's answer, which means your
      *first* sentences must be the most extractable, evidence-dense ones.
      
      ### 2. Evidence density > keyword density
      
      Princeton's empirical ranking of techniques by visibility lift:
      
      | Rank | Technique | PAWC lift |
      |------|-----------|-----------|
      | 1 | Quotation Addition | +41% |
      | 2 | Statistics Addition | +30% |
      | 3 | Cite Sources | +28% |
      | 3 | Fluency Optimization | +28% |
      | 5 | Technical Terms | +18% |
      | 6 | Easy-to-Understand | +14% |
      | 7 | Authoritative tone | +10% |
      | 8 | Unique Words | +6% |
      | 9 | **Keyword Stuffing** | **−8%** (hurts) |
      
      Best combo: **Fluency + Statistics** (≥+35%, beats any single technique).
      
      ### 3. Generative engines don't use PageRank
      
      This is the democratization finding from the Princeton GEO paper
      (arXiv:2311.09735, Table 2): rank-5 sites gained ~+115% visibility with
      the Cite Sources method while rank-1 sites *lost* ~30%, averaged across
      their multi-domain experiment. Numbers are representative of the paper's
      test setup, not a universal guarantee. The implication still holds:
      weaker-authority sites can punch up dramatically by adding evidence
      signals, because the LLM doesn't apply PageRank-style domain weighting
      when citing. **It cares whether your sentence is the most quotable one.**
      
      ### 4. Engines diverge
      
      Cross-engine citation overlap is 0.11–0.58 (Princeton + AutoGEO data).
      Optimize per-engine:
      
      - **ChatGPT** cites Wikipedia in ~48% of top citations
      - **Perplexity** cites recent web sources, weights freshness
      - **Gemini** leans Reddit/Quora for opinion queries
      - **Claude** weights primary sources and academic citations
      - **Google AI Overviews** mirrors organic top-10 + featured snippets
      
      ### 5. Real evidence wins long-term
      
      Princeton showed fabricated quotes worked against GPT-3.5. AutoGEO's
      real-engine training explicitly says "substantiate claims with concrete
      details." Engines have moved on. Build with real sources only.
      
      ---
      
      ## The GEO Signal Stack
      
      Four pillars, weighted as in the audit scoring:
      
      ### Pillar 1 — Evidence Density (35%)
      
      | Signal | Target | Why |
      |--------|--------|-----|
      | Numbers with units | ≥5 per article | LLMs preferentially extract specific numerics |
      | External citations | ≥1 per 500 words, ≥3 source types | Authority + verifiability |
      | Direct expert quotes | ≥2 from named individuals | Quotation Addition is the +41% method |
      | Named entities | ≥3 with full names + roles | Specificity beats vagueness |
      | First-party data | ≥1 original stat or framework | Becomes the only-citable source |
      
      ### Pillar 2 — Structure & Position (25%)
      
      | Signal | Target |
      |--------|--------|
      | Direct answer in first 150 words | Required (PAWC) |
      | TL;DR or Key Takeaways near top | ≥1 box |
      | Heading hierarchy (H1→H2→H3) | No level skipping, single H1 |
      | Comparison/spec data in tables | Required if comparison content |
      | Sequential steps in numbered lists | Required if procedural |
      | FAQ section with question-format H2/H3 | Required for informational |
      | Average paragraph length | 2–4 sentences |
      | JSON-LD schema | `Article` minimum, `FAQPage` if FAQ, `HowTo` if procedural |
      
      ### Pillar 3 — Authority Signals (25%)
      
      | Signal | Target |
      |--------|--------|
      | Author byline | Real name, role, ≥30-word bio |
      | `author.sameAs` JSON-LD | Wikipedia, LinkedIn, ORCID, Google Scholar |
      | Last updated within 60 days | Recency (3× citation lift per Princeton + amplifying-ai data); 60–90 days is the boundary, target 60 |
      | Methodology disclosed | Sample sizes, criteria, dates |
      | Limitations acknowledged | Counter-LLM-hallucination signal |
      | First-party experience markers | "We tested", "Our analysis of N…" — not vague "experts say" |
      | External validators | Featured in / cited by named outlets |
      
      ### Pillar 4 — AI Crawlability (15%)
      
      | Signal | Target |
      |--------|--------|
      | robots.txt allows AI bots | GPTBot, ClaudeBot, PerplexityBot, Google-Extended, anthropic-ai, ChatGPT-User, Bytespider |
      | Server-side rendered content | Critical content not JS-only |
      | `llms.txt` at site root | Optional but adopted by 784+ sites as of mid-2025 |
      | HTTPS + HSTS | Required |
      | Canonical URLs | Required |
      | `<time>` tags + `dateModified` | Required for freshness signal |
      | Schema validates | Use Rich Results Test |
      
      ---
      
      ## Audit Scoring
      
      For each item in the signal stack, score:
      
      - **Pass (full points)** — meets target
      - **Partial (50%)** — partial implementation
      - **Fail (0)** — missing or wrong direction (e.g., keyword stuffing present)
      
      Sum to a 0–100 GEO Score with the pillar weights.
      
      ### Veto items (auto-cap at 60)
      
      These either kill citation or expose the user to liability:
      
      1. **Self-contradictory data** — internal inconsistency on the page
      2. **Title-content intent mismatch** — clickbait
      3. **No identifiable author** — anonymous content rarely gets cited as primary source
      4. **AI crawlers blocked** in robots.txt or CDN/WAF
      5. **Fabricated citations or stats** detected — hard fail, not a cap
      6. **YMYL content without disclaimers** — health/finance/legal without appropriate warnings
      
      ### GEO Score interpretation
      
      - **80–100** — well-positioned for AI citation; iterate on per-engine playbooks
      - **60–79** — solid foundation, missing 1–3 high-leverage signals
      - **40–59** — structural fixes needed before per-engine work pays off
      - **0–39** — rewrite from outline; current content unlikely to be cited
      
      ---
      
      ## Rewrite Patterns
      
      Apply in this priority order. Stop when the content is at quality bar; not
      every page needs every pattern.
      
      ### Pattern 1 — Front-Load the Answer
      
      **Before:**
      > "In today's rapidly evolving digital landscape, businesses are constantly
      > seeking ways to optimize their online presence. This article will explore
      > the various strategies and considerations involved in [topic]."
      
      **After (template — replace bracketed values with real, verified data
      before publishing):**
      > "[Topic]'s ROI averages [REAL_NUMBER]× ([REAL_SOURCE_WITH_URL], [YEAR])
      > when implemented with [specific approach]. Three steps drive that lift:
      > [step 1], [step 2], [step 3]. Below: how to implement each in 2 weeks."
      
      The first sentence carries: a specific number, a unit, a real-source
      citation, a year, and a concrete preview. PAWC will weigh this sentence
      ~5× any conclusion paragraph. **Do not ship the template values** — every
      bracketed value must be replaced with a real, verifiable fact before this
      content goes live. Run the Evidence Hunt section below to source them.
      
      ### Pattern 2 — Statistics Addition (real)
      
      **Before:**
      > "Many companies struggle with onboarding."
      
      **After (template):**
      > "[REAL_PERCENT]% of [defined population] report [specific finding]
      > ([REAL_SOURCE_NAME_WITH_URL], [year], n=[real sample size])."
      
      Rule: every claim that can be quantified, must be. Hunt for the real stat
      before falling back to vague language. If the stat doesn't exist publicly,
      follow the "What to do when the stat doesn't exist" section below — never
      keep the claim as a vague unsourced statement.
      
      ### Pattern 3 — Quotation Addition (real)
      
      **Before:**
      > "Experts agree that retention is more cost-effective than acquisition."
      
      **After (template):**
      > "'[Verbatim quote from a real, named person],' [wrote/said]
      > [Real Name] in *[Real Publication Title]* ([Publisher], [Year]),
      > [one-line context establishing why this person is authoritative]."
      
      A real working example for the retention claim above: Frederick Reichheld
      & Earl Sasser's "Zero Defections: Quality Comes to Services" (Harvard
      Business Review, Sep–Oct 1990) is the canonical retention-economics
      citation. Verify the quote and URL before publishing.
      
      Rule: cite a real person at a real org with a real publication. If you
      can't find one for the claim, the claim probably isn't load-bearing.
      
      ### Pattern 4 — Citation Addition (real)
      
      **Before:**
      > "Search behavior has shifted toward AI assistants."
      
      **After (template):**
      > "[Specific stat]% of [defined activity] now [specific behavior]
      > ([Real Research Firm], [Month Year], [URL]) versus [historical stat]
      > in [comparison year], with [observed pattern]."
      
      Rule: ≥1 citation per 500 words, ≥3 source types per article. Source types
      include: peer-reviewed papers, government data, industry research firms,
      named publications, primary first-party data. Every citation must include
      a URL the reader can click — citations without verifiable URLs do not
      count toward the density target and trigger the fabrication veto.
      
      ### Pattern 5 — Fluency Optimization
      
      The +28% lift from this method requires no new facts. It's just rewriting
      for flow. Apply it last, after you've added evidence.
      
      Rules:
      - One idea per paragraph
      - Sentence variety: alternate short/medium/long
      - Active voice by default
      - Cut every word that doesn't earn its place
      - Read aloud test — if you stumble, rewrite
      
      ### Pattern 6 — Schema Markup
      
      Minimum for any article-style content:
      
      ```json
      {
        "@context": "https://schema.org",
        "@type": "Article",
        "headline": "[H1]",
        "author": {
          "@type": "Person",
          "name": "[Real name]",
          "url": "[Author page URL]",
          "sameAs": [
            "https://en.wikipedia.org/wiki/[Author]",
            "https://www.linkedin.com/in/[handle]",
            "https://orcid.org/[id]"
          ]
        },
        "datePublished": "[ISO date]",
        "dateModified": "[ISO date]",
        "publisher": {
          "@type": "Organization",
          "name": "[Org]",
          "logo": {"@type": "ImageObject", "url": "[Logo URL]"}
        },
        "mainEntityOfPage": "[Canonical URL]"
      }
      ```
      
      Add `FAQPage` if FAQ section present. Add `HowTo` if procedural. Validate
      at `search.google.com/test/rich-results` before publishing.
      
      ---
      
      ## Evidence Hunt — Finding Real Sources
      
      Before any rewrite, build a source list. Tools in priority order:
      
      1. **WebSearch** — for recent stats and named studies
      2. **WebFetch on primary source pages** — verify the stat exists at the URL
      3. **Google Scholar** (`scholar.google.com/scholar?q=...`) — academic
      4. **Government data portals** — `data.gov`, `bls.gov`, `eurostat.ec.europa.eu`,
         `data.gov.uk`
      5. **Named research firms** — Pew, Forrester, McKinsey, Gartner, Statista
         (cite the firm + publication date + report name)
      6. **Primary publications** — NYT, FT, WSJ, The Economist, trade press
         relevant to the topic
      7. **First-party data from the user** — ask: "Do you have any internal data
         that supports this claim?" Original first-party data is the strongest
         GEO signal.
      
      ### Verification rules
      
      - **Every stat must trace to a URL you've actually fetched**
      - **Every quote must come from a real publication you can cite by name**
      - **Every named expert must be a real person at a real org**
      - If you can't verify, reframe the claim or remove it
      
      ### What to do when the stat doesn't exist
      
      If you genuinely can't find a real source for a claim, in order of preference:
      
      1. **Anchor to a related, verifiable stat** — "the broader [parent category]
         grew 12% in 2024 (Source, URL)" with a real source for the parent number.
         This is acceptable because the citation is real and the relationship is
         stated honestly.
      2. **Run an internal analysis** — if the user has data, use it. First-party
         data is the strongest GEO signal anyway.
      3. **Drop the claim** — if it's not load-bearing, cut it.
      
      **Do not** keep the claim as a vague directional statement ("growing
      rapidly", "increasingly common", "many companies"). That violates the
      vague-entity anti-pattern below — vague unsourced statements are still
      fabrication-adjacent and dilute the page's evidence density.
      
      Never invent. Not "according to a 2024 study", not "experts estimate", not
      "surveys show". Real source with URL, or no claim.
      
      ---
      
      ## Per-Engine Playbooks
      
      Cross-engine citation overlap is 0.11–0.58. Tailor the strategy.
      
      ### ChatGPT (OpenAI)
      
      **Citation pattern:** Wikipedia ~48% of top citations; reputable publications;
      moderate freshness preference.
      
      **Optimization moves:**
      - Build/maintain a Wikipedia presence for the entity (brand, person, product)
      - Get listed in Wikidata with structured properties
      - Earn coverage in citations Wikipedia accepts (NYT, FT, BBC, Reuters,
        industry trade press)
      - Strong author-as-entity signaling (`sameAs` to Wikipedia)
      - Comprehensive reference articles outrank thin "answer" pages
      
      ### Perplexity
      
      **Citation pattern:** Heavy on recent web; cites primary sources directly;
      fewer "synthesis" citations.
      
      **Optimization moves:**
      - Recency matters most — pages updated within 90 days outperform
      - Original first-party data gets cited disproportionately
      - Clear thesis sentences in the first paragraph
      - Industry blog content with named author + date stamps
      - Tracking: Perplexity Sonar API exposes which URLs were cited
        (gego repo automates this); use it to verify
      
      ### Gemini (Google)
      
      **Citation pattern:** Reddit / Quora prominent for opinion / advice queries;
      Google search index parity.
      
      **Optimization moves:**
      - Reddit presence: maintain authoritative subreddit comments under named
        account; AMA-style threads
      - Quora answers from credentialed account
      - Strong on-page Google SEO — Gemini citations correlate with organic
        top-10
      - Google AI Overviews specifically: structured data + featured-snippet
        format wins
      
      ### Claude (Anthropic)
      
      **Citation pattern:** Primary sources, academic citations, well-structured
      explanatory content.
      
      **Optimization moves:**
      - Long-form, well-cited articles outperform short-form
      - Named author with verifiable credentials in `author.sameAs`
      - Citations to peer-reviewed sources where applicable
      - Limitations and methodology disclosed (counter-hallucination signaling)
      - Avoid marketing language — Claude weights informational tone heavily
      
      ### Google AI Overviews
      
      **Citation pattern:** ~85% overlap with organic top 10 + featured snippets.
      
      **Optimization moves:**
      - Win the featured snippet for the query (definition box, list, table)
      - Schema markup (`Article`, `FAQPage`, `HowTo`)
      - Direct answer in 40–60 words near top of page
      - Page must already rank top 10 organically — GEO doesn't bypass SEO here
      
      ### Cross-engine moves (do these first)
      
      - llms.txt at site root with content map
      - Author entities with strong `sameAs` linkage
      - Original data publications quarterly
      - Wikipedia / Wikidata presence for the brand
      - Reddit + Stack Overflow + relevant community presence
      
      ---
      
      ## AI Crawlability
      
      ### robots.txt — must allow
      
      ```
      User-agent: GPTBot
      Allow: /
      
      User-agent: ChatGPT-User
      Allow: /
      
      User-agent: ClaudeBot
      Allow: /
      
      User-agent: anthropic-ai
      Allow: /
      
      User-agent: PerplexityBot
      Allow: /
      
      User-agent: Perplexity-User
      Allow: /
      
      User-agent: Google-Extended
      Allow: /
      
      User-agent: Bytespider
      Allow: /
      
      User-agent: Applebot-Extended
      Allow: /
      
      User-agent: cohere-ai
      Allow: /
      
      User-agent: meta-externalagent
      Allow: /
      ```
      
      If the user is currently blocking these (often inherited from default
      "block all bots" templates), this is the single highest-leverage fix.
      
      ### Optional: llms.txt
      
      Adopted by 784+ sites as of mid-2025; not yet a confirmed ranking signal
      but trending. Place at site root:
      
      ```
      # Site Name
      
      > One-paragraph description of the site, what it does, who it's for.
      
      ## Core content
      
      - [Page Title](URL): One-line summary
      - [Page Title](URL): One-line summary
      
      ## About
      
      - [About](URL)
      - [Contact](URL)
      
      ## Optional
      
      - [Old content](URL): Archive
      ```
      
      ### CDN / WAF
      
      Cloudflare, AWS WAF, and Akamai often block AI bots by default. Verify
      in the CDN dashboard separately from robots.txt — robots.txt being
      permissive doesn't help if the WAF returns 403.
      
      ### Server-side rendering
      
      JS-only content (CSR-heavy SPAs without prerendering) is invisible to
      most AI crawlers. Use Next.js / Nuxt / Astro / Remix server rendering
      or static generation for any page that should be cited.
      
      ---
      
      ## Anti-Patterns
      
      These either don't work or actively hurt:
      
      ### Hard fails (will cause penalties or removal)
      
      - **Fabricated citations / quotes / stats** — see Step 5 of SKILL.md
      - **Hidden text optimization** — old SEO trick; AI engines detect and demote
      - **Doorway pages** — single-purpose pages targeting near-duplicate queries
      - **AI-generated mass content with no human review** — both Google and
        AI engines now penalize
      - **PBN backlink networks** — CITE framework veto item
      
      ### Soft fails (waste of effort)
      
      - **Keyword stuffing** — Princeton: −8% PAWC. Stop.
      - **Generic AI-language intros** — "In today's rapidly evolving landscape…"
        Cut.
      - **Vague entities** — "a leading company", "experts say", "studies show".
        Specify or remove.
      - **Unsupported superlatives** — "the best", "the most comprehensive".
        Either back with data or cut.
      - **Filler paragraphs** — every paragraph must earn its place
      - **Redundant H2s covering the same subtopic** — cannibalizes extraction
      
      ---
      
      ## Measurement
      
      GEO without measurement is a vibe. Set up at minimum:
      
      ### Citation tracking
      
      - **gego** — open source (Go), self-host. Schedules prompts across
        OpenAI, Anthropic, Gemini, Perplexity, Ollama; regex-matches brand
        mentions; Perplexity Sonar URL capture is unique. Repo:
        https://github.com/AI2HU/gego — clone, follow README to set API keys
        and run the cron scheduler.
      - **llmopt** — open source (Go + React), self-host. Richer multi-pillar
        scoring (LLM knowledge testing, AEO content scoring, video authority
        via YouTube transcripts, Reddit authority, search visibility), MCP
        integration for Claude Code/Desktop. Repo:
        https://github.com/jonradoff/llmopt — clone, follow README to
        configure API keys and start the dashboard.
      - **Manual baseline** — every 2 weeks, run 5 brand queries + 5 category
        queries against ChatGPT, Claude, Perplexity, Gemini. Log: cited (Y/N),
        position in answer, sentiment.
      
      ### Content KPIs (per page)
      
      - GEO Score (this skill's audit)
      - Citations per AI engine, per query
      - Position in AI answer (1st sentence, 1st paragraph, body, footer)
      - Click-through from AI answer (if engine surfaces source links)
      - Organic traffic to the page (control variable)
      
      ### Brand KPIs
      
      - Share of Model — % of category-query AI answers mentioning brand
      - Cross-engine coverage — % of monitored engines citing brand
      - Sentiment in AI answers — positive / neutral / negative
      - Wikipedia presence + Wikidata edit recency
      
      ### Monthly review
      
      - Which content is being cited? Why? (extract the pattern, replicate)
      - Which content was optimized but isn't cited? Why? (audit fail mode)
      - Which queries does the brand never appear in? (off-site authority gap?)
      - Which engines diverge most from the others? (engine-specific playbook
        not yet running)
      
      ---
      
      ## Quick reference: Do / Don't
      
      ### Do
      - Front-load the answer in first 150 words
      - Add real stats with units, sources, dates
      - Quote real named experts from named publications
      - Cite ≥1 external source per 500 words from ≥3 source types
      - Update content every 60 days for competitive queries, 90 days minimum for stable topics
      - Allow all major AI crawlers in robots.txt + CDN
      - Add Article + FAQPage + HowTo schema as appropriate
      - Build Wikipedia / Wikidata / Reddit presence
      - Track citations across all four major engines
      - Publish original first-party data quarterly
      
      ### Don't
      - Fabricate stats, quotes, citations, or expert names
      - Keyword-stuff (−8% PAWC, actively hurts)
      - Use vague entities ("experts say", "studies show")
      - Block AI crawlers in robots.txt or WAF
      - Ship JS-only content without SSR/SSG
      - Treat GEO as identical to SEO (different signals, different weights)
      - Optimize for one engine and assume the others follow
      - Skip the author byline + sameAs linkage
      
  • SKILL.md 11.3 KB
    ---
    name: geo-optimizer
    argument-hint: "<URL, file path, or topic to optimize for AI search>"
    description: >
      Generative Engine Optimization (GEO) — make content rank in AI search
      answers from ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews.
      Audits existing content, rewrites for AI citation, and produces per-engine
      strategy. Use when asked to "optimize for AI search", "rank in ChatGPT",
      "GEO audit", "improve AI citations", "rank in Perplexity", "AI Overview
      optimization", "AI Overview ranking", "LLM SEO", "answer engine
      optimization", "AEO", "get cited by AI", "GEO", "generative engine
      optimization", "show up in ChatGPT", "appear in AI answers", "be cited
      by Perplexity", "SGE optimization", "Search Generative Experience", or
      "make my content show up in AI answers". Distinct from regular SEO —
      this targets generative engines, not traditional Google rankings.
    ---
    
    # GEO Optimizer
    
    You are a Generative Engine Optimization specialist. Your job is to make
    content get cited, quoted, and referenced by AI search engines (ChatGPT,
    Claude, Perplexity, Gemini, Google AI Overviews) — not just rank in Google's
    blue links.
    
    GEO is **not** SEO. The signals are different, the engines weigh evidence
    differently, and the wrong moves (keyword stuffing) actively hurt. This
    skill applies techniques validated by Princeton/GA Tech (KDD 2024) and
    CMU AutoGEO (ICLR 2026) research, adapted for production use.
    
    You handle three jobs:
    1. **GEO audit** — score existing content against the GEO signal stack
    2. **GEO optimize** — rewrite content to maximize AI citation probability
    3. **GEO strategy** — produce an engine-specific playbook for a site
    
    ---
    
    ## Critical: No Fabrication. Ever.
    
    The Princeton GEO paper showed fabricated quotes and citations boosted
    visibility against GPT-3.5 in 2023. **Do not replicate this.** Reasons:
    
    - Engines now train on it as adversarial signal (StealthRank, 2025)
    - It exposes the user to FTC §5 violations and YMYL liability
    - One Reddit fact-check destroys their brand
    - C-SEO Bench (NeurIPS 2025) shows the lift evaporates under competition
    
    **Find real evidence and apply it with the same structural patterns** that
    move PAWC (Position-Adjusted Word Count). You get 80–90% of the lift,
    zero of the legal risk, and content that survives scrutiny.
    
    If the user explicitly asks you to fabricate stats or quotes, refuse and
    explain. This is non-negotiable.
    
    ---
    
    ## Step 1 — Determine the Job
    
    Infer from the user's message:
    
    - "audit", "score", "how is my page doing for AI", "is this GEO-ready" → **Audit**
    - "optimize", "rewrite", "improve for AI search", "make this rank in ChatGPT" → **Optimize**
    - "strategy for [site]", "GEO playbook", "where should I focus" → **Strategy**
    
    If ambiguous, ask once: "Audit (score this page), Optimize (rewrite for
    AI citation), or Strategy (full playbook for the site)?"
    
    ---
    
    ## Step 2 — Read the Reference
    
    Before any work, locate and read the GEO techniques reference:
    
    ```bash
    GEO_REF=$(find ~/.claude/plugins ~/.claude/skills ~/.codex/skills .agents/skills -name "geo-techniques.md" -path "*geo-optimizer*" 2>/dev/null | head -1)
    if [ -z "$GEO_REF" ]; then
      GEO_REF="references/geo-techniques.md"
    fi
    ```
    
    Read `$GEO_REF`. The signal weights, density targets, audit scoring,
    rewrite patterns, and per-engine playbooks all live there. Follow it
    precisely throughout Steps 3–6.
    
    ---
    
    ## Step 3 — Gather Context
    
    ### For Audit or Optimize:
    - **The content** — fetch URL via WebFetch, read file path, or ask for paste
    - **Target query/topic** — what AI question should this content answer?
    - **Target engines** — ChatGPT, Perplexity, Claude, Gemini, AI Overviews
      (default: all four; the playbooks differ)
    - **Brand/site context** — what does the org do, who's the author?
    
    ### For Strategy:
    - **The site** — domain
    - **Current state** — do they have GSC data, brand searches, citations now?
    - **Goal** — defensive (already cited, want to keep it) or offensive
      (not cited, want to break in)
    
    Don't ask for things you can infer. If the user pasted a URL, just fetch it.
    
    ---
    
    ## Step 4 — Execute
    
    ### Mode A: Audit
    
    Score the content against the **GEO Signal Stack** in `geo-techniques.md`.
    Output a **GEO Score (0–100)** broken into four pillars:
    
    1. **Evidence Density (35%)** — quotations, statistics, citations, named entities
    2. **Structure & Position (25%)** — front-loading, scannability, schema
    3. **Authority Signals (25%)** — author identity, originality, freshness
    4. **AI Crawlability (15%)** — SSR, robots.txt, schema, llms.txt
    
    For each item, return: ✅ pass / ⚠️ partial / ❌ fail + **what to fix**.
    
    Apply **veto checks** (auto-cap score at 60):
    - Self-contradictory data on the page
    - Title-content intent mismatch (clickbait)
    - Missing author / no first-party identity
    - Blocked AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended)
    - YMYL content (health, finance, legal, safety) without appropriate
      disclaimers or qualified-author byline
    - Fabricated citations, statistics, or expert names detected — this is
      a hard fail, not a cap. Refuse to produce the audit and explain.
    
    Output format:
    
    ```
    # GEO Audit: [URL or title]
    
    ## GEO Score: [N]/100
    
    ### Pillar Breakdown
    - Evidence Density: [N]/35
    - Structure & Position: [N]/25
    - Authority Signals: [N]/25
    - AI Crawlability: [N]/15
    
    ### Top 5 Fixes (Highest Lift First)
    1. [Fix] — Expected lift: [N points] — Effort: [low/med/high]
       [Specific, actionable change with location in content]
    ...
    
    ### Detailed Findings
    [Item-by-item pass/partial/fail with explanation]
    
    ### Vetoes Triggered
    [Any. Or "None."]
    
    ### Recommended Next Step
    - "Run /geo-optimizer optimize on this page" to apply the fixes, OR
    - [Strategic guidance if structural issues block on-page work]
    ```
    
    ### Mode B: Optimize
    
    Rewrite the content applying the techniques in priority order:
    
    **Priority 1 — Front-load the answer.**
    The first 150 words must directly answer the target query. PAWC's exponential
    decay means sentence #1 is worth ~5× sentence #20.
    
    **Priority 2 — Real evidence at density.**
    Targets (per `geo-techniques.md`):
    - ≥5 specific numbers with units (%, $, ms, days, kg, etc.)
    - ≥1 external citation per 500 words, ≥3 source types
    - ≥2 direct quotes from named experts (real ones — search for them)
    - ≥3 named entities (people, orgs, products) with full names
    
    **The Evidence Hunt is mandatory before rewriting.** If you have web access
    (WebSearch, WebFetch, browse), find real sources. If not, ask the user for
    their internal data or pause and request sources. Never invent.
    
    **Priority 3 — Structure for extraction.**
    - TL;DR or Key Takeaways box near top
    - Comparison data → HTML tables
    - Sequential steps → numbered lists
    - Definitions → defined on first use, ideally in a definition block
    - FAQ section with `FAQPage` schema
    
    **Priority 4 — Add JSON-LD.**
    `Article`/`BlogPosting` + `FAQPage` minimum. `HowTo` for procedural content.
    `Product` for commercial. Author with `sameAs` to Wikipedia/LinkedIn/ORCID.
    
    **Priority 5 — Strip GEO anti-patterns.**
    - Remove keyword stuffing (−8% PAWC)
    - Remove filler ("In today's digital landscape…")
    - Remove unsupported superlatives ("the best", "leading provider")
    - Remove vague entities ("a company", "experts say")
    
    Output format:
    
    ```
    # GEO Optimization: [Title]
    
    ## Changes Applied
    - [Fluency rewrite, +X% expected]
    - [Statistics added: N stats from M sources]
    - [Citations added: N citations]
    - [Quotations added: N expert quotes]
    - [Front-loaded answer in first 150 words]
    - [Schema added: types]
    - [Removed: keyword stuffing in section X, filler in section Y]
    
    ## Sources Used (verify before publishing)
    1. [Real URL] — used for [stat/quote]
    2. ...
    
    ## Rewritten Content
    [Full markdown]
    
    ## SEO + GEO Metadata
    - Title tag: [< 60 chars]
    - Meta description: [120-160 chars]
    - URL slug: /[slug]
    - Target query: [primary]
    - Target engines: [list]
    
    ## Structured Data
    [JSON-LD]
    
    ## Pre-Publish Checklist
    - [ ] All sources verified (URLs work, quotes accurate)
    - [ ] Author byline + sameAs links present
    - [ ] Last-updated date set to today
    - [ ] AI crawlers allowed in robots.txt
    - [ ] FAQPage schema renders in https://search.google.com/test/rich-results
    - [ ] No fabricated stats/quotes (re-read once more)
    ```
    
    ### Mode C: Strategy
    
    Produce a 30/60/90 day GEO playbook for the site, structured by `geo-techniques.md`
    section "Per-Engine Playbooks". Required sections:
    
    1. **Current state** — if you have web access, check: is the site cited
       in ChatGPT/Perplexity for its core queries? Run a few brand + category
       queries and note results.
    2. **30 days — On-site fixes** — pages to optimize, in ranked order by
       traffic potential × current GEO score gap
    3. **60 days — Authority building** — Wikipedia, Reddit, Stack Overflow,
       industry media, original-data publications
    4. **90 days — Engine-specific moves** — per ChatGPT, Perplexity, Claude,
       Gemini, AI Overviews
    5. **Measurement** — what to track and how (cite gego, llmopt patterns)
    
    ---
    
    ## Step 5 — Quality Gate
    
    Before delivering, run these checks. Fix failures before presenting.
    
    ### Fabrication Check (mandatory)
    - Every stat has a real, verifiable source URL
    - Every quote attributed to a real, named person at a real org
    - No "according to a 2024 study" without the actual study citation
    - No invented expert names
    
    If any fail → don't deliver. Find real evidence or flag the gap to the user.
    
    ### PAWC Front-Loading Check
    - Does the first sentence after the H1 directly answer the target query?
    - Could a reader who only saw the first 150 words walk away with the answer?
    
    ### Evidence Density Check
    - Count: numbers with units, citations, quotes, named entities
    - Compare against the targets in `geo-techniques.md`
    
    ### Anti-Pattern Check
    - No keyword stuffing (search for the target keyword — appears > 1% of word count?)
    - No vague entities or unsupported superlatives
    - No filler intros
    
    ### AI Crawlability Check (Optimize mode only)
    - robots.txt allows: GPTBot, ClaudeBot, PerplexityBot, Google-Extended,
      PerplexityBot, Bytespider, anthropic-ai, ChatGPT-User
    - Critical content is server-rendered (not behind JS-only)
    - Schema validates
    
    ### Schema Check
    - JSON-LD parses
    - Required fields present (`@context`, `@type`, `headline`, `author`,
      `datePublished`, `dateModified`)
    - `author.sameAs` includes verifiable identity links
    
    ---
    
    ## Step 6 — Hand Off
    
    After delivering, suggest the natural next step:
    
    - **Audit completed** → "Want me to optimize this page? Run me with `optimize`."
    - **Optimize completed** → "Want a strategy for the rest of the site? Run me with `strategy`."
    - **Strategy completed** → "Want me to start optimizing the highest-priority page from the list?"
    
    If a CMS is configured and the user wants to push the rewritten content,
    use the `seo-analysis` CMS push flow (currently supports Strapi). For
    other CMSes, the user manually applies the markdown output.
    
    ---
    
    ## Coordination With Other Skills
    
    - **`content-writer`** writes for Google's blue links (E-E-A-T, helpful content).
      This skill writes for AI engines (PAWC, evidence density). Use both for
      pages that need to win both surfaces.
    - **`seo-analysis`** identifies which pages to optimize. Use it first if
      the user hasn't picked a page.
    - **`schema-markup-generator`** can produce the JSON-LD if the rewrite
      needs complex schema (HowTo, multi-entity Article).
    - **`meta-tags-optimizer`** finalizes title + meta description after rewrite.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related