SEO Forecasting: how to project results with confidence
A forecast model built on historical data, seasonality and CTR benchmarks to project organic traffic without making numbers up in front of your CFO.
A bad SEO forecast burns board trust in two quarters. I have watched CMOs promise 200% organic growth in six months because the agency showed a chart with an arrow pointing up and no model behind it. When the number does not land, budget gets cut and the channel takes blame that belonged to the process. The good news: honest forecasting does not need a stats PhD. It needs three inputs (search volume, projected position, expected CTR) and the discipline to version your assumptions. The rest of this piece walks through that model step by step, using the same numbers I use to defend annual plans in real boardrooms.
Start with 18 to 24 months of historical baseline. Anything shorter loses seasonality, anything longer drags in a different algorithm. Pull organic sessions per URL from GA4 and join with impressions and clicks per query from Search Console (use BigQuery once the account crosses 50k rows per month, the queries are in BigQuery + GSC: queries your agency won't run). Calculate natural decay: posts older than 12 months tend to lose 15-25% of traffic per quarter if they are not refreshed. That number already lives in your sheet before you project a single new line, and ignoring it is the first mistake that wrecks any forecast.
Next comes position projection by keyword. This is where most people confuse Ahrefs or Semrush "difficulty" with prophecy. I run a simple regression instead: for each cluster, I calculate how many weeks it historically took to move from position 30 to 10, then from 10 to 3. Typically 12-20 weeks per step once on-page is clean (the checklist I use is in How to audit on-page SEO without falling into guesswork). Apply those step times across your page backlog and you get a ramp-up curve that respects physical reality, not sales wishful thinking, which is what makes the model defendable.
CTR per position is the most sensitive multiplier in the model. Use your own benchmark whenever volume allows (>10k clicks/month), and fall back to public benchmarks when it does not. The 2026 numbers I track sit in CTR benchmark by position: updated 2026 data and show position 1 around 28-32% for informational queries and 18-22% for transactional ones with heavy ad load. Title tag and meta description move that needle by 15-40% if you iterate with method (patterns in Title tags that convert: 7 patterns tested on real SERPs and Does meta description still matter? What CTR data shows). Model two CTR scenarios: conservative (no SERP appearance work) and optimistic (tests running).
Seasonality enters as a multiplicative index, not an additive bump. Pull three years of Google Trends for your top 20 queries, compute the monthly mean index (January = 1.0, December = 1.4, for instance) and apply it on top of projected traffic. For e-commerce that swings forecast by 60% between Q2 and Q4, and ignoring it nukes Q3 target credibility. Layer in non-organic factors that affect discovery too: product launches, PR campaigns (impact measured in Digital PR for SEO: how to measure the real ROI of mentions), URL changes, or page consolidation. Each becomes a discrete line in the sheet, with an owner and a date, never a vague footnote estimate.
The last step is modeling uncertainty, not hiding it. Always present three curves: P10 (pessimistic), P50 (base) and P90 (optimistic), with the assumptions that differ between them explicitly listed. Refresh the forecast every 30 days comparing actual vs P50 and compute mean absolute percentage error (MAPE). A healthy forecast lands between 10% and 20% MAPE after three cycles. If you are consistently above 30%, the problem is not the market, it is the model. Document what shifted (algorithm update, new competitor, atypical seasonality) and version it. Practical takeaway: this week, build a 4-tab spreadsheet (history, positions, CTR, seasonality) and run a P50 on your top 50 pages. You will be wrong, but wrong in a measurable way, which already puts you ahead of 90% of agencies.