Seo-audit-skill seo-audit-full
git clone https://github.com/JeffLi1993/seo-audit-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/JeffLi1993/seo-audit-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/seo-audit-full" ~/.claude/skills/jeffli1993-seo-audit-skill-seo-audit-full && rm -rf "$T"
seo-audit-full/SKILL.mdseo-audit-full — Advanced Full SEO Audit
Full = Basic + Extra Checks. This skill runs all checks from
seo-audit (basic) first,
then adds advanced modules on top. Both are single-page audits — Full simply covers more
dimensions and provides deeper analysis.
When to Use This Skill
Use
seo-audit-full when the user says any of the following:
- "deep audit" / "advanced audit" / "technical SEO audit"
- "full SEO audit" / "full report" / "key report"
- "comprehensive SEO review" / "audit everything"
- After
(basic) runs: "what else?", "go deeper", "full version"seo-audit
Input Expected
| Input | Required | Notes |
|---|---|---|
| Page URL | Yes | The primary page to audit |
| Primary keyword | Recommended | Improves content relevance scoring |
| Raw HTML / source code | Optional | Enables more accurate on-page analysis |
| GSC API credentials | Optional | Enables search performance analysis (future) |
Architecture: Full = Basic + Extra
┌─────────────────────────────────────────────────────────────┐ │ seo-audit-full Workflow │ │ │ │ Phase 1: Run ALL basic scripts (../seo-audit/scripts/) │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ check-site.py → robots.txt, sitemap, 404, URL │ │ │ │ check-page.py → title, H1, meta desc, slug │ │ │ │ check-schema.py → JSON-LD validation │ │ │ │ check-pagespeed.py → PageSpeed Insights │ │ │ │ fetch-page.py → raw HTML for analysis │ │ │ └──────────────────────────────────────────────────────┘ │ │ ↓ │ │ Phase 2: Run full-only scripts (./scripts/) │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ check-social.py → OG Tags + Twitter Card │ │ │ │ (more scripts added here as modules grow) │ │ │ └──────────────────────────────────────────────────────┘ │ │ ↓ │ │ Phase 3: LLM-only advanced checks │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ E-E-A-T content quality scoring │ │ │ │ Duplicate content signals │ │ │ │ Anchor text quality assessment │ │ │ └──────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────┘
Output
Produce an Advanced Full SEO Audit Report by filling the template at assets/report-template.html, then save it to a file — never print raw HTML to the terminal.
File naming:
reports/<hostname>-<slug>-full-audit.html
https://example.com/blog/best-tools → reports/example-com-blog-best-tools-full-audit.html https://example.com/ → reports/example-com-full-audit.html
After saving, tell the user:
✅ Full Report saved → reports/example-com-full-audit.html Open it now? (yes / no)
If yes → run:
open reports/example-com-full-audit.html
Scripts
Run scripts in two phases. All output structured JSON — use it directly as evidence.
Dependencies:
pip install requests
Phase 1: Basic scripts (from ../seo-audit/scripts/
)
../seo-audit/scripts/# 1. site-level checks (robots.txt + sitemap.xml + 404 + URL canonicalization) python ../seo-audit/scripts/check-site.py https://example.com # 2. page-level checks (H1, title, meta description, canonical, URL slug) python ../seo-audit/scripts/check-page.py https://example.com --keyword "primary keyword" # 3. fetch raw HTML for downstream scripts python ../seo-audit/scripts/fetch-page.py https://example.com --output /tmp/page.html # 4. JSON-LD schema validation python ../seo-audit/scripts/check-schema.py --file /tmp/page.html # 5. PageSpeed Insights python ../seo-audit/scripts/check-pagespeed.py https://example.com
Phase 2: Full-only scripts (from ./scripts/
)
./scripts/# 6. Social tags: OG + Twitter Card validation python scripts/check-social.py --file /tmp/page.html # Or directly from URL: python scripts/check-social.py https://example.com
Each script exits with code
0 (all pass/warn) or 1 (any fail/error).
Scope — Full Audit Check Whitelist
Full includes everything in Basic plus the items marked ★ below.
Site-Level Checks (in {{site_checks_html}}
)
{{site_checks_html}}Inherited from Basic:
- robots.txt · sitemap.xml · 404 Handling · URL Canonicalization · i18n / hreflang
E-E-A-T Checks (in {{eeat_checks_html}}
)
{{eeat_checks_html}}Inherited from Basic:
- About Us · Contact · Privacy Policy · Terms of Service · Media/Partners (only if present)
Page-Level Checks (in {{page_checks_html}}
), output in this exact order:
{{page_checks_html}}Inherited from Basic: PageSpeed (Mobile) · PageSpeed (Desktop) · URL Slug · Title Tag · Meta Description · H1 Tag · Canonical Tag · Image Alt Text · Word Count · Keyword Placement · Heading Structure · Internal Links · Schema (JSON-LD)
★ Full-only additions:
- OG Tags — og:title, og:description, og:image, og:type, og:url presence and validity
- Twitter Card — twitter:card type, title/description/image (with OG fallback detection)
How to Use Script JSON Output
Same rules as Basic — map each field's
status directly to the report check table:
→status
/pass
/warn
/fail
→ badge in reporterror
→ starting point for Evidence linedetail- Do not contradict script output unless you have additional observable evidence
For
output:check-social.py
→ OG Tags row statusog.status
→ Twitter Card row statustwitter_card.status
→ individual field details for the detail cellog.fields.*
→ individual field details, note fallback fieldstwitter_card.fields.*
LLM Review Instructions
Inherited from Basic
All
llm_review_required: true handling from seo-audit applies here unchanged:
H1 semantic judgment, Title keyword position, URL Slug evaluation, Meta Description quality.
See seo-audit/SKILL.md for full instructions.
Full-only LLM checks
OG Tags quality (always review):
og:title : Does it differ meaningfully from <title>? It should be optimized for social sharing. og:description : Is it compelling for social feeds? Different focus than meta description is OK. og:image : Is the URL an actual image path (not a page URL)?
Twitter Card completeness:
If twitter:card is "summary_large_image", twitter:image (or og:image fallback) must be at least 300x157px. Flag if the image URL looks like a small icon or favicon.
Recommended Workflow
- Acknowledge scope — confirm this is a full audit; note any missing data or API keys
- Infer primary keyword — same logic as Basic
- Phase 1: Run ALL basic scripts — check-site → check-page → fetch-page → check-schema → check-pagespeed
- Basic checks — 404 handling, URL canonicalization, E-E-A-T trust pages, i18n/hreflang (same as Basic)
- Phase 2: Run full-only scripts — check-social
- LLM-only advanced checks — E-E-A-T content quality, duplicate content signals, anchor text quality
- Summarize findings — Evidence / Impact / Fix format
- Priority actions — top 5 highest-impact fixes with effort/impact tags
- Render report — save to
reports/<hostname>-<slug>-full-audit.html
Report Detail Writing Rules
Same as Basic — strict formatting:
Pass → one short phrase. No lists, no elaboration.
Warn → one
with ≤2 bullet points. One <div class="detail-issue">
.<div class="detail-fix">
Fail → same as Warn. Lead with the exact failure.
Mandatory Finding Format
**Finding: [Finding Title]** - **Evidence:** [Observable fact, data point, or marked assumption] - **Impact:** [SEO / UX consequence] - **Fix:** [Actionable recommendation with example]
For Priority Actions, add effort/impact tags:
1. [High Impact / Low Effort] Fix og:image — social shares currently show no preview.
Reference Files
- Detailed audit modules and field definitions: references/REFERENCE.md
- Final HTML report template: assets/report-template.html
- Social tags validation script: scripts/check-social.py
- Basic scripts (inherited):
(check-site, check-page, check-schema, check-pagespeed, fetch-page)../seo-audit/scripts/