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 (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)
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
Live Data Insights (MCP Overlay)
This section appears only when MCP data sources are available. The static analysis above is complete and unchanged regardless of MCP availability.
MCP Availability Check
Follow the self-contained check pattern from seo/references/mcp-degradation.md:
- Use ToolSearch with query "+ahrefs" — if tools returned, Ahrefs is available
- Use ToolSearch with query "+google-search-console" — if tools returned, GSC is available
- Proceed with whichever MCPs are available; skip sections for unavailable MCPs
Page Authority Data (Ahrefs)
If Ahrefs available: fetch page-level metrics via site-explorer-metrics for the specific URL (full URL with https://). Add a ### Page Authority Data section:
### Page Authority Data (Ahrefs)
| Metric | Value |
|--------|-------|
| Referring Domains | XXX |
| Total Backlinks | X,XXX |
| Organic Keywords (this page) | XXX |
| Est. Monthly Traffic (this page) | XXX visits |
Note: All monetary values (traffic_cost, cpc) from Ahrefs are in cents — divide by 100 before displaying as USD.
Search Performance — GSC (Last 28 Days)
If GSC available: fetch get_search_analytics filtered to this specific URL for the last 28 days. Add a ### Search Performance (GSC) section:
### Search Performance (Google Search Console — Last 28 Days)
| Metric | Value |
|--------|-------|
| Total Clicks | X,XXX |
| Total Impressions | XX,XXX |
| Click-Through Rate | X.X% |
| Average Position | X.X |
**Top 10 Keywords Driving Traffic to This Page:**
| Keyword | Clicks | Impressions | CTR | Avg Position |
|---------|--------|-------------|-----|--------------|
| keyword 1 | XXX | X,XXX | X.X% | X.X |
| ... | ... | ... | ... | ... |
> CTR displayed as percentage (API returns decimal — multiply by 100 for display).
Data Sources
Always append this footer to the page analysis output:
| Source |
Status |
Data Provided |
| Static Analysis |
Always available |
On-page elements, content quality, technical tags, schema, images, CWV signals |
| Ahrefs MCP |
Available / Not connected |
Referring domains, backlinks, organic keywords, page-level traffic |
| GSC MCP |
Available / Not connected |
Clicks, impressions, CTR, avg position, top keywords for this page |
1---2name: seo-page3description: Deep single-page SEO analysis covering on-page elements, content quality, technical meta tags, schema, images, and performance. Enhanced with live Ahrefs (page authority, referring domains) and GSC (search performance, top keywords) data when MCPs are available. Use when user says "analyze this page", "check page SEO", or provides a single URL for review.4---56# Single Page Analysis78## What to Analyze910### On-Page SEO11- Title tag: 50-60 characters, includes primary keyword, unique12- Meta description: 150-160 characters, compelling, includes keyword13- H1: exactly one, matches page intent, includes keyword14- H2-H6: logical hierarchy (no skipped levels), descriptive15- URL: short, descriptive, hyphenated, no parameters16- Internal links: sufficient, relevant anchor text, no orphan pages17- External links: to authoritative sources, reasonable count1819### Content Quality20- Word count vs page type minimums (see quality-gates.md)21- Readability: Flesch Reading Ease score, grade level22- Keyword density: natural (1-3%), semantic variations present23- E-E-A-T signals: author bio, credentials, first-hand experience markers24- Content freshness: publication date, last updated date2526### Technical Elements27- Canonical tag: present, self-referencing or correct28- Meta robots: index/follow unless intentionally blocked29- Open Graph: og:title, og:description, og:image, og:url30- Twitter Card: twitter:card, twitter:title, twitter:description31- Hreflang: if multi-language, correct implementation3233### Schema Markup34- Detect all types (JSON-LD preferred)35- Validate required properties36- Identify missing opportunities37- NEVER recommend HowTo (deprecated) or FAQ (restricted to gov/health)3839### Images40- Alt text: present, descriptive, includes keywords where natural41- File size: flag >200KB (warning), >500KB (critical)42- Format: recommend WebP/AVIF over JPEG/PNG43- Dimensions: width/height set for CLS prevention44- Lazy loading: loading="lazy" on below-fold images4546### Core Web Vitals (reference only — not measurable from HTML alone)47- Flag potential LCP issues (huge hero images, render-blocking resources)48- Flag potential INP issues (heavy JS, no async/defer)49- Flag potential CLS issues (missing image dimensions, injected content)5051## Output5253### Page Score Card54```55Overall Score: XX/1005657On-Page SEO: XX/100 ████████░░58Content Quality: XX/100 ██████████59Technical: XX/100 ███████░░░60Schema: XX/100 █████░░░░░61Images: XX/100 ████████░░62```6364### Issues Found65Organized by priority: Critical → High → Medium → Low6667### Recommendations68Specific, actionable improvements with expected impact6970### Schema Suggestions71Ready-to-use JSON-LD code for detected opportunities7273---7475## Live Data Insights (MCP Overlay)7677> This section appears only when MCP data sources are available. The static analysis above is complete and unchanged regardless of MCP availability.7879### MCP Availability Check8081Follow the self-contained check pattern from `seo/references/mcp-degradation.md`:821. Use ToolSearch with query "+ahrefs" — if tools returned, Ahrefs is available832. Use ToolSearch with query "+google-search-console" — if tools returned, GSC is available843. Proceed with whichever MCPs are available; skip sections for unavailable MCPs8586### Page Authority Data (Ahrefs)8788If Ahrefs available: fetch page-level metrics via `site-explorer-metrics` for the specific URL (full URL with https://). Add a `### Page Authority Data` section:8990```91### Page Authority Data (Ahrefs)9293| Metric | Value |94|--------|-------|95| Referring Domains | XXX |96| Total Backlinks | X,XXX |97| Organic Keywords (this page) | XXX |98| Est. Monthly Traffic (this page) | XXX visits |99```100101**Note:** All monetary values (`traffic_cost`, `cpc`) from Ahrefs are in cents — divide by 100 before displaying as USD.102103### Search Performance — GSC (Last 28 Days)104105If GSC available: fetch `get_search_analytics` filtered to this specific URL for the last 28 days. Add a `### Search Performance (GSC)` section:106107```108### Search Performance (Google Search Console — Last 28 Days)109110| Metric | Value |111|--------|-------|112| Total Clicks | X,XXX |113| Total Impressions | XX,XXX |114| Click-Through Rate | X.X% |115| Average Position | X.X |116117**Top 10 Keywords Driving Traffic to This Page:**118119| Keyword | Clicks | Impressions | CTR | Avg Position |120|---------|--------|-------------|-----|--------------|121| keyword 1 | XXX | X,XXX | X.X% | X.X |122| ... | ... | ... | ... | ... |123124> CTR displayed as percentage (API returns decimal — multiply by 100 for display).125```126127---128129## Data Sources130131Always append this footer to the page analysis output:132133| Source | Status | Data Provided |134|--------|--------|---------------|135| Static Analysis | Always available | On-page elements, content quality, technical tags, schema, images, CWV signals |136| Ahrefs MCP | Available / Not connected | Referring domains, backlinks, organic keywords, page-level traffic |137| GSC MCP | Available / Not connected | Clicks, impressions, CTR, avg position, top keywords for this page |