AgriciDaniel/claude-seo
Universal SEO skill for Claude Code. 26 sub-skills + 19 sub-agents covering technical SEO, E-E-A-T, schema, GEO/AEO, agent readiness (Lighthouse Agentic Browsing, WebMCP, llms.txt), backlinks, local SEO, e-commerce, international SEO, Google APIs, and PDF/Excel reporting. 9 optional extensions for live SEO data.
The score is jscpd's own --health model: markup, data and text left out, tests kept. The numbers below are the trending scan's.
Most complex files
- scripts/google_report.py408 cx
- scripts/agentic_check.py303 cx
- scripts/url_safety.py199 cx
- scripts/google_auth.py177 cx
- scripts/drift_compare.py158 cx
- scripts/render_page.py143 cx
- scripts/pagespeed_check.py137 cx
- scripts/lighthouse_agentic.py122 cx
- scripts/bing_webmaster.py120 cx
- scripts/matomo_report.py119 cx
Dead code 0.04% unused · 3 findings
- scripts/google_report.py:_rating_colorunused-symbol
- scripts/google_report.py:_img_tagunused-symbol
- scripts/google_report.py:_finding_severityunused-symbol
The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code.
Largest clones in the code
- 49 lines in 2 placespython363 tokens
80} 81 82data = json.dumps(body).encode("utf-8") 83req = urllib.request.Request( 84 url, 85 data=data, 86 headers={"Content-Type": "application/json", "X-Goog-Api-Key": api_key}, 87 method="POST", 88) 89First 10 of 49 lines.
- 17 lines in 3 placesbash117 tokensextensions/banana/install.sh:118–134extensions/dataforseo/install.sh:140–156extensions/firecrawl/install.sh:107–123
118 'GOOGLE_AI_API_KEY': api_key, 119 }, 120} 121 122os.makedirs(os.path.dirname(settings_path) or '.', exist_ok=True) 123fd, tmp = tempfile.mkstemp(dir=os.path.dirname(settings_path) or '.', prefix='.settings.', suffix='.json') 124try: 125 with os.fdopen(fd, 'w') as f: 126 json.dump(settings, f, indent=2) 127 os.chmod(tmp, 0o600)First 10 of 17 lines.
- 35 lines in 2 placespython156 tokens
83function at all, since it is a no-op there. 84""" 85if os.name != "nt": 86 return 87user = os.environ.get("USERNAME", "").strip() 88if not user: 89 print( 90 f"Warning: USERNAME is not set; could not restrict {path} to the current user", 91 file=sys.stderr, 92 )First 10 of 35 lines.
7 more
- 25 lines in 2 placespython126 tokens
- 10 lines in 3 placespython61 tokens
- 13 lines in 2 placespowershell106 tokens
- 16 lines in 2 placespython104 tokens
- 27 lines in 2 placesbash103 tokens
- 22 lines in 2 placespython96 tokens
- 11 lines in 2 placespython93 tokens
Largest clones over all files, tests and data included
- 396 lines in 2 placesmarkdowndocs and examples3,633 tokens
20# DataForSEO: Live SEO Data (Extension) 21 22Live search data via the DataForSEO MCP server. Provides real-time SERP results 23(organic + images), keyword metrics, backlink profiles, on-page analysis, content 24analysis, business listings, AI visibility checking, and LLM mention tracking 25across 9 API modules with 79+ MCP tools. 26 27## Prerequisites 28 29This skill requires the DataForSEO extension to be installed:First 10 of 396 lines.
- 60 lines in 13 placesmarkdowndocs and examples271 tokensskills/seo-flow/references/prompts/optimize/ai-detector-test-follow-up-prompt.md:11–70skills/seo-flow/references/prompts/optimize/ai-supporting-pages-rewrite-prompt.md:11–70skills/seo-flow/references/prompts/optimize/basic-prompt.md:11–70skills/seo-flow/references/prompts/optimize/blog-post-outline-prompt.md:11–70skills/seo-flow/references/prompts/optimize/blog-post-writing-prompt.md:11–70and 8 more
11# AI detector test follow-up Prompt 12 13## Use This When 14 15Use this prompt when you need a structured optimize deliverable and want the model to separate observations, assumptions, recommended actions, and claims that … 16 17## AI Compatibility 18 19Works with long-context reasoning models. For smaller models, provide narrower inputs and ask for one output section at a time. 20First 10 of 60 lines.
- 13 lines in 21 placestextdocs and examples107 tokensskills/seo-flow/references/prompts/optimize/ai-detector-test-follow-up-prompt.md:32–44skills/seo-flow/references/prompts/optimize/ai-supporting-pages-rewrite-prompt.md:32–44skills/seo-flow/references/prompts/optimize/basic-prompt.md:32–44skills/seo-flow/references/prompts/optimize/blog-post-outline-prompt.md:32–44skills/seo-flow/references/prompts/optimize/blog-post-writing-prompt.md:32–44and 16 more
32Act as a senior SEO strategist using the FLOW model. 33 34Task: create a optimize deliverable for: [BUSINESS OR ASSET]. 35 36Use only the supplied inputs and clearly label any assumption. Do not invent statistics. Do not reuse private examples. Build the answer around: 371. Searcher or buyer intent. 382. Evidence available now. 393. Gaps that block trust, extraction, or conversion. 404. Recommended changes in priority order. 415. Measurement events and review cadence.First 10 of 13 lines.
- 58 lines in 8 placesmarkdowndocs and examples270 tokensskills/seo-flow/references/prompts/local/ai-homepage-rewrite-prompt.md:13–70skills/seo-flow/references/prompts/local/gbp-description-claude-prompt-1.md:13–70skills/seo-flow/references/prompts/local/gbp-description-claude-prompt-2.md:13–70skills/seo-flow/references/prompts/local/gbp-description-claude-prompt-3.md:13–70skills/seo-flow/references/prompts/local/prompt-generating-a-meta-description.md:13–70and 3 more
- 142 lines in 2 placesmarkdowndocs and examples1,517 tokens
By format, code only
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| python | 68 | 28,400 | 49 | 635 | 2.24% |
| bash | 20 | 1,541 | 11 | 132 | 8.57% |
| powershell | 12 | 1,064 | 5 | 43 | 4.04% |
| javascript | 1 | 65 | 0 | 0 | 0% |
By format, all files
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| markdown | 218 | 29,580 | 124 | 4,496 | 15.2% |
| python | 146 | 41,799 | 74 | 900 | 2.15% |
| text | 78 | 1,591 | 38 | 431 | 27.09% |
| bash | 37 | 1,946 | 13 | 212 | 10.89% |
| yaml | 54 | 1,328 | 9 | 175 | 13.18% |
| powershell | 12 | 1,064 | 5 | 43 | 4.04% |
| json | 28 | 2,205 | 3 | 150 | 6.8% |
| markup | 9 | 1,007 | 2 | 14 | 1.39% |
| txt | 2 | 109 | 0 | 0 | 0% |
| javascript | 1 | 65 | 0 | 0 | 0% |
Trending appearances
| Day | Rank | Stars | Files | Lines | Clones | All files | Code | Health | Commit |
|---|---|---|---|---|---|---|---|---|---|
| Oct 26, 2026 | #7 | 21,206 (+197) | 587 | 80,734 | 268 | 7.95% | 2.61% | B 71.7 | 6be93f4 |
Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.