SEO9 min readVisitTrack Team

How to Measure SEO ROI for a SaaS

SEO ROI for SaaS is organic-search revenue minus SEO cost, divided by cost, over 12+ months. The formula, what to count, and a worked example with real math.

SEO ROI for a SaaS is the revenue attributed to visitors who first arrived from organic search, minus what you spent on SEO, divided by that spend, measured over at least 12 months because content keeps earning long after it's paid for. To calculate it you need three things: revenue tied to the visitors search actually brought in, a full cost figure that includes your own time, and a time horizon that matches how slowly search traffic compounds.

Most SEO ROI numbers you see are either traffic dressed up as value (“organic sessions are worth $X in ad spend”) or a single quarter's revenue that makes SEO look like a loss. This guide does it with attributed revenue, a cost line that doesn't hide anything, and a worked example across two years.

Key takeaways

  • SEO ROI = (revenue from organic-search customers − SEO cost) ÷ SEO cost, over a period of 12 months or more.
  • Attribute customers to organic search by first touch: the channel of the visit that first brought them, not the visit where they paid.
  • Separate branded searches from non-branded ones; people searching your name were sent by something else.
  • Year-one SEO ROI on a cash basis is often negative for SaaS, while lifetime-value ROI on the same customers can be clearly positive.
  • Measure ROI per landing page too: a few articles usually produce most of the revenue.

What is the formula for SEO ROI?

SEO ROI = (Attributed revenue − SEO cost) / SEO cost

Attributed revenue = revenue from customers whose first touch was organic search
                     (non-branded), over the measurement period
SEO cost           = content + tools + technical work + your own time, same period

There are two defensible versions of “attributed revenue,” and you should calculate both:

VersionRevenue countedGood forWeakness
Cash ROIMoney actually collected in the period from organic-sourced customersCash planning, a skeptical co-founderIgnores future revenue from customers you've already won
LTV ROICustomers won in the period × expected lifetime valueDeciding whether to keep investingDepends on your churn estimate being honest

For lifetime value, use average revenue per account divided by monthly churn, and for a strict figure multiply by gross margin. The LTV calculator does the arithmetic; the definition is in our glossary entry on customer lifetime value.

What should you count as SEO cost?

Underpricing cost is the most common way SEO ROI gets inflated. Count everything that wouldn't exist without the SEO program:

Cost lineExamplesOften forgotten?
Content productionFreelance writers, editors, illustrationsNo
ToolsKeyword research, rank tracking, analyticsSometimes
Technical workDeveloper time on site speed, rendering, sitemaps, templatesYes
Your own timeFounder or team hours writing, briefing, reviewingAlmost always
MaintenanceUpdating old articles, fixing broken links, refreshing pricesYes
DistributionOutreach, link building, community postingSometimes

Value your own hours at what it would cost to hire for the same work, or at what you'd otherwise earn. A founder who writes 100 hours of content a year “for free” is spending real money; leaving it out makes SEO look cheaper than ads by definition.

SEO usually starts the relationship, and something else often closes it: a returning direct visit, a retargeting email, a link from your docs. Last-touch attribution gives the sale to that closer and makes SEO look weak. For an ROI calculation, use first touch: the channel of the visit that first brought the customer to your site. The trade-offs are explained in first-touch vs last-touch attribution.

Mechanically, that means connecting each payment to the visitor who made it, and the visitor to their first visit. Pass the analytics visitor id into checkout, read it back from the payment webhook, and look up the first touch. The full setup for Stripe, Paddle, Polar, Lemon Squeezy and Razorpay is in how to track revenue by traffic source.

Why should you exclude branded searches?

Someone who searches for your product's name already knows about you; a podcast, a friend or a tweet sent them. Counting that as SEO revenue credits SEO for demand other channels created. The difficulty is that search engines don't pass the query to your site, so you can't see which keyword an individual customer typed.

The practical approximation is the landing page. Organic visitors who land on your homepage, pricing or login page are mostly branded searchers. Organic visitors who land on a blog post, a guide, a comparison page or a free tool are mostly non-branded. Search Console's query data (impressions and clicks per query, kept for 16 months) lets you sanity-check that split for each page.

Organic landing page typeLikely intentCount in SEO ROI?
Homepage, pricing, loginBranded (“yourproduct pricing”)No, or only the share Search Console shows as non-branded
Blog posts and guidesNon-branded informationalYes
Comparison and alternatives pagesNon-branded commercialYes
Free tools and calculatorsNon-branded utilityYes
Docs pagesMixed: existing users and evaluatorsPartly; check Search Console queries

What does an SEO ROI calculation look like with real numbers?

A worked, illustrative example for a SaaS at $40 average revenue per account per month, with an average customer lifetime of 18 months (so an LTV of $720 before margin).

Year one costs: 40 articles at $400 each ($16,000), tools at $1,200, and 100 founder hours valued at $68 an hour ($6,800), for a total of $24,000. Non-branded organic search brings 60 new customers over the year, but slowly: 5 in Q1, 10 in Q2, 20 in Q3 and 25 in Q4, as articles start ranking.

QuarterNew organic customersMonths billed in year one (avg.)Revenue collected in year one
Q1510.5$2,100
Q2107.5$3,000
Q3204.5$3,600
Q4251.5$1,500
Total60—$10,200
Assumes customers arrive mid-quarter and none churn within the year. Illustrative.
  • Year-one cash ROI: ($10,200 − $24,000) ÷ $24,000 = −57.5%.
  • Year-one LTV ROI: 60 customers × $720 = $43,200, so ($43,200 − $24,000) ÷ $24,000 = +80%.
  • Year two: the program shifts to updates and fewer new articles, costing $10,000. The existing library keeps ranking and brings 120 new customers (LTV $86,400).
  • Cumulative two-year LTV ROI: ($43,200 + $86,400 − $34,000) ÷ $34,000 = +281%.

Same program, same customers: −57.5% or +80% in year one depending on whether you count revenue you have already earned the right to collect. Neither is wrong. Report both, and decide with the LTV number only if your churn estimate comes from real data rather than hope.

Why does SEO ROI look negative in the first year?

Three effects stack. Content takes months to rank, so costs come before traffic. SaaS revenue arrives monthly, so a customer won in November contributes one or two months to the year's cash. And the asset doesn't depreciate the way ad spend does: an article written in month two can still be bringing customers in month twenty, at the cost of an occasional update.

That compounding is the real case for SEO, and also the risk. If articles don't rank, the cost is sunk. Which is why the decision about whether to continue should rest on leading indicators long before the ROI calculation turns positive.

Which leading indicators predict SEO ROI before revenue shows up?

IndicatorSourceWhat “working” looks like
Impressions for non-branded queriesGoogle Search ConsoleRising month over month for target topics
Average position on target queriesGoogle Search ConsoleMoving into the top 10, then the top 3
Clicks to content pagesSearch Console or analyticsGrowing with impressions, not stuck at zero
Signups whose first touch was a content pageAnalytics with signup eventsAppearing within a few months of publishing
Paying customers from those signupsRevenue attributionFollowing signups with your normal trial lag

If impressions grow but clicks don't, look at titles and descriptions, and at whether AI Overviews now answer the query in the results page. If clicks grow but signups don't, the content attracts the wrong audience or never mentions the product. The Google Search Console glossary entry explains what each metric does and doesn't measure.

How do you measure SEO ROI per article?

Program-level ROI hides the distribution. Per-article numbers usually show a small number of pages producing most of the revenue, which tells you what to write next. An illustrative 12-month view, with each article costing about $600 all-in:

Landing pageOrganic visitorsSignupsCustomersAttributed LTVROI
Comparison: Tool X vs Tool Y3,10012418$12,960+2,060%
How to track Stripe revenue by source4,8009614$10,080+1,580%
Free MRR calculator9,200926$4,320+620%
What is a cohort analysis6,500131$720+20%
Industry trends roundup1,20020$0−100%
Illustrative. High-traffic informational pages are often the weakest earners per visitor.

Revenue per visitor by landing page is the comparable unit here: the comparison page earns about $4.18 per visitor, the glossary-style page about $0.11. That gap is common, because commercial-intent pages attract people evaluating a purchase. Our free MRR calculator and similar tools are a good example of the middle ground: lots of traffic, modest conversion, but cheap to maintain.

How do you set up SEO ROI tracking, step by step?

  1. 1.Install analytics that records first touch (referrer, UTMs and landing page) per visitor, with bots filtered out.
  2. 2.Send a signup event when accounts are created, and pass the visitor id into checkout so payments are attributed to the visitor.
  3. 3.Connect Google Search Console so query and page data sit next to traffic and revenue.
  4. 4.Keep a cost ledger by month: content, tools, technical work and hours.
  5. 5.Each quarter, pull customers and revenue with first touch = organic search, split by landing page type to exclude branded.
  6. 6.Calculate cash ROI and LTV ROI for the program and per article. Write down the churn assumption you used.

In VisitTrack, the Revenue tab breaks payments down by referrer, campaign and landing page and lets you switch between first-touch, last-touch, linear, time-decay and position-based models, and the Search Console tab shows clicks, impressions, position and the top page per keyword once Search Console is connected. The calculation itself stays in a spreadsheet, which is where your cost ledger lives anyway.

How do you calculate SEO ROI?

Subtract total SEO cost from the revenue attributed to customers who first arrived from non-branded organic search, then divide by the SEO cost. Measure over 12 months or more, and calculate it both on cash collected and on customer lifetime value.

What is a good SEO ROI for a SaaS?

There is no reliable universal benchmark, because costs, prices and churn vary so much. What matters is whether lifetime-value ROI is clearly positive by the end of the second year and whether leading indicators keep improving. Year-one cash ROI is often negative.

How long does SEO take to pay off for a SaaS?

Typically longer than a year on a cash basis, because articles take months to rank and subscription revenue arrives monthly. On a lifetime-value basis it can pay off sooner if the content targets commercial-intent queries.

Should branded search traffic count toward SEO ROI?

Mostly no. People searching your brand name were sent by other channels. Approximate the split by landing page: homepage and pricing landings are mostly branded, blog and comparison landings mostly non-branded, and check with Search Console query data.

Should I use first-touch or last-touch attribution for SEO ROI?

First touch, because SEO usually starts the customer relationship and another channel often closes it. Last touch tends to credit direct visits and email, and undervalues SEO.

Can I measure SEO ROI without Google Analytics?

Yes. You need first-touch attribution, signup events, payment attribution and Search Console data. Any analytics tool that connects payments to visitors' first visit can provide the revenue side.

Keep reading

See which channels actually bring paying customers

VisitTrack is cookie-free analytics with revenue attribution built in. One script tag, no consent banner, live in two minutes. 14 days free, no card required.

14-day free trial · No card required · Cookie-free · Cancel anytime

Or explore the live demo first →