PORTAL / LIBRARY / seo-site-structure

[ SEO ]

/seo-site-structure

Backed by `.claude/context/ai-seo/playbook/04-site-structure.md` (+ Topical Relevance prompt in `prompts/`).

Download the skill file (.md)

Placeholders like ACME Agency, <id> and you@example.com mark values that are per-agency — your install fills them with YOUR clients and accounts. If a section references a helper script you don't have yet, it ships with that workflow's install.

/seo-site-structure — Core 30 + Topical Map

Backed by .claude/context/ai-seo/playbook/04-site-structure.md (+ Topical Relevance prompt in prompts/).

When to trigger

What it produces

A Google Doc "Site Structure (Core 30) — <Client>" with: the full page plan with target keyword + word-count per page, the URL hierarchy + internal-linking map, the topical map (topical clusters before geographic), location-page plan, and a gap analysis vs the current site.

Step-by-Step

1. Parse

First positional = client/business. Flags: --url, --location (primary city), --niche (e.g. "plumbing", "dental"), --dry-run.

2. Gather context

node ACME Agency/scripts/seo_run.mjs --skill structure --mode gather --client "<name>" --url "<url>" --location "<city>"

The gather scrapes the homepage and tries /sitemap.xml so you can audit existing pages. Read the CONTEXT.

3. Read the method

Read .claude/context/ai-seo/playbook/04-site-structure.md fully. Lock in the exact Core 30 composition (counts + word counts), the <id> rule, the internal-linking pattern, the GBP-proximity ceiling for location pages, and the sitemap rule. Load the verbatim Topical Relevance prompt via prompts/ and run it (mentally / with the niche) to generate the topical clusters.

4. Build the structure (markdown)

Write to ACME Agency/clients/<Client>/SEO/site-structure.md (or /tmp).

5. Save + report

node ACME Agency/scripts/seo_run.mjs --skill structure --mode save --client "<name>" \
  --in "<site-structure.md>" --title "Site Structure (Core 30) — <Client>" \
  --slack "*Site Structure (Core 30) — <Client>*
Plan: <N> pages (<c> category, <s> service). <k> already exist, <m> to create."

Add --dry-run to skip Drive/Slack. Output the Doc link.

Guardrails