Give us a page link and the phrase you want to be found

Single Page Analysis

by AgriciDaniel · MIT license · ★ 17,394 on GitHub · updated Sep 11

Single Page Analysis cover

Give us a page link and the phrase you want to be found for; get back a scored report of what's hurting it and exactly what to fix first.

---
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-invocable: true
argument-hint: "[url]"
license: MIT
metadata:
  author: AgriciDaniel
  version: "2.3.1"
  category: seo
---

# Single Page Analysis

Overview

If DataForSEO MCP tools are available, use serp_organic_live_advanced for real SERP positions and backlinks_summary for backlink data and spam scores.

Manual install (npx, ZIP)
Claude Codenpx skills add AgriciDaniel/claude-seo --skill seo-page -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/AgriciDaniel/claude-seo/tar.gz/92795530b4cc \ | tar -xz -C ~/.claude/skills --strip-components=2 claude-seo-92795530b4cc/skills/seo-page
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/ebda47a3839f4d9abd25/seo-page.zip" -OutFile "$env:TEMP\seo-page.zip"; Expand-Archive "$env:TEMP\seo-page.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md4.5 KB
  • LICENSE.txt143 B
Read the files here
AgriciDaniel/92795532 files
SKILL.md
Show the full text102 lines

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
  • Meta description is not a restatement of the title: run "${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run metadata_template.py --title "<title>" --description "<desc>" --json (heuristic, deterministic string comparison). A description that opens by repeating its own title and closes on a stock CTA ("Try it free now.", "Start free!") is templated metadata, the shape bulk generation jobs produce site-wide, and duplicated or templated metadata is a documented content-quality problem regardless of how original the body copy is
  • 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 for rich results (retired May 2026); existing FAQPage need not be removed, use QAPage for genuine Q&A
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: report lazy_method per image (native | perfmatters | ewww | js-generic | none). Do not flag "not lazy-loaded" when JS lazy-loaders (Perfmatters, EWWW, lazysizes) are detected, they intentionally strip the native loading="lazy" attribute and use data-src placeholders
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.
1---
2name: seo-page
3description: >
4 Deep single-page SEO analysis covering on-page elements, content quality,
5 technical meta tags, schema, images, and performance. Use when user says
6 "analyze this page", "check page SEO", "single URL", "check this page",
7 "page analysis", or provides a single URL for review.
8user-invocable: true
9argument-hint: "[url]"
10license: MIT
11metadata:
12 author: AgriciDaniel
13 version: "2.3.1"
14 category: seo
15---
16 
17# Single Page Analysis
18 
19## What to Analyze
20 
21### On-Page SEO
22- Title tag: 50-60 characters, includes primary keyword, unique
23- Meta description: 150-160 characters, compelling, includes keyword
24- Meta description is not a restatement of the title: run
25 `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run metadata_template.py --title "<title>" --description "<desc>" --json`
26 (heuristic, deterministic string comparison). A description that opens by
27 repeating its own title and closes on a stock CTA ("Try it free now.",
28 "Start free!") is templated metadata, the shape bulk generation jobs produce
29 site-wide, and duplicated or templated metadata is a documented
30 content-quality problem regardless of how original the body copy is
31- H1: exactly one, matches page intent, includes keyword
32- H2-H6: logical hierarchy (no skipped levels), descriptive
33- URL: short, descriptive, hyphenated, no parameters
34- Internal links: sufficient, relevant anchor text, no orphan pages
35- External links: to authoritative sources, reasonable count
36 
37### Content Quality
38- Word count vs page type minimums (see quality-gates.md)
39- Readability: Flesch Reading Ease score, grade level
40- Keyword density: natural (1-3%), semantic variations present
41- E-E-A-T signals: author bio, credentials, first-hand experience markers
42- Content freshness: publication date, last updated date
43 
44### Technical Elements
45- Canonical tag: present, self-referencing or correct
46- Meta robots: index/follow unless intentionally blocked
47- Open Graph: og:title, og:description, og:image, og:url
48- Twitter Card: twitter:card, twitter:title, twitter:description
49- Hreflang: if multi-language, correct implementation
50 
51### Schema Markup
52- Detect all types (JSON-LD preferred)
53- Validate required properties
54- Identify missing opportunities
55- Never recommend HowTo (deprecated) or FAQ for rich results (retired May 2026); existing FAQPage need not be removed, use QAPage for genuine Q&A
56 
57### Images
58- Alt text: present, descriptive, includes keywords where natural
59- File size: flag >200KB (warning), >500KB (critical)
60- Format: recommend WebP/AVIF over JPEG/PNG
61- Dimensions: width/height set for CLS prevention
62- Lazy loading: report `lazy_method` per image (native | perfmatters | ewww | js-generic | none). Do not flag "not lazy-loaded" when JS lazy-loaders (Perfmatters, EWWW, lazysizes) are detected, they intentionally strip the native `loading="lazy"` attribute and use `data-src` placeholders
63 
64### Core Web Vitals (reference only, not measurable from HTML alone)
65- Flag potential LCP issues (huge hero images, render-blocking resources)
66- Flag potential INP issues (heavy JS, no async/defer)
67- Flag potential CLS issues (missing image dimensions, injected content)
68 
69## Output
70 
71### Page Score Card
72```
73Overall Score: XX/100
74 
75On-Page SEO: XX/100 ████████░░
76Content Quality: XX/100 ██████████
77Technical: XX/100 ███████░░░
78Schema: XX/100 █████░░░░░
79Images: XX/100 ████████░░
80```
81 
82### Issues Found
83Organized by priority: Critical -> High -> Medium -> Low
84 
85### Recommendations
86Specific, actionable improvements with expected impact
87 
88### Schema Suggestions
89Ready-to-use JSON-LD code for detected opportunities
90 
91## DataForSEO Integration (Optional)
92 
93If DataForSEO MCP tools are available, use `serp_organic_live_advanced` for real SERP positions and `backlinks_summary` for backlink data and spam scores.
94 
95## Error Handling
96 
97| Scenario | Action |
98|----------|--------|
99| URL unreachable (DNS failure, connection refused) | Report the error clearly. Do not guess page content. Suggest the user verify the URL and try again. |
100| 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. |
101| 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. |
102 
View all files on GitHub →

Details

Updated
Sep 11, 2026
License
MIT
Stars on the repo
★ 17,394
Checked
Source
AgriciDaniel/claude-seo ↗
Creator
AgriciDaniel · 130 listings
View creator

Made with seo-page

Single Page Analysis — Claude SEO /seo command demo in Claude Code terminal (from the AgriciDaniel/claude-seo README)
Single Page Analysis — Claude SEO /seo command demo in Claude Code terminal (from the AgriciDaniel/claude-seo README)

by AgriciDaniel

Single Page Analysis — Claude SEO /seo audit demo: parallel subagents producing a prioritized action plan (from the AgriciDaniel/claude-seo README)
Single Page Analysis — Claude SEO /seo audit demo: parallel subagents producing a prioritized action plan (from the AgriciDaniel/claude-seo README)

by AgriciDaniel

Similar skills

See all →
SkillShow experiment dashboard with results, active loops/ar:ar-status — Experiment Dashboardalirezarezvani/claude-skills · by alirezarezvaniShow experiment dashboard with results, active loops, and progress. Use when the user runs /ar:ar-status or asks how an autoresearch experiment is going.★ 26.3k GitHub starsSkillTurn a LinkedIn Analytics exportAnalytics dashboardcharlie947/social-media-skills · by charlie947Turn a LinkedIn Analytics export into an interactive dark-themed React dashboard plus a written strategic analysis with 5 data-backed content recommendations. Reads every sheet in the export, builds charts for engagement trend, follower growth, post performance scatter, day-of-week heatmap, and audience breakdown. Use this skill whenever the user says "analyse my linkedin", "linkedin analytics", "build my dashboard", "review my performance", or uploads a LinkedIn Analytics export file. Requires the user's LinkedIn Analytics export (xlsx) as input.★ 3.7k GitHub starsSkillGenerate a pre-earnings briefing for any stock using YahooEarnings Preview Skillhimself65/finance-skills · by himself65Generate a pre-earnings briefing for any stock using Yahoo Finance data. Use this skill whenever the user wants to prepare for an upcoming earnings report, understand what analysts expect, review a company's beat/miss track record, or get a quick overview before an earnings call. Triggers include: "earnings preview for AAPL", "what to expect from TSLA earnings", MSFT reports next week", "earnings preview", "pre-earnings analysis", what are analysts expecting for NVDA", "earnings estimates for", will GOOGL beat earnings", "earnings beat/miss history", upcoming earnings", "before earnings", "earnings setup", consensus estimates", "earnings whisper", "EPS expectations", what's the street expecting", "earnings season preview", any mention of preparing for or previewing an earnings report, or any request to understand expectations ahead of a company's earnings date. Always use this skill when the user mentions a ticker in context of upcoming earnings, even if they don't say "preview" explicitly.★ 3.3k GitHub starsSkillVet a perf measurement before you report or act on itBenchmark checklistmichael-denyer/pstack-claude · by michael-denyerVet a perf measurement (limiter, tuning, limits, errors, repeatability, relevance, and whether the work happened) before you report or act on it. Use when you run a benchmark or report a speedup or regression you measured.★ 1k GitHub starsSkillReport a bug, file an issue, submit a bug reportReport Issue — mobile-appmicrosoft/power-platform-skills · by microsoftUse when the user wants to report a bug, file an issue, submit a bug report, or report any problem with the mobile-app plugin.★ 954 GitHub starsSkillBuild the agency dashboard across all client brands: health/digital-marketing-pro:agency-dashboardindranilbanerjee/digital-marketing-pro · by indranilbanerjeeBuild the agency dashboard across all client brands: health, pacing, risk. "how are all our clients doing"★ 866 GitHub stars

More from AgriciDaniel

SkillThe Lighthouse Agentic Browsing fractionAgentic Browsing ReadinessAgriciDaniel/claude-seo · by AgriciDanielAudit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF treatment of agent traffic, llms.txt, Markdown delivery, ai-catalog.json, /.well-known discovery files, and WebMCP tools. Exclude AI citability and brand signals (seo-geo) and commerce protocol depth (seo-ecommerce).★ 17.4k GitHub starsSkillOptimize content for AI Overviews , ChatGPT web searchAI Search / GEO Optimization (May 2026)AgriciDaniel/claude-seo · by AgriciDanielOptimize content for AI Overviews (formerly SGE), ChatGPT web search, Perplexity, and other AI-powered search experiences. Generative Engine Optimization (GEO) analysis including brand mention signals, AI crawler accessibility, llms.txt compliance, passage-level citability scoring, and platform-specific optimization. Use when user says "AI Overviews", "SGE", GEO", "AI search", "LLM optimization", "Perplexity", "AI citations", ChatGPT search", or "AI visibility".★ 17.4k GitHub starsSkillReferring domains, anchor text distributionBacklink Profile AnalysisAgriciDaniel/claude-seo · by AgriciDanielBacklink profile analysis: referring domains, anchor text distribution, toxic link detection, competitor gap analysis. Works with free APIs (Moz, Bing Webmaster, Common Crawl) and DataForSEO extension. Use when user says backlinks, link profile, referring domains, anchor text, toxic links, link gap, link building, disavow, or backlink audit.★ 17.4k GitHub starsSkillYou share your Amazon advertising numbers and goals; you getAmazon Ads AuditAgriciDaniel/claude-ads · by AgriciDanielYou share your Amazon advertising numbers and goals; you get back a plain-language review of what's draining your budget and what to change first.★ 9.5k GitHub starsSkillPaste what you're spending on Apple Search AdsApple Ads AuditAgriciDaniel/claude-ads · by AgriciDanielPaste what you're spending on Apple Search Ads and your recent numbers; get back a plain review of what's wasting money and what to fix first.★ 9.5k GitHub starsSkillPaste the sales and spend numbers each ad platform claimsAttribution AuditAgriciDaniel/claude-ads · by AgriciDanielPaste the sales and spend numbers each ad platform claims, and get back a plain explanation of why they disagree and which figure to trust.★ 9.5k GitHub stars