Skill 21 / 47 · Content
Comparison page writer
Write "best X", "X vs Y", and "X alternatives" pages that give a straight verdict and stay honest about every option.
Romeo’s ruleIf your own product wins every row of the table, readers stop trusting the table, and they're right to.
- You need
- Products to compare
- You get
- A finished comparison page in Markdown plus a fact-check sheet with sources and dates.
- File
comparison-page-writer/SKILL.md· 266 lines- Works with
- Claude Code, Codex, Claude.ai, ChatGPT
- License
- MIT · free · v3.0.0
Install this skill
Or install all 47curl -fsSL --create-dirs -o ~/.claude/skills/comparison-page-writer/SKILL.md https://romeoseo.com/skills/comparison-page-writer/SKILL.mdThen ask Claude to “use the comparison-page-writer skill”, or type /comparison-page-writer.
curl -fsSL --create-dirs -o .claude/skills/comparison-page-writer/SKILL.md https://romeoseo.com/skills/comparison-page-writer/SKILL.mdRun it in your project folder. Commit .claude/skills and everyone on the repo gets the skill.
curl -fsSL --create-dirs -o ~/.codex/skills/comparison-page-writer/SKILL.md https://romeoseo.com/skills/comparison-page-writer/SKILL.mdRestart Codex, then ask it to use the comparison-page-writer skill.
In Claude.ai, open your settings, find Skills, and upload the ZIP. It works in the Claude desktop app too.
Paste it into a chat, attach the file, or add it to a ChatGPT project’s instructions. Then give it the first task below.
Use it when
- You've picked a query like "best invoicing software for freelancers", "Notion vs Coda" or "Mailchimp alternatives" and need the page.
- You sell one of the options and want a page honest enough to rank, get cited in AI answers and still convert.
- An existing comparison page has old prices, dead products, or misses a new entrant.
- A competitor raised prices, dropped a free plan or shut down, and people are searching for a way out.
What your agent needs
- Page type (best-of, vs, alternatives), the target query, and the reader: who is choosing, for what job, on what budget.
- Whether the author sells, partners with or earns commission from any option.
- The author's own product facts: plans, prices, limits, and what it doesn't do.
- A way to read vendor sites: URL fetching, or the user pasting pricing and feature pages or screenshots.
- For a best-of page: 8 to 12 candidates to cut down to 5 to 8.
No tools? Open each vendor's pricing and feature pages in a browser, copy the exact lines you'll rely on into the fact sheet with the URL and today's date, and take your own screenshots from free plans or trials. If the agent can't fetch pages, ask for pasted text or screenshots; never fill gaps from memory. Read the top five results in a private window to see which format wins. Free review-site pages and a Reddit search are enough for "why people leave".
Not the right skill if…
- Choosing which comparison queries deserve a page →
seo-opportunity-research - How-tos, guides and other articles →
seo-blog-writer - Scoring a finished draft before it ships →
seo-content-qa - Structured data for the page →
schema-markup
Give it a first task
Install it. Then say this.
Use the comparison-page-writer skill to write "<best X for Y | X vs Y | X alternatives>". Verify every price and feature on the vendor's own site, give the verdict first, and include honest drawbacks for every option.
Swap the parts in angle brackets for your own. The skill tells the agent to ask for anything else it needs before it starts.
The whole file
Read it before you run it.
# Comparison page writer
Writes "best X" lists, "X vs Y" pages and "X alternatives" pages from real
research. The page leads with a verdict, says how each option was judged,
gives every option an honest drawback (the author's own product included), and
states competitor prices and features only when they were checked on the
vendor's own site, with a date and a link. It hands back the finished page in
Markdown plus a fact-check sheet an editor can verify line by line.
> **Romeo's rule:** If your own product wins every row of the table, readers
> stop trusting the table, and they're right to.
## Use this when
- You've picked a query like "best invoicing software for freelancers",
"Notion vs Coda" or "Mailchimp alternatives" and need the page.
- You sell one of the options and want a page honest enough to rank, get
cited in AI answers and still convert.
- An existing comparison page has old prices, dead products, or misses a
new entrant.
- A competitor raised prices, dropped a free plan or shut down, and people
are searching for a way out.
## Don't use this for
- Choosing which comparison queries deserve a page → `seo-opportunity-research`
- How-tos, guides and other articles → `seo-blog-writer`
- Scoring a finished draft before it ships → `seo-content-qa`
- Structured data for the page → `schema-markup`
## What you need
### Required
- Page type (best-of, vs, alternatives), the target query, and the reader:
who is choosing, for what job, on what budget.
- Whether the author sells, partners with or earns commission from any
option.
- The author's own product facts: plans, prices, limits, and what it doesn't
do.
- A way to read vendor sites: URL fetching, or the user pasting pricing and
feature pages or screenshots.
- For a best-of page: 8 to 12 candidates to cut down to 5 to 8.
### Helpful
- `seo-content-brief` output and notes on the current top results.
- Free or trial accounts for hands-on testing and screenshots.
- Low-star reviews (G2, Capterra, Trustpilot, app stores), Reddit and
community threads, and sales notes on why customers switched.
- Brand voice, banned phrases, any legal guidance on comparative claims, and
an existing screenshot library.
### No tools?
Open each vendor's pricing and feature pages in a browser, copy the exact
lines you'll rely on into the fact sheet with the URL and today's date, and
take your own screenshots from free plans or trials. If the agent can't fetch
pages, ask for pasted text or screenshots; never fill gaps from memory. Read
the top five results in a private window to see which format wins. Free
review-site pages and a Reddit search are enough for "why people leave".
## Ground rules
- **Vendor facts from the vendor, or not at all.** Prices, plan limits and
features come from the vendor's own pricing page, docs or changelog, with
the URL and "checked on <date>". Review sites, old articles, AI answers and
memory are not sources for prices. Can't verify it? Leave it out, or write
"not listed publicly".
- **A real shortlist.** A best-of list has 5 to 8 options. Three is an advert;
twenty-five is a directory. Include the obvious market leader even when it's
your strongest competitor; leaving it out tells readers you're hiding
something.
- **Verdict first.** The first screen says who should pick what: "Pick A if
you…, B if you…, C if you…". "It depends" is allowed only when followed by
what it depends on.
- **Criteria before results.** Four to six criteria that matter for this
reader's job, the same ones for every option, and how each was judged:
hands-on test, documentation, public pricing, customer reports. Never claim
testing that didn't happen.
- **Every option gets a drawback a buyer would care about,** yours included.
"So many features it can feel overwhelming" is not a drawback. "No two-way
calendar sync on the Starter plan" is.
- **Disclose near the top, in plain words,** when the author sells or earns
from any option. In the US the FTC treats hidden material connections as
deceptive, and other markets have similar rules. Place your own product
where it honestly fits and say what it's best for; it doesn't go first by
default. Self-promotional lists are now a spam risk too: Google's spam
policies count "attempting to manipulate generative AI responses in Google
Search" as spam (check the current wording on
developers.google.com/search/docs/essentials/spam-policies). For your own
"best X" pages that means criteria fixed before results, no template that
ranks you first on every list, no lines written for AI tools rather than
readers, and the disclosure in the page text where people and quoting
engines both see it.
- **Fair, lawful claims.** Naming a competitor to identify its product is
normal. Implying a partnership, endorsement or "official" status is not, and
neither is using their logo as decoration. No "scam", no unverified security
or privacy accusations, no "fastest" or "cheapest" without data, no old
facts presented as current. EU and UK comparative-advertising rules also
expect claims to be objective and verifiable. In litigious or regulated
markets, get a legal read; this skill is not legal advice.
- **Alternatives pages start from real reasons people leave,** sourced from
reviews, forums, support conversations and the vendor's own pricing or
changelog changes. Each alternative is mapped to the reason it fixes. Don't
invent pain.
- **Show evidence of use.** Google's guidance on review content asks for
first-hand evidence, measurements where they matter, benefits and drawbacks,
comparable options, and reasons for every "best for" pick. At least one
screenshot per product, of the part the criteria care about, not the
marketing hero image.
- **Freshness is a feature.** Show "Last updated <date>", change it only when
facts change, and re-verify every price at least every three months.
## Steps
1. **Confirm the job.** Page type, query, reader, the author's relationship
to each option, and the conversion (trial, demo, affiliate click).
- If the author's product isn't a real fit for this query, say so. A forced
entry costs more trust than the page earns.
2. **Read the current results.** For the top 5 to 10:
- Format (list, head-to-head, table-led), how many options, and which
products appear again and again: that's the buyer's consideration set.
- What they miss: stale prices, no drawbacks, no testing, no verdict.
- Forum-heavy results (Reddit, community threads) mean readers want lived
experience; plan for real-use detail.
3. **Build the shortlist.**
- Best-of: 8 to 12 candidates from repeat appearances, review-site category
leaders and customer mentions. Cut to 5 to 8 and note why each one was
cut (discontinued, different category, no public information).
- Vs: confirm the two products really compete for this reader. If not, say
which comparison they should be reading instead.
- Alternatives: 5 to 8 options, each fixing at least one real reason
people leave.
4. **Set criteria and method before judging.** Criteria in the reader's terms
("cost for a 3-person team", "time to send the first invoice"), how each is
judged, and any weighting with its reason.
5. **Verify facts, product by product,** into the fact-check sheet:
- Official URL; the plan this reader needs and its price; the cheapest
paid plan; "free plan" vs "free trial" in the vendor's exact wording.
- Billing basis: per user or flat, monthly or billed annually, currency,
tax. Say which toggle you used.
- The two to four facts each criterion needs, each with source URL and
date checked.
- "Contact sales" pricing → "pricing not public (checked <date>)".
Vendor pages that disagree → use the pricing page and flag the conflict.
6. **Collect evidence of use.** At least one screenshot per product:
- Prefer your own captures from a real account; caption what it shows and
the capture date; write alt text that describes the screen.
- Never edit a screenshot in a way that misrepresents the product.
- Not tested hands-on? Say how it was judged ("from documentation and the
free plan").
- Missing screenshots go in the asset queue; never imply they exist.
7. **Alternatives pages: collect the reasons for leaving.** Filter reviews to
1 to 3 stars, search community threads, read the vendor's pricing history
and changelog. Group into three to five reasons, each with a source count
and an example link. Paraphrase; quote briefly with attribution; never name
private individuals.
8. **Write the page.**
- Top: H1 in the query's wording, one line on who it's for, the disclosure
if any, the verdict block, "Last updated <date>".
- "How we compared": criteria and method in three to six lines.
- Compact table: options as rows, four to six columns, prices footnoted
"checked <date>", "not listed" where unverifiable. No tick-box walls.
- One section per option: what it is, best for, what's good (specific),
the main drawback, price with its source link, screenshot, one-line
verdict.
- Vs pages: decision scenarios ("a two-person agency billing hourly…"),
only the features that differ, and switching cost (export, import,
migration help).
- Alternatives pages: why people leave X, which option fixes which reason,
and when staying with X is the right call.
- FAQ only for real questions from "People also ask" or sales calls; FAQ
rich results are not a goal (Google retired them in May 2026).
- Link each product's official site at first mention; affiliate links get
`rel="sponsored"`. Link your own relevant product and pricing pages.
- Markup: Article or BlogPosting with author and dates. No Review or
AggregateRating markup for ratings you didn't collect, and none praising
your own product (→ `schema-markup`).
9. **Fairness pass.** Read every competitor sentence as their lawyer would:
true, current, sourced, not misleading by omission. Read your own section
as a skeptical buyer would: is its drawback real? Check product names,
spelling and capitalisation.
10. **Set the update cadence.** A next-review date (three months, sooner in
fast-moving categories) and triggers: a price change, a new entrant, an
acquisition or shutdown. On update, re-verify every price, keep the URL,
and change the visible date only if facts changed.
## What to hand back
Return all of this, in this order:
```markdown
**What I found:** <format that wins this query, and the consideration set>
**What matters most:** <the verdict and the criteria that decided it>
**What to do first:** <facts or screenshots still missing before publishing>
## Open issues
1. `Fix now` <unverified or risky claim still in the draft>: <why> (<label>, <confidence>)
2. `Fix next` <missing screenshot, weak drawback, missing source>: <why>
- `Leave it` <something a reviewer may flag that is fine>: <why>
## Page
title: <query wording first, short>
meta_description: <one or two sentences>
slug: <short-slug>
last_updated: <YYYY-MM-DD>
# <H1>
<Disclosure, if any>
<Verdict: Pick A if… / B if… / C if…>
<How we compared>
<Comparison table>
<One section per option, each with screenshot and drawback>
<Decision scenarios, or why people leave X>
<FAQ, only if real questions exist>
## Fact-check sheet
- <Product> | "<claim as written>" | <source URL> | checked <date> | <seen/tool/inferred> | <high/medium/low>
## Asset queue
- <Product>: screenshot of <screen> | alt text: <...> | status: have / needed
## Next review
- <date>; re-check sooner if <triggers>
## What I could not check
- <Claim or product>: <why, and what would verify it>
```
## Stop and flag if
- A best-of query has fewer than five credible options. Suggest a vs page or
a narrower query instead of padding the list.
- Competitor facts can't be verified (no fetching, nothing pasted). Stop;
don't write prices or features from memory.
- The user wants their product first everywhere, the market leader left out,
their own drawback removed, a claim that can't be substantiated, or a batch
of self-ranking lists made mainly to steer AI answers.
- There's a commercial relationship and disclosure is refused.
- The ask is dozens of near-identical "X alternatives" pages from one
template. That's `programmatic-seo-plan` territory, and usually a no.
- The category is regulated (finance, health, legal, insurance). Get expert
and legal review before publishing.
- The output is unacceptable if any price lacks a source and date, any option
lacks a drawback, any product lacks a screenshot or asset-queue entry, or
the verdict isn't at the top.
## Next step
- `seo-content-qa` with the page, the brief and the fact-check sheet.
- `internal-linking-plan` to link the page from pricing, product and related
articles, then `cms-publishing-adapter` to publish.
- `best-of-list-inclusion` to earn a fair place on the third-party "best X"
lists that rank or get cited for the same query. That's outreach to their
authors, not pages you write for other sites.
Part of the free RomeoSEO skill library: https://romeoseo.com/skills
After this
Where the output goes next.
- ContentSEO content QACheck intent, usefulness, human voice, facts, links, and publishing readiness before a draft leaves your desk.
- FixInternal linking planFind orphan and buried pages, weak anchors, and broken internal links, then get the exact links to add.
- PublishCMS publishing adapterTurn content that passed QA into a CMS draft, document, or static-site package, with field checks and readback.
- AEO, LLM SEO, GEOBest-of list inclusionGet a fair, accurate place on the "best X" and comparison articles that AI engines quote when buyers ask for recommendations.
Install everything with: git clone --depth 1 https://github.com/RomeoSEO/seo-skills.git && bash seo-skills/install.sh