A buyer who opens your comparison page is usually already comparing tabs. They can check your statements against the competitor's pricing page in a minute. This guide shows how to write a SaaS competitor comparison page where every statement about the other product has a source, a date and a label, and where the page says plainly when the competitor is the better choice.
Decide which comparison the buyer is making
A vs page compares your product with one named competitor for a buyer who is choosing between the two. An alternatives page serves someone who uses or rejected a competitor and wants other options. A category comparison places several products side by side. Each makes a different promise, so pick one before you write a heading.
This page is separate from competitor analysis. Analysis is private research for your own product decision and may include guesses you are still testing. A comparison page is a public statement to buyers. Only claims you can source and are willing to defend belong on it, so start from the research and publish less than you know.
- Write a vs page when buyers already name a specific competitor alongside you.
- Write an alternatives page only if your product truly replaces the competitor for a defined job.
- Skip the page when you cannot yet describe a real situation in which the competitor is the better choice.
Give every competitor claim a source, a date and a label
Keep a claim ledger before you draft any copy. Each row holds one statement about the competitor or about your own product, the URL that supports it, the date you checked it, an evidence label and the change that would make you recheck it.
Use three labels. Observed means you saw it yourself, for example by running the competitor's free plan. Reported means a source states it, such as the competitor's documentation or terms, and you did not reproduce it. Unknown means you looked and could not establish it. Unknowns belong on the published page too: a buyer learns more from 'this review did not test X' than from a confident guess.
Separate volatile claims from durable ones. Prices, plan limits, credit rules and feature availability change without notice and need a date next to them. What a product is for changes slowly. If a claim changes whether your product looks better, it needs a source a buyer can open.
Worked example: how Soloop's Lovable comparison records its claims
Soloop publishes its own comparison pages, so here is one of ours rather than an invented case. The Lovable page states an evidence date of September 14, 2026 and splits its findings into what official sources established and what remains unknown. It lists each source with the specific claim that source supports.
The table below maps a few statements from that page onto the ledger. The prices were accurate for the check date only; open the current Lovable documentation before relying on them. The review did not run Lovable workflows, so the page contains no Observed rows about Lovable. It records that limit rather than filling the gap.
| Dimension | Source and date | Label and refresh trigger |
|---|---|---|
| Plan prices and credits | Lovable subscription plans documentation, checked September 14, 2026. | Reported. Volatile: recheck when Lovable changes its pricing page and before promoting the comparison. |
| Code ownership and export | Lovable Terms of Service and deployment/ownership documentation. | Reported. Recheck when the terms are updated. |
| Separate plan and build modes | Lovable build mode documentation. | Reported. Recheck when Lovable announces changes to its agent or modes. |
| Task-by-task approval for every change | No source established it; the review did not run Lovable workflows. | Unknown, and stated as unknown on the page. Reopen if a documented control or a hands-on test settles it. |
| Soloop's own capabilities | Soloop product manual. | Reported from our own documentation. Recheck whenever the manual changes. |
Say when the buyer should choose the competitor
Name the situations in which the competitor is the closer fit, with the same specificity you use for your own product. Soloop's Lovable page opens by saying Lovable is the closer fit when you need a working full-stack web app generated from a description. That sentence costs a few buyers and makes the rest of the page more credible.
Avoid tables of ticks and crosses unless each cell is sourced and dated. A cross next to a competitor feature you did not check is a claim, and usually the first one a buyer disproves. When two products serve different jobs, say so rather than forcing a feature-by-feature score.
Do not quote a competitor's price in a way that makes it look worse than it is. If their plan includes something that costs extra with you, include it. If your price comparison depends on assumptions about usage, state the assumptions.
Copy the comparison-page claim ledger
Copy the table into a document or spreadsheet and add one row per claim before you write any copy. No account is required. The example column uses ReviewQueue, the fictional approval product from our positioning and GTM guides, against an equally fictional competitor called BriefBoard. On mobile, scroll sideways to see both columns.
| Dimension | What to record | Fictional example |
|---|---|---|
| Claim | One statement exactly as it will appear on the page. | BriefBoard's team plan includes unlimited client reviewers. |
| Source | A URL the buyer can open, or a named test you ran. | BriefBoard pricing page, team plan section. |
| Date checked | The date you opened the source or ran the test. | The day you checked, written in full. |
| Label | Observed, Reported or Unknown. | Reported: the pricing page states it; a real team limit was not tested. |
| Why it matters | Which buyer decision the claim affects. | Agencies with many client reviewers compare seat costs. |
| Our side | The matching statement about your product, with its own source. | ReviewQueue's documented reviewer limit, from its own pricing page. |
| Refresh trigger | The change or date that forces a recheck. | Any BriefBoard pricing change, and before every promotion. |
| Publish? | Yes, publish as unknown, or remove. | Yes, with the check date beside the claim. |
Keep it fair and keep it current
In the United States, the Federal Trade Commission's policy on comparative advertising encourages naming competitors, provided the comparison is truthful, non-deceptive and its basis is clear. Rules differ by country, and trademarks and copyrighted material need care. This guide is not legal advice; ask a qualified advisor if you are unsure.
Practitioner checklists add practical safeguards: show the date of the comparison or its last update, and give competitors and readers a way to report an inaccurate claim. Then act on those reports.
Set refresh rules before publishing. Recheck volatile rows whenever the competitor changes pricing or plans, when your own product changes, and before promoting the page. Update the date only after the rows are rechecked. Remove a claim you can no longer support rather than leaving it in place.
The Statement of Policy Regarding Comparative Advertising encourages naming or referring to competitors, but requires clarity and, where necessary, disclosure to avoid deceiving consumers.
Read the FTC policy statementRecommends stating the comparison date, providing contact details for reporting inaccurate information, and adding trademark and third-party information disclaimers.
Read the SaaS comparison page guideBring one competitor and your ledger to Soloop
You can complete the ledger on your own. To continue in Soloop, copy this starter into the conversation: My product is [URL]. Buyers compare us with [competitor] when [situation]. Here are my ledger rows so far [rows]. Propose a bounded research task to fill the unknowns, and tell me which claims to remove.
The Soloop manual describes approved competitor research, with source links included in the report when the run collects them. Check each source yourself before publishing; a research report does not verify a claim for you. Build can work from a GitHub repository in an approved sandbox job, so you can review a proposed page change before anything runs. Soloop does not promise rankings, traffic or conversions from a comparison page. The public Soloop entry does not transfer this ledger; bring it yourself.