Tactics · 13 min read

SEO Forecasting: We Backtested the Formula Everyone Uses (Here Are the Error Bars)

Every SEO forecast you've ever seen runs on the same arithmetic: take a keyword's search demand, multiply by the click-through rate its target position should earn, subtract what it earns today, and call the difference "projected traffic."

Volume times CTR curve. That's the entire industry method, dressed in different spreadsheets.

Here's the part nobody does: check the forecast afterward.

So we did. We took a dozen of our own keywords that genuinely improved (3+ positions, into the top 20, with real impressions on both sides of the move), forecast their new clicks using our published expected-CTR curve, and compared against what actually happened.

The results: the median forecast missed by 50%. More than half landed within ±50% of reality. Nearly all (92%) landed within a factor of two. Some were eerie ("related keywords": predicted 6.1 clicks, actual 6). The biggest miss under-forecast a generic head term by half.

If "the median miss is 50%" sounds like an indictment of forecasting, it isn't. It's the honest calibration the industry never gives you, and it points at the right way to use the method: forecast in ranges, present scenarios, and lean on the part forecasting is genuinely great at, which is ranking your opportunities, not prophesying decimals.

New year, planning season, here's the whole method with its error bars attached.

TL;DR
  • The universal formula: projected clicks = impressions (or volume) x (expectedCTR at target position minus expectedCTR at current position). Everyone uses it; nobody backtests it.
  • Our backtest on real position improvements: median absolute error 50%, 58% within ±50%, 92% within a factor of two. Forecast in half-to-double ranges, not points.
  • Even at ±50%, forecasting transforms planning: it ranks opportunities correctly (which keyword is worth 10x another) and sets stakeholder expectations honestly.
  • Use impressions (your real data) for keywords you rank for; reserve volume estimates for net-new targets. And expect answer-box-heavy queries to undershoot any curve.

The formula everyone uses

Strip any SEO forecast to its engine and you find:

projected monthly clicks = demand × expectedCTR(target position) - current clicks

Where demand is monthly impressions (for keywords you already rank for) or search volume (for ones you don't), and expectedCTR comes from a position-CTR curve: ours is published, most others are borrowed from studies.

The deltas do the work: a keyword with 2,000 monthly impressions at position 12 earns ~0.3% = 6 clicks; at position 5 it should earn ~3% = 60. The forecast for that move is +54 clicks a month. Do that across a keyword list, add timeline assumptions, and you have every agency's January deck.

The formula is fine. The question is calibration: when the move actually happens, does reality resemble the number?

The backtest

Predicted versus actual clicks for four real keywords in the backtest: related keywords predicted 6.1 actual 6, google keywords predicted 7.4 actual 6, youtube stats predicted 4.5 actual 3, and the big miss, the generic query keywords, predicted 122 actual 217. Median error 50 percent, 92 percent within a factor of two. Forecast vs reality, on our own keywords Keywords that improved 3+ positions between two month-long windows. Forecast: impressions × curve at the new position. predicted actual 6.1 → 6 related keywords 7.4 → 6 google keywords 4.5 → 3 youtube stats 122 → 217 "keywords" (the honest miss) own scale; reality beat the forecast Across all 12: median error 50% · 58% within ±50% · 92% within a factor of two. Small sample, stated plainly. We'll rerun it as more moves accumulate; you should log your own.
Some forecasts land eerily; the misses run both directions. Half-to-double is the honest band at keyword grain.

Method: from our portfolio's real data, every non-branded keyword that improved 3+ positions into the top 20 between two adjacent month-long windows, with 500+ impressions in both windows and at least a few actual clicks to compare against. Twelve qualified (small sample, stated plainly; we'll rerun it at scale as more moves accumulate).

For each: predicted clicks = new-window impressions × expectedCTR(new weighted position). Compare to actual new-window clicks.

The results:

  • Median absolute error: 50%
  • Within ±50% of actual: 58%
  • Within a factor of two: 92%

The gallery: "related keywords" (position 25.8 to 12.0): predicted 6.1, actual 6. "google keywords" (19.6 to 16.4): predicted 7.4, actual 6. "youtube stats" (21.1 to 13.2): predicted 4.5, actual 3. And the miss worth learning from: "keywords" (15.9 to 11.8), predicted 122, actual 217: reality beat the conservative curve by 78% on a generic head query where our snippet apparently outperformed its position.

Three honest readings:

Point forecasts are fiction; range forecasts are solid. "+54 clicks" will be wrong. "+27 to +108, expected ~54" contained reality in 11 of our 12 cases.

The errors run both directions. Under-forecasting happens (our biggest miss was reality outperforming), which matters for how you present downside AND upside.

This calibrates the industry's folklore. The oft-repeated "directionally accurate within 20-30%" is optimistic for keyword-level forecasts; half-to-double is what our data supports at this grain. Portfolio-level rollups behave better, because errors partially cancel.

The method, properly

Per keyword you're planning to push:

  1. Demand: last-30-days impressions from Search Console (your real number, not a volume estimate) for existing rankings.
  2. Current expected clicks: impressions × expectedCTR(current weighted position).
  3. Target expected clicks: impressions × expectedCTR(target position). Pick targets honestly: 12 to 6 is a campaign; 12 to 1 is a wish.
  4. The forecast range: the delta, presented as half-to-double: expected +54 means "likely +27 to +108."
  5. The horizon: attach the realistic clock: quick-win pushes bite in 2-6 weeks; new content in months. A forecast without a date is a mood.

Portfolio rollup: sum the expected values across keywords, keep the range framing, and split brand from non-brand before you start (blended baselines poison forecasts).

Three scenarios for the deck: conservative (half), expected (the sum), best (double), with the named work each assumes.

What forecasting is actually for

Not prophecy. Two jobs it does brilliantly even at ±50%:

Prioritization. The forecast's RELATIVE judgments are far more reliable than its absolutes: a keyword forecast at +200 clicks versus one at +20 is a real 10x difference in opportunity even if both numbers are 50% off. This is the quick-wins list with dollar signs, and it's how you pick this quarter's five targets instead of guessing.

Expectation-setting. "This work should yield 300-1,200 extra visits by April, expected ~600" is a sentence stakeholders can fund and hold you to honestly. It beats both the agency fiction (+1,847 visits, a decimal of confidence) and the shrug ("SEO takes time").

The inputs that break forecasts

Volume instead of impressions for existing rankings. Volume tools estimate a keyword's total demand; impressions measure how often YOU actually surface, which the tools under-report for the tail and over-promise where you rank poorly for a broad term. Use your own impressions wherever you have them.

Answer-saturated queries. Definitional and list queries with AI overviews and snippets will undershoot any curve at any position: check the exposure species before forecasting a definitional keyword's climb as if clicks await.

Seasonality. Impressions from December forecast January badly in seasonal niches. Use same-season baselines or trailing-12 medians.

Brand mixed in. Brand terms' 50%+ CTRs torch curve-based math; forecast non-brand only.

Un-costed SERP furniture changes. The forecast assumes the SERP holds still. It won't, always: that's inherent variance, and it's a chunk of why the error bars are the width they are.

A worked portfolio forecast

Keyword Impr/mo Now Target Current exp. clicks Target exp. clicks Forecast delta
A2,000125660+54
B1,2001483.612+8
C5,00018101530+15
D8001162.416+14
E3,000137945+36

Portfolio expected: +127 clicks/month; presented range: +64 to +254; horizon: 2-3 months given quick-win-style pushes; work attached: title, gap, and internal-link sprints per keyword, one per week.

A three-scenario forecast fan from today's baseline: a conservative band of plus 64 clicks, an expected line of plus 127, and a best case of plus 254 per month by quarter end, with the named work attached. The deck version: three scenarios, one fan The worked portfolio above, presented the honest way. today best: +254 expected: +127 floor: +64 Work attached: five quick-win sprints, one per week. Horizon: end of quarter. Re-forecast from actuals.
Ranges the data supports, work named, date attached. Fundable and honest at the same time.

Notice what the table already did: it ranked the work (A and E first, B last) and priced the quarter, in fifteen minutes, with your own data.

The inputs, maintained: Website Ranking Checker keeps per-keyword impressions and weighted positions current daily, pre-ranks the quick-win candidates by this exact math, and prices moves with the value column. Free for Keywords Everywhere users.

Presenting it without lying

  • Ranges, always. Half-to-double at keyword grain; somewhat tighter at portfolio grain, but never points.
  • Name the work. Every forecast line carries its lever. A forecast whose work doesn't ship is void, not wrong.
  • Date the horizon with the honest clocks, and re-forecast quarterly from fresh baselines (the target-setting method).
  • Log forecast vs actual. Your own backtest, accumulating, is worth more than this article's dozen keywords: after two quarters you'll know YOUR calibration and can tighten the bands with evidence.

Common mistakes

Six forecasting mistakes.

  1. Point forecasts. "+1,847 visits" is a confidence costume. Ranges or nothing.
  2. Forecasting with volume where you have impressions. Your own surface data beats estimated demand every time it exists.
  3. Curve math on answer-box queries. Check exposure first; some climbs buy presence, not clicks.
  4. Forecasts without attached work. The number assumes the push; no push, no forecast.
  5. Never checking afterward. The backtest is the whole difference between forecasting and astrology. Log, compare, recalibrate.
  6. Forecasting 12 to 1. Target positions your authority can plausibly buy this quarter. The ladder applies to forecasts too.

FAQ

How do I forecast SEO traffic?
Per keyword: take monthly impressions from Search Console and multiply by the expected CTR at your target position, minus what you earn today; sum across keywords for the portfolio and present half-to-double ranges with a realistic timeline. Use search volume only for keywords you don't yet rank for.
How accurate is SEO forecasting?
Our backtest on real position improvements: median error 50%, with 58% of forecasts within ±50% and 92% within a factor of two. Keyword-level point predictions are unreliable, range predictions are dependable, and relative comparisons (which opportunity is bigger) are the most reliable output of all.
What is the SEO forecasting formula?
Projected clicks = demand x expectedCTR(target position) minus current clicks, where demand is your impressions for existing rankings (or volume for net-new targets) and the CTR curve maps positions to click rates. The curve we use is published: 25% at position 1 down to 0.3% for positions 11-20.
Should I use search volume or impressions in forecasts?
Impressions, wherever you already rank: they measure how often you actually surface, from Google's own reporting. Volume estimates are for net-new keywords where you have no impression data, and they under-report long-tail demand while over-promising on broad terms.
How do I forecast SEO for a brand-new site?
With wide error bars and staged horizons: long-tail wins and first clicks around months 3-6, meaningful compounding after. Forecast the portfolio direction rather than keyword decimals, anchor timelines to the new-site clock, and re-forecast quarterly as real impression data replaces volume estimates.
How often should I update an SEO forecast?
Quarterly, from fresh baselines, alongside your target-setting, plus an ad-hoc re-forecast after big events (updates, migrations, major SERP-feature changes on money queries). And log forecast-versus-actual each cycle; your own calibration data compounds.

The forecast inputs, precomputed daily

Website Ranking Checker keeps the pieces current from your own Search Console data: impressions and weighted positions per keyword, the published curve behind the math, quick-win candidates ranked by exactly this arithmetic, and a value column that prices each move. Your January deck's data layer, running all year. Free for KE users.

Build forecasts on real data