--- id: AgriciDaniel/claude-seo/seo-page version: "53addba7" license: MIT install: manual updated: 2026-07-27 --- # seo-page — seo-page is a Claude Code skill that audits individual web pages for SEO performance across multiple dimensions. It evaluates on-page elements, technical metadata, content quality signals, and schema markup in a single analysis pass, helping you identify optimization opportunities quickly. Publisher: AgriciDaniel · Stars: 12542 · Updated: 2026-07-27 Install (manual): `git clone https://github.com/AgriciDaniel/claude-seo` ## SKILL.md # Single Page Analysis ## What to Analyze ### On-Page SEO - Title tag: 50-60 characters, includes primary keyword, unique - Meta description: 150-160 characters, compelling, includes keyword - H1: exactly one, matches page intent, includes keyword - H2-H6: logical hierarchy (no skipped levels), descriptive - URL: short, descriptive, hyphenated, no parameters - Internal links: sufficient, relevant anchor text, no orphan pages - External links: to authoritative sources, reasonable count ### Content Quality - Word count vs page type minimums (see quality-gates.md) - Readability: Flesch Reading Ease score, grade level - Keyword density: natural (1-3%), semantic variations present - E-E-A-T signals: author bio, credentials, first-hand experience markers - Content freshness: publication date, last updated date ### Technical Elements - Canonical tag: present, self-referencing or correct - Meta robots: index/follow unless intentionally blocked - Open Graph: og:title, og:description, og:image, og:url - Twitter Card: twitter:card, twitter:title, twitter:description - Hreflang: if multi-language, correct implementation ### Schema Markup - Detect all types (JSON-LD preferred) - Validate required properties - Identify missing opportunities - Never recommend HowTo (deprecated) or FAQ for rich results (retired May 2026); existing FAQPage need not be removed, use QAPage for genuine Q&A ### Images - Alt text: present, descriptive, includes keywords where natural - File size: flag >200KB (warning), >500KB (critical) - Format: recommend WebP/AVIF over JPEG/PNG - Dimensions: width/height set for CLS prevention - Lazy loading: report `lazy_method` per image (native | perfmatters | ewww | js-generic | none). Do not flag "not lazy-loaded" when JS lazy-loaders (Perfmatters, EWWW, lazysizes) are detected, they intentionally strip the native `loading="lazy"` attribute and use `data-src` placeholders ### Core Web Vitals (reference only, not measurable from HTML alone) - Flag potential LCP issues (huge hero images, render-blocking resources) - Flag potential INP issues (heavy JS, no async/defer) - Flag potential CLS issues (missing image dimensions, injected content) ## Output ### Page Score Card ``` Overall Score: XX/100 On-Page SEO: XX/100 ████████░░ Content Quality: XX/100 ██████████ Technical: XX/100 ███████░░░ Schema: XX/100 █████░░░░░ Images: XX/100 ████████░░ ``` ### Issues Found Organized by priority: Critical -> High -> Medium -> Low ### Recommendations Specific, actionable improvements with expected impact ### Schema Suggestions Ready-to-use JSON-LD code for detected opportunities ## DataForSEO Integration (Optional) If DataForSEO MCP tools are available, use `serp_organic_live_advanced` for real SERP positions and `backlinks_summary` for backlink data and spam scores. ## Error Handling | Scenario | Action | |----------|--------| | URL unreachable (DNS failure, connection refused) | Report the error clearly. Do not guess page content. Suggest the user verify the URL and try again. | | Page requires authentication (401/403) | Report that the page is behind authentication. Suggest the user provide the rendered HTML directly or a publicly accessible URL. | | JavaScript-rendered content (empty body in HTML) | Note that key content may be rendered client-side. Analyze the available HTML and flag that results may be incomplete. Suggest using a browser-rendered snapshot if available. | [View on SkillFed](https://skillfed.io/AgriciDaniel/claude-seo/seo-page) · [View on GitHub](https://github.com/AgriciDaniel/claude-seo)