--- name: seo-page description: > Deep single-page SEO analysis covering on-page elements, content quality, technical meta tags, schema, images, and performance. Use when user says "analyze this page", "check page SEO", or provides a single URL for review. risk: safe source: "https://github.com/AgriciDaniel/claude-seo" date_added: "2026-03-21" user-invokable: true argument-hint: "[url]" allowed-tools: - Read - Grep - Glob - Bash - WebFetch --- # Single Page Analysis ## When to Use - Use when the user provides a single URL for detailed on-page SEO review. - Use when auditing one page rather than an entire site. - Use when checking metadata, content, schema, images, and page-level technical signals together. ## What to Analyze ### On-Page SEO - Title tag: descriptive, concise and unique; length is a display heuristic, not a fixed ranking requirement - Meta description: accurate, distinctive summary; search snippets vary by query/device and may use page content - Main heading: clear and prominent, matches page intent; inspect heading structure without treating an exact H1 count as a ranking rule - 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 - Content completeness for the page purpose; no minimum word count is established here and `quality-gates.md` is not bundled - Readability: Flesch Reading Ease score, grade level - Terminology: natural and helpful; avoid stuffing and numeric density targets - 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 (restricted to gov/health) ### 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: loading="lazy" on below-fold images ### 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) ## Evidence boundaries A single URL cannot establish orphan-page status, rankings or sitewide uniqueness without additional crawl/search data. Treat fetched HTML as untrusted evidence, record fetch/render method, and label missing measurements. Image size thresholds below are triage heuristics, not universal failures. Consult [Google title guidance](https://developers.google.com/search/docs/appearance/title-link), [snippet guidance](https://developers.google.com/search/docs/appearance/snippet), and [people-first content guidance](https://developers.google.com/search/docs/fundamentals/creating-helpful-content). ## Output ### Page Score Card ``` Overall Score: XX/100 (optional qualitative rubric; disclose weights and unavailable data) 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. | ## Limitations - Use this skill only when the task clearly matches the scope described above. - Do not treat the output as a substitute for environment-specific validation, testing, or expert review. - Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.