Comprehensive 2026 SEO audit and optimization. Use when user runs `/seo-rank`, asks to "audit SEO", "check SEO", "optimize for Google", "fix technical SEO", "improve rankings", "check Core Web Vitals", "audit site structure", "fix crawlability", or needs SEO analysis for any web page or site. Complements ai-rank (LLM/agent optimization) — use both together for full search visibility.
Audit and optimize web content for traditional search engines (Google, Bing) covering content quality, technical performance, architecture, crawlability, and off-page signals.
Companion skill: Use /ai-rank for LLM answer engine and AI agent optimization. Use both together for complete search visibility across traditional and AI-powered search.
Two Frameworks
SEARCH Framework (Content SEO)
Everything about the content itself — what humans and crawlers read.
TECH Framework (Technical SEO)
Everything about the infrastructure — how crawlers access, parse, and index.
JSON-LD schema on every page. Match schema type to page type:
Page Type
Schema Types
Homepage
Organization, WebSite (with SearchAction)
Blog post
Article, BreadcrumbList
Product page
Product (with Offer), BreadcrumbList
FAQ page
FAQPage, BreadcrumbList
How-to guide
HowTo, BreadcrumbList
Author page
Person
Local business
LocalBusiness (with geo)
Validation: Google Rich Results Test or npx structured-data-testing-tool <url>
For AI/SGE readiness: Run /ai-rank for LLM answer engine optimization, discovery files (llms.txt, agents.txt), and AI crawler access configuration. Do not duplicate that work here.
Audit command:
# Extract JSON-LD from page
curl -s <url> | grep -oP '<script type="application/ld\+json">.*?</script>' | sed 's/<[^>]*>//g'
L - Local SEO (If Applicable)
Skip this section for purely online businesses with no physical presence.
Google Business Profile: claimed, verified, all fields complete
NAP consistency (Name, Address, Phone) identical across all citations
LocalBusiness JSON-LD schema with geo coordinates
Local content: city/region pages if serving multiple areas
Google reviews: structured review markup, link to review page
Local citations: industry directories, Chamber of Commerce, Yelp, etc.
Service area defined if not storefront
Scoring Matrices
Page-Level SEO Score
Category
Weight
Criteria
Score 0-5
Search Intent
15%
Intent match, format match, SERP feature alignment
# Check for missing alt text in source
grep -rn '<img' src/ | grep -v 'alt=' | head -20
# Missing meta descriptions in frontmatter
grep -rL 'description:' src/content/posts/
# Validate heading hierarchy in markdown
grep -n '^#' src/content/posts/<file>.md
For content: produce rewritten text preserving voice (reference /tone-of-voice if available)
For technical: produce code snippet or config change
Phase 6: Site-Level Review
After page-level work, assess site-wide:
Run Site-Level Checklist
Cross-check with /ai-rank site-level items (discovery files, AI crawler access)
Generate missing structured data templates
Identify site architecture improvements
Produce sitemap.xml or robots.txt improvements if needed
Review off-page signals and recommend actions
Audit Report Template
## SEO Audit Report — [URL or Site Name]
**Date:** [date]
**Audited by:** Claude Code (seo-rank skill)
### Score
**You MUST compute and present this score. It is not optional.**
SEO RANK SCORE: X.X / 5.0 (Rating)
├── SEARCH Score: X.X / 5.0 (Content SEO)
└── TECH Score: X.X / 5.0 (Technical SEO)
### Executive Summary
- Critical issues: [count]
- Quick wins available: [count]
- Estimated impact: [high/medium/low]
### SEARCH Framework Scores (Content SEO)
| Principle | Score 0-5 | Key Issues |
|-----------|-----------|------------|
| S - Search Intent | | |
| E - E-E-A-T | | |
| A - Audience Quality | | |
| R - Relevance & Keywords | | |
| C - CTR Elements | | |
| H - Heading & Structure | | |
| **Weighted Average** | **X.X** | |
### TECH Framework Scores (Technical SEO)
| Pillar | Score 0-5 | Key Issues |
|--------|-----------|------------|
| T - Core Web Vitals | | |
| E - Efficient Crawling | | |
| C - Code & Rendering | | |
| H - HTTPS & Security | | |
| N - Navigation & Architecture | | |
| I - International | | |
| C - Compliance & Accessibility | | |
| A - AI & Structured Data | | |
| L - Local SEO | | |
| **Weighted Average** | **X.X** | |
### Core Web Vitals
| Metric | Value | Threshold | Status |
|--------|-------|-----------|--------|
| LCP | Xs | < 2.5s | PASS/FAIL |
| INP | Xms | < 200ms | PASS/FAIL |
| CLS | X.XX | < 0.1 | PASS/FAIL |
### Security Headers
| Header | Status | Value |
|--------|--------|-------|
| HSTS | PRESENT/MISSING | |
| CSP | PRESENT/MISSING | |
| X-Frame-Options | PRESENT/MISSING | |
| X-Content-Type-Options | PRESENT/MISSING | |
| Referrer-Policy | PRESENT/MISSING | |
### Prioritized Recommendations
#### Quick Wins (fix today)
1. ...
#### Medium Effort (this week)
1. ...
#### Strategic (this month)
1. ...
### Cross-Reference
- Run `/ai-rank audit` for LLM answer engine and AI agent optimization
- Run `/ai-rank discovery` to generate llms.txt, agents.txt
Examples
Example 1: Blog Post SEO Audit (Markdown/Astro)
Input: User runs /seo-rank on a markdown blog post
Before (frontmatter):
---
title: "Flag Theory Guide"
description: "A guide about flag theory"
publishDate: 2026-01-15
tags: ["flag-theory"]
---
Issues found:
Title: generic, doesn't match search intent, missing qualifier
Description: too short, not action-oriented, no value proposition
No updatedDate (E-E-A-T freshness signal)
Tags too narrow (missing semantic variations)
After (optimized):
---
title: "Flag Theory for Digital Nomads: The 2026 Practical Guide"
description: "Learn flag theory basics: residency, banking, incorporation across jurisdictions. Step-by-step for online entrepreneurs saving 30-45% on taxes legally."
publishDate: 2026-01-15
updatedDate: 2026-03-30
tags: ["flag-theory", "tax-optimization", "digital-nomad", "international-business"]
---
Why this works:
Title matches intent query "flag theory guide" + qualifier "digital nomads" + freshness "2026"
Description: 155 chars, action-oriented ("Learn"), specific numbers ("30-45%"), audience-targeted
/seo-rank content — Content audit only (intent, E-E-A-T, keywords, structure)
/seo-rank cwv — Core Web Vitals check only (LCP, INP, CLS)
/seo-rank headers — Security headers check only
/seo-rank schema — Structured data audit + generate missing JSON-LD
/seo-rank meta — Title tag, meta description, OG tags audit + suggestions
/seo-rank i18n — International SEO audit (hreflang, localization)
/seo-rank local — Local SEO audit (GBP, NAP, local schema)
/seo-rank checklist — Output full page + site checklists
/seo-rank site — Site-level audit (architecture, crawlability, sitemap, robots.txt)
/seo-rank compare <url1> <url2> — Compare two pages for the same target keyword
1---2name: seo-rank3description: Comprehensive 2026 SEO audit and optimization. Use when user runs `/seo-rank`, asks to "audit SEO", "check SEO", "optimize for Google", "fix technical SEO", "improve rankings", "check Core Web Vitals", "audit site structure", "fix crawlability", or needs SEO analysis for any web page or site. Complements ai-rank (LLM/agent optimization) — use both together for full search visibility.4---56# SEO Rank Optimizer (2026 Standards)78Audit and optimize web content for traditional search engines (Google, Bing) covering content quality, technical performance, architecture, crawlability, and off-page signals.910**Companion skill:** Use `/ai-rank` for LLM answer engine and AI agent optimization. Use both together for complete search visibility across traditional and AI-powered search.1112## Two Frameworks1314### SEARCH Framework (Content SEO)15Everything about the content itself — what humans and crawlers read.1617### TECH Framework (Technical SEO)18Everything about the infrastructure — how crawlers access, parse, and index.1920---2122## SEARCH Framework (Content SEO)2324### S - Search Intent Alignment25- Classify intent: informational / navigational / transactional / commercial investigation26- Match content format to intent (listicle vs product page vs guide vs comparison)27- Target one primary intent per page; secondary intents get their own pages28- Check SERP features for target queries (featured snippets, PAA, video carousel)29- Analyze top 5 ranking pages to understand what Google rewards for this query3031### E - E-E-A-T Signals32- **Experience**: First-person accounts, case studies, screenshots, real usage evidence33- **Expertise**: Author bios with credentials, technical depth, accurate terminology34- **Authoritativeness**: Citations from authoritative sources, industry recognition, backlinks from trusted domains35- **Trustworthiness**: Accurate claims, updated dates, corrections policy, HTTPS, clear contact info, privacy policy36- Author schema markup (Person JSON-LD linked from Article schema)37- Sites demonstrating strong E-E-A-T saw 23% gains after recent core updates3839### A - Audience-Centered Quality40- Content originality (not rehashed from competitors)41- Depth appropriate to topic (comprehensive but not padded)42- Reading level matched to audience43- Multimedia support (images, diagrams, video where appropriate)44- User engagement signals: clear above-fold value, scannable structure45- Internal links to keep users exploring (reduces bounce rate)46- No thin content pages (every page must justify its existence)4748### R - Relevance & Keywords49- Primary keyword in H1, title tag, meta description, first 100 words, URL slug50- Semantic keyword cluster (related terms, synonyms, LSI) distributed naturally51- Keyword density: natural usage, no stuffing (aim for topical coverage, not repetition)52- Long-tail variations addressed in H2/H3 subheadings53- Content gap analysis vs top 5 ranking pages54- Move beyond keywords to topic authority — cover the full topic comprehensively5556### C - CTR Optimization57- Title tag: primary keyword + emotional/power word + brand, under 60 chars58- Meta description: action-oriented, includes keyword, under 155 chars59- URL slug: short, keyword-rich, hyphenated, no dates or IDs60- Structured data for rich results (FAQ, HowTo, Review, Breadcrumb)61- Open Graph tags (og:title, og:description, og:image, og:url, og:type)62- Twitter Card tags (twitter:card, twitter:title, twitter:description, twitter:image)6364### H - Heading Hierarchy & Structure65- Single H1 per page matching primary keyword intent66- H2s for major sections matching secondary queries67- H3s for subsections; never skip levels (H1 > H2 > H3)68- Table of contents for content over 1500 words69- FAQ section with question-format headings for PAA targeting70- Lists, tables, steps over wall-of-text paragraphs71- Key takeaways or TL;DR section7273---7475## TECH Framework (Technical SEO)7677### T - Time to Interactive (Core Web Vitals)7879The three metrics Google uses as ranking signals (measured at 75th percentile):8081- **LCP < 2.5s** (Largest Contentful Paint) — optimize hero images, server response time, critical CSS inlining82- **INP < 200ms** (Interaction to Next Paint — replaced FID in March 2024) — minimize JS execution, yield to main thread, break long tasks83- **CLS < 0.1** (Cumulative Layout Shift) — set explicit width/height on images/embeds, avoid dynamic injection above fold, use font-display: swap8485**Business impact:** Sites passing all three CWV thresholds see 24% lower bounce rates. Pages loading under 2s have 9% bounce rate; over 5s reaches 38%.8687**Audit commands:**88```bash89# Full Lighthouse performance audit90npx lighthouse <url> --output=json --only-categories=performance --chrome-flags="--headless"9192# Quick CWV via PageSpeed Insights API (no install)93curl -s "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=<encoded-url>&strategy=mobile"94```9596### E - Efficient Crawling9798- **robots.txt**: allow critical paths, block parameter URLs, admin panels, internal search results99- **sitemap.xml**: all indexable URLs, accurate lastmod dates, under 50K URLs per file (use sitemap index for larger sites)100- **Canonical URLs**: self-referencing on every page; point duplicates to the canonical version101- **Crawl budget**: no infinite scroll traps, handle faceted navigation with noindex or canonical102- **HTTP status codes**: no soft 404s, proper 301 redirects, no redirect chains > 2 hops103- **Index budget**: ensure important pages are crawlable, noindex low-value pages (tag archives, search results)104105**Audit commands:**106```bash107# Fetch robots.txt108curl -s <domain>/robots.txt109110# Fetch sitemap111curl -s <domain>/sitemap.xml | head -100112113# Check redirect chain114curl -sIL <url> | grep -E 'HTTP/|Location:'115116# Check canonical117curl -s <url> | grep -i 'rel="canonical"'118119# Check for noindex120curl -s <url> | grep -i 'noindex'121curl -sI <url> | grep -i 'x-robots-tag'122```123124### C - Code & Rendering125126- Server-side rendering or static HTML (no critical content behind client-side JS only)127- Semantic HTML5 elements (`<header>`, `<main>`, `<article>`, `<section>`, `<nav>`, `<footer>`)128- Clean DOM: avoid excessive nesting, keep DOM nodes under 1500129- CSS and JS minified and bundled; critical CSS inlined130- Image optimization: WebP/AVIF format, responsive `srcset`, lazy loading below fold, explicit `width`/`height`131- Font optimization: `font-display: swap`, preload critical fonts, subset if possible132- No unused CSS/JS shipped to client133- HTTP/2 or HTTP/3 enabled134- Gzip or Brotli compression enabled135136### H - HTTPS & Security137138HTTPS is table stakes. Security headers provide indirect SEO benefit through performance, trust, and reduced bounce from browser warnings.139140| Header | Recommended Value |141|--------|-------------------|142| Strict-Transport-Security | `max-age=31536000; includeSubDomains` |143| Content-Security-Policy | Restrict to known sources |144| X-Frame-Options | `DENY` or `SAMEORIGIN` |145| X-Content-Type-Options | `nosniff` |146| Referrer-Policy | `strict-origin-when-cross-origin` |147| Permissions-Policy | Restrict unnecessary APIs |148149**Audit command:**150```bash151# Check all security headers152curl -sI <url> | grep -iE 'strict-transport|content-security|x-frame|x-content-type|referrer-policy|permissions-policy'153```154155### N - Navigation & Architecture156157- Flat URL hierarchy: max 3 clicks from homepage to any page158- Logical URL structure: `/category/subcategory/page-slug`159- Internal linking: every page linked from at least 2 other pages160- Breadcrumb navigation with BreadcrumbList JSON-LD161- HTML sitemap page for deep content discovery162- Pagination: `rel="next"`/`rel="prev"` or load-more with crawlable fallback163- No orphan pages (pages not linked from anywhere)164165### I - International & Localization166167- hreflang tags for every language variant (including `x-default`)168- **Critical rule**: each language version canonicalizes to ITSELF, never to a "master" version169- hreflang return links (if page A points to page B, B must point back to A)170- URL structure: subdirectory (`/en/`, `/es/`) preferred over subdomains or ccTLDs171- Content localization (not just machine translation) — local examples, currency, cultural references172- Language attribute on `<html>` tag per page173- Google Search Console geotargeting if applicable174175**Audit command:**176```bash177# Check hreflang tags178curl -s <url> | grep -i 'hreflang'179```180181### C - Compliance & Accessibility (SEO Overlap)182183WCAG-compliant sites gain 23% more organic traffic and rank for 27% more keywords (2026 studies). Key overlaps with SEO:184185- Alt text on all images (descriptive, not keyword-stuffed)186- Heading hierarchy with no skipped levels (H1 > H2 > H3, never H1 > H3)187- Tap targets minimum 48x48px on mobile188- Font size minimum 16px body text189- Color contrast ratio >= 4.5:1 (WCAG AA)190- Landmark roles (`<main>`, `<nav>`, `<header>`, `<footer>`) for screen readers and crawlers191- Language attribute on `<html>` tag192- Descriptive link anchor text (not "click here")193- Skip navigation links194195**Audit command:**196```bash197# Lighthouse accessibility audit198npx lighthouse <url> --output=json --only-categories=accessibility --chrome-flags="--headless"199```200201### A - AI & Structured Data202203JSON-LD schema on every page. Match schema type to page type:204205| Page Type | Schema Types |206|-----------|-------------|207| Homepage | Organization, WebSite (with SearchAction) |208| Blog post | Article, BreadcrumbList |209| Product page | Product (with Offer), BreadcrumbList |210| FAQ page | FAQPage, BreadcrumbList |211| How-to guide | HowTo, BreadcrumbList |212| Author page | Person |213| Local business | LocalBusiness (with geo) |214215**Validation:** Google Rich Results Test or `npx structured-data-testing-tool <url>`216217**For AI/SGE readiness:** Run `/ai-rank` for LLM answer engine optimization, discovery files (llms.txt, agents.txt), and AI crawler access configuration. Do not duplicate that work here.218219**Audit command:**220```bash221# Extract JSON-LD from page222curl -s <url> | grep -oP '<script type="application/ld\+json">.*?</script>' | sed 's/<[^>]*>//g'223```224225### L - Local SEO (If Applicable)226227Skip this section for purely online businesses with no physical presence.228229- Google Business Profile: claimed, verified, all fields complete230- NAP consistency (Name, Address, Phone) identical across all citations231- LocalBusiness JSON-LD schema with geo coordinates232- Local content: city/region pages if serving multiple areas233- Google reviews: structured review markup, link to review page234- Local citations: industry directories, Chamber of Commerce, Yelp, etc.235- Service area defined if not storefront236237---238239## Scoring Matrices240241### Page-Level SEO Score242243| Category | Weight | Criteria | Score 0-5 |244|----------|--------|----------|-----------|245| **Search Intent** | 15% | Intent match, format match, SERP feature alignment | |246| **E-E-A-T** | 15% | Author signals, citations, trust, experience evidence | |247| **Content Quality** | 15% | Originality, depth, readability, multimedia | |248| **Keywords & Relevance** | 10% | Primary in H1/title/URL, semantic cluster, no stuffing | |249| **CTR Elements** | 10% | Title tag, meta description, URL slug, rich results | |250| **Structure & Headings** | 10% | Heading hierarchy, ToC, FAQ, scannable format | |251| **Core Web Vitals** | 10% | LCP, INP, CLS within thresholds | |252| **Technical (per page)** | 10% | Canonical, schema, mobile-friendly, images | |253| **Accessibility** | 5% | Alt text, tap targets, contrast, semantic HTML | |254255**Scoring guide:**256- 0 = Missing entirely257- 1 = Present but critically flawed258- 2 = Below standard, major issues259- 3 = Meets minimum standard260- 4 = Good, minor improvements possible261- 5 = Excellent, best-practice implementation262263**Compute the weighted score: sum of (score x weight). Max = 5.0**264265| Range | Rating | Action |266|-------|--------|--------|267| 4.5-5.0 | Excellent | Minor polish only |268| 3.5-4.4 | Good | Targeted improvements |269| 2.5-3.4 | Needs Work | Significant gaps to address |270| 1.5-2.4 | Poor | Major overhaul needed |271| 0-1.4 | Critical | Fundamental issues |272273### Site-Level SEO Score274275| Category | Weight | Criteria | Score 0-5 |276|----------|--------|----------|-----------|277| **Crawlability** | 20% | robots.txt, sitemap, canonical, no crawl traps | |278| **Architecture** | 20% | URL structure, internal linking, breadcrumbs, depth | |279| **Performance** | 15% | CWV across sample pages, TTFB, caching, compression | |280| **Security** | 10% | HTTPS, HSTS, CSP, X-Frame-Options | |281| **Structured Data** | 10% | JSON-LD coverage, validation, correct schema types | |282| **International** | 10% | hreflang, localization, canonical coordination | |283| **Accessibility** | 10% | Site-wide a11y patterns, landmark roles, alt text | |284| **Off-Page** | 5% | Backlink quality, brand mentions, citations | |285286**Compute both weighted scores, then the combined SEO Rank Score: (SEARCH score + TECH score) / 2**287288**Always present the final score prominently at the top of every audit report. This is mandatory.**289290---291292## Master Checklists293294### Page-Level Checklist295296#### Content & Intent297- [ ] Primary keyword in H1, title tag, meta description, URL slug, first 100 words298- [ ] Search intent correctly identified and matched (informational/transactional/etc.)299- [ ] Content format matches SERP expectations for target query300- [ ] Single H1 per page301- [ ] H2/H3 hierarchy correct (no skipped levels)302- [ ] Author byline with credentials (E-E-A-T)303- [ ] Published date and last-updated date visible304- [ ] Citations for external claims (links to primary sources)305- [ ] Original insight, data, or perspective (not rehashed)306- [ ] FAQ section with question-format headings (if applicable)307- [ ] Table of contents for content over 1500 words308- [ ] No thin content — page justifies its existence309310#### Title & Meta311- [ ] Title tag under 60 characters, includes primary keyword312- [ ] Meta description under 155 characters, action-oriented, includes keyword313- [ ] URL slug: short, lowercase, hyphenated, keyword-rich314- [ ] Open Graph tags (og:title, og:description, og:image, og:url)315- [ ] Twitter Card tags (twitter:card, twitter:title, twitter:description, twitter:image)316317#### Technical (Per Page)318- [ ] Canonical URL present (self-referencing or to canonical version)319- [ ] Mobile-friendly layout (responsive, no horizontal scroll)320- [ ] Images: WebP/AVIF, srcset for responsive, width/height attributes, lazy loading below fold321- [ ] Alt text on all images (descriptive, not keyword-stuffed)322- [ ] No render-blocking JS for critical content323- [ ] LCP element loads under 2.5s324- [ ] No CLS-causing elements (images without dimensions, dynamic ads above fold)325- [ ] INP under 200ms (no long JS tasks blocking interaction)326327#### Structured Data (Per Page)328- [ ] Appropriate JSON-LD schema for page type (Article, Product, FAQPage, HowTo)329- [ ] BreadcrumbList JSON-LD330- [ ] Schema validates in Google Rich Results Test331- [ ] No schema spam (markup matches visible content)332333#### Accessibility (Per Page)334- [ ] All images have alt text335- [ ] Heading hierarchy sequential (no skipping H2 to H4)336- [ ] Links have descriptive anchor text (not "click here")337- [ ] Color contrast ratio >= 4.5:1338- [ ] Tap targets >= 48x48px on mobile339- [ ] Language attribute on `<html>` tag340341#### International (If Multi-Language)342- [ ] hreflang tag for each language variant343- [ ] x-default hreflang pointing to default version344- [ ] Canonical URL is self-referencing (not cross-language)345- [ ] Content is localized (not just machine-translated)346- [ ] hreflang return links present (bidirectional)347348---349350### Site-Level Checklist351352#### Crawlability353- [ ] robots.txt exists, is valid, and allows Googlebot/Bingbot on critical paths354- [ ] robots.txt blocks admin, parameter URLs, internal search results355- [ ] sitemap.xml exists, is valid, submitted to Google Search Console356- [ ] sitemap.xml has accurate lastmod dates (not all the same date)357- [ ] sitemap.xml includes all indexable pages, excludes noindex pages358- [ ] No orphan pages (pages not linked from anywhere)359- [ ] No redirect chains longer than 2 hops360- [ ] No soft 404s (200 status on error pages)361- [ ] 404 page returns proper 404 HTTP status code362- [ ] No crawl traps (infinite scroll, faceted navigation generating infinite URLs)363364#### Architecture365- [ ] URL structure is logical and hierarchical366- [ ] All pages reachable within 3 clicks from homepage367- [ ] Internal linking: contextual links between related content368- [ ] Breadcrumb navigation on all pages below homepage369- [ ] HTML sitemap page (for deep sites with 50+ pages)370- [ ] Pagination implemented correctly371372#### Performance373- [ ] TTFB under 600ms (server response time)374- [ ] HTTP/2 or HTTP/3 enabled375- [ ] Gzip or Brotli compression enabled376- [ ] Browser caching headers set (Cache-Control, ETag)377- [ ] CDN for static assets378- [ ] No unused CSS/JS shipped to client379- [ ] `font-display: swap` on all custom fonts380- [ ] Preconnect to critical third-party origins381382#### Security383- [ ] Valid SSL certificate, not expiring within 30 days384- [ ] HSTS header: `max-age=31536000; includeSubDomains`385- [ ] Content-Security-Policy header configured386- [ ] X-Frame-Options: DENY or SAMEORIGIN387- [ ] X-Content-Type-Options: nosniff388- [ ] Referrer-Policy set389- [ ] No mixed content (HTTP resources on HTTPS pages)390391#### Structured Data (Site-Wide)392- [ ] Organization JSON-LD on homepage393- [ ] WebSite JSON-LD with SearchAction on homepage394- [ ] BreadcrumbList on all subpages395- [ ] Appropriate schema on every content page396- [ ] No schema validation errors across the site397398#### International (Site-Wide)399- [ ] Consistent hreflang implementation across all pages400- [ ] hreflang return links verified (bidirectional)401- [ ] x-default set on all pages402- [ ] Language switcher links match hreflang URLs403- [ ] Google Search Console geotargeting set if applicable404405#### Off-Page406- [ ] Google Search Console verified and monitored407- [ ] Bing Webmaster Tools verified408- [ ] Backlink profile reviewed: no toxic/spammy links (disavow if needed)409- [ ] Brand mentions reclaimed (unlinked mentions → linked)410- [ ] Key industry directories and citations claimed411- [ ] Social profiles linked from site (Organization schema sameAs)412413---414415## CLI Commands Reference416417Quick reference for all audit commands Claude Code can run:418419### Performance420```bash421# Full Lighthouse audit (all categories)422npx lighthouse <url> --output=json --only-categories=performance,accessibility,seo,best-practices --chrome-flags="--headless"423424# CWV only425npx lighthouse <url> --output=json --only-categories=performance --chrome-flags="--headless"426427# PageSpeed Insights API (no install needed)428curl -s "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=<encoded-url>&strategy=mobile"429```430431### Crawlability432```bash433# robots.txt434curl -s <domain>/robots.txt435436# sitemap.xml437curl -s <domain>/sitemap.xml | head -100438439# Redirect chain440curl -sIL <url> | grep -E 'HTTP/|Location:'441442# Canonical tag443curl -s <url> | grep -i 'rel="canonical"'444445# Noindex check446curl -s <url> | grep -i 'noindex'447curl -sI <url> | grep -i 'x-robots-tag'448449# Hreflang tags450curl -s <url> | grep -i 'hreflang'451```452453### Security Headers454```bash455curl -sI <url> | grep -iE 'strict-transport|content-security|x-frame|x-content-type|referrer-policy|permissions-policy'456```457458### Structured Data459```bash460# Extract JSON-LD461curl -s <url> | grep -oP '<script type="application/ld\+json">.*?</script>' | sed 's/<[^>]*>//g'462```463464### Meta Tags & Content465```bash466# Extract key meta tags467curl -s <url> | grep -iE '<title>|meta name="description"|<h1|og:|twitter:'468469# Count headings by level470curl -s <url> | grep -oiE '<h[1-6][^>]*>' | sort | uniq -c | sort -rn471472# Images missing alt text473curl -s <url> | grep -oiE '<img [^>]*>' | grep -v 'alt=' | wc -l474475# Total images476curl -s <url> | grep -oiE '<img [^>]*>' | wc -l477478# Viewport meta tag479curl -s <url> | grep -i 'viewport'480```481482### Local Source Analysis (SSG/Astro Sites)483```bash484# Check for missing alt text in source485grep -rn '<img' src/ | grep -v 'alt=' | head -20486487# Missing meta descriptions in frontmatter488grep -rL 'description:' src/content/posts/489490# Validate heading hierarchy in markdown491grep -n '^#' src/content/posts/<file>.md492```493494---495496## Workflow497498### Phase 1: Gather Context499500Ask user for:5015021. **Scope**: Single page URL/file, or full site audit?5032. **Target keywords**: 3-10 primary queries to rank for5043. **Content type**: Blog / Landing page / Product / Docs / E-commerce5054. **Competitors**: Top 2-3 competing URLs (optional, for gap analysis)5065. **International**: Multi-language? Which languages?5076. **Local**: Is local SEO relevant? (physical location, service area)5087. **Access**: Can I run CLI commands against the live URL, or local files only?5098. **Known issues**: Any existing penalties, ranking drops, or known problems?510511### Phase 2: Technical Audit512513Run automated checks first (fast, objective):5145151. Fetch and inspect robots.txt and sitemap.xml5162. Run Lighthouse for CWV, performance, accessibility, SEO scores5173. Check security headers via curl5184. Extract structured data and validate5195. Check meta tags, canonical, hreflang5206. Check HTTP status codes and redirect chains521522**Output:** TECH Framework scorecard with specific findings per pillar.523524### Phase 3: Content Audit525526Analyze content quality (requires reading the page):5275281. Identify search intent for target keywords5292. Evaluate E-E-A-T signals in content5303. Analyze keyword usage — H1, title, meta description, body, URL5314. Check heading hierarchy and content structure5325. Assess content quality — originality, depth, accuracy5336. Review CTR elements — title tag, meta description, URL slug534535**Output:** SEARCH Framework scorecard with specific findings per pillar.536537### Phase 4: Generate Recommendations538539Prioritize by impact and effort:540541#### Quick Wins (fix today)542- Missing meta descriptions543- Broken canonical tags544- Missing alt text545- Schema markup additions546- Security header fixes547- Title tag optimization548549#### Medium Effort (this week)550- Content rewriting for intent alignment551- Internal linking improvements552- Image optimization (format, sizing, lazy loading)553- Heading hierarchy fixes554- hreflang corrections555556#### Strategic (this month)557- Content gap creation (new pages for uncovered keywords)558- Architecture restructuring559- Performance optimization (code splitting, CDN, caching)560- Backlink outreach561- International SEO implementation562563### Phase 5: Implementation564565For each recommendation:5661. Show current state (what's wrong)5672. Show target state (what it should be)5683. Provide the exact code/content change5694. For content: produce rewritten text preserving voice (reference `/tone-of-voice` if available)5705. For technical: produce code snippet or config change571572### Phase 6: Site-Level Review573574After page-level work, assess site-wide:5751. Run Site-Level Checklist5762. Cross-check with `/ai-rank` site-level items (discovery files, AI crawler access)5773. Generate missing structured data templates5784. Identify site architecture improvements5795. Produce sitemap.xml or robots.txt improvements if needed5806. Review off-page signals and recommend actions581582---583584## Audit Report Template585586```markdown587## SEO Audit Report — [URL or Site Name]588**Date:** [date]589**Audited by:** Claude Code (seo-rank skill)590591### Score592593**You MUST compute and present this score. It is not optional.**594595SEO RANK SCORE: X.X / 5.0 (Rating)596├── SEARCH Score: X.X / 5.0 (Content SEO)597└── TECH Score: X.X / 5.0 (Technical SEO)598599### Executive Summary600- Critical issues: [count]601- Quick wins available: [count]602- Estimated impact: [high/medium/low]603604### SEARCH Framework Scores (Content SEO)605| Principle | Score 0-5 | Key Issues |606|-----------|-----------|------------|607| S - Search Intent | | |608| E - E-E-A-T | | |609| A - Audience Quality | | |610| R - Relevance & Keywords | | |611| C - CTR Elements | | |612| H - Heading & Structure | | |613| **Weighted Average** | **X.X** | |614615### TECH Framework Scores (Technical SEO)616| Pillar | Score 0-5 | Key Issues |617|--------|-----------|------------|618| T - Core Web Vitals | | |619| E - Efficient Crawling | | |620| C - Code & Rendering | | |621| H - HTTPS & Security | | |622| N - Navigation & Architecture | | |623| I - International | | |624| C - Compliance & Accessibility | | |625| A - AI & Structured Data | | |626| L - Local SEO | | |627| **Weighted Average** | **X.X** | |628629### Core Web Vitals630| Metric | Value | Threshold | Status |631|--------|-------|-----------|--------|632| LCP | Xs | < 2.5s | PASS/FAIL |633| INP | Xms | < 200ms | PASS/FAIL |634| CLS | X.XX | < 0.1 | PASS/FAIL |635636### Security Headers637| Header | Status | Value |638|--------|--------|-------|639| HSTS | PRESENT/MISSING | |640| CSP | PRESENT/MISSING | |641| X-Frame-Options | PRESENT/MISSING | |642| X-Content-Type-Options | PRESENT/MISSING | |643| Referrer-Policy | PRESENT/MISSING | |644645### Prioritized Recommendations646647#### Quick Wins (fix today)6481. ...649650#### Medium Effort (this week)6511. ...652653#### Strategic (this month)6541. ...655656### Cross-Reference657- Run `/ai-rank audit` for LLM answer engine and AI agent optimization658- Run `/ai-rank discovery` to generate llms.txt, agents.txt659```660661---662663## Examples664665### Example 1: Blog Post SEO Audit (Markdown/Astro)666667**Input:** User runs `/seo-rank` on a markdown blog post668669**Before (frontmatter):**670```yaml671---672title: "Flag Theory Guide"673description: "A guide about flag theory"674publishDate: 2026-01-15675tags: ["flag-theory"]676---677```678679**Issues found:**680- Title: generic, doesn't match search intent, missing qualifier681- Description: too short, not action-oriented, no value proposition682- No updatedDate (E-E-A-T freshness signal)683- Tags too narrow (missing semantic variations)684685**After (optimized):**686```yaml687---688title: "Flag Theory for Digital Nomads: The 2026 Practical Guide"689description: "Learn flag theory basics: residency, banking, incorporation across jurisdictions. Step-by-step for online entrepreneurs saving 30-45% on taxes legally."690publishDate: 2026-01-15691updatedDate: 2026-03-30692tags: ["flag-theory", "tax-optimization", "digital-nomad", "international-business"]693---694```695696**Why this works:**697- Title matches intent query "flag theory guide" + qualifier "digital nomads" + freshness "2026"698- Description: 155 chars, action-oriented ("Learn"), specific numbers ("30-45%"), audience-targeted699- updatedDate signals freshness to crawlers700- Broader tag coverage for semantic relevance701702---703704### Example 2: Technical Quick Audit705706**Input:** `/seo-rank tech https://example.com`707708**Claude runs:**709```bash710curl -sI https://example.com | grep -iE 'strict-transport|content-security|x-frame|x-content-type|referrer-policy'711curl -s https://example.com/robots.txt712curl -s https://example.com/sitemap.xml | head -50713curl -s https://example.com | grep -i 'rel="canonical"'714npx lighthouse https://example.com --output=json --only-categories=performance --chrome-flags="--headless"715```716717**Output:** TECH scorecard with CWV numbers, security header status, crawlability findings, and prioritized fixes with exact code.718719---720721### Example 3: International SEO Audit (Multi-Language Astro Site)722723**Input:** `/seo-rank i18n` on an Astro site with `/en/`, `/es/`, `/fr/`, `/it/` routes724725**Checks performed:**7261. hreflang tag presence on every page variant7272. hreflang return links (bidirectional verification)7283. x-default set correctly7294. Canonical URLs self-referencing within each language (not cross-language)7305. Content localization quality (not just machine translation)7316. Language attribute on `<html>` tag per route7327. sitemap.xml includes all language variants7338. URL structure consistency across languages734735**Common findings:**736- Spanish page canonical pointing to English page (breaks hreflang)737- Missing x-default on some pages738- hreflang tags present in HTML but not in sitemap739- Some pages missing from certain language variants (incomplete translation coverage)740741---742743### Example 4: Content vs Competitor Gap Analysis744745**Input:** `/seo-rank compare https://mysite.com/guide https://competitor.com/guide`746747**Analysis:**7481. Extract both pages' H1, H2 structure, word count, schema types7492. Compare keyword coverage (which terms competitor covers that we don't)7503. Compare E-E-A-T signals (author bios, citations, dates)7514. Compare structured data (schema types, completeness)7525. Compare CWV scores (Lighthouse both URLs)7536. Produce gap report with specific additions to close gaps754755---756757## Safety & Quality Rules758759- **Never fabricate metrics** — if Lighthouse can't run, say so; don't invent scores760- **Verify before recommending** — check current state before suggesting changes761- **Don't over-optimize** — keyword stuffing is worse than under-optimization762- **Preserve content voice** — SEO optimization must not flatten the author's style. Reference `/tone-of-voice` if available763- **Flag uncertainty** — if a recommendation depends on server config you can't check, mark with `[NEEDS SERVER ACCESS]`764- **Prioritize by impact** — always lead with highest-impact, lowest-effort changes765- **2026 standards only** — INP not FID, mobile-first as default, no outdated advice (no meta keywords, no keyword density targets)766- **No black hat** — no hidden text, cloaking, link schemes, doorway pages, or manipulation767- **No speculation on algorithm** — state what Google has confirmed; flag unconfirmed signals as "widely believed but unconfirmed"768769---770771## Quick Commands772773- `/seo-rank` — Full workflow (gather context → audit → recommendations → implementation)774- `/seo-rank audit` — Full audit only (SEARCH + TECH scores), no rewriting775- `/seo-rank tech` — Technical audit only (CWV, security, crawlability, structured data)776- `/seo-rank content` — Content audit only (intent, E-E-A-T, keywords, structure)777- `/seo-rank cwv` — Core Web Vitals check only (LCP, INP, CLS)778- `/seo-rank headers` — Security headers check only779- `/seo-rank schema` — Structured data audit + generate missing JSON-LD780- `/seo-rank meta` — Title tag, meta description, OG tags audit + suggestions781- `/seo-rank i18n` — International SEO audit (hreflang, localization)782- `/seo-rank local` — Local SEO audit (GBP, NAP, local schema)783- `/seo-rank checklist` — Output full page + site checklists784- `/seo-rank site` — Site-level audit (architecture, crawlability, sitemap, robots.txt)785- `/seo-rank compare <url1> <url2>` — Compare two pages for the same target keyword
Run npx skillmds@latest add wpgaurav/seo-rank in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Comprehensive 2026 SEO audit and optimization. Use when user runs `/seo-rank`, asks to "audit SEO", "check SEO", "optimize for Google", "fix technical SEO", "improve rankings", "check Core Web Vitals", "audit site structure", "fix crawlability", or needs SEO analysis for any web page or site. Complements ai-rank (LLM/agent optimization) — use both together for full search visibility. It is listed under Marketing & Growth on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
wpgaurav (@wpgaurav) published this skill. Their other Agent Skills are listed on their SkillMD profile.