$npx -y skills add AgriciDaniel/claude-seo --skill seo-sxoSearch Experience Optimization: reads Google SERPs backwards to detect page-type mismatches, derives user stories from search intent signals, and scores pages from multiple persona perspectives. Identifies why well-optimized pages fail to rank by analyzing what Google rewards for
| 1 | # Search Experience Optimization (SXO) |
| 2 | |
| 3 | SXO bridges the gap between SEO (what Google rewards) and UX (what users need). |
| 4 | Traditional SEO audits check technical health. SXO asks: "Does this page deserve |
| 5 | to rank for this keyword based on what Google is actually rewarding in the SERP?" |
| 6 | |
| 7 | ## Core Insight |
| 8 | |
| 9 | A page can score 95/100 on technical SEO and still fail to rank because it is the |
| 10 | **wrong page type** for the keyword. If Google shows 8 product pages and 2 comparison |
| 11 | pages for your keyword, your blog post will never break through -- no matter how |
| 12 | well-optimized it is. |
| 13 | |
| 14 | ## Commands |
| 15 | |
| 16 | | Command | Purpose | |
| 17 | |---------|---------| |
| 18 | | `/seo sxo <url>` | Full SXO analysis (auto-detect keyword from page) | |
| 19 | | `/seo sxo <url> <keyword>` | Full SXO analysis for a specific keyword | |
| 20 | | `/seo sxo wireframe <url>` | Generate IST/SOLL wireframe with concrete placeholders | |
| 21 | | `/seo sxo personas <url>` | Persona-only scoring (skip SERP analysis) | |
| 22 | |
| 23 | ## Execution Pipeline |
| 24 | |
| 25 | ### Step 1: Target Acquisition |
| 26 | |
| 27 | 1. Fetch the target URL via `scripts/render_page.py --mode auto` (SPA-aware and SSRF-safe) |
| 28 | 2. Parse with `scripts/parse_html.py` to extract: title, H1, meta description, |
| 29 | headings hierarchy, word count, schema markup, CTAs, media elements |
| 30 | 3. If no keyword provided, extract primary keyword from title tag + H1 overlap |
| 31 | 4. Validate keyword is non-empty before proceeding |
| 32 | |
| 33 | ### Step 2: SERP Backwards Analysis |
| 34 | |
| 35 | Read `references/page-type-taxonomy.md` for classification rules. |
| 36 | |
| 37 | 1. Search Google for the target keyword (WebSearch) |
| 38 | 2. For each of the top 10 organic results, record: |
| 39 | - URL and domain authority tier (brand / niche authority / unknown) |
| 40 | - Page type (classify using taxonomy) |
| 41 | - Content format (long-form, listicle, how-to, comparison, tool, video) |
| 42 | - Word count estimate (from snippet length and page structure) |
| 43 | - Schema types present (from currently supported SERP features; exclude FAQ/HowTo) |
| 44 | - Media signals (video carousel, image pack, thumbnail presence) |
| 45 | 3. Record SERP features present: |
| 46 | - Featured snippet (paragraph / list / table / video) |
| 47 | - People Also Ask (extract all visible questions) |
| 48 | - Ads (top and bottom -- count and analyze ad copy themes) |
| 49 | - Related searches (extract all) |
| 50 | - Knowledge panel / local pack / shopping results |
| 51 | - AI Overview presence and source types |
| 52 | 4. Calculate SERP consensus: |
| 53 | - Dominant page type (>60% = strong consensus, 40-60% = mixed, <40% = fragmented) |
| 54 | - Content depth expectations (average word count tier) |
| 55 | - Schema expectation (most common structured data types) |
| 56 | - Media expectations (video required? images critical?) |
| 57 | |
| 58 | ### Step 3: Page-Type Mismatch Detection |
| 59 | |
| 60 | This is the core SXO insight. Compare target page type against SERP consensus. |
| 61 | |
| 62 | **Mismatch severity levels:** |
| 63 | |
| 64 | | Target Type | SERP Expects | Severity | Recommendation | |
| 65 | |-------------|-------------|----------|----------------| |
| 66 | | Blog Post | Product Pages | CRITICAL | Create dedicated product page | |
| 67 | | Blog Post | Comparison | HIGH | Restructure as comparison with matrix | |
| 68 | | Product | Informational | HIGH | Add educational content layer | |
| 69 | | Landing Page | Tool/Calculator | HIGH | Build interactive tool component | |
| 70 | | Service Page | Local Results | MEDIUM | Add location signals + local schema | |
| 71 | | Any type match | - | ALIGNED | Focus on content depth and UX | |
| 72 | |
| 73 | **Classification rules:** |
| 74 | - Classify target page using `references/page-type-taxonomy.md` |
| 75 | - Classify each SERP result using the same taxonomy |
| 76 | - Flag mismatch if target type differs from SERP dominant type |
| 77 | - If SERP is fragmented (no dominant type), note opportunity for differentiation |
| 78 | |
| 79 | ### Step 4: User Story Derivation |
| 80 | |
| 81 | Read `references/user-story-framework.md` for the full framework. |
| 82 | |
| 83 | From SERP signals, derive user stories: |
| 84 | |
| 85 | 1. **PAA questions** reveal knowledge gaps and concerns |
| 86 | 2. **Ad copy themes** reveal commercial triggers and value propositions |
| 87 | 3. **Related searches** reveal the search journey (what comes before/after) |
| 88 | 4. **Featured snippet format** reveals the expected answer structure |
| 89 | 5. **AI Overview** reveals what Google considers the definitive answer |
| 90 | |
| 91 | For each signal cluster, generate a user story: |
| 92 | ``` |
| 93 | As a [persona derived from signal], |
| 94 | I want to [goal derived from query intent], |
| 95 | because [emotional driver from ad copy / PAA tone], |
| 96 | but |