$npx -y skills add norahe0304-art/30x-seo --skill 30x-seo-pageDeep 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.
| 1 | # Single Page Analysis |
| 2 | |
| 3 | ## What to Analyze |
| 4 | |
| 5 | ### On-Page SEO |
| 6 | - Title tag: 50-60 characters, includes primary keyword, unique |
| 7 | - Meta description: 150-160 characters, compelling, includes keyword |
| 8 | - H1: exactly one, matches page intent, includes keyword |
| 9 | - H2-H6: logical hierarchy (no skipped levels), descriptive |
| 10 | - URL: short, descriptive, hyphenated, no parameters |
| 11 | - Internal links: sufficient, relevant anchor text, no orphan pages |
| 12 | - External links: to authoritative sources, reasonable count |
| 13 | |
| 14 | ### Content Quality |
| 15 | - Word count vs page type minimums (see quality-gates.md) |
| 16 | - Readability: Flesch Reading Ease score, grade level |
| 17 | - Keyword density: natural (1-3%), semantic variations present |
| 18 | - E-E-A-T signals: author bio, credentials, first-hand experience markers |
| 19 | - Content freshness: publication date, last updated date |
| 20 | |
| 21 | ### Technical Elements |
| 22 | - Canonical tag: present, self-referencing or correct |
| 23 | - Meta robots: index/follow unless intentionally blocked |
| 24 | - Open Graph: og:title, og:description, og:image, og:url |
| 25 | - Twitter Card: twitter:card, twitter:title, twitter:description |
| 26 | - Hreflang: if multi-language, correct implementation |
| 27 | |
| 28 | ### Schema Markup |
| 29 | - Detect all types (JSON-LD preferred) |
| 30 | - Validate required properties |
| 31 | - Identify missing opportunities |
| 32 | - NEVER recommend HowTo (deprecated) or FAQ (restricted to gov/health) |
| 33 | |
| 34 | ### Images |
| 35 | - Alt text: present, descriptive, includes keywords where natural |
| 36 | - File size: flag >200KB (warning), >500KB (critical) |
| 37 | - Format: recommend WebP/AVIF over JPEG/PNG |
| 38 | - Dimensions: width/height set for CLS prevention |
| 39 | - Lazy loading: loading="lazy" on below-fold images |
| 40 | |
| 41 | ### Core Web Vitals (reference only — not measurable from HTML alone) |
| 42 | - Flag potential LCP issues (huge hero images, render-blocking resources) |
| 43 | - Flag potential INP issues (heavy JS, no async/defer) |
| 44 | - Flag potential CLS issues (missing image dimensions, injected content) |
| 45 | |
| 46 | ## Output |
| 47 | |
| 48 | ### Page Score Card |
| 49 | ``` |
| 50 | Overall Score: XX/100 |
| 51 | |
| 52 | On-Page SEO: XX/100 ████████░░ |
| 53 | Content Quality: XX/100 ██████████ |
| 54 | Technical: XX/100 ███████░░░ |
| 55 | Schema: XX/100 █████░░░░░ |
| 56 | Images: XX/100 ████████░░ |
| 57 | ``` |
| 58 | |
| 59 | ### Issues Found |
| 60 | Organized by priority: Critical → High → Medium → Low |
| 61 | |
| 62 | ### Recommendations |
| 63 | Specific, actionable improvements with expected impact |
| 64 | |
| 65 | ### Schema Suggestions |
| 66 | Ready-to-use JSON-LD code for detected opportunities |
| 67 | |
| 68 | [PROTOCOL]: Update this header on changes, then check CLAUDE.md |