Claude SEO ships with sensible defaults that work without any configuration. You can override rendering behaviour, add Google API credentials for richer data, adjust multi-location safeguards, and tune per-skill thresholds by editing the local SKILL.md files the installer places in your Claude Code directory. This page documents every configurable surface.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/AgricIDaniel/claude-seo/llms.txt
Use this file to discover all available pages before exploring further.
File Locations
Manual Install
After runningbash install.sh or the PowerShell equivalent, files land in your Claude Code user directory:
Plugin Install (Claude Code 1.0.33+)
When you install via/plugin install, files land in the plugin-managed directory:
~/.claude/skills/seo/.venv/ path is the same regardless of install method — the installer always creates the virtual environment there.
Google API Credentials
All credential files under
~/.config/claude-seo/ are created with 0o600 permissions (owner read/write only). Legacy files with 0o644 permissions from pre-v2 installs are automatically remediated to 0o600 the first time any script loads them. Nothing under ~/.config/claude-seo/ is ever checked into the repository.Python Virtual Environment
The installer creates a virtual environment at~/.claude/skills/seo/.venv/. All Python scripts use this venv’s interpreter at runtime. The requirements.txt is copied to ~/.claude/skills/seo/requirements.txt so you can reinstall dependencies without cloning the repo again.
Python Dependencies
The following packages are installed byrequirements.txt (current versions as of v2.0.0):
pyproject.toml enforces requires-python = ">=3.10".
Rendering Modes
scripts/render_page.py is the shared headless renderer used by every fetching subagent. It wraps Playwright Chromium with SPA-detection logic, trafilatura for boilerplate-free content extraction, and htmldate for publication-date extraction.
| Flag | Behaviour |
|---|---|
--render auto | Default. Detects SPA hallmarks (empty <div id="root"> shell, single bundle script, hydration markers) and switches to Playwright rendering only when needed. Static sites get raw HTML for speed. |
--render always | Force Playwright rendering on every page regardless of SPA detection. Use for sites with aggressive client-side routing. |
--render never | Raw HTML only. Disables Playwright entirely. Useful when Playwright is not installed or for fast CI-only analysis. |
--render flag is passed at the CLI layer. The underlying fetch_page() Python function stays raw-mode by default for backward compatibility with v1.x scripts.
Google API Credentials
Claude SEO uses a 4-tier credential system. Start at Tier 0 with no accounts and add tiers as you need richer data.| Tier | Credentials required | APIs unlocked |
|---|---|---|
| 0 | Google API key only | PageSpeed Insights, CrUX, CrUX History (25-week trends) |
| 1 | + OAuth 2.0 or Service Account | + Search Console (queries, URL Inspection, sitemap status), Indexing API |
| 2 | + GA4 property config | + GA4 organic traffic, top landing pages, device/country breakdown |
| 3 | + Ads developer token | + Keyword Planner search volume and competition data |
~/.config/claude-seo/ with the correct 0o600 permissions.
To check which tiers are currently active without running a full audit:
Multi-Location Safeguards
Theseo-local skill enforces two hard limits to prevent doorway-page violations when auditing or generating location pages for multi-location businesses.
| Threshold | Behaviour | Where to configure |
|---|---|---|
| 30 pages | Warning emitted; 60% minimum unique content enforced per page | skills/seo-local/SKILL.md quality-gates section |
| 50 pages | Hard stop; user must explicitly justify before proceeding | skills/seo-local/SKILL.md quality-gates section |
~/.claude/skills/seo-local/SKILL.md file and update the threshold values in the quality-gates section. Do not change them globally — document the justification in a comment alongside the new values.
DataForSEO Cost Guardrails
The DataForSEO extension ships with configurable per-request budget controls managed byscripts/dataforseo_costs.py. The cost guardrail prevents runaway API spending when running large-scale audits.
Default behaviour:
- Budget tracking is cumulative per session.
- A warning is emitted when estimated spend for the current command exceeds the configured per-request limit.
- The command aborts if estimated spend exceeds the hard-stop budget.
extensions/dataforseo/field-config.json file:
Customising a Skill
Every sub-skill is a plain Markdown file you own. Because skills live in your~/.claude/ directory, edits are local, version-controlled by you, and never overwritten by a plugin update unless you explicitly re-run the installer.
Common customisations:
Adjusting content length thresholds — edit references/quality-gates.md in the orchestrator’s reference directory to change minimum word counts per page type.
Changing industry detection signals — edit the Industry Detection section of skills/seo/SKILL.md to add or remove signal patterns for your client’s vertical.
Tuning schema validation severity — edit skills/seo-schema/SKILL.md to reclassify certain finding types from Critical to High if your site intentionally uses a non-standard schema pattern.
Adding industry-specific templates — add a Markdown file to skills/seo-plan/templates/ with the naming pattern {industry}.md. The seo-plan skill auto-discovers templates in that directory.
Keep SKILL.md files under 500 lines / 5,000 tokens. Reference files should stay under 200 lines. Scripts must include a docstring, a CLI interface, and JSON output for the orchestrator to parse. These limits keep context windows lean during parallel dispatch.
Environment Requirements
| Requirement | Version | Notes |
|---|---|---|
| Python | 3.10+ | Enforced by pyproject.toml |
| Claude Code CLI | Any | Required to load skills and agents |
| Playwright Chromium | Optional | Required for --render auto / --render always; auto-installed by install.sh |
| Google API credentials | Optional | Required for Tier 0–3 data enrichment |
| MCP extensions | Optional | Required for DataForSEO, Ahrefs, Profound, SE Ranking, Bing Webmaster, Unlighthouse |
playwright binary is not on your PATH:
