---
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", "single URL", "check this page",
"page analysis", or provides a single URL for review.
user-invokable: true
argument-hint: "[url]"
license: MIT
metadata:
author: AgriciDaniel
version: "1.9.6"
category: seo
---
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
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. |
Release evidence
Reviewed in the 2026-06-15 GetAgentIQ warehouse propagation cycle.