The SEO ROI formula
Return on investment asks one question. For every dollar you put in, how many came back as profit? For SEO, the formula looks like this:
SEO ROI = (added gross profit − SEO cost) ÷ SEO cost
Each part matters. Added means the gain above what you would have earned anyway. Gross profit means revenue minus the cost of delivering each sale. SEO cost means everything you spent on the work, not only the agency invoice.
A result of 0% means you broke even. A result of 100% means you got your money back plus the same again. A negative result means the work has not paid for itself yet. That last case is normal in the first months of most SEO programmes, which is why the time window matters as much as the formula.
The five inputs you need
You can get from SEO activity to profit with five numbers. They are the same fields our free SEO ROI calculator asks for.
- Added organic visits. The extra visits search brings over your baseline. This is the hardest number to get right. Our traffic forecasting guide covers it in depth.
- Conversion rate. The share of those visits that buy or become a lead. Take it from your own GA4 data for organic traffic, not from an industry chart.
- Average order value (AOV). What one sale is worth. For B2B, use average deal value, then apply a lead-to-deal rate.
- Cost per sale. Product cost, shipping, payment fees and anything else that scales with each order. AOV minus cost per sale gives profit per sale.
- SEO cost. Agency or freelancer fees, content, tools, links, developer time and the hours of in-house staff.
The chain is simple. Added visits × conversion rate = added sales. Added sales × (AOV − cost per sale) = added gross profit. Then compare that profit with the cost.
Worked example: a small online shop
Here are the inputs. They match the default settings in our calculator, so you can check every line yourself. They are sample figures, not a client result.
- 10,000 organic visits a month today
- 3% growth per month in organic visits, compounding
- 2% conversion rate
- $90 average order value and $35 cost per sale, so $55 profit per sale
- $2,500 a month SEO spend
Growth compounds. In month m, added visits are 10,000 × ((1.03)m − 1). By month 12 that is about 4,258 extra visits a month. Summed across all 12 months, the shop gains about 26,178 added visits in year one. Year two builds on a bigger base and adds about 88,415.
| Step | Year 1 | Two years |
|---|---|---|
| Added visits | 26,178 | 114,593 |
| Added sales (× 2%) | 524 | 2,292 |
| Added revenue (× $90) | $47,160 | $206,280 |
| Added gross profit (× $55) | $28,820 | $126,060 |
| SEO cost ($2,500 a month) | $30,000 | $60,000 |
| ROI | −3.9% | 110% |
Year one: ($28,820 − $30,000) ÷ $30,000 = −3.9%. The shop is just short of break-even. Over two years: ($126,060 − $60,000) ÷ $60,000 = 110%. Every dollar came back with $1.10 of profit on top.
Now look at what happens if someone uses revenue instead of profit. Two-year revenue of $206,280 gives ($206,280 − $60,000) ÷ $60,000 = 244%. Same inputs, more than double the claim. That gap is the single most common reason finance teams distrust SEO numbers.
Sales are rounded to whole orders before multiplying, so the figures differ from the calculator by up to about $25. The ROI rounds to the same answer.
Pick the right time window
SEO costs land early. Returns land late. A 6-month window punishes SEO for its ramp-up. A 10-year window flatters it with gains nobody can promise. Twelve and 24 months are the windows most finance teams accept, and showing both tells the honest story: a slow first year, then a stronger second.
Two rules keep the window fair. First, count costs and returns over the same period. Do not take 24 months of profit against 12 months of spend. Second, if you stop paying for SEO, do not assume traffic stays flat forever. Rankings fade when rivals keep working and you do not.
If you need the month when the line crosses zero, not just the yearly total, read how long SEO takes to pay back.
Common mistakes
Counting revenue as profit
Covered above, and worth repeating. Always apply margin or cost per sale. For a service business, use gross margin after the cost of delivery.
Claiming all organic traffic
Your brand name already ranks. People who search for it would find you without new SEO work. Count only the gain above a baseline, and consider leaving branded queries out of the uplift entirely.
Leaving out internal costs
A developer who spends a week on site speed costs money. So does the marketing lead who briefs writers. Put a fair hourly rate on that time and add it to SEO cost.
Using someone else's conversion rate
Published averages vary by industry, device and source, and they rarely match your site. A rate that is off by one percentage point can swing ROI more than any traffic estimate. Use your own GA4 data. If conversion is the weak link, an on-page CRO review often moves ROI faster than more traffic.
Ignoring repeat purchases and lifetime value
If customers come back, the first order understates their worth. For subscription and SaaS businesses, use gross profit over a realistic customer lifetime. Our e-commerce and SaaS SEO page explains how we model this.
Mixing attribution models without saying so
Last-click, data-driven and first-touch models give different organic totals. Pick one, state it, and use the same one for every channel you compare.
Next steps
Run your own numbers in the SEO ROI calculator. Try a cautious and a hopeful growth rate, and see how far apart they land. If you want to know what your current organic visits would cost to buy, the traffic value tool gives a quick figure. More free helpers live on the tools page.
If the ROI only works under the hopeful case, that is useful to know before you spend. If it works under the cautious case too, you have the start of a strong SEO business case. When you want a forecast built on your real data, our SEO ROI forecasting service does exactly that, with every assumption written down.
Questions people ask
What is a good ROI for SEO?
There is no fixed benchmark. A good ROI is one that beats your next best use of the same money, such as paid ads or a sales hire, over the same period. Compare channels on profit, not revenue.
Should I use revenue or profit to calculate SEO ROI?
Use profit. Revenue still carries the cost of goods, shipping and fees. If you count revenue as profit, the ROI looks several times better than it is, and finance will spot it.
How do I know which sales came from SEO?
Start with organic search sessions and key events in GA4, then cross-check with your CRM or order system. Only count the gain above your baseline, because some organic sales would have happened anyway.
Should my own team's time count as SEO cost?
Yes. Writers, developers and managers who work on SEO cost money even if they are on payroll. Leaving them out makes ROI look higher than it is.