The short version
- The test of an SEO programme is whether cost per organic visit is falling quarter on quarter. If it is flat, you have an expense, not an asset.
- Tools are a rounding error. A complete stack is under $150/mo and the essential one is free. Labour is the cost.
- SEO ROI in the first two quarters is usually negative and that is normal. Judging it on a quarterly cycle guarantees you kill it early.
- Count branded search and direct traffic as outputs. Measuring only non-branded sessions understates a working programme.
SEO budgets get approved on optimism and cancelled on impatience, largely because nobody agrees what the return calculation should be. The problem is real: SEO has a long lag, degrading attribution, and a cost structure that looks terrible for two quarters and excellent after six. Any measurement approach that ignores those properties produces the wrong decision.
What follows is a way of modelling it that is honest about the lag without becoming an excuse for a programme that is simply not working.
The short answer
Fit for your workflow
Track cost per organic visit over time. The trend is the signal; any single quarter is noise.
Add up everything you spend on SEO in a quarter — labour above all, plus tools and contractors — and divide by organic visits for that quarter. Then watch the number across four or five quarters. A working programme shows a clear downward curve as fixed effort spreads across accumulating traffic. A flat line over a year means you are paying rent rather than building something.
- Quarters 1–2
- Expect negative return. Judge on leading indicators, not revenue.
- Quarters 3–4
- Cost per visit should be visibly falling. If not, diagnose now.
- Quarter 5 onward
- This is where compounding shows up, or where you conclude it will not.
The real cost structure
Proportions are illustrative rather than measured; they vary enormously by business. Tool costs come from the vendor pricing tables elsewhere on this blog.
The third row is the one that breaks budgets invisibly. Developer time to implement SEO changes is almost never in the SEO budget, so it competes with product work and usually loses. The result is a programme paying for recommendations at full price and implementing a fraction of them — which shows up in the numbers as SEO not working, when what actually happened is SEO not shipping. See in-house vs agency.
What to measure in the first two quarters
Revenue is the wrong metric early, because the lag guarantees it will look bad and you will cancel a programme that was working. Use leading indicators that move sooner and still correlate with outcomes.
- Indexed pages that should be indexed. Coverage problems in Search Console are the low-cost starting point.
- Impressions, which move before clicks do and show whether you are becoming eligible for anything.
- Number of queries you appear for at all. Breadth expands before depth.
- Changes actually shipped per month. The single best predictor of whether anything will happen.
- Average position for a defined target set, tracked as a group rather than individually.
The diagnostic that settles most arguments
Count how many of the recommendations from your last audit are live on the site. If it is under half, the question "is SEO working" is unanswerable — you have not tested SEO, you have tested your deployment capacity. Fix that before changing agency, strategy or tooling.
The attribution problem, honestly
SEO attribution is getting worse, not better. Assistant-influenced visits arrive as direct traffic. Privacy controls strip referrers. Long consideration cycles mean the first organic touch and the eventual conversion can be months apart and in different sessions. Any model that credits only last-click will systematically undervalue organic search.
The practical response is triangulation rather than a better model. Watch non-branded organic clicks, branded search impressions, direct traffic and conversion rate together. A programme that is working usually shows branded search rising even when non-branded sessions are flat — see brand vs non-brand search and direct vs organic.