page-seo-checker
Skill16 starsChanged 9 days agoMITView on GitHub
Check SEO compliance of any domain page based on internal SEO standards and page launch checklist, generating a visual HTML report. Automatically extracts domain from URL, supports production and test environments. Trigger keywords: check SEO, SEO check, check page SEO, page SEO compliance, SEO report. Activate when user provides a page URL and requests SEO compliance check.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- tutorgpt-io/tutorgpt-skillsword for word, first seen Aug 21, 2026
Other versions1 project uses a version of this.
Word for word · 1
- tutorgpt-io/tutorgpt-skills★ 15100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository13 other files it gives its agents.
- ai-detectorSkill
- ai-documentsSkill
- ai-image-pptSkill
- ai-sheetsSkill
- browser-automationSkill
- data-analysisSkill
- deep-researchSkill
- mindmapSkill
- page-seo-generator-i18nSkill
- page-seo-generatorSkill
- seo-image-generatorSkill
- seo-keyword-difficultySkill
- transcriptSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
22 rules. About 0 are common, 17 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈17
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 20
Not required for the core 12-point audit, but available for keyword validation if needed
- Distinctive: line 21
If connected, use it to verify the page's primary keyword KD level matches the original decision report
- Distinctive: line 28
Check SEO compliance of a page
- Distinctive: line 29
Run an SEO audit on a URL
- Distinctive: line 30
Verify page SEO before publishing
- Distinctive: line 44
Ask in one message:
- Very specific: line 60
Test/Staging: domain contains test, staging, dev, localhost, or non-production subdomains
- Distinctive: line 63
If the URL is unreachable (404/5xx), report the error immediately and stop — there's nothing to check.
- Distinctive: line 79
Does NOT contain banned openings: "is an AI-powered tool that..." / "is the ultimate solution..." ✓/✗
- Very specific: line 80
No articles (a/an/the) before tool name in Title ✓/✗
- Distinctive: line 90
Does NOT contain banned buzzwords ("revolutionize", "game-changer", etc.) ✓/✗
- Distinctive: line 109
No H3 used where H2 should be, no H4 used where H3 should be ✓/✗
- Very specific: line 152
Every <img> has an alt attribute ✓/✗ (report count of missing alt)
- Distinctive: line 172
If FAQ section exists: FAQPage schema with all 10 Q&A pairs ✓/✗
- Very specific: line 178
Requirement: If the page is a localized version (ja/zh/ko path), hreflang tags must link back to all language variants including the …
- Distinctive: line 185
All hreflang URLs are valid HTTPS ✓/✗
- Very specific: line 190
Method: Search body content for the brand name (as specified by user) occurrences.
- Distinctive: line 193
No instances of "an AI [tool]", "the AI [tool]", "a [tool name]" where tool name is the site's specific product ✓/✗ (report any violations …
- Distinctive: line 219
If Check 11 is skipped (English-only page), total becomes 81.
- Distinctive: line 300
Do not just say "fix it" — give the exact correction.
- Distinctive: line 306
Before delivering the report, verify:
- Distinctive: line 312
Fix recommendations provided: Every ✗ has a specific correction
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Page SEO Checker — 12-Point Automated Audit
Given a live page URL (production or test environment), this Skill runs a 12-point automated SEO compliance check and produces a visual HTML report. It verifies that every page meets all hard constraints before going live.
This is the final step of the SEO automation pipeline — after content is written, images generated, and localization applied, run this check as the quality gate before publishing.
MCP Dependency
seo-web-cafe MCP can optionally be used in this Skill to validate keyword difficulty assumptions. If the page's target keyword was analyzed using seo-keyword-difficulty (Step 0), the checker can cross-reference: did the page actually target a 🟢/🟡 keyword, or was it written for a 🔴 keyword that should be pivoted?
MCP endpoint: mcp__seo-web-cafe__estimate_keyword_difficulty
- Not required for the core 12-point audit, but available for keyword validation if needed
- If connected, use it to verify the page's primary keyword KD level matches the original decision report
Trigger
Activate when the user asks to:
- Check SEO compliance of a page
- Run an SEO audit on a URL
- Verify page SEO before publishing
- Generate an SEO report
The user must provide a live URL (http/https) — this Skill checks real published pages, not draft Markdown.
Required Inputs (Collect First)
Before starting the audit, collect the following from the user:
- Page URL — the live page to check (production or test environment)
- Brand Name — the brand name that should appear in the page (needed for Check 1 and Check 12)
Ask in one message:
"To run the SEO audit, I need:
- The page URL to check
- Your brand name (for brand mention verification)
Please provide these before I start."
Once collected, proceed to Phase 0 below.
Phase 0: Identify Target
- URL — the page to check (provided by the user)
- Environment — auto-detect from URL:
- Production: domain matches
your-domain.com, etc. - Test/Staging: domain contains
test,staging,dev,localhost, or non-production subdomains
- Production: domain matches
- Language — auto-detect from URL path prefix (
/ja/,/zh/,/ko/, or default English)
If the URL is unreachable (404/5xx), report the error immediately and stop — there's nothing to check.
Phase 1: 12-Point Automated Audit
For each check point, use WebFetch to read the live page, then verify the specific constraint. Each point produces a Pass ✓ or Fail ✗ result with details.
Check 1: Title Tag
- Requirement: Title exists, contains brand name, 50-60 characters, no banned phrases
- Method: Extract
<title>from page HTML - Verify:
- Title tag exists and is non-empty ✓/✗
- Character count within 50-60 ✓/✗ (report actual count)
- Contains brand name (as specified by user) ✓/✗
- Does NOT contain banned openings: "is an AI-powered tool that..." / "is the ultimate solution..." ✓/✗
- No articles (a/an/the) before tool name in Title ✓/✗
Check 2: Meta Description
- Requirement: Description exists, 150-160 characters, contains core keyword, no banned phrases
- Method: Extract
<meta name="description">from page HTML - Verify:
- Description tag exists and is non-empty ✓/✗
- Character count within 150-160 ✓/✗ (report actual count)
- Contains at least 1 core keyword ✓/✗
- Does NOT contain banned buzzwords ("revolutionize", "game-changer", etc.) ✓/✗
Check 3: Canonical Tag
- Requirement:
<link rel="canonical">exists and points to the correct self-referencing URL - Method: Extract canonical link from page HTML
- Verify:
- Canonical tag exists ✓/✗
- Canonical URL matches the current page URL (ignoring query params/trailing slashes) ✓/✗
- Canonical URL uses HTTPS ✓/✗
Check 4: H-Tag Structure
- Requirement: Proper hierarchy — exactly 1 H1, H2s for each section, no skipped levels
- Method: Extract all
<h1>through<h6>tags from page HTML - Verify:
- Exactly 1 H1 tag on the page ✓/✗ (report count)
- H1 contains brand/product name ✓/✗
- H2 tags present for all 8 sections (S1-S8) ✓/✗
- No H3 used where H2 should be, no H4 used where H3 should be ✓/✗
- H-tag hierarchy is sequential (H1 → H2 → H3, no H1 → H3 skips) ✓/✗
Check 5: Body Content — Character Limits
- Requirement: Each section's content meets the character limits defined in page-writer
- Method: Parse section content by
<!-- S1-S8 -->HTML comments, or by H2 boundaries - Verify:
- S1 What Is: 200-300 chars ✓/✗ (report count)
- S2 Pain Point: P ≤ 200 chars ✓/✗ (report count)
- S3 Feature summary: ≤ 100 chars ✓/✗ (report count)
- S3 Each feature description: ~100 chars ✓/✗ (report count)
- S4 Each user group: ≤ 150 chars ✓/✗ (report count)
- S5 Each step: ~70 chars ✓/✗ (report count)
- S6 CTA: ≤ 150 chars ✓/✗ (report count)
- S7 Each review: ≥ 300 chars ✓/✗ (report count)
- S8 Each FAQ answer: 200-300 chars ✓/✗ (report count)
Check 6: Testimonials — Realism & Variety
- Requirement: 6 reviews with at least 4 different narrative arcs, no banned patterns
- Method: Extract review block content from S7
- Verify:
- At least 6 distinct reviews present ✓/✗ (report count)
- No "I've been using X for Y months and it's amazing!" openings ✓/✗
- At least 4 different narrative arcs identifiable ✓/✗ (list arcs found)
- Each review ≥ 300 chars ✓/✗
Check 7: FAQ — Structure & Banned Patterns
- Requirement: 10 FAQs, Q1 is "What is [Product]", no banned openings
- Method: Extract FAQ block from S8
- Verify:
- At least 10 FAQs present ✓/✗ (report count)
- Q1 asks "What is [Product] and what makes it different?" ✓/✗
- No "Absolutely!" or "Great question!" answer openings ✓/✗
- Each answer 200-300 chars ✓/✗ (report min/max)
Check 8: Image ALT Tags
- Requirement: All
<img>tags have non-empty, descriptive alt text containing keyword - Method: Extract all
<img>tags and theiraltattributes from page HTML - Verify:
- Every
<img>has analtattribute ✓/✗ (report count of missing alt) - Alt text is non-empty (not just "") ✓/✗
- At least 1 image alt contains the core keyword ✓/✗
- Alt text describes content, not just "image" or "photo" ✓/✗
- Every
Check 9: Internal Links
- Requirement: At least 3 internal links to other site pages, using keyword-rich anchor text
- Method: Extract all
<a>tags with href pointing to the same domain - Verify:
- At least 3 internal links present ✓/✗ (report count)
- Anchor text is descriptive (not "click here" or "learn more") ✓/✗
- Links point to other tool/content pages (not just homepage) ✓/✗
Check 10: Schema / Structured Data
- Requirement: FAQ Schema (FAQPage) and/or Product Schema present in JSON-LD
- Method: Extract
<script type="application/ld+json">blocks from page HTML - Verify:
- At least 1 JSON-LD block exists ✓/✗
- If FAQ section exists: FAQPage schema with all 10 Q&A pairs ✓/✗
- Schema is valid JSON (no syntax errors) ✓/✗
- Schema
@typematches content (FAQPage for FAQ, Product/SoftwareApplication for tool pages) ✓/✗
Check 11: Hreflang Tags (if localized page)
- Requirement: If the page is a localized version (ja/zh/ko path), hreflang tags must link back to all language variants including the English original
- Method: Extract all
<link rel="alternate" hreflang="...">tags - Verify:
- Hreflang tags exist ✓/✗ (skip check if English-only page)
- Includes
hreflang="en"pointing to original English page ✓/✗ - Includes
hreflang="x-default"✓/✗ - Includes hreflang for each available language variant ✓/✗
- All hreflang URLs are valid HTTPS ✓/✗
Check 12: Brand Name Count & Zero-Article Compliance
- Requirement: Brand name appears exactly 10 times; no articles before tool names
- Method: Search body content for the brand name (as specified by user) occurrences; also search for
[a/an/the] [tool name]patterns - Verify:
- Brand name count = 10 ✓/✗ (report actual count and per-section distribution)
- No instances of "an AI [tool]", "the AI [tool]", "a [tool name]" where tool name is the site's specific product ✓/✗ (report any violations found)
Phase 2: Score Calculation
Scoring
Each check point is worth points based on its SEO impact:
| # | Check | Points | Weight |
| 1 | Title Tag | 10 | High — Title is the #1 SEO signal |
| 2 | Meta Description | 8 | High — CTR driver |
| 3 | Canonical | 5 | Medium — Prevents duplication |
| 4 | H-Tag Structure | 8 | High — Content hierarchy signal |
| 5 | Body Content Limits | 10 | High — Readability + quality |
| 6 | Testimonials | 5 | Medium — Trust signals |
| 7 | FAQ | 8 | High — FAQ Schema eligibility |
| 8 | Image ALT | 5 | Medium — Accessibility + image SEO |
| 9 | Internal Links | 5 | Medium — Crawlability + authority flow |
| 10 | Schema | 10 | High — Rich results eligibility |
| 11 | Hreflang | 5 | Medium — International SEO (skip if N/A) |
| 12 | Brand Count & Zero-Article | 5 | Medium — Brand consistency |
| Total | 86 |
- If Check 11 is skipped (English-only page), total becomes 81. Scale score proportionally.
- Pass ≥ 80% = Green (ready to publish)
- Pass 60-79% = Yellow (fix critical items before publishing)
- Pass < 60% = Red (do NOT publish — major issues need fixing first)
Phase 3: Generate HTML Report
Produce a standalone HTML file with the following sections:
Report Structure
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>SEO Audit Report — [URL]</title>
<style>
/* Clean, professional styling */
/* Green ✓ / Red ✗ indicators */
/* Collapsible details for each check */
/* Summary score banner at top */
</style>
</head>
<body>
<header>
<h1>SEO Audit Report</h1>
<div class="meta">URL: [url] | Date: [date] | Env: [prod/test] | Lang: [en/ja/zh/ko]</div>
<div class="score-banner">
<span class="score">[X]/[total]</span>
<span class="badge [green/yellow/red]">[Green/Yellow/Red]</span>
</div>
</header>
<section class="checks">
<!-- For each of the 12 checks -->
<div class="check [pass/fail]">
<h3>Check [N]: [Name]</h3>
<span class="result">[✓ Pass / ✗ Fail]</span>
<details>
<summary>Details</summary>
<table>
<tr><td>Sub-check</td><td>Result</td><td>Value</td></tr>
<!-- Each sub-verification item -->
</table>
</details>
<div class="fix-if-fail">[If ✗: specific fix instruction]</div>
</div>
</section>
<section class="summary">
<h2>Summary & Action Items</h2>
<ul>
<!-- List all ✗ items with fix instructions -->
</ul>
<h2>Recommendation</h2>
<p>[Green: Ready to publish / Yellow: Fix [N] items / Red: Do not publish]</p>
</section>
</body>
</html>Save the report as seo-audit-[domain]-[date].html in the current working directory.
Phase 4: Fix Recommendations
For each ✗ item, provide a specific, actionable fix:
| Check | Typical Fix |
| Title too long/short | "Shorten Title to 50-60 chars: suggested rewrite: [new title]" |
| Missing canonical | "Add <link rel=\"canonical\" href=\"[url]\"> to <head>" |
| H-tag skip | "Change H3 to H2 on [section], or add missing H2 before the H3 block" |
| Missing FAQ schema | "Add JSON-LD block with FAQPage schema containing all 10 Q&A pairs" |
| Brand count off | "Add/remove [N] brand mentions. Suggested positions: [list]" |
| Zero-article violation | "Replace an AI background remover → AI background remover in [location]" |
Do not just say "fix it" — give the exact correction.
Quality Checklist
Before delivering the report, verify:
- All 12 checks executed: None skipped (except Check 11 for English-only pages)
- URL was reachable: Page successfully fetched — if not, report error and stop
- Score calculated correctly: Total points match, percentage correct
- HTML report generated: File saved, visually clean and complete
- Fix recommendations provided: Every ✗ has a specific correction
- Decision category assigned: Green/Yellow/Red with clear publish/don't-publish recommendation
Resources
references/
references/seo-checklist.md— The full SEO checklist with all 12 points, sub-verification items, and expected values. Load this at the start of each audit to ensure completeness.references/report-template.html— Starter HTML template for the audit report. Customize with actual data each run.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

