# AI SEO

> Use when the user wants to audit a URL for AI citation eligibility, check why AI systems don't cite their pages, score AI Overview or citation worthiness, generate or validate an llms.txt file, rewrite content for AEO/GEO, extract named entities, or diff two page versions for SEO regressions. No API keys required.

- Skill: `automatelab-tech/ai-seo` (Agent Skill, multi-file: 21 files)
- Install (CLI): `npx skillmds@latest add automatelab-tech/ai-seo`
- Raw SKILL.md: https://api.skillmd.com/api/skills/automatelab-tech/ai-seo/raw
- Safety review: pending (external: skill-scanner PASS, skillspector CAUTION)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- License: MIT
- Author: AutomateLab-tech (https://skillmd.com/u/automatelab-tech)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/automatelab-tech/ai-seo

---


# ai-seo

Pairs with the `@automatelab/ai-seo-mcp` server (14 tools). Audits why AI systems do or do not cite a page — structured answer extraction, schema completeness, crawler access, `llms.txt`, canonical hygiene — and generates fixes.

## When to use which tool

**Start here:** `audit_page` composes all 14 checks in one call and returns a ranked list of citation-blockers with specific fixes. Use it as the default entry point.

**Drill into a specific dimension:**

| Tool | Use when |
|---|---|
| `audit_schema` | User asks about structured data, JSON-LD, or schema.org coverage |
| `audit_canonical` | Checking canonical URL, `og:url`, `hreflang`, or noindex traps |
| `check_robots` | Verifying GPTBot / ClaudeBot / PerplexityBot / OAI-SearchBot are allowed |
| `check_sitemap` | Checking `lastmod` freshness signals and sitemap coverage |
| `check_technical` | Core Web Vitals signals, crawl accessibility, redirect chains |
| `score_ai_overview_eligibility` | "Will this page appear in Google AI Overviews?" |
| `score_citation_worthiness` | Cross-engine citation probability score |
| `generate_llms_txt` | Create an `llms.txt` for the site |
| `validate_llms_txt` | Validate an existing `llms.txt` against the spec |
| `rewrite_for_aeo` | Rewrite a page section for Answer Engine Optimization |
| `rewrite_for_geo` | Rewrite a page section for Generative Engine Optimization |
| `extract_entities` | Check named entity density and `sameAs` coverage |
| `diff_pages` | Compare two versions of a page for SEO regressions |

## Default workflow

```
User: "Audit https://example.com/my-post"
→ audit_page(url)          # full citation-blocker report
→ Read findings, prioritize by severity
→ For fixable issues, call the specific tool (e.g. rewrite_for_aeo) or draft inline edits
```

## Server setup

Add to your MCP config:

**Claude Code** (`.claude/mcp.json`):
```json
{
  "mcpServers": {
    "ai-seo": {
      "command": "npx",
      "args": ["-y", "@automatelab/ai-seo-mcp"]
    }
  }
}
```

**Claude Desktop** (`claude_desktop_config.json`):
```json
{
  "mcpServers": {
    "ai-seo": {
      "command": "npx",
      "args": ["-y", "@automatelab/ai-seo-mcp"]
    }
  }
}
```

Requires Node 20+. No API keys needed — all checks are read-only HTTP fetches against the target URL.

---

Developed by [AutomateLab](https://automatelab.tech). Source: [github.com/AutomateLab-tech/ai-seo-mcp](https://github.com/AutomateLab-tech/ai-seo-mcp).

