# Seo

> 19 sub-skills: technical audit, E-E-A-T, schema, GEO, LLM optimization, brand AI tracking, intent classification, IndexNow, content rewrite, AI Overviews. Real data only.

- **Type:** Skill
- **Install:** `agentstack add skill-nurdamiron-claude-code-skills-claude-code-skills`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [nurdamiron](https://agentstack.voostack.com/s/nurdamiron)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [nurdamiron](https://github.com/nurdamiron)
- **Source:** https://github.com/nurdamiron/claude-code-skills

## Install

```sh
agentstack add skill-nurdamiron-claude-code-skills-claude-code-skills
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# SEO Analyzer v4.0 — Real Data Only

## BEFORE YOU START — Ask if unclear

If the user runs `/seo` without a URL or command, ask:
```
What would you like to analyze?
  1.  Full audit       — /seo audit [url]
  2.  Single page      — /seo page [url]
  3.  LLM readiness    — /seo llm [url]
  4.  Schema fix       — /seo schema [url]
  5.  Content/E-E-A-T  — /seo content [url]
  6.  Action plan      — /seo plan [url]
  7.  Brand AI check   — /seo brand [brand-name] [url]
  8.  Search intent    — /seo intent [url]
  9.  IndexNow check   — /seo indexnow [url]
  10. Content rewrite  — /seo rewrite [url]
  11. AI Overviews     — /seo aio [keyword] [url]

Which command and URL?
```

Never simulate, hallucinate, or estimate data you haven't fetched.
If a fetch fails — say so. If you can't check something — say so.

---

## Sub-skills (19 total)
```
/seo audit        — full site audit (runs all checks)
/seo page         — single page deep analysis
/seo content      — E-E-A-T quality scoring
/seo schema       — JSON-LD structured data
/seo images       — alt text + format audit
/seo sitemap      — XML sitemap generation
/seo hreflang     — international SEO
/seo local        — local business + GBP
/seo geo          — AI Overviews / GEO
/seo llm          — LLM / AI citation optimization
/seo plan         — strategic SEO roadmap
/seo competitor   — competitor gap analysis
/seo content-opt  — on-page optimization
/seo programmatic — pages at scale
/seo brand        — AI brand visibility tracking (NEW)
/seo intent       — search intent classification (NEW)
/seo indexnow     — IndexNow implementation check (NEW)
/seo rewrite      — AutoGEO content rewrite suggestions (NEW)
/seo aio          — AI Overviews presence check (NEW)
```

---

## STEP 1 — Real Data Collection (mandatory before any analysis)

When given a URL, run ALL of these in order. Never skip.

### 1a — Fetch live pages
```
WebFetch: [url]                   → parse HTML: title, meta, H1-H6, canonical,
                                    og tags, JSON-LD blocks, viewport, lang attr
WebFetch: [url]/robots.txt        → crawl rules, AI crawler allowances
WebFetch: [url]/sitemap.xml       → if 404, check robots.txt for Sitemap: line
WebFetch: [url]/llms.txt          → LLM accessibility file (note if missing)
```

Parse raw HTML directly. Extract all `` blocks.
Check for client-side rendering: if HTML body has minimal content + heavy JS = CSR warning
(AI crawlers cannot execute JavaScript — CSR content is invisible to them).

### 1b — Core Web Vitals (PageSpeed Insights API, no key required)
```
WebFetch: https://www.googleapis.com/pagespeedonline/v5/runPagespeed
          ?url=[url_encoded]&strategy=mobile

WebFetch: https://www.googleapis.com/pagespeedonline/v5/runPagespeed
          ?url=[url_encoded]&strategy=desktop
```

Extract from JSON:
```
lighthouseResult.audits.largest-contentful-paint.displayValue  → LCP
lighthouseResult.audits.interaction-to-next-paint.displayValue → INP
lighthouseResult.audits.total-blocking-time.displayValue       → TBT
lighthouseResult.audits.cumulative-layout-shift.displayValue   → CLS
lighthouseResult.categories.performance.score × 100            → Perf score
lighthouseResult.categories.seo.score × 100                    → Lighthouse SEO
```

If API returns error or rate limit: state "CWV: fetch failed — check manually at
pagespeed.web.dev" and mark CWV score as N/A (do not guess).

### 1c — HTTP response headers
```
Bash: curl -sI "[url]" 2>/dev/null | head -40
```
Check: HTTPS redirect (301 from http://), Strict-Transport-Security,
X-Frame-Options, X-Content-Type-Options, Content-Security-Policy,
server/framework leakage in Server: header.

### 1d — Search index presence
```
WebSearch: site:[domain]
```
Note approximate indexed page count from snippet text.
Do NOT treat this number as exact — it is Google's estimate only.

---

## STEP 2 — What this skill CANNOT measure (always state in report)

Always include this block in the report:
```
-- DATA LIMITATIONS ──────────────────────────────────────────
  Backlinks            requires Ahrefs / Semrush / Moz
  Full site crawl      requires Screaming Frog / Sitebulb
  GSC impressions/CTR  requires Google Search Console access
  Real INP field data  requires Chrome UX Report (CrUX)
  Holistic CWV score   requires GSC Core Web Vitals report
  AI citation tracking requires Brandwatch / Mention / manual
──────────────────────────────────────────────────────────────
```

---

## STEP 3 — Scoring Weights (0-100 total)

```
Technical SEO       20 pts   (crawlability, HTTPS, architecture, CWV)
Content / E-E-A-T   20 pts   (depth, authorship, citations, freshness)
On-Page SEO         17 pts   (title, meta, headings, URL, internal links)
LLM Readiness       18 pts   (llms.txt, crawlers, structure, entity clarity)
Schema Markup        9 pts   (JSON-LD types, validity, rich snippet eligibility)
Core Web Vitals     10 pts   (LCP, INP, CLS — real PSI data only)
Images               6 pts   (alt text, WebP/AVIF, lazy loading, sizing)
```

Priority: CRITICAL > HIGH > MEDIUM > LOW

---

## STEP 4 — Technical SEO Checks

### Crawlability
- robots.txt present, valid syntax, no accidental Disallow: /
- sitemap.xml linked from robots.txt, all URLs return 200
- Canonical tags on all indexable pages (self-referencing + cross-page)
- No noindex on pages that should rank
- No redirect chains longer than 1 hop

### Client-Side Rendering (CRITICAL for AI + SEO)
- If HTML  has  4.0s  poor
INP   500ms  poor
CLS   0.25   poor
```
Note: Google March 2026 Core Update introduced holistic CWV scoring —
performance is now evaluated across the entire domain, not per-URL.
43% of sites fail the INP threshold (most common failure in 2026).

---

## STEP 5 — Content Quality (E-E-A-T)

### Experience
- First-hand knowledge signals: personal data, case studies, original research
- "We found that..." / "In our testing..." patterns
- Original statistics or surveys (highest AI citation value)

### Expertise
- Named author on every article (not "Admin" or "Staff Writer")
- Author bio page with: credentials, publication history, social links
- Topic depth: glossary, definitions, comprehensive coverage

### Authoritativeness
- Outbound citations to primary sources (studies, official docs, .gov/.edu)
- Year-tagged data — flag anything older than 2 years
- Numbers > adjectives: "42% faster" beats "much faster"

### Trustworthiness
- About + Contact + Privacy pages present and linked from footer
- Author sameAs links: LinkedIn, Google Scholar, ORCID, Twitter/X
- Organization sameAs: Wikidata, Crunchbase, LinkedIn Company

### Content Freshness (AI prefers recent content)
- 85% of Google AI Overview citations are from content  H2 > H3, no skipped levels
- URL: short, lowercase, hyphens only, keyword present, no query params
- Internal linking: 3-5 contextual links per page, descriptive anchors
- Open Graph: og:title, og:description, og:image (1200x630), og:url
- Twitter Card: twitter:card, twitter:title, twitter:image

---

## STEP 7 — LLM Optimization (GEO) — 18 points

### Why LLMs cite some content and not others (2026 research data)
- 44.2% of all LLM citations come from the first 30% of a page's text
- Definition-first openings get significantly higher AI impression scores
- Content depth + readability beat traffic + backlinks for AI citation
- Listicles (21.9%), articles (16.7%), product pages (13.7%) = most cited types
- Structured content (headings, lists, FAQ) = most effective format in AI search
- Perplexity inline citations convert at 11x the rate of traditional organic search
- Top-10 organic ranking strongly correlates with AI citation (Ahrefs/Semrush data)

### AI Platform Market Share (2026)
```
ChatGPT      55-60% of AI referral traffic
Perplexity   18-22% (but 11x conversion vs organic)
Gemini        ~8.7%
Others        ~13%
```

### 7.1 — llms.txt (3 pts)
Community standard (llmstxt.org), NOT yet IETF/W3C official.
Adopted by 600+ sites including Stripe, Cloudflare, Anthropic, Vercel.
Reduces AI hallucinations about your site by 30-70%.

Required format:
```markdown
# [Site Name]

> [One sentence describing what the site is and who it's for]

## Docs
- [Page Title](https://example.com/page): [one sentence description]
- [Page Title](https://example.com/page): [one sentence description]

## API Reference
- [Endpoint](https://example.com/api/v1): [description]

## Optional: pages not for LLMs
- /admin
- /checkout
- /user/settings
```

Score:
- 3 pts: llms.txt exists, valid format, covers key pages
- 1 pt:  llms.txt exists but incomplete
- 0 pts: missing

### 7.2 — AI Crawler Access in robots.txt (3 pts)

Complete list of AI crawlers to ALLOW (as of 2026):
```
# OpenAI
User-agent: GPTBot           # training data
User-agent: OAI-SearchBot    # ChatGPT search
User-agent: ChatGPT-User     # ChatGPT browsing (user-triggered)

# Anthropic
User-agent: ClaudeBot        # primary crawler
User-agent: Claude-SearchBot # Claude search
User-agent: Claude-User      # user-triggered

# Perplexity
User-agent: PerplexityBot    # primary crawler
# Note: Perplexity-User IGNORES robots.txt — user-triggered requests
# cannot be blocked via robots.txt. This is a known limitation.

# Google
User-agent: Google-Extended       # Gemini / AI Overviews training
User-agent: Google-CloudVertexBot # Vertex AI

# Others
User-agent: Applebot-Extended  # Apple AI
User-agent: DeepSeekBot        # DeepSeek
User-agent: DuckAssistBot      # DuckDuckGo AI
User-agent: Gemini-Deep-Research
User-agent: CCBot              # Common Crawl (used by many LLMs)
User-agent: YouBot             # You.com
```

IMPORTANT: Blocking these = invisible to that AI platform.
IMPORTANT: Perplexity-User ignores robots.txt by design (user-triggered).
Check each explicitly in robots.txt. Blanket `Allow: /` is NOT enough.

Score:
- 3 pts: all major crawlers explicitly allowed (or no blocks at all)
- 2 pts: main crawlers allowed, some minor ones missing
- 1 pt:  partial — some major crawlers blocked
- 0 pts: GPTBot or ClaudeBot blocked

### 7.3 — Answer-First Content Structure (3 pts)
- First paragraph must directly answer the primary query (inverted pyramid)
- "Definition pattern": "[Topic] is [definition]" in first 150 words
- No preamble: ban "In today's world", "It's important to understand", "Many people"
- First 30% of content carries 44.2% of all citation weight — make it count
- Every H2/H3 should be phrased as the question it answers

Score:
- 3 pts: clear answer in first 150 words, every section heading is a question
- 2 pts: answer present but buried after preamble
- 1 pt:  no clear answer structure
- 0 pts: heavy preamble, answer not findable in first 30%

### 7.4 — Structured Formatting (2 pts)
- H2/H3 headings for each key question
- Bullet/numbered lists for comparisons, features, steps
- Tables for specs, pricing, comparisons (AI extracts tabular data well)
- Bold on key terms at first use
- Code blocks for technical content

### 7.5 — FAQ / HowTo Schema (2 pts)
- FAQPage schema for question/answer sections
- HowTo schema for step-by-step content
- speakable schema on Article/WebPage for AI Overviews + voice
  (target 2-4 speakable sections per page)

### 7.6 — Entity Clarity (2 pts)
- Consistent entity naming (no ambiguous pronouns for brand/product)
- Organization schema with sameAs to Wikidata, LinkedIn, Crunchbase
- Person schema for all authors with sameAs to professional profiles
- Definitions for all acronyms and industry terms (use ``)

### 7.7 — Data Density + Citation Worthiness (2 pts)
- Original statistics, surveys, or proprietary research = highest value
- Third-party data cited with direct source links
- Year tagged: "(2025 data)", "(as of March 2026)"
- Flag any stats older than 2 years as needing refresh

### 7.8 — No Client-Side Rendering (1 pt)
- Server renders full HTML — AI crawlers cannot execute JS
- Test: WebFetch the URL and check if meaningful text is in the raw HTML
- 0 pts if body text 
```

4. **Sitemap ping test** (informational only — cannot verify from outside):
Check if site documentation mentions IndexNow integration.

### Supported search engines (2026)
```
Bing      → indexnow.org endpoint
Yandex    → yandex.com/indexnow
Naver     → searchadvisor.naver.com
Seznam    → seznam.cz
DuckDuckGo → via Bing partnership
```

### Output format
```
  IndexNow Status:
  ─────────────────────────────────────────────────
  Key file found:     [YES: /abc123.txt / NO]
  robots.txt hint:    [YES / NO]
  Meta tag:           [YES / NO]
  ─────────────────────────────────────────────────
  Status: [IMPLEMENTED / NOT IMPLEMENTED]

  If NOT IMPLEMENTED — fix:
  1. Generate a key: openssl rand -hex 32
  2. Create /[key].txt containing just the key
  3. Add to robots.txt: IndexNow: [key]
  4. On content publish: POST to https://api.indexnow.org/indexnow
     Body: {"host":"[domain]","key":"[key]","urlList":["[updated-url]"]}
  5. Bing propagates to DuckDuckGo automatically
```

---

## STEP 12 — NEW: AutoGEO Content Rewrite (/seo rewrite)

Based on AutoGEO (ICLR 2026) — automatically generate AI-optimized rewrites
of the most citation-critical sections of a page.

### Process

1. **Fetch the page** and extract:
   - First 300 words (highest citation weight zone)
   - All H2/H3 headings
   - First paragraph under each heading

2. **Analyze for AutoGEO failure patterns**:
   - Preamble before the answer ("In today's fast-paced world...")
   - Passive voice density > 20%
   - No definition in first 150 words
   - Headings that don't phrase a question
   - Missing statistics or data points
   - Long sentences > 25 words (LLMs prefer ≤ 20 words)
   - Jargon without inline definition

3. **Generate rewrites** for each failing section:

Show original → rewritten side by side:
```
  SECTION: [H2 heading]
  ─────────────────────────────────────────────────────────
  ORIGINAL:
  "[exact original text, first 2-3 sentences]"

  REWRITTEN (AutoGEO):
  "[rewritten version: definition-first, active voice, data added,
    question-phrased heading, ≤ 20 word sentences]"

  Changes made:
  + Added definition in sentence 1
  + Moved key stat to opening
  + Converted heading to question format
  + Shortened avg sentence: 31 → 18 words
  ─────────────────────────────────────────────────────────
```

### AutoGEO Rewrite Rules (apply in order)
1. **Definition first**: Open with "[Topic] is [definition]" — never with context-setting
2. **Active voice**: "We measured X" not "X was measured"
3. **Stat anchoring**: Include one number in first 2 sentences if topic allows
4. **Question headings**: Every H2/H3 = a question the section answers
5. **Short sentences**: Max 20 words. Split anything longer
6. **Bold key terms**: First use of every important term gets `**bold**`
7. **Inverted pyramid**: Most important → least important (journalism style)
8. **No throat-clearing**: Delete first sentence if it contains "In today's", "It is important", "Many people"

### Output: rewrite-suggestions.md
Write a file with all rewrite suggestions in diff-friendly format.

---

## STEP 13 — NEW: AI Overviews Presence Check (/seo aio)

Google AI Overviews (formerly SGE) appear for ~20% of queries in 2026.
Check whether your content is being cited or excluded.

### Process

1. **Identify target keywords** from the page (if not provided):
   - Extract H1, first H2, meta title → derive 3-5 informational queries

2. **Run presence checks via WebSearch**:
```
WebSearch: [keyword] — note if result snippet looks like an AI Overview summary
WebSearch: what is [topic from page]
WebSearch: how to [action from page]
WebSearch: best [product/service from page]
WebSearch: [brand] [core topic]
```

3. **Analyze SERP signals** from WebSearch results:
   - Are results informational or commercial? (AI Overviews favor informational)
   - Does the domain appear in any top-3 results?
   - Are competitors in results for these queries?
   - Is featured snippet present? (correlates strongly with AIO citati

…

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [nurdamiron](https://github.com/nurdamiron)
- **Source:** [nurdamiron/claude-code-skills](https://github.com/nurdamiron/claude-code-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-nurdamiron-claude-code-skills-claude-code-skills
- Seller: https://agentstack.voostack.com/s/nurdamiron
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
