Agent skill

SEO Sxo

by seranking in seranking/seo-skills

Diagnose why a page is not ranking by reading the SERP backwards.

MITAuto-check passedFrontend & Design

Install SEO Sxo

skills CLI
$ npx skills add seranking/seo-skills --skill seo-sxo -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install seranking/seo-skills seo-sxo --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/seranking/seo-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/seo-sxo .claude/skills/seo-sxo && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
seo-sxo
GitHub stars
161
Token cost
~2.6k tokens
SKILL.md length
970 words
Files
3 (incl. references)
Skills in repo
32
Repo updated
First seen
Licence
MIT

At a glance

Diagnose why a page is not ranking by reading the SERP backwards.

  • Works in 8 steps: Validate inputs. Both URL and keyword… → Pull the SERP DATA_getSerpResults and… → Pull AIO context DATA_getAiOverview → …
  • The user asks why isnt this page ranking
  • SKILL.md covers Prerequisites, Process, Output format and Tips
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

SEO Sxo is an agent skill from seranking/seo-skills. Diagnose why a page is not ranking by reading the SERP backwards. Identifies the page type Google rewards for the target keyword, scores the candidate page against that pattern from multiple persona perspectives, and recommends the page format that would win the SERP. Use when the user asks "why isn't this page ranking", "page type mismatch", "SXO", "search experience optimization", "intent mismatch", or wants a wireframe.

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/page-type-patterns.md` and `references/persona-rubrics.md`).

It sits in Frontend & Design, covering UI design. The repository describes itself as: Claude SEO Skills — production Claude Agent Skills for the SE Ranking MCP server. Content briefs, AI Search share of voice, audits, backlink gaps, keyword clusters, schema… The licence is MIT.

When your agent uses it

  • The user asks why isnt this page ranking
  • Page type mismatch
  • Search experience optimization
  • Intent mismatch

Example prompts

  • “why isn”
  • “page type mismatch”
  • “search experience optimization”
  • “/seo-sxo”

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. Validate inputs. Both URL and keyword are required. If keyword missing, ask the user — don't infer.
  2. Pull the SERP DATA_getSerpResults and DATA_getSerpTaskAdvancedResults
  3. Pull AIO context DATA_getAiOverview
  4. Fetch user's page + top 3 winners WebFetch (always) + mcpfirecrawl-mcpfirecrawl_scrape (when available)
  5. Classify each top-10 result by page type
  6. Detect the dominant pattern
  7. Score the user's page against the dominant pattern × 4 personas
  8. Synthesise verdict and wireframe

What it can do on your machine

Read from SKILL.md and the folder at commit fd6d140. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

SEO Sxo loads about 2.6k tokens when it runs, and up to ~4.8k if it reads all its reference files. Until then it costs about 109 tokens; SKILL.md has 970 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~109
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from seranking/seo-skills at commit fd6d140, republished under its MIT licence (© seranking). 970 words, ~2,620 tokens.

Download SKILL.mdSave it as .claude/skills/seo-sxo/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
seo-sxo
description
Diagnose why a page is not ranking by reading the SERP backwards. Identifies the page type Google rewards for the target keyword, scores the candidate page against that pattern from multiple persona perspectives, and recommends the page format that would win the SERP. Use when the user asks "why isn't this page ranking", "page type mismatch", "SXO", "search experience optimization", "intent mismatch", or wants a wireframe.

Example output: examples/seo-sxo-bigin-com-20260514/SXO-REPORT.md

SEO SXO — Search Experience Optimization

Diagnose why a "well-optimized" page doesn't rank. Reads the actual SERP for the target keyword, infers the page type Google is rewarding, scores the candidate page against that pattern from multiple persona perspectives, and recommends the page format that would win the SERP.

Acknowledgements: SXO-as-a-skill framework originated in claude-seo by AgriciDaniel (with the original concept credited to Florian Schmitz, Pro Hub Challenge). MIT-licensed both directions; this implementation is independent but the framing is theirs.

Prerequisites

  • SE Ranking MCP server connected.
  • Claude's WebFetch tool available.
  • User provides: (a) target page URL, (b) target keyword the page is meant to rank for, optionally (c) target country (default us).

Process

  1. Validate inputs. Both URL and keyword are required. If keyword missing, ask the user — don't infer.

  2. Pull the SERP DATA_getSerpResults and DATA_getSerpTaskAdvancedResults

    • Top 10 organic results with URL, title, snippet.
    • SERP features: AI Overview presence, People Also Ask, image carousel, video carousel, shopping pack, Twitter pack, Featured Snippet, etc.
    • Mode selection (cost driver — read this). SERP feature data (AIO/PAA/carousels) only comes back when the task runs with result_type=advanced. That is also the most expensive single call this skill makes (≈ 700 credits per keyword on heavily-trafficked terms in the 2026-04 validation run).
      • Default — mode=full: runs result_type=advanced. Returns features + organic. Use when persona scoring needs PAA / AIO / pack signals (most cases).
      • mode=lite (result_type=standard): organic top-10 only, no SERP features, ≈ 50–100 credits. Use when (a) the user is screening many keywords and SERP features aren't load-bearing, (b) credits are constrained, (c) the user explicitly asks for a cheap pass. The persona scoring still runs but the SERP-features row in SXO-REPORT.md will read (skipped — lite mode) and the dominant-pattern detection will rely on URL/title heuristics alone.
      • Surface the chosen mode + estimated cost up front. If the user didn't specify and the keyword looks ad-heavy or commercial-high-volume, recommend mode=lite first and re-run with mode=full only if dominant-pattern confidence is low.
  3. Pull AIO context DATA_getAiOverview

    • If AIO is present for the keyword, capture the answer text and citation list.
    • Note which top-10 organic results are also cited in the AIO.
  4. Fetch user's page + top 3 winners WebFetch (always) + mcp__firecrawl-mcp__firecrawl_scrape (when available)

    • WebFetch first (free): pull markdown for the user's page + top 3 winners. Extract <title>, all H-tags, primary content structure (numbered list / table / prose / Q&A), word count, image mentions, comparison-table presence, CTA mentions.
    • Firecrawl second (4 Firecrawl credits typical — 1 per page) — recovers what WebFetch can't show:
      • JSON-LD @types per page (Product, FAQPage, BreadcrumbList, Article, Review, ItemList, etc.) — these are load-bearing for page-type classification in step 5. WebFetch's markdown can't see schema.
      • og:title / og:image / twitter:card from metadata.
      • Real <title> length (the markdown first-heading is sometimes wrong).
    • --screenshots flag (opt-in, +4 Firecrawl credits): when passed, also call firecrawl_scrape with formats: ["screenshot"] on the user's page + top 3 winners. Save as screenshots/{page}.png. Reference in the wireframe (step 8) to ground recommendations in the visual layout, not just the text outline.
    • If Firecrawl unavailable (or --no-firecrawl passed): WebFetch portion runs. Page-type classification in step 5 falls back to URL/title heuristics + content-structure heuristics only — schema-based classification is skipped. Note in 02-page-type-classification.md: Schema-based classification: skipped — Firecrawl required. Confidence in dominant-pattern detection drops accordingly.
  5. Classify each top-10 result by page type

    • Use the heuristics in references/page-type-patterns.md.
    • For each: assign one of {comparison, alternatives, listicle, how-to, definition, product, editorial, forum, video}.
    • Note signals that informed the classification (URL pattern, title pattern, schema, content structure).
  6. Detect the dominant pattern

    • Count types in top 10. If one type ≥ 6, that's dominant.
    • If two tie at 4–4, the SERP is "split intent" — both work; commercial vs informational angle determines which to choose.
    • Cross-reference with SERP features: video carousel → expect ≥ 2 video results; PAA → expect informational results; shopping pack → commercial intent dominant; AIO → informational consensus.
  7. Score the user's page against the dominant pattern × 4 personas

    • Use the rubrics in references/persona-rubrics.md.
    • 4 personas: Skimmer, Researcher, Buyer, Validator.
    • 0–10 per persona. Apply the intent-weighting profile (also in persona-rubrics.md) to get a single 0–100 SXO score.
  8. Synthesise verdict and wireframe

    • If user's page type matches dominant: SXO score reflects how well it executes the pattern. Recommend specific persona-targeted improvements.
    • If user's page type does NOT match dominant: this is the "page-type mismatch" case. Output a wireframe for the dominant page type, anchored in observed patterns from the top 3 winners.
    • Write SXO-REPORT.md.
Show full SKILL.md (245 more words)Show less

Output format

Create a folder seo-sxo-{target-slug}-{YYYYMMDD}/ with:

seo-sxo-{target-slug}-{YYYYMMDD}/
├── 01-serp-snapshot.md            (top 10 + features + AIO)
├── 02-page-type-classification.md (each top-10 result classified)
├── 03-user-page-fingerprint.md    (the candidate page's structure)
├── 04-persona-scores.md           (4 personas × current page)
├── 05-recommendation.md           (verdict + page-type-winning wireframe)
├── screenshots/                   (only if --screenshots ran: candidate.png + winner-1/2/3.png)
└── SXO-REPORT.md                  (executive summary deliverable)

SXO-REPORT.md shape:

markdown
# SXO Report: {URL} for keyword "{keyword}"

> Snapshot dated {YYYY-MM-DD} · Country: {country}

## SERP profile
- Top 10 page types: {comparison: 4, listicle: 3, editorial: 2, video: 1}
- Dominant pattern: **{pattern}** ({n} of 10)
- SERP features: AIO ✓ ({n} citations), PAA ✓ ({n} questions), Image carousel ✗, Video carousel ✗, Shopping pack ✗
- Intent: {informational | commercial-investigation | transactional | navigational}

## Your page
- Page type: **{detected type}**
- Page-type match with dominant: **{✓ match | ✗ MISMATCH — see Verdict}**
- Word count: {n}
- Primary content structure: {prose | numbered-list | table | step-blocks | Q&A | mixed}

## SXO score: **{score}/100**

| Persona | Weight | Score | Notes |
|---|---|---|---|
| Skimmer | {%} | {n}/10 | {1-line note} |
| Researcher | {%} | {n}/10 | {1-line note} |
| Buyer | {%} | {n}/10 | {1-line note} |
| Validator | {%} | {n}/10 | {1-line note} |

## Verdict

{One paragraph. If page type matches: "Your page is the right type for this SERP. The score gap is {X} points — see persona-specific gaps below." If MISMATCH: "Your page is a {your type} but the SERP rewards {dominant type}. No amount of on-page optimization will close the gap; ship a {dominant type} page instead. Wireframe below."}

## If MISMATCH — wireframe for the winning page type

\`\`\`
{Page title pattern — e.g., "{Brand A} vs {Brand B}: 2026 Comparison"}

[Hero / TL;DR — first 200 words answer the comparative question]
[Comparison table — must be visually dominant]
[Section per dimension — each with H2 named after the dimension]
[Verdict / recommendation — explicit, justified]
[FAQ — top 3–5 PAA questions]
[Schema — Product (×2) + BreadcrumbList + FAQPage]
\`\`\`

## If MATCH — top 3 changes by persona

1. {Skimmer}: {specific change}
2. {Researcher}: {specific change}
3. {Buyer or Validator}: {specific change}

## Raw data
- 02-page-type-classification.md — every top-10 result, classified
- 03-user-page-fingerprint.md — your page's signals
- 04-persona-scores.md — full persona-by-persona breakdown

Tips

  • Respect rate limit: 10 req/sec. The SERP calls in step 2/3 are fast; WebFetch calls in step 4 dominate latency, not API.
  • Cost is mode-dependent. mode=full is ~750–900 SE Ranking credits per run (the SERP-advanced call dominates). mode=lite is ~80–150 SE Ranking credits. Always call DATA_getCreditBalance before running and surface the estimate against remaining balance. Step 4 adds 4 Firecrawl credits when Firecrawl is available, +4 more if --screenshots is passed. Pass --no-firecrawl to skip both.
  • result_type=advanced is the only way to get AIO / PAA / pack data. The standard SERP endpoint returns organic-only. Don't try to reconstruct SERP features from organic results — that's the cost the user is paying for.
  • Page-type classification is a heuristic — references/page-type-patterns.md documents the signals so users can override. If the heuristic gets a result wrong, edit that file with the correction.
  • The 4 personas are opinionated. They come from the framework's original source — don't invent more without good reason.
  • The SXO score is directional. An 85/100 doesn't guarantee ranking; a 35/100 strongly suggests the page won't break through. Treat as a diagnostic, not a forecast.
  • When the dominant pattern is split-intent (4-4), ship two pages — one per intent — rather than trying to make one page serve both. Google's SERPs reflect this split for a reason.
  • The wireframe in MISMATCH mode is a starting point. The user still needs to write the content. This skill diagnoses; seo-content-brief produces the writer-ready brief.

© seranking, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skills/seo-sxo of seranking/seo-skills.

  • SKILL.md
  • references/page-type-patterns.md
  • references/persona-rubrics.md

Open the folder on GitHubat commit fd6d140

Compare with similar skills

SEO Sxo next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

SEO Sxo compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
SEO Sxo this skillseranking/seo-skills161—~2.6kAutomated safety check: PassMIT
Website Taste Passtryproduck/produck-skills511—~2.4kAutomated safety check: PassApache-2.0
Create Websitewondelai/skills2.4k—~5.7kAutomated safety check: PassMIT
Banner Design Systemnextlevelbuilder/ui-ux-pro-max-skill134k1 repos~1.8kAutomated safety check: PassMIT
UI StylingOhh-889/skyroc79513 repos~2.5kAutomated safety check: PassMIT
LobeHub Interactive Prototypelobehub/lobehub83k—~1.6kAutomated safety check: PassCustom licence

Similar skills

  • Website Taste Pass

    tryproduck/produck-skills

    Runs a category-first visual audit of a website, then a decisive design pass that raises credibility and conversion clarity, verified with screenshots instead of subjective opinion.

    511 GitHub stars~2.4k tokensUpdated 1 mo ago
    Frontend & DesignAuto-check passed
  • Create Website

    wondelai/skills

    Guided journey from a blank page to a live, high-converting website, built message-first, then design, then conversion.

    2.4k GitHub stars~5.7k tokensUpdated 29 days ago
    Frontend & DesignAuto-check passed
  • Banner Design System

    nextlevelbuilder/ui-ux-pro-max-skill

    Walks through designing a banner for social media, ads, a website hero or print, from gathering requirements to building 2 or 3 art-direction options in HTML and CSS.

    134k GitHub starsUsed in 1 repo~1.8k tokens
    Frontend & DesignAuto-check passed
  • UI Styling

    Ohh-889/skyroc

    Create beautiful, accessible user interfaces with shadcn/ui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs.

    795 GitHub starsUsed in 13 repos~2.5k tokens
    Frontend & DesignAuto-check passed
  • Builds single-file interactive HTML prototypes rendered with the real LobeHub UI components and written as production-style React, so they can later be split into files.

    83k GitHub stars~1.6k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Make Interfaces Feel Better

    samuelclay/NewsBlur

    Design engineering principles for making interfaces feel polished.

    7.6k GitHub starsUsed in 10 repos~1.5k tokens
    Frontend & DesignAuto-check passed

More from seranking/seo-skills

All 32 skills in this repo
  • SEO Google

    seranking/seo-skills

    Direct access to Google's own SEO data via Search Console (Search Analytics, URL Inspection, Sitemaps), PageSpeed Insights v5, CrUX field data with 25-week history, Indexing API v3, GA4 organic…

    161 GitHub stars~4.8k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO API

    seranking/seo-skills

    SE Ranking API integration architect. An agent skill from seranking/seo-skills.

    161 GitHub stars~4.1k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO Content Audit

    seranking/seo-skills

    E-E-A-T + CITE quality audit for an EXISTING piece of content.

    161 GitHub stars~3k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO Content Brief

    seranking/seo-skills

    Generate a writer-ready SEO content brief from a target domain and topic.

    161 GitHub stars~2.5k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO Drift

    seranking/seo-skills

    Capture an SEO baseline snapshot for a domain or URL, then on later runs compare the current state and surface regressions.

    161 GitHub stars~3.4k tokensUpdated 3 mo ago
    Auto-check passed
  • SEO Firecrawl

    seranking/seo-skills

    Ad-hoc web scraping, site mapping, and full-site crawling via Firecrawl MCP.

    161 GitHub stars~2.3k tokensUpdated 3 mo ago
    Auto-check passed

Questions about SEO Sxo

What does SEO Sxo do?

Diagnose why a page is not ranking by reading the SERP backwards. SEO Sxo is an agent skill from seranking/seo-skills. Diagnose why a page is not ranking by reading the SERP backwards.

When should I use SEO Sxo?

SEO Sxo fits situations like: the user asks why isnt this page ranking; page type mismatch; search experience optimization; intent mismatch.

How do I install SEO Sxo in Claude Code?

Run `npx skills add seranking/seo-skills --skill seo-sxo -a claude-code`. Or copy the skill folder (skills/seo-sxo in seranking/seo-skills) into .claude/skills/seo-sxo in your project. Claude Code loads it when a task matches its description.

How do I install SEO Sxo in Codex?

Run `npx skills add seranking/seo-skills --skill seo-sxo -a codex`. Or copy the skill folder (skills/seo-sxo in seranking/seo-skills) into .agents/skills/seo-sxo in your project. Codex loads it when a task matches its description.

Can I use SEO Sxo in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add seranking/seo-skills --skill seo-sxo -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/seo-sxo, .gemini/skills/seo-sxo, .github/skills/seo-sxo and .opencode/skills/seo-sxo in your project.

What does SEO Sxo need to run?

SKILL.md names no scripts, command-line tools or credentials: SEO Sxo is instructions for the agent only.

Does SEO Sxo access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is SEO Sxo safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does SEO Sxo use?

SEO Sxo is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does SEO Sxo use?

About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.2k tokens, read only when the agent opens those files.

What are the alternatives to SEO Sxo?

Skills that share tags, products or a category with SEO Sxo: Website Taste Pass (tryproduck/produck-skills, 511 stars), Create Website (wondelai/skills, 2.4k stars), Banner Design System (nextlevelbuilder/ui-ux-pro-max-skill, 134k stars) and UI Styling (Ohh-889/skyroc, 795 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains SEO Sxo?

seranking (a GitHub organization) maintains it in seranking/seo-skills, which has 161 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on June 25, 2026.

Source: seranking/seo-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.