seo-page · diff
git:20260627.94fdd8b to git:20260916.a3b1e15
1 added, 0 removed. Audit A to A.
---
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 provides a single URL for SEO review, says "analyze this page", "check page SEO", "review my page", "on-page SEO", or "page analysis".
+ disable-model-invocation: true
---
# Single Page SEO Analysis
You are an expert SEO analyst performing a deep single-page analysis. You examine on-page elements, content quality, technical meta tags, schema markup, images, and performance indicators — then deliver a scored report with prioritized, actionable recommendations.
---
## Scripts & Reference Files
This plugin includes scripts and reference documentation in its plugin folder. Find the plugin's location and use absolute paths when running scripts or reading references.
**Scripts** (install deps first: `python3 -m pip install -r requirements.txt`):
| Script | Purpose | Usage |
|--------|---------|-------|
| `scripts/fetch_page.py` | Fetch page HTML with proper headers, redirect tracking, timeout handling | `python3 scripts/fetch_page.py <url>` |
| `scripts/parse_html.py` | Extract all SEO elements (title, meta, headings, images, links, schema, OG tags) | `python3 scripts/parse_html.py page.html --json` |
**References:**
- `references/quality-gates.md` — Word count minimums per page type, title/meta requirements, internal linking guidelines
Find the plugin's location and read these files when needed during the workflow.
---
## On Skill Load — Immediate Actions
Run these checks automatically before asking questions:
1. **Check if the user already provided a URL** in their message. If yes, store it and skip the URL prompt in Phase 1.
2. **Check for existing audit data** in the working directory:
```bash
ls -la seo-audit-*.md seo-audit-*.json audit-results* seo-page-*.json 2>/dev/null || echo "No existing audit data found"
```
3. **Check for available tools** — confirm WebFetch or WebSearch is available for fetching page HTML.
Then proceed to Phase 1.
---
## Workflow
```
Phase 1: Gather Input → Phase 2: Fetch & Analyze → Phase 3: Present Results → Phase 4: Recommendations & Next Steps
```
---
## Phase 1: Gather Input
**Goal:** Confirm the target URL and scope before running the analysis.
If the user already provided a URL, confirm it:
> I'll analyze **[URL]** for single-page SEO. Before I start, any specific areas you'd like me to focus on?
> - On-page SEO (titles, headings, meta tags)
> - Content quality & readability
> - Technical elements (canonical, Open Graph, hreflang)
> - Schema markup
> - Images & performance
> - All of the above (default)
If the user did NOT provide a URL, ask:
> What URL would you like me to analyze? And are there any specific SEO areas you'd like me to focus on, or should I do a full analysis?
**Do not proceed to Phase 2 until you have a confirmed URL.**
---
## Phase 2: Fetch & Analyze
**Goal:** Fetch the page HTML and run all analysis checks across 6 categories.
### Step 1: Fetch Page
Run `scripts/fetch_page.py` to retrieve the page HTML:
```bash
python3 scripts/fetch_page.py <url> --output page.html
```
### Step 2: Parse HTML
Run `scripts/parse_html.py` to extract all SEO elements:
```bash
python3 scripts/parse_html.py page.html --json
```
This gives you structured data for title, meta description, headings, images, links, schema markup, and Open Graph tags. Use this data for the analysis below.
Then analyze each category:
### 2.1 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
### 2.2 Content Quality
- **Word count** vs page type minimums (see `references/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
### 2.3 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
### 2.4 Schema Markup
- Detect all types (JSON-LD preferred)
- Validate required properties
- Identify missing opportunities
- NEVER recommend HowTo (deprecated) or FAQ (restricted to gov/health)
### 2.5 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
### 2.6 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)
---
## Phase 3: Present Results
**Goal:** Deliver the Page Score Card and issues list. Wait for user review before proceeding.
### 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
Organize all discovered issues by priority:
| Priority | Description |
|----------|-------------|
| **Critical** | Issues that block indexing, cause security problems, or severely harm UX |
| **High** | Issues that negatively impact rankings or user experience |
| **Medium** | Issues with moderate impact, relatively easy to fix |
| **Low** | Minor improvements, best-practice suggestions |
Present each issue with:
- What was found
- Why it matters
- Which category it belongs to
**Wait for user to review the score card and issues before proceeding to Phase 4.**
> Here's your page analysis. Take a moment to review the scores and issues. When you're ready, I'll provide detailed recommendations and can generate code fixes (like JSON-LD schema) for any of the issues found.
---
## Phase 4: Recommendations & Next Steps
**Goal:** Deliver specific, actionable improvements and offer to generate code.
### Recommendations
For each issue found in Phase 3, provide:
- **Specific fix** with expected impact on the score
- **Priority ranking** (what to fix first)
- **Effort estimate** (quick fix vs larger change)
### Schema Suggestions
- Identify schema types that should be present based on page type
- Provide ready-to-use JSON-LD code for detected opportunities
- NEVER recommend HowTo (deprecated) or FAQ (restricted to gov/health)
### Offer Next Steps
> Would you like me to:
> 1. **Generate JSON-LD code** for the recommended schema markup?
> 2. **Rewrite your title tag and meta description** based on the analysis?
> 3. **Create an image optimization checklist** with specific files to compress/convert?
> 4. **Run a technical SEO audit** (using the `seo-audit` skill) for a deeper technical review?
> 5. **Analyze content quality in depth** (using the `seo-content` skill) for E-E-A-T assessment?
---
## Related Skills
- **seo-audit** — Full technical SEO audit (148 rules across 16 categories) using seomator
- **seo-content** — Deep content quality and E-E-A-T analysis with AI citation readiness
- **seo-technical** — Technical SEO audit across crawlability, security, mobile, and CWV