SEO ROI Calculator Get a Free SEO ROI Consultation
Menu

Guide

How to forecast organic traffic

A traffic forecast is the first input in every SEO ROI model, and the one most often guessed. Good forecasts start from search demand, assume realistic positions, and come as a range. Here is a method you can repeat and defend.

Last updated 7 min read By the SEO ROI Calculator team

Two ways to forecast

There are two common approaches. Use both, because each one checks the other.

Top-down starts from the traffic you have today and applies a growth rate. It is quick, and it is what our ROI calculator does: added visits in month m = current visits × ((1 + monthly growth)m − 1). The weakness is that the growth rate is a guess unless you can tie it to something.

Bottom-up starts from the searches you want to win. You list target keywords, total their monthly search volume, assume a position, and apply a click-through rate (CTR) for that position. It takes longer, but every number can be traced to a source.

Run the bottom-up model first. Then ask what monthly growth rate it implies. If that rate looks far above what your site has achieved before, one of the inputs is too hopeful.

Demand × click-through rate

The bottom-up formula is short:

Monthly visits = monthly search volume × CTR at your expected position

Each part needs care.

Search volume

Keyword tools give estimates, and they disagree with each other. Treat volume as a rough signal of size. Group keywords by the page that will target them, so you are not counting the same demand twice. Leave out queries where the intent does not match what you sell.

Expected position

Be honest about where you can rank. Look at who holds the top results today and how strong those pages are. A new page on a young site rarely takes the first spot from an established leader within a year. A technical SEO audit and a content gap review tell you how much ground there is to make up.

CTR by position

CTR falls steeply as you move down the page. It also depends on ads, maps, video and AI answers above the organic results. The best source is your own Search Console data: export queries, group them by position band, and take the median CTR for each band. Use public CTR curves only as a fallback, and label them as assumptions.

Low, likely and high cases

A single number hides the risk. Three cases show it. Here is a worked example for a group of pages targeting keywords with 20,000 searches a month in total. The CTR figures are placeholder assumptions for illustration. Replace them with the medians from your own Search Console.

Steady-state monthly visits for one keyword group
Case Average position Assumed CTR Monthly visits
LowAbout 82%20,000 × 2% = 400
LikelyAbout 46%20,000 × 6% = 1,200
HighAbout 212%20,000 × 12% = 2,400

Notice the spread. The high case is six times the low case. That is not a flaw in the method. It is the real uncertainty, and leadership should see it. Plan your budget around the low case, report against the likely case, and treat the high case as upside.

Ramp-up curves

The figures above are steady-state numbers: what a page earns once it has settled at its position. New pages do not get there on day one. Search engines need time to crawl, index and trust them, and links build up gradually.

Model this with a ramp-up curve. An S-shape fits most cases: slow at first, faster in the middle, then levelling off. Here is the likely case with an assumed 12-month ramp.

Likely case: 1,200 visits a month at steady state
MonthShare of steady stateMonthly visits
310%120
635%420
970%840
12100%1,200

The length of the ramp is an assumption too. Strong, established sites often move faster than new ones. Pages that target hard, high-value terms usually move slower than long-tail pages. If you have launched similar pages before, look at how long they took and use that.

Give each case its own ramp, too. The low case should ramp more slowly as well as settle lower. Pairing a cautious end point with a fast ramp makes the low case look better than it is in the months finance watches most closely.

For a top-down cross-check, compare with compounding growth. At 3% a month, a site with 10,000 visits adds about 4,258 visits a month by month 12, since 10,000 × (1.0312 − 1) ≈ 4,258. At 1% the figure is about 1,268. At 5% it is about 7,959. Small changes in the rate make large changes in the result, which is why the rate needs a source.

Seasonality

Demand is rarely flat across the year. Gift products peak before holidays. Tax software peaks in spring. B2B queries often dip in summer and late December.

Build a seasonal index from your keyword tool's monthly trend data or from your own past organic traffic. The index for a month is that month's demand divided by the average month. Then multiply your forecast by it.

Example: the likely case settles at 1,200 visits a month. If December has an index of 1.3, the December forecast is 1,200 × 1.3 = 1,560. If July has an index of 0.8, the July forecast is 1,200 × 0.8 = 960. Without the index, a weak July looks like failure and a strong December looks like a win, when both are just the calendar.

Sanity checks before you share it

  • Does the total exceed demand? If the forecast implies more clicks than the keywords get searches, something is double-counted.
  • Does the implied growth match history? Compare with your best past year of organic growth.
  • Are branded queries separate? They should be baseline, not uplift.
  • Is every assumption written down? Volume source, position, CTR source, ramp length and seasonal index.
  • Does the low case still pay? Run it through the ROI formula before anyone commits budget.

Visits are only the first link in the chain. To see what a single page could return once it ranks, try the content ROI calculator. To plan which pages to build first, our content strategy work ranks topics by expected value, not by volume alone. And if you would rather have the forecast built on your data for you, see our forecasting service.

Questions people ask

How far ahead should an organic traffic forecast go?

Twelve to 24 months works for most budgets. Shorter windows miss the ramp-up. Longer ones stack assumptions on assumptions, so the range becomes too wide to plan with.

Where do I get click-through rates by position?

Your own Google Search Console data is the best source. Export queries with position and CTR, group them by position band, and use the medians. Public CTR curves are a fallback, and they vary widely with the layout of each results page.

Should I include branded searches in the forecast?

Keep them separate. Branded demand grows with your brand, not with SEO work. Forecast non-branded queries for the SEO case and treat branded traffic as the baseline.

What if my forecast is wrong?

It will be, to some degree. That is why it comes as a range. Compare actuals with the forecast every month, find out which input drifted, and update the model rather than defending the old number.

Want this worked out for your site?

Bring your traffic, margin and budget. We will build the model with you and show every assumption, so you can check it line by line.