This page covers every known failure mode for Claude SEO and the steps to resolve each one. Issues are organized by symptom. If your issue is not listed here, checkDocumentation 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.
docs/ARCHITECTURE.md for structural context, file a bug report on the GitHub repository, or use Claude Code’s internal log output for detailed error traces.
Skill and Agent Loading
/seo command is not recognized after install
/seo command is not recognized after install
/seo in Claude Code produces “command not found” or no response.Diagnosis: The orchestrator’s SKILL.md is either missing, in the wrong location, or has malformed frontmatter.Fix:- Verify the installation file exists:
- Check that the frontmatter is valid — the file must open with three dashes:
- Restart Claude Code (the
claudecommand reloads all skills):
- If the file is missing or corrupted, re-run the installer. Download and inspect the script before running it:
Subagent not found: 'seo-technical' (or any seo-* agent)
Subagent not found: 'seo-technical' (or any seo-* agent)
/seo audit, Claude Code reports Agent 'seo-technical' not found or similar for any specialist agent.Diagnosis: The agent markdown files were not copied to ~/.claude/agents/ during install, or were accidentally deleted.Fix:- Verify agent files exist:
- Check an agent’s frontmatter is intact:
- Re-copy agents from the cloned repository:
Python Dependencies
ModuleNotFoundError: No module named 'requests' (or any package)
ModuleNotFoundError: No module named 'requests' (or any package)
ModuleNotFoundError.Diagnosis: As of v1.2.0, all dependencies are installed into a virtual environment at ~/.claude/skills/seo/.venv/. The venv may not have been created, or a package install may have failed partway through.Fix:Use the venv’s own pip to install from the requirements file:requirements.txt not found after install
requirements.txt not found after install
No such file or directory: requirements.txt even though the install script appeared to complete.Diagnosis: As of v1.2.0 the installer copies requirements.txt to the skill directory. An older installer or a partial install may have missed this step.Fix:Check whether the file landed correctly:Windows: 'python is not recognized' or pip points to wrong Python version
Windows: 'python is not recognized' or pip points to wrong Python version
python or pip in PowerShell either fails entirely or invokes Python 2.Diagnosis: The Windows installer (v1.2.0+) tries both python and py -3. If both fail, Python is either not installed or not on the system PATH.Fix:- Install Python 3.10+ from python.org and check “Add Python to PATH” during setup.
- Use the Windows launcher to target Python 3 explicitly:
- Or use the
python3 -m pipform:
- If
py -3still fails, verify the Python launcher is installed:
SPA Rendering and Playwright
Playwright error: Executable doesn't exist at expected path
Playwright error: Executable doesn't exist at expected path
playwright._impl._errors.Error: Executable doesn't exist when trying to render a page.Diagnosis: Playwright is installed as a Python package but the Chromium browser binary has not been downloaded yet. The package and the browser are separate installation steps.Fix:playwright binary is not on your PATH:SPA audit produces noisy or incorrect findings
SPA audit produces noisy or incorrect findings
<div id="root"> shell rather than actual page content.Diagnosis: --render auto detected the SPA but the page content is hydrated after an interaction (scroll past the fold, tab click, modal open) or behind a race-condition-prone third-party widget mount. The headless renderer captured the DOM before hydration completed.Fix:Manually trigger the seo-visual subagent and compare its Playwright screenshot to the raw-HTML subagent’s findings:Permission Errors
Permission denied when running install.sh or scripts
Permission denied when running install.sh or scripts
Permission denied when running install.sh or executing scripts in the scripts/ directory.Diagnosis: The install script or Python scripts are not marked executable.Fix:Google API Errors
Google API authentication fails or returns 403
Google API authentication fails or returns 403
/seo google produces a 403 error or invalid_grant / unauthorized message.Diagnosis: The credential file may be missing, in the wrong location, have incorrect permissions, or the OAuth token may have expired.Fix:- Verify the credential directory exists and files are present:
- Check file permissions — all credential files must be
0o600:
- Re-run the credential wizard to refresh the OAuth token:
-
For service account authentication, verify the service account has been granted the correct OAuth scopes in the Google Cloud Console (Search Console read access for GSC,
https://www.googleapis.com/auth/webmasters.readonly). - To test credential detection without running a full audit:
Audit Performance
Full audit runs very slowly or appears to hang
Full audit runs very slowly or appears to hang
/seo audit takes more than 15–20 minutes without completing.Diagnosis: Possible causes: the target site has slow server response times (>2s TTFB), the site has many pages and the audit is crawling all of them, or a single subagent is blocked waiting for a slow external API.Fix:- Check if the site itself is slow by timing a single page fetch:
- For faster checks on specific concerns, use targeted sub-skills instead of the full audit:
- Note that full site audits crawl up to 500 pages. Large sites with many URLs will take longer regardless. Subagents run in parallel to reduce total time, but network round-trips to a slow origin are the dominant bottleneck.
- Some sites block automated requests or return 429 rate-limit responses. Check the audit output for HTTP error codes and add a delay if needed.
Schema validation produces false positives (valid schema flagged as broken)
Schema validation produces false positives (valid schema flagged as broken)
seo-schema audit flags schema markup as invalid that passes Google’s Rich Results Test manually.Diagnosis: The schema block may contain placeholder text that was not replaced, an @context URL with a trailing slash, or a type that is valid for non-Google purposes but is in the Claude SEO deprecated-types list.Fix:- Ensure all template placeholders in generated JSON-LD blocks are replaced with real values.
-
Verify
@contextis exactlyhttps://schema.org(no trailing slash, nohttp://). -
Check for deprecated types (HowTo, SpecialAnnouncement, ClaimReview, VehicleListing, EstimatedSalary, LearningVideo, CourseInfo carousel). These produce Critical findings by design in v2 — consult
skills/seo-schema/references/deprecated-types-2024-2026.mdfor replacement guidance. - Validate independently at Google’s Rich Results Test to confirm whether the finding is a Claude SEO false positive or a genuine issue.
-
If you need to suppress a finding for a type you are intentionally keeping for non-Google purposes, remove that type from the deprecated list in the local
seo-schemaskill file. Document the reason in a comment.
Debug Mode
To test individual scripts directly and see raw output:--json flag), making it straightforward to pipe their output to jq for inspection.
