← Geo Content EngineeringCONTENT HISTORY

Update to Geo Content Engineering

Snapshot Sep 30, 2026 · 23:13 UTC · version 1.0.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "geo-content-engineering",
  "description": "Create or rebuild web content so generative engines (ChatGPT, Gemini, Perplexity, Google AI Overviews) extract, cite, and mention it. This is the discipline called GEO (Generative Engine Optimization), also known as AI visibility, LLM SEO, or answer engine optimization. Use this skill whenever the user wants to write, restructure, or optimize any web page, article, guide, landing page, pillar page, or FAQ for AI search visibility, citations, or brand mentions. Trigger it when they mention GEO, generative engine optimization, AI visibility, LLM SEO, answer engine optimization, semantic chunking, getting cited by ChatGPT or Perplexity, or making content \"AI-readable\"; and also when they ask softer versions like \"help me write content that AI will recommend,\" \"why doesn't ChatGPT mention my brand,\" or \"how do I show up in AI answers.\" Covers both new content creation and rebuilding existing pages, plus the Share-of-Mentions measurement loop.",
  "included_files": [
    {
      "relative_path": "LICENSE.md",
      "size_in_bytes": 437
    },
    {
      "relative_path": "README.md",
      "size_in_bytes": 1689
    },
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 331
    },
    {
      "relative_path": "assets/faq-block.md",
      "size_in_bytes": 842
    },
    {
      "relative_path": "assets/icon-large.png",
      "size_in_bytes": 10506
    },
    {
      "relative_path": "assets/icon-small.png",
      "size_in_bytes": 4701
    },
    {
      "relative_path": "assets/json-ld-snippets.md",
      "size_in_bytes": 3212
    },
    {
      "relative_path": "assets/page-structure.md",
      "size_in_bytes": 1265
    },
    {
      "relative_path": "assets/update-box.md",
      "size_in_bytes": 549
    },
    {
      "relative_path": "references/anti-patterns.md",
      "size_in_bytes": 4010
    },
    {
      "relative_path": "references/author-eeat.md",
      "size_in_bytes": 925
    },
    {
      "relative_path": "references/chunking.md",
      "size_in_bytes": 2855
    },
    {
      "relative_path": "references/citation-worthiness.md",
      "size_in_bytes": 1292
    },
    {
      "relative_path": "references/crawler-access.md",
      "size_in_bytes": 1521
    },
    {
      "relative_path": "references/evidence-and-sources.md",
      "size_in_bytes": 1807
    },
    {
      "relative_path": "references/glossary.md",
      "size_in_bytes": 2248
    },
    {
      "relative_path": "references/language.md",
      "size_in_bytes": 1161
    },
    {
      "relative_path": "references/measurement.md",
      "size_in_bytes": 2880
    },
    {
      "relative_path": "references/mechanics.md",
      "size_in_bytes": 1816
    },
    {
      "relative_path": "references/offpage-mentions.md",
      "size_in_bytes": 1415
    },
    {
      "relative_path": "references/prioritization.md",
      "size_in_bytes": 1255
    },
    {
      "relative_path": "references/query-fan-out.md",
      "size_in_bytes": 1214
    },
    {
      "relative_path": "references/recency.md",
      "size_in_bytes": 1006
    },
    {
      "relative_path": "references/semantic-html.md",
      "size_in_bytes": 1665
    },
    {
      "relative_path": "references/worked-example.md",
      "size_in_bytes": 2991
    }
  ],
  "skill_md_contents": "---\nname: geo-content-engineering\ndescription: >-\n  Create or rebuild web content so generative engines (ChatGPT, Gemini,\n  Perplexity, Google AI Overviews) extract, cite, and mention it. This is the\n  discipline called GEO (Generative Engine Optimization), also known as AI\n  visibility, LLM SEO, or answer engine optimization. Use this skill whenever the\n  user wants to write, restructure, or optimize any web page, article, guide,\n  landing page, pillar page, or FAQ for AI search visibility, citations, or brand\n  mentions. Trigger it when they mention GEO, generative engine optimization, AI\n  visibility, LLM SEO, answer engine optimization, semantic chunking, getting\n  cited by ChatGPT or Perplexity, or making content \"AI-readable\"; and also when\n  they ask softer versions like \"help me write content that AI will recommend,\"\n  \"why doesn't ChatGPT mention my brand,\" or \"how do I show up in AI answers.\"\n  Covers both new content creation and rebuilding existing pages, plus the\n  Share-of-Mentions measurement loop.\n---\n\n# GEO Content Engineering\n\nBuild web content that generative engines will pull into their answers. The\ngoal is not ranking in a list of blue links. The goal is being the block of text\na model extracts, the source it cites, and the brand it names when a user asks a\nquestion.\n\n## Why this changes how you write\n\nGenerative systems do not read a page top to bottom. They split it into semantic\nblocks (chunks), turn each block into a vector embedding, and for any given\nprompt they retrieve the single block whose embedding is closest to the prompt.\nThat retrieved block is what gets quoted, summarized, or cited. One sharp,\nself-contained paragraph often beats an authoritative domain, because the model\nscores the block, not the whole site.\n\nEverything in this skill follows from that mechanic. Full explanation in\n`references/mechanics.md`. Read it once if the user is new to GEO.\n\nThree layers have to be right, in this order. A perfect text on a page a bot\ncannot read is invisible. So gate access first, then structure, then reputation.\n\n1. **Access.** The bot must reach and render the content. See\n   `references/crawler-access.md`.\n2. **Content and structure.** The text must be chunkable, quotable, complete,\n   and current. This is the bulk of the work below.\n3. **Off-page grounding.** External mentions confirm the claims. See\n   `references/offpage-mentions.md`.\n\n## Pick the mode\n\n**Mode A: New content.** The user is creating a page that does not exist yet.\nGo straight to Build.\n\n**Mode B: Rebuild an existing page.** The user has a live URL that underperforms\nin AI answers. Do not touch the text until you have a baseline, or you will not\nbe able to prove the rebuild worked. Run these first:\n\n1. Measure a baseline Share of Mentions for the target topic cluster before any\n   edit. See `references/measurement.md`.\n2. Check the access gate on the live URL. See `references/crawler-access.md`. If\n   the bot cannot render the page, fix that first. Rewriting an unreadable page\n   is wasted effort.\n\nThen both modes converge on Build.\n\n## Build\n\nUse the page skeleton in `assets/page-structure.md` as the frame. Fill it by\napplying six content rules. Each rule has a full reference file; read the file\nwhen you need depth, not before.\n\n1. **Semantic chunking.** One block, one claim. Answer first, then evidence.\n   Every block has to make sense lifted out of the page on its own. Name the\n   entity instead of using pronouns (\"the Model X battery,\" not \"it\"). Phrase H2\n   and H3 headings as the questions users actually ask.\n   → `references/chunking.md`\n\n2. **Dense, plain language.** Active voice, short sentences, no filler. Every\n   wasted word blurs the block's embedding and makes it lose retrieval to a\n   tighter competing block. When there is no blanket answer, state the condition\n   directly (\"if you need A, choose option 1\") instead of hedging.\n   → `references/language.md`\n\n3. **Citation-worthiness.** Give the model something it cannot get elsewhere:\n   concrete numbers, ranges, prices, technical parameters, and your own data.\n   \"42 percent faster\" is quotable; \"much faster\" is not. Duplicate the key\n   figure of any chart or calculator in plain text, or the model cannot read it.\n   → `references/citation-worthiness.md`\n\n4. **Query fan-out coverage.** Engines split one complex prompt into\n   sub-questions and answer each separately. Cover the adjacent questions\n   (price, risks, alternatives, step-by-step, common mistakes) as their own\n   blocks and FAQ entries, so one page can feed several parts of one answer.\n   → `references/query-fan-out.md`\n\n5. **Recency.** Models favor fresh content, sometimes over better but older\n   content. Put a visible date marker in the text (\"As of 03/2026: ...\") and\n   keep a short \"What changed\" box. A CMS timestamp alone does not count, and\n   changing the date without a real update is detectable and increasingly\n   penalized.\n   → `references/recency.md`\n\n6. **Authorship and trust (E-E-A-T).** Named, verifiable authorship beats\n   anonymous content in retrieval. Add an author box with name, credentials, and\n   a profile link, and keep those details consistent with external profiles.\n   → `references/author-eeat.md`\n\n## Technical markup pass\n\nMachines read code structure, not visual layout. Something that looks like a\ntable but is built from `div` containers is useless for extraction. Before\npublishing, confirm:\n\n- Semantic HTML tags (`article`, `main`, `header`) mark what is content and what\n  is chrome.\n- Comparisons are real `table` markup, not styled divs. Tables are among the\n  most frequently lifted elements.\n- Schema.org via JSON-LD is present: `Article` for posts, `Person` for authors,\n  `FAQPage` for question blocks, `Product` and `Offer` for offerings.\n- Core content is in the initial server HTML response, not injected by\n  client-side JavaScript.\n\nFull requirements in `references/semantic-html.md`. Paste-ready JSON-LD in\n`assets/json-ld-snippets.md`.\n\n## Anti-patterns pass (blocking)\n\nRun the finished text against `references/anti-patterns.md` before calling it\ndone. Two failure classes matter most:\n\n- **Structural failures** that break extraction: mechanical length-based cuts,\n  claims trapped in images, fake tables, timestamp gaming.\n- **Machine-tell language** that marks the text as AI-generated and erodes both\n  reader trust and differentiation from mass-produced competitors. This is a\n  registry of specific English words and phrasing patterns to strip out (delve,\n  seamless, tapestry, testament to, navigate the complexities, and more). The\n  irony is real: content built for AI visibility must not read as if a machine\n  wrote it. Treat this pass as blocking, not cosmetic.\n\n## Publish and register\n\nWhen the page goes live, record the URL and publish date in an input register.\nWithout that record you cannot later attribute any change in visibility to this\nwork. The register entry is part of publishing, not an optional follow-up. Format\nin `references/measurement.md`.\n\n## Measure\n\nWeb traffic is a weak KPI here, because users get their answer inside the AI\ninterface without clicking (zero-click). Measure presence in the answers\nthemselves.\n\n- **Share of Mentions (SoM):** share of tracked prompts whose answers mention the\n  brand. This is the lead metric.\n- **Share of Direct Citations:** share of prompts where the model links your site\n  as a source.\n- **Indirect Citations:** prompts where the model cites an external source that\n  points to the brand.\n\nPrefer shares over raw counts, benchmark the same prompts for competitors, and\nvalidate sentiment by hand on a sample. Full algorithm and blind spots in\n`references/measurement.md`.\n\n## When there are many pages\n\nIf the user has to choose which pages to rebuild first, prioritize by prompt\ndemand, competitor gap, business value, and effort, after filtering out any URL\nthe bot cannot reach. See `references/prioritization.md`.\n\n## Reference map\n\n| File | Read it when |\n| --- | --- |\n| `references/mechanics.md` | The user is new to GEO and needs the why |\n| `references/chunking.md` | Structuring text into extractable blocks |\n| `references/language.md` | Tightening sentences and wording |\n| `references/citation-worthiness.md` | Adding facts that force a citation |\n| `references/query-fan-out.md` | Covering sub-questions and comparisons |\n| `references/recency.md` | Date markers and update handling |\n| `references/author-eeat.md` | Author boxes and trust signals |\n| `references/crawler-access.md` | Checking or fixing bot access (gate) |\n| `references/semantic-html.md` | Markup, tables, JSON-LD, architecture |\n| `references/offpage-mentions.md` | External mentions and consistency |\n| `references/measurement.md` | Baseline, tracking, Share of Mentions |\n| `references/prioritization.md` | Choosing which pages to rebuild first |\n| `references/anti-patterns.md` | Final blocking quality pass |\n| `references/glossary.md` | Definitions and tool-terminology mapping |\n| `references/worked-example.md` | A full before/after rebuild with rule map |\n| `references/evidence-and-sources.md` | What is well-established vs still iterative |\n| `assets/page-structure.md` | The page skeleton to fill |\n| `assets/faq-block.md` | FAQ block template |\n| `assets/update-box.md` | \"What changed\" box template |\n| `assets/json-ld-snippets.md` | Paste-ready structured data |\n\n## Honest limits\n\nThere is no industry standard for optimal chunk length, and different engines\ncut and score differently, so the work is iterative: publish, measure, sharpen\nthe blocks that fail to get extracted. Retrieval is a black box with no\nguarantees. This skill improves the odds; it does not promise placement.\n\n---\n\nBased on the OKF knowledge bundle \"LLM-Content-Erstellung\" by Eugen Ullrich\n(eullrich.com), CC BY 4.0. Attribution required: Eugen Ullrich, eullrich.com.\nContact: hi@eullrich.com.\n"
}

SHA-256: aa6f2d1e24bb14adc8d2a261717136ac1e83933bf3f1df5c9da9fa9ae7361c46