SEO ROI: Costs, Attribution and the Business Case for Organic Growth
Understand SEO ROI with a clear cost base, contribution-adjusted return, payback and attribution method to build a business case grounded in your own data.

SEO ROI is the return on what you spend to earn revenue from organic search. The standard formula is easy to calculate and easy to misread. This page maps what a defensible figure needs: a named formula, a margin adjustment, a complete cost base, a payback view, an attribution method you can explain, and a range instead of a single forecast. It is for founders, marketing leads and small teams who have to justify another quarter of organic spend, or decide to stop it.
The short answer: the common formula compares attributed revenue with SEO cost. It is not profit and it does not prove causation. Treat it as the first of two lines, then test it against the assumptions that could change the answer.
What SEO ROI measures
The usual convention is (SEO revenue − SEO costs) / SEO costs, multiplied by 100 for a percentage. Semrush works an example with $200,000 of revenue and $40,000 of cost, giving 4, or 400% (Semrush). Shopify states the same ratio (Shopify).
That result is a convention, not a measurement of what organic search caused. It subtracts only SEO cost from attributed revenue, so fulfilment, payment fees and other variable costs remain inside the revenue figure. On Semrush’s numbers, that is $5 of gross attributed revenue per $1 of SEO spend, with $4 left after SEO spend alone. The $4 is not business profit. Call the figure a “gross-revenue proxy, net of SEO cost only” so no one reads it as profit.
Before calculating, agree three things: the period, the revenue source and the cost basis. The same programme can look very different over one month and twelve.
Adding contribution margin to the return
The second line adjusts for what it costs to earn each sale:
Contribution-adjusted return = (attributed revenue × contribution margin − incremental SEO cost) / incremental SEO cost
Contribution is what each sale leaves after its variable costs. ACCA defines it as selling price minus marginal cost, and notes that whether total contribution covers fixed costs depends on those fixed costs and the volume sold (ACCA, Pricing 2: Practical aspects). Gross margin and contribution margin are not interchangeable. Use the one your finance team calculates and say which one you used.
Avoid double counting. If the margin percentage already includes SEO spend, subtracting that spend again counts it twice. The margin must exclude the SEO cost under test, and revenue and margin must cover the same period.
Illustrative arithmetic, not a reported result: attributed revenue of $50,000, SEO cost of $10,000 and a 30% contribution margin (excluding SEO cost). The revenue-based figure is (50,000 − 10,000) / 10,000 = 400%. The contribution-adjusted figure is (50,000 × 0.30 − 10,000) / 10,000 = 50%. The second is the more cautious answer.
Costing an SEO programme properly
An incomplete cost base overstates return. Use these categories as a checklist:
- Internal labour: strategy, briefing, review, editing and publishing
- Content production, in-house or bought
- Tools and subscriptions
- Technical and development time
- Link acquisition, where you practise it
- Agency or freelancer fees
- Management overhead
Your own payroll cost is the best input for internal labour. If you lack it, public statistics give a starting point, but keep their populations apart. The U.S. Bureau of Labor Statistics reports a 2025 median of $78,760 a year ($37.87 an hour) for market research analysts, and $50,980 for all workers (BLS Occupational Outlook Handbook). That is a median for a broad occupational group, not an SEO wage. O*NET says wage data for search marketing strategists is collected from market research analysts and marketing specialists (O*NET).
Benefits add to wages. For private industry in June 2026, BLS reports total compensation averaging $46.89 per hour worked: wages $32.82 (70.0%) and benefits $14.07 (30.0%) (BLS Employer Costs for Employee Compensation). Benefits are 30% of total compensation, not 30% on top of wages, so the implied multiplier on wages is 1 ÷ 0.70 ≈ 1.43. That multiplier is a reconstruction from those shares, not a rate any employer measured. Do not present the result of dividing one BLS figure by another as the fully loaded cost of an SEO specialist.
For software, one list price is checkable. On 6 November 2026 Semrush’s pricing page showed its SEO plan at $139 a month billed monthly and $117.33 a month billed annually (Semrush pricing). Use it as an example line item with its plan name and date, never as a typical budget. No public source located for this page gives a reliable price for agency retainers or content production, so ask providers for written quotes. To compare delivery models, see in-house SEO vs outsourcing and SEO freelancer vs agency: who owns the work. If hours are your constraint, prioritising SEO tasks by available time shows how to spend them.
Cost inventory worksheet. One row per category, with columns for the period, the amount, the source (payroll, invoice, quote or estimate) and the date recorded. Mark estimates. The goal is a cost base a colleague can review.
Why the return may arrive later than the cost
Organic search usually asks you to spend before results show. Nothing checked for this page measures the typical shape of an organic revenue curve, so treat timing as something to test in your own data. If return arrives later than cost, a short-window ROI will understate a longer-window one. It may also never catch up.
Payback addresses timing. ACCA defines it as the time the net cash revenue or cash cost savings of a project take to recover the initial investment, counting only relevant cash flows, so items such as depreciation are excluded (ACCA, Payback and discounted payback). It lists four weaknesses: cash flows after payback are ignored, the target is arbitrary, changes in investor wealth are not assessed, and the time value of money is ignored. Shopify makes the same distinction: ROI “doesn’t account for the time it takes to recognize revenue from SEO. For that, measure your payback period instead” (Shopify).
Payback also forces a decision on internal labour. Relevant cash is cash that leaves the business because of the programme. Salaries you pay anyway may not count, while an agency invoice does. Choose a basis, state it and keep it consistent; a fully loaded internal cost inside a cash-based payback claim contradicts itself.
State the downside. If revenue does not catch up within your horizon, the result is “no payback yet”, and the case should say what would have to be true for it to happen. Decisions about updating existing pages, which can shorten that path, are covered in content refresh vs rewrite.
Attribution: what you can and cannot know
Attribution assigns conversions to channels. For organic search, the model you pick changes the answer, and reports in one property can disagree.
Google Analytics 4 currently offers three models in its attribution reports: data-driven, paid and organic last click, and Google paid channels last click (Google Analytics Help). Data-driven attribution distributes credit using the account’s own data. Paid and organic last click gives 100% to the last non-direct click, so organic gets full credit only when organic is that click. Google paid channels last click falls back to paid and organic last click when no Google Ads click is in the path. Direct visits receive no credit unless the whole path is direct visits.
Model choice does not apply everywhere. User-scoped and session-scoped traffic-source dimensions always use paid and organic last click, while event-scoped dimensions use the selected model, data-driven by default (Google, Scopes of traffic-source dimensions). Two reports can therefore give different organic shares without either being broken. Record which report your case uses.
Use the models as a sensitivity comparison. Compare data-driven with paid and organic last click and note how much organic credit moves. Neither model proves incremental impact, and neither is an upper or lower bound.
Two dates should stay separate. The three models above are what GA4 offers now. First click, linear, time decay and position-based models “are no longer available as of November 2023” (Google), so a template asking you to compare linear with time decay describes reports GA4 will not run.
Paths are conditional. If a path ends on a branded organic click, that click takes the credit under last-click logic. If it ends on a direct visit, the preceding channel takes it. Whether devices are joined, how long the lookback window is and which way any bias runs depend on your setup, so do not assume a direction. Ahrefs offers a practitioner opinion, not a measurement: “attributing conversions to marketing channels is inherently flawed regardless of the attribution model used” (Ahrefs, page dated May 2022, so do not adopt its GA4 specifics).
For B2B, a recommended method is to tie revenue to CRM opportunities and closed deals rather than web sessions alone. Record the conversion window, refund handling and the source of the revenue figure. Search data tells you what is happening before the click; turning Search Console data into a content action plan covers that side.
The click assumption is moving
Every ROI model assumes some path from searches to visits. Pew Research Center’s metered panel found that “users who encountered an AI summary clicked on a traditional search result link in 8% of all visits,” against 15% of visits for those who did not. Links inside the summary were clicked in “just 1% of all visits to pages with such a summary” (Pew Research Center, 22 July 2025). The data covers 68,879 unique Google searches, 12,593 of which produced an AI summary, from a panel of 900 U.S. adults (Pew methodology).
Read the units carefully. The figures are the share of visits to a results page on which a result link was clicked. They are not your impression click-through rate, a click-to-session rate or a position curve. Pew reconstructed the searches between 7 and 17 April 2025 for browsing recorded in March 2025, and notes that AI summaries can change over time. The gap is an association in observational data, so query mix and other factors may explain part of it.
Do not use 8% or 15% as inputs. Their use is to show that the click assumption is uncertain and belongs in your sensitivity test; set it from your own Search Console and analytics data. If AI-assisted drafting is part of your process, an AI content review checklist covers quality control before publication.
Building the business case: a labelled hypothetical model
Everything below is an illustration. The inputs are assumptions chosen to show the arithmetic. They are not The Blog Writer’s results, a customer’s results or a forecast.
Assumed annual costs
- Content and production: $4,000 a month, $48,000 a year
- Internal time: 72 hours a year at an illustrative $54 an hour (the $37.87 median × 1.43 reconstruction above), about $3,888
- One software plan at $139 a month: $1,668
- Total: about $53,556
Assumed results, with a 40% contribution margin that excludes SEO cost
| Case | Conversions a month | Average value | Annual revenue | Contribution (40%) | After cost | As % of cost |
|---|---|---|---|---|---|---|
| Low | 15 | $350 | $63,000 | $25,200 | −$28,356 | −53% |
| Base | 30 | $500 | $180,000 | $72,000 | $18,444 | 34% |
| High | 45 | $650 | $351,000 | $140,400 | $86,844 | 162% |
On revenue alone, the base case is (180,000 − 53,556) / 53,556 ≈ 236%. That is the gross-revenue proxy; the contribution-adjusted 34% is the more cautious figure. Break-even is $53,556 ÷ $200 of contribution per conversion ($500 × 40%) ≈ 268 conversions a year, or about 22.3 a month.
The cases move volume and value together, which mixes two effects. To isolate one, hold the rest at the base case:
- Average value only, $500 to $350 at 30 conversions a month: contribution falls to $50,400 and the result is about −6% of cost.
- Conversion volume only, 30 to 15 a month at $500: contribution falls to $36,000 and the result is about −33% of cost.
This is a sensitivity test, not a confidence interval. It shows how far the answer moves when one input moves and says nothing about probability. This example does not test which input matters most, so do not claim one does.
What to measure and how often
Separate leading from lagging indicators. Leading ones show the work is progressing: pages published, pages indexed and Search Console impressions. Lagging ones show commercial effect: organic sessions, conversions and contribution. The SEO content workflow sets out where each measure sits from research to publication, and the Search Console action plan shows how to read the leading ones.
Record one date range and one filter set in the sheet header, for example “organic sessions, all landing pages, 90 days ending on a stated date, GA4 default channel grouping”. Without it, the next review compares different numbers. Set review dates in advance and do not judge a programme on a window shorter than its payback period.
Common ways an SEO business case goes wrong
- Revenue treated as profit. The result is a gross-revenue proxy until margin is applied.
- A single-point forecast. Show low, base and high cases and the assumptions behind each.
- Branded traffic counted as content success. Separate branded from non-branded queries before crediting content. Pages competing for the same query can also muddy the picture; see keyword cannibalization.
- Internal hours omitted or counted twice. Use one cost basis and state it.
- Neglecting existing pages. If you only count new content, you may miss gains from refreshing or rewriting pages you already have.
- A three-month SEO result judged against a three-month paid result. Timing differs, so compare matching, appropriate horizons.
- An imported benchmark. No primary source located for this page publishes a typical SEO ROI, and Shopify’s “three- to fivefold” figure is unattributed. Do not put a benchmark in a board paper.
Where organic search fits with paid and other channels
Attribution assigns credit for conversions that happened. Incrementality asks what would have happened without the channel. The difference matters because some organic visitors, especially people searching your brand, may have been going to buy anyway.
A feasible test compares comparable pages, regions or periods with and without a change, for example holding back updates on a matched set of pages. This is a recommended method to agree with your analyst, not a result. Seasonality, promotions and other campaigns can confound it, so record them. No sourced effect size for organic incrementality is offered here.
Next step
Build the cost inventory first, then compute both lines of return with your own numbers. Move one input at a time and write down the payback date your business would need to accept. Whichever assumption you cannot check and that moves the result most is the one to measure before you commit another quarter.