# Improve AEO GEO Human Guide

## What This Is For
Provides expert guidance for at AI Engine Optimization (AEO) and Generative Engine Optimization (GEO). It gives the agent a clearer input/output frame for search and SEO workflows: what context to ask for, what decisions to make, and what usable artifact to return.

Use this as a human-readable version of the Improve AEO GEO agent skill. It is meant for marketers, operators, founders, and other non-coders who want the workflow without reading agent-specific implementation instructions.

## When To Use This
- Use this when you need a repeatable process for improve AEO GEO.
- Use this when the task needs judgment, examples, constraints, or a clear output format rather than a one-off prompt.
- Use this when you want to hand an AI assistant enough context to produce a usable marketing artifact.

## When Not To Use This
- Do not use this when you only need a quick factual answer.
- Do not use this when the work depends on private data you cannot share with the assistant.
- Do not use this as a replacement for legal, compliance, financial, or medical review.

## What You Need Before Starting
- The goal or business outcome you want.
- The audience, customer segment, or market context.
- Any source material the assistant should respect, such as notes, briefs, examples, URLs, or brand guidance.
- Constraints such as tone, length, channel, deadline, region, or approval requirements.
- A clear definition of what a good final answer should look like.

## Step-By-Step Workflow
1. State the job clearly: "Use the Improve AEO GEO guide to help me with..."
2. Add context: audience, goal, offer, channel, source material, and constraints.
3. Ask the assistant to identify missing inputs before producing the final output.
4. Have the assistant follow the skill-specific guidance below.
5. Review the result against the final checklist and ask for revisions where needed.

## Skill-Specific Guidance
- If no URL is available, proceed with a code-level audit.
- Identify the framework (Next.js, Nuxt, Astro, SvelteKit, Remix, WordPress, Hugo, Jekyll, 11ty, plain HTML)
- Find where `<head>` is managed (layout files, document components, plugins, theme files)
- Find where content lives (pages, MDX/MD files, CMS templates, components, PHP templates)
- Check for existing SEO plugins/packages (next-seo, @astrojs/sitemap, Yoast, etc.)
- Check if the site uses SSR, SSG, or client-side rendering
- Re-run the audit (`audit-website-aeo` skill, or [aeo-audit.sh](https://aeo-audit.sh)) and compare against the Step 1 baseline to confirm the score improved
- Target: 80+ overall score (B+ grade or higher)
- **Foundational Score (50%)** — 16 deterministic checks, pass/fail per page, aggregated site-wide (80%+ pages must pass)
- **Intelligence Score (50%)** — 6 LLM-evaluated content quality dimensions (0-5 scale)
- **Site-wide**: Organization schema in the root layout
- **Homepage**: WebSite schema with SearchAction

## Decision Points And Nuance
The original skill emphasizes: Workflow, Step 1: Baseline, Step 2: Discover the stack, Step 3: Audit existing state, Step 4: Fix in priority order, Step 5: Verify, Scoring Model, Priority 1: Blockers (fix these first), AI Bot Access (12 pts), AI-Accessible Meta Tags (6 pts).

Use these questions to steer the work:
- What is the intended audience or buyer?
- What source material must be preserved?
- What should the assistant optimize for: clarity, persuasion, accuracy, speed, creativity, or conversion?
- What examples represent the desired quality bar?
- What should the assistant avoid?

## Common Mistakes
- **Foundational Score (50%)** — 16 deterministic checks, pass/fail per page, aggregated site-wide (80%+ pages must pass)
- robots.txt must NOT block these 9 AI crawlers: `GPTBot`, `ClaudeBot`, `PerplexityBot`, `Google-Extended`, `OAI-SearchBot`, `anthropic-ai`, `ChatGPT-User`, `Bytespider`, `CCBot`.
- Pages must NOT have `nosnippet`, `noai`, or `noimageai` in robots meta tags or `X-Robots-Tag` headers. Search for these and remove from public content pages.
- Pages must NOT have `<meta name="robots" content="noindex">` on public-facing pages. Search codebase for `noindex` and remove where inappropriate.
- Every `<title>` must be 10+ characters. Each page needs a unique, descriptive title. Format: `[Page Topic] | [Brand]`. Aim for 50-60 characters.
- 80%+ of `<img>` tags must have `alt` attributes. Decorative images: `alt=""`.

## Copy-And-Paste Prompt
```text
Use the Improve AEO GEO human guide.

My goal:
[Describe the business outcome]

Audience:
[Describe who this is for]

Context and source material:
[Paste notes, examples, links, or existing copy]

Constraints:
[Tone, length, channel, timeline, must-include items, must-avoid items]

Before producing the final output, ask me for any missing information that would materially improve the result.
```

## Final Checklist
- [ ] The output matches the original goal.
- [ ] The audience and context are reflected in the answer.
- [ ] Important constraints and source material were preserved.
- [ ] The assistant made the relevant decisions explicit.
- [ ] The final artifact is ready to use, review, or hand to the next person.

## Source
This guide was generated from the onvoyage-ai/gtm-engineer-skills skill entry for `improve-aeo-geo`.

## Source Skill Notes
These notes preserve the nuance from the original skill. Use them as supporting reference when the workflow above feels too generic.

# Improve Website AEO/GEO Skill

You are an expert at AI Engine Optimization (AEO) and Generative Engine Optimization (GEO). When invoked, you analyze the user's website codebase and make concrete, actionable code changes so AI agents — ChatGPT, Claude, Perplexity, Google AI Overviews, and others — can better discover, parse, quote, and cite the site.

The web is shifting from human-first to AI-first discovery. AI agents don't browse like humans. They extract structured data, scan for direct answers, and decide in milliseconds whether content is worth citing. This skill makes websites visible to that new audience.

## Workflow

When invoked on a codebase, follow this exact sequence:

### Step 1: Baseline
- If the user has a live URL, get a baseline score first. Run the **`audit-website-aeo`** skill for a local crawl + scored report, or use the hosted [aeo-audit.sh](https://aeo-audit.sh). If an `aeo_audit_report.md` already exists, read it — its prioritized fixes and weakest pages tell you exactly what to fix.
- If no URL is available, proceed with a code-level audit.

### Step 2: Discover the stack
- Identify the framework (Next.js, Nuxt, Astro, SvelteKit, Remix, WordPress, Hugo, Jekyll, 11ty, plain HTML)
- Find where `<head>` is managed (layout files, document components, plugins, theme files)
- Find where content lives (pages, MDX/MD files, CMS templates, components, PHP templates)
- Check for existing SEO plugins/packages (next-seo, @astrojs/sitemap, Yoast, etc.)
- Check if the site uses SSR, SSG, or client-side rendering

### Step 3: Audit existing state
Run through all checks below. For each failing check, note the file(s) to modify and the specific fix.

### Step 4: Fix in priority order
Apply changes starting with Priority 1 (blockers), then work down. Make the smallest, most targeted changes needed.

### Step 5: Verify
- Re-run the audit (`audit-website-aeo` skill, or [aeo-audit.sh](https://aeo-audit.sh)) and compare against the Step 1 baseline to confirm the score improved
- Target: 80+ overall score (B+ grade or higher)

---

## Scoring Model

The AEO audit score combines two halves:

- **Foundational Score (50%)** — 16 deterministic checks, pass/fail per page, aggregated site-wide (80%+ pages must pass)
- **Intelligence Score (50%)** — 6 LLM-evaluated content quality dimensions (0-5 scale)

**Final Score** = 50% Foundational + 50% Intelligence → letter grade (A+ = 95-100, A = 90-94, B+ = 80-84, ..., F = below 40).

---

## Priority 1: Blockers (fix these first)

### AI Bot Access (12 pts)

robots.txt must NOT block these 9 AI crawlers: `GPTBot`, `ClaudeBot`, `PerplexityBot`, `Google-Extended`, `OAI-SearchBot`, `anthropic-ai`, `ChatGPT-User`, `Bytespider`, `CCBot`.

**Fix**: Open `robots.txt` (project root, `public/robots.txt`, or framework equivalent). Remove any `Disallow` rules for these bots. If no robots.txt exists, create one:

```txt
User-agent: *
Allow: /

User-agent: GPTBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Google-Extended
Allow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: anthropic-ai
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: Bytespider
Allow: /
