optimize-page
Comprehensive single-page optimization across all three layers — traditional SEO (title / meta / H1 / internal links), AEO (chunk quality, direct-answer leads, FAQ extraction), and GEO rewrites using the tactics published by the Princeton/IIT Delhi GEO study (citation integration, expert quotes, statistics enrichment, fluency optimization, authoritative tone). Use when the user asks to "optimize this page", "improve SEO for this page", "AEO optimize", "GEO optimize", "apply Princeton GEO method", "rewrite for AI search", "make this snippet-able", "optimize for ChatGPT/Claude/Gemini/Perplexity citations", "improve rankings for [keyword]", "add direct answers", "FAQ optimization", "chunk audit", "AI content optimization", or names a page they want fully optimized. Defaults to a full SEO + AEO + GEO pass; accepts a mode modifier (full, seo, aeo, geo) for granular control.
git clone --depth 1 https://github.com/akii-technologies-ltd/akii-seo-ai-search-optimizer /tmp/optimize-page && cp -r /tmp/optimize-page/skills/optimize-page ~/.claude/skills/optimize-pageSKILL.md
# Page Optimizer — Full SEO + AEO + GEO Pass You are a single-page optimization specialist powered by Akii. Cover all three layers in one pass: 1. **SEO layer** — title, meta description, H1, keyword density, internal/external links, schema type recommendation, images 2. **AEO layer** (Answer Engine Optimization) — chunk quality scoring, direct-answer lead, autonomous sections, definition blocks, FAQ extraction with `FAQPage` schema 3. **GEO layer** (Generative Engine Optimization) — tactics from the [Princeton/IIT Delhi GEO study (Aggarwal et al., KDD 2024, arXiv:2311.09735)](https://arxiv.org/abs/2311.09735): citation integration · quotation addition · statistics enrichment · fluency optimization · authoritative tone. In the paper's controlled benchmark, top tactics lifted AI visibility up to **+40%** overall and **+97–115%** for pages currently ranked outside the top 5. Methodology caveat: the paper allowed fabricated quotes/stats in test prose — the plugin enforces "never invent" so real-world lift varies. ## Modes Detect the mode from the user's invocation. Default to `full` when nothing matches. | Mode | What it runs | |---|---| | `full` (default) | All three layers, unified report | | `seo` | SEO layer only — meta, H1, links, images | | `aeo` | AEO layer only — chunk quality + FAQ extraction | | `geo` | GEO layer only — Princeton tactic per content domain | ### How to detect the mode Match in this order; first hit wins: 1. **Explicit flag**: `--mode=<full|seo|aeo|geo>` (or `--mode <value>`) anywhere in the user message → use that value. 2. **Skill argument syntax** the user typed when invoking explicitly: `optimize-page <target> seo` / `optimize-page <target> aeo` / `optimize-page <target> geo` → use the trailing token. 3. **Natural-language keywords** in the request: - `"just SEO"` / `"only SEO"` / `"SEO check"` / `"on-page SEO"` → `seo` - `"just AEO"` / `"AEO only"` / `"AEO optimize"` / `"chunk quality"` / `"direct answers"` / `"FAQ extraction"` → `aeo` - `"just GEO"` / `"GEO only"` / `"GEO rewrite"` / `"Princeton"` / `"apply GEO"` / `"GEO optimization"` → `geo` 4. Otherwise → `full`. If two NL keyword families match (e.g. "apply AEO and GEO to this page"), run `full` and call it out in the output header. Print the resolved mode at the top of every run: `**Mode**: full` so the user can see the detection. If it's wrong, they'll re-trigger with the flag. ## Inputs to gather - Target page (file path or URL) - Primary target keyword - Secondary keywords (optional) - Content domain (auto-classified if not given — Business/Science, Facts/Law, People/History, etc.) - Available MCPs (Ahrefs for keyword data, GSC for current performance) ## Layer 1 — SEO (always runs in `full` and `seo` modes) ### Meta layer - **Title** — primary keyword near front, HARD LIMIT 60 chars including spaces (count BEFORE proposing), hooky. Re-trim if over; never propose a title that violates the limit listed next to it. - **Meta description** — primary keyword, CTA, HARD LIMIT 155 chars including spaces (count BEFORE proposing) - **URL slug** — short, keyword-anchored, hyphen-separated - **Canonical** — points to itself unless intentional alt - **Open Graph + Twitter card** — non-empty, image set ### Content layer - `<h1>` matches search intent + keyword - First paragraph = direct answer (≤40 words — also feeds the AEO win) - Keyword appears naturally in: H1, first 100 words, at least one H2, image alt text, URL, meta title + description - **Never keyword-stuff** — Aggarwal et al. (KDD 2024) measured a ~10% drop in AI visibility (-8.7% mean; range -6% to -20%) ### Entity coverage - Identify the entities the top 10 results all mention - Score the page on entity coverage - Recommend missing entities to add ### Internal + external links - 3+ internal links to related pages - 1+ external link to authoritative source per major claim - Descriptive anchor text ### Schema + images - Recommend schema type (Article / HowTo / Product / FAQ / Recipe / etc.) — delegate generation to `/akii-seo-ai-search-optimizer:schema-markup` - Hero image with descriptive alt + filename, width/height set, modern format ## Layer 2 — AEO (runs in `full` and `aeo` modes) **Important scoping.** Layer 2 is *good writing structure*, not artificial AI-targeted chunking. Google's AI Optimization Guide explicitly rejects "chunking content" *as a special signal for AI*. Layer 2's actions (direct-answer leads, autonomous sections, definition blocks, well-formed lists, FAQs) are also what Google's guide describes as *"organized in a way that helps your readers"* with *"paragraphs and sections, along with headings that provide a clear structure"*. So Layer 2 is Google-compatible — but never present it to the user as "chunking for AI". Frame it as *helpful structure* both audiences reward. For non-Google engines (ChatGPT, Claude, Perplexity, Copilot, standalone Gemini), Layer 2's actions also materially help retrieval / extraction during inference. The same actions, different mechanism on each engine. ### What good Layer 2 structure looks like - **Lead paragraph = direct answer** to the page's core question, ≤40 words, fact-dense - **Autonomous sections** — each H2/H3 lifts out of context and still conveys complete answer - **Definition blocks** — `**Term**: <one-sentence definition>` for entity extraction - **Lists of 5–7 items**, each starts with imperative verb (HowTo) or complete noun phrase (facts) - **FAQPage schema** at page foot when 3+ Q&A pairs exist ### Chunk quality scoring (the key AEO metric) For each paragraph / list-item / table-row, score 0–100 on: | Dimension | Weight | What it checks | |---|---|---| | Self-containment | 40% | Stands alone? No "as mentioned above" dangling refs? | | Fact density | 25% | Concrete facts, numbers, named entities per 100w | | Imperative clarity | 15% | For instructional steps, do they start with imperative verbs? | | Question alignment | 20% | Does the chunk directly an
Deep autonomous brand visibility analysis across all 6 AI engines — multi-pass real-query probes (5+ engines × 5–10 queries), business-DB scan, citation source enumeration, competitor disambiguation, full 30-day defense plan. Use ONLY when the user explicitly asks for "deep AI visibility analysis", "agent mode", "comprehensive AI brand audit", "autonomous AI visibility", "full multi-engine probe", or commits to a 5+ minute autonomous run. For the standard fast-path one-turn score + per-engine vulnerability map, the `ai-visibility` skill is the right tool — do NOT invoke this agent for generic "AI visibility" / "score my brand" requests, which should route to the skill.
Deep autonomous competitor research — multi-pass crawl across 5+ competitors with full backlink delta, 1000+-term keyword overlap, schema coverage scan, and review-platform delta. Use ONLY when the user explicitly asks for "deep competitor analysis", "agent mode", "autonomous competitor research", "full competitor crawl", "competitor agent", or when 5+ competitors are named. For the standard fast-path one-turn competitor scorecard, the `competitor-intel` skill is the right tool — do NOT invoke this agent for generic "analyze competitors" requests.
Deep autonomous content strategy — multi-pass site crawl, competitor content audit, full keyword + topic gap analysis, pillar + cluster topology, and 90-day publishing queue grounded in real GSC/SERP data. Use ONLY when the user explicitly asks for "deep content audit", "agent mode", "autonomous content strategy", "full site + competitor content analysis", or commits to a multi-minute autonomous run. For the standard fast-path one-turn content plan, the `content-strategy` skill is the right tool — do NOT invoke this agent for generic "plan my content" requests.
Deep autonomous schema generation across 3+ pages or the whole site — multi-file scan, JSON-LD generation, validation, and writing into source files (with user approval per file). Use ONLY when the user explicitly asks for "bulk schema", "schema across my site", "audit all schema", "fix schema everywhere", "every page", "all pages", "site-wide schema", or names a directory containing 3+ pages. For the standard fast-path one-page schema generation, the `schema-markup` skill is the right tool — do NOT invoke this agent for single-page schema requests.
Run a full SEO + AEO + GEO audit on a website or codebase. Use when user asks to "audit my site", "comprehensive SEO audit", "full site audit", "complete SEO check", or wants an end-to-end report covering technical, on-page, schema, AEO, GEO, and AI visibility. Autonomously crawls the codebase or fetches URLs and delivers a scored report.
Quick SEO + AEO check on the current file or a specified page
Generate SEO + AEO + GEO-optimized content for a topic or keyword
Research and generate a complete topic plan with keyword mapping, audience, angle, and competitive positioning