How to measure the return on SEO for a small product
The return on SEO is one chain: a search, a click, a landing page, a signup, a payment. Measure it by landing page and the chain holds. Measure it by channel and you will argue about attribution for a year.
By Théophile Louvart, founder of Porteur · Updated 15 September 2026 · Markdown
The chain you are measuring
Search does not produce revenue. It produces a click on a page, and that page produces the rest. So the unit of measurement is the landing page, not the channel.
- A query shows one of your pages: an impression, counted by Search Console.
- Somebody clicks: a click, also counted by Search Console.
- They land on one page of yours: the landing page, counted by your analytics.
- They create an account: a signup event, counted by your product.
- They pay: a payment, counted by your billing.
Every honest ROI figure is built from those five rows joined on one key. That key is the landing page path, because it is the only value that exists on both sides of the click.
Where the chain breaks
Four joins fail on most small sites. Find yours before you compute anything.
| Break | What you see | What to do |
|---|---|---|
| Search Console and analytics disagree | Clicks do not match sessions on the same page | Expect it. A click can start no session, one session can follow several clicks, and consent tools drop sessions. |
| The signup event has no landing page | Signups exist but cannot be attributed to a page | Record the person's first landing path as a property when the account is created. |
| Payment lives only in billing | Revenue cannot be joined to anything | Send a payment event with the account id, or export billing and join on it. |
| Queries are anonymised | Query totals add up to less than page totals | Work at the page level. Search Console hides rare and anonymised queries. |
First touch is the honest default
A person reads a guide in March, comes back through a search for your name in April, and pays in May. Which visit earned it?
Last touch credits the visit before the payment, which is usually a branded search or a direct visit, so search content looks worthless. First touch credits the visit that brought the person, which is usually the guide. For content work, first touch is the honest default: it answers the question you are actually asking, which is whether writing pages brings people who later pay.
- Store the first landing path and the first referrer on the person, at their first visit.
- Never overwrite them on later visits.
- Report both first touch and last touch if you have them, and say which you are using.
The four figures to hold
One row per landing page, one column per step. That table is your ROI report.
| Column | Source | Why it is there |
|---|---|---|
| Clicks | Search Console, by page | What search delivered |
| Signups | Product analytics, by first landing path | What the page converted |
| Paying accounts | Billing joined to the account | What survived the trial |
| Revenue | Billing | What it was worth |
Read it as a funnel per page. A guide with many clicks and no signups has an intent problem or a missing next step. A guide with few clicks and a high signup rate deserves more of your writing time, not less.
Set it up in an afternoon
Verify Search Console and export by page
Take the last 28 days of clicks by page. Keep the path, not the full URL, so it joins cleanly.
Record the first landing path on the person
At the first pageview, store the path and the referring domain as person properties. Do not overwrite them.
Mark the signup as an event
One event, fired server side when the account is created, carrying the account id.
Send a payment event
Fired when the first payment succeeds, carrying the account id and the amount.
Join on the landing path
One table: path, clicks, signups, paying, revenue. A spreadsheet is enough for a few hundred pages.
Google's Looker Studio connects to Search Console and GA4 for free if you want it drawn rather than exported. For most small sites the spreadsheet is faster and easier to argue with.
The payback period, and why it is the number that matters
SEO spend is up front and the return arrives late. Discovery and indexing take days to a few weeks for a new site, and ranking on competitive queries takes months. A 2017 Google video said four months to a year for SEO work to show its benefit, and nothing since has made that faster.
So the useful question is not the return in the first month. It is how long a page takes to pay for itself, and whether it keeps paying afterwards.
- Cost of a page: the hours it took, plus anything you paid for it.
- Monthly return of a page: signups it brings, times what an account is worth to you.
- Payback: the first divided by the second, in months.
- After payback, a page that stays accurate keeps returning with no further spend. That is the part paid search cannot do.
Work in cohorts. Group the pages you published in one quarter, then read their clicks and signups three, six and twelve months later. One page tells you nothing; ten pages published together tell you whether the work pays.
What not to claim
- Do not claim a rate you measured on fifty sessions. Wait for a few hundred on that page.
- Do not compare your conversion rate to a published average. Definitions differ, so the comparison means nothing.
- Do not credit SEO with revenue from people who arrived through a launch and searched for your name later. That is brand demand you earned elsewhere.
- Do not report impressions as a result. They are a diagnostic, not an outcome.
- Do not average positions across a site and call it progress.
Say what you know, with the join you used. "Pages published in Q1 brought 180 clicks and 11 signups in their first three months, first touch" is a sentence you can defend. "SEO drove 30% of revenue" is usually a sentence about an attribution setting.
A worked example
Say yourproduct.com published six guides in one quarter and each took four hours. The table after six months might read: 420 clicks, 14 signups, 3 paying. If an account is worth 99 € once, the quarter returned 297 € against twenty-four hours of work, and the pages are still there.
That is the honest shape of the answer: modest, slow, cumulative, and attributable page by page. It is also how you decide what to write next, because two of those six guides will have produced almost all of the signups.
Questions
They never match exactly. A click can start no session if the visitor leaves before the script runs, one session can follow several clicks, and consent tools drop sessions entirely. Use Search Console for what search delivered and analytics for what happened after, joined on the landing page.
First touch for content work, because you are asking whether a page brought the person. Last touch will credit branded searches and direct visits, which makes every guide look worthless. Say which model you used whenever you report a figure.
Indexing takes days to a few weeks on a new site. Ranking on competitive queries takes months, and Google has said four months to a year for the benefit to show. Judge a quarter's pages at three, six and twelve months, not weekly.
Stop at signups and use a single value per account instead. Multiply signups by what an account is worth on average to you. It is an estimate, but it is your estimate and it is stable enough to compare pages.
It depends on whether people search for what you do. Check Search Console for impressions on non-brand queries and look at the results pages for your category. If the demand exists, the work compounds. If nobody searches for the problem you solve, spend the time elsewhere.
Search Console verified, a signup event carrying the first landing path, and a spreadsheet with four columns. Everything else is convenience.
Check my site, free
Paste your URL and the free check reads your site and the searches around it in about thirty seconds, then names the pages worth measuring first.
- Free check, no card
- Read-only, your own accounts
- Readable by your agent
Read next
- GuideWhat a search click earns: revenue attribution for a product site
- GuideHow to track signups from search, by landing page
- GuideSEO KPIs: the three numbers a founder reads weekly
- GuideSEO metrics explained: what each one measures and what it does not
- GuideHow much SEO costs: the honest answer for a small product
- GuideA monthly SEO report on one page: what changed, why, what next
- GlossaryConversion rate
- AlternativesAhrefs alternatives for a small product site