geo-tracking
Measure AI visibility without paid tools or API keys. Input: your site (GA4 and server logs) and a buyer prompt panel. Output: GA4 AI-traffic reporting (custom…
Build the bottom-funnel pages that capture buyers at the decision moment: 'X vs Y', 'alternatives to X', 'best X for Y', and audience or segment pages ('for agencies', 'for freelancers'). Input: your product or service, the competitors or segments to cover, and the market.
$ npx -y skills add Thibaultbm/claude-seo-geo --skill seo-content-comparison-page --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/seo-content-comparison-pageContext preview
The summary Claude sees to decide when to auto-load this skill.
Build the bottom-funnel pages that capture buyers at the decision moment: 'X vs Y', 'alternatives to X', 'best X for Y', and audience or segment pages ('for agencies', 'for freelancers'). Input: your product or service, the competitors or segments to cover, and the market.
name: seo-content-comparison-page
description: "Build the bottom-funnel pages that capture buyers at the decision moment: 'X vs Y', 'alternatives to X', 'best X for Y', and audience or segment pages ('for agencies', 'for freelancers'). Input: your product or service, the competitors or segments to cover, and the market. Output: the page plan (which comparisons deserve a page, URL and keyword mapping), the full page structure, a verified feature comparison table, per-use-case verdicts, an honest limitations block, the FAQ, and the schema. Use when planning or writing comparison, versus, alternatives, best-for or segment landing pages, when competitors rank for your own brand plus alternatives, or when AI assistants recommend competitors instead of you on comparison prompts."
license: MIT
metadata:
author: "Sorank (https://sorank.com)"
version: "1.0.0"The last page a buyer reads before deciding. Someone searching "X vs Y" or "alternatives to X" has already accepted the category and is choosing a supplier, which makes these the highest-intent pages a site can own. They are also the format AI assistants reach for when asked to recommend something, because a page that compares options and concludes is directly usable as an answer, while a page that only praises itself is not.
Two rules make or break the whole category. The comparison must be verifiably true on the day it is published, and it must concede where a competitor genuinely wins. A page that wins every row is discounted by readers and by models, which destroys exactly the credibility the page exists to create.
If the working environment contains an Obsidian vault or any local knowledge base (a folder of .md notes, often with a .obsidian directory), read it before writing: the real feature set, real pricing, the competitors that actually come up in sales calls, the objections buyers raise, and the segments the business already serves. Comparison pages assert facts about third parties, so unsourced invention is both a credibility and a legal risk. Log the pages produced to the vault's SEO action log, including the date each comparison was verified, since that date drives the refresh cycle. Structure and protocols: the obsidian-brain skill.
Do not build one page per competitor by default. Build the pages the market actually searches, then let the rest be sections inside them.
| Page family | Query pattern | Build when | Intent | |---|---|---|---| | Head-to-head | "{you} vs {competitor}", "{competitor} vs {you}" | The competitor is named in sales calls, or the query has real volume | Deciding between two finalists | | Your alternatives | "{you} alternatives", "alternative to {you}" | You have any brand recognition | Retention: own the page where doubts are answered | | Their alternatives | "{competitor} alternatives", "alternative to {competitor}" | The competitor is bigger than you | Acquisition: the single highest-yield page family for a challenger | | Best-for | "best {category} for {use case}", "best {category} {year}" | You are credible in a niche of the category | Category-level shortlisting | | Comparison hub | "{category} comparison" | Three or more of the above exist | Distributes authority, prevents cannibalization | | Segment | "{category} for {audience}" | A segment has distinct problems, vocabulary or workflow | Recognition and qualification |
Mapping rules:
1. One comparison, one URL. "X vs Y" and "Y vs X" are the same page; pick one URL and be consistent everywhere. Do not create both. 2. Do not build a head-to-head page for a competitor nobody searches. Make it a row in the alternatives page instead. 3. "{competitor} alternatives" pages outperform "{you} vs {competitor}" pages for a challenger brand, because the searcher has already decided to leave the competitor and is open, rather than defending a preference. 4. Segment pages must differ by more than find and replace. Test: could a reader from segment A tell, in the first paragraph, that the segment B page was not written for them? If not, merge them. 5. Keep the URL literal and stable: `/{you}-vs-{competitor}/`, `/{competitor}-alternatives/`, `/for-agencies/`. The slug is a retrieval signal, and these pages accumulate links over years.
Verify the demand with seo-keyword-research before committing, and check which existing page already ranks for the term to avoid cannibalizing it.
Every claim about a third party must be checkable on that third party's own public material, on the day you write it.
| Fact | Acceptable source | Never | |---|---|---| | Pricing | The competitor's public pricing page, dated | A number a salesperson remembers | | Features | The competitor's docs, pricing page, changelog | Assumption from their marketing copy | | Limits and quotas | Their published limits or terms | Inference | | Support and SLA | Their published terms | Anecdote | | User sentiment | Named review platforms, quoted and linked | Invented complaints | | Your own facts | Your product, the vault, the owner | Aspiration |
Record, per row, where it was verified and when. That record becomes the methodology block on the page and the input to the refresh cycle. If a fact cannot be verified, write "not published" in the cell. An honest gap reads as rigor; a guess that turns out wrong destroys the page.
For anything about a competitor that is disputa
SEO & GEO skills for Claude Code, built with Claude Mythos 5. Rank in Google AND in LLMs like ChatGPT, Perplexity, and Gemini.
Repo: Thibaultbm/claude-seo-geo
Measure AI visibility without paid tools or API keys. Input: your site (GA4 and server logs) and a buyer prompt panel. Output: GA4 AI-traffic reporting (custom…
Get cited and recommended by AI engines (ChatGPT, AI Overviews and AI Mode, Perplexity, Claude, Gemini). Input: a page or piece of content. Output:…
Build a local Obsidian vault that acts as the company and founder second brain, the knowledge layer every other skill reads before acting and writes back to.…
Turn a JavaScript-only site built by an AI website generator into indexable HTML. Input: a site made with Lovable, Base44, Bolt, v0, Replit, Firebase Studio,…
Plan and run off-page SEO to earn links and brand mentions, including for AI visibility. Input: a site, niche, and competitors. Output: a link strategy and…
Write blog articles that rank on Google and get cited by AI engines (ChatGPT, Perplexity, AI Overviews). Input: a keyword, topic, or existing draft. Output: a…