SEO Forecasting Tools: What SEOs Actually Use, Compared
Spreadsheets, Excel's ETS forecast, BigQuery ML, Python Prophet, SEO suites and dedicated platforms: how each one models a forecast, how to test its accuracy, which free options hold up, and what to use in an agency pitch.
SEO forecasting tools either extend your own traffic history forward (time-series models) or estimate what new rankings would be worth (keyword-opportunity models). Most SEOs use a spreadsheet or a time-series library for the first and an SEO platform or their own sheet for the second, and none of them should be trusted before you backtest it on your own data.
There is no single standard SEO forecasting tool. What people use depends on the question being asked: "what will traffic do next quarter if we keep going?" needs a different tool from "what is ranking on page one for these 40 keywords worth?". This guide sorts the options by how they work, compares them on properties you can check, shows how to test a tool's accuracy, and covers what to use when the forecast goes into an agency pitch.
This page is about software. For the method itself (baseline, seasonality, CTR-by-position model, ranking scenarios and a spreadsheet template), read how to forecast SEO traffic, step by step.

How SEO forecasting tools model a forecast
Before comparing products, find out which engine a tool runs. It decides what the tool can and cannot tell you.
Time-series forecasting looks only at your past traffic (usually daily or weekly clicks from Search Console, or sessions from Analytics), finds the trend and seasonal pattern, and projects it forward with an uncertainty interval. Common methods are exponential smoothing (ETS), ARIMA-family models and Prophet. It answers "where is traffic heading if nothing unusual happens?" It cannot tell you the effect of work you have not done yet, and it does not know a core update is coming.
Year-on-year seasonal ratios are a simpler cousin: take the same weeks last year and scale them by how this year is running against last year. There is no model to fit, the logic fits in one sentence, and it handles seasonality as long as you have a full year of history.
Keyword-opportunity forecasting starts from keywords: search volume × expected click-through rate at a target position, minus what you get today, often with a ramp-up period and scenarios. It answers "what is it worth if we rank here?" It depends heavily on third-party search volumes and on whichever CTR curve the tool assumes, and those assumptions are often not shown.
Good forecasts combine a time-series or seasonal baseline with a keyword-opportunity uplift on top. Few single tools do both well, which is why so many SEOs end up in a spreadsheet.
A time-series tool is a weather forecast: it tells you what is likely to happen based on patterns, and it gets worse the further out you look. A keyword-opportunity tool is a garden plan: it tells you what you could harvest if you plant certain things and they grow. You need both, and neither one knows whether a storm (a core update) is coming.
The tools, by category
Spreadsheets (Google Sheets, Excel). The most used option by far, because every input is visible. Google Sheets has FORECAST.LINEAR, TREND and GROWTH, which fit a straight line or exponential curve but do not model seasonality on their own; you add a seasonal index by hand. Excel goes further: FORECAST.ETS and the Data → Forecast Sheet command use exponential smoothing, detect seasonality automatically, and draw upper and lower confidence bounds (95% by default, adjustable).
Looker Studio and GA4. Looker Studio is a reporting layer: calculate the forecast in Sheets or BigQuery and chart it against actuals in Looker Studio. GA4 does not produce an organic traffic forecast. Its predictive metrics (purchase probability, churn probability, predicted revenue) are about users, need minimum volumes of conversion data, and are not a traffic projection. GA4's anomaly detection does use expected ranges to flag unusual days, which helps you spot when actuals leave the forecast band. See Looker Studio for SEO for the reporting setup.
BigQuery ML. If you use the Search Console bulk data export to BigQuery, you can forecast in SQL with CREATE MODEL ... OPTIONS(model_type='ARIMA_PLUS') and ML.FORECAST, which returns a forecast plus lower and upper prediction-interval bounds. It handles seasonality and holiday effects and runs on the full daily history without exporting anything. See BigQuery and SQL for SEO for the export setup.
Python and R libraries. Prophet (open-sourced by Meta) fits trend, yearly and weekly seasonality and holidays, and handles missing days and trend changes without much tuning. statsmodels gives you classical models: ExponentialSmoothing (Holt-Winters) and SARIMAX. In R, the forecast and fable packages cover the same ground, and Google's CausalImpact package is widely used to estimate whether a change caused a lift by comparing actuals with a modeled counterfactual. See Python for SEO and R for SEO.
Built-in estimates in SEO suites. Ahrefs, Semrush and similar platforms show estimated traffic per keyword or per page, and some add a "traffic potential" figure for what a page could get if it ranked at the top. These are keyword-opportunity estimates built on the vendor's own volume data and CTR model. They are quick for comparing opportunities, but they describe the vendor's model of the market rather than your site's measured traffic, and they rarely show uncertainty.
Dedicated forecasting platforms. A smaller group of tools, SEOmonitor being the best-known example, are built around keyword-level forecasting: you pick keywords and target positions, and the tool combines volume, seasonality, current rankings and a CTR model into a projection, usually with scenarios aimed at agency proposals. Before relying on one, read how the vendor documents its CTR assumptions and whether it uses your Search Console data or only third-party data.
Search Console reporting tools with a forecast view. Some Search Console dashboards add a short forecast next to the reporting. GetCited's Search Console module is one; it is described in its own section below so you can judge it on the same terms as the rest.
Comparison table
Only properties that are part of how each tool works are listed. Pricing changes often, so check current plans with each vendor.
| Tool | Method | Handles seasonality | Uncertainty range | Skill needed | Best for |
|---|---|---|---|---|---|
Google Sheets (FORECAST.LINEAR, TREND) | Linear / exponential fit | Only if you add a seasonal index | No, build scenarios yourself | Low | Transparent keyword-opportunity models |
Excel (FORECAST.ETS, Forecast Sheet) | Exponential smoothing | Yes, detected automatically | Yes, confidence bounds | Low | Quick baseline from monthly or daily clicks |
BigQuery ML (ARIMA_PLUS) | ARIMA with seasonal and holiday components | Yes | Yes, prediction intervals | SQL | Large sites already exporting GSC to BigQuery |
| Python Prophet | Additive trend + seasonality + holidays | Yes (yearly, weekly) | Yes (80% interval by default) | Python basics | Daily GSC clicks with clear seasonality |
| Python statsmodels | Holt-Winters, SARIMAX | Yes | Yes | Python + some statistics | Analysts who want to choose and test the model |
R CausalImpact | Bayesian structural time series | Yes | Yes | R basics | Measuring whether a change caused a lift |
| SEO suite traffic estimates | Keyword volume × vendor CTR model | Partly, via monthly volumes | Rarely shown | Low | Comparing keyword opportunities fast |
| Dedicated forecasting platforms (e.g. SEOmonitor) | Keyword opportunity + seasonality + scenarios | Yes | Usually as scenarios | Low | Agency proposals and keyword-level targets |
| GetCited Traffic Forecast tab | Same weeks last year × this year's year-on-year growth | Yes, from last year's weeks | Yes, from weakest and strongest weekly ratios | None | An 8-week outlook next to Search Console reporting |
What tool do SEOs use for forecasting, by job
| Question | Practical choice |
|---|---|
| What will organic traffic be next quarter if we change nothing? | Excel Forecast Sheet or Prophet on 16 months of Search Console clicks |
| Are we on track for the next couple of months? | A year-on-year seasonal ratio on weekly clicks, in a sheet or a Search Console tool that does it for you |
| What is ranking for this keyword cluster worth? | A spreadsheet opportunity model with your own CTR curve, or a suite estimate as a cross-check |
| We need a 12-month plan with scenarios for a budget | Time-series baseline plus a spreadsheet opportunity model with three scenarios |
| Did our change cause the lift? | CausalImpact, or a test/control comparison of changed vs unchanged pages |
| We have years of daily data for hundreds of sections | BigQuery ML ARIMA_PLUS, one model per section |
Free SEO forecasting options
You do not need a paid tool to forecast well. Search Console gives you 16 months of click data at no cost, and these free options cover most needs:
Spreadsheet. Google Sheets or Excel with a seasonal index, a CTR-by-position table and three scenarios. It is the most transparent option and the easiest to hand to a client. Excel's Forecast Sheet adds automatic seasonality and confidence bounds in a few clicks.
Looker Studio. Not a forecasting engine, but the free way to show a forecast band against actuals every month. Keep the forecast in a Google Sheet and connect it as a second data source next to Search Console.
Python. Prophet and statsmodels are free and run on a laptop. They take more setup than a sheet but give you prediction intervals and repeatable backtests, as in the script below.
A short Python Prophet example on GSC daily clicks
Export daily data from Search Console (Performance → Search results, last 16 months, Export, then use the Dates table, which has Date and Clicks columns). Install with pip install prophet pandas. The script first backtests on the last 90 days so you know how far to trust it, then refits on everything and forecasts six months.
import pandas as pd
from prophet import Prophet
df = pd.read_csv("Dates.csv")[["Date", "Clicks"]]
df.columns = ["ds", "y"]
df["ds"] = pd.to_datetime(df["ds"])
df = df.sort_values("ds")
def make_model():
m = Prophet(yearly_seasonality=True, weekly_seasonality=True,
interval_width=0.8) # 80% interval
m.add_country_holidays(country_name="US") # change to your main market
return m
# 1. Backtest: train on everything except the last 90 days
cutoff = df["ds"].max() - pd.Timedelta(days=90)
train, test = df[df["ds"] <= cutoff], df[df["ds"] > cutoff]
m = make_model().fit(train)
pred = m.predict(test[["ds"]])
actual, fc = test["y"].to_numpy(), pred["yhat"].to_numpy()
mape = (abs(actual - fc) / actual.clip(min=1)).mean()
inside = ((actual >= pred["yhat_lower"].to_numpy()) &
(actual <= pred["yhat_upper"].to_numpy())).mean()
print(f"Backtest MAPE: {mape:.1%} | share of days inside 80% band: {inside:.0%}")
# 2. Refit on all data and forecast 180 days ahead
m = make_model().fit(df)
future = m.make_future_dataframe(periods=180)
fcst = m.predict(future)
monthly = (fcst.set_index("ds")[["yhat", "yhat_lower", "yhat_upper"]]
.resample("MS").sum().round())
print(monthly.tail(6))
Read the two backtest numbers before the forecast. MAPE (mean absolute percentage error) tells you how far off a typical day was. The share of days inside the band tells you whether the interval is well calibrated: if you asked for 80% and only half the days fall inside, the model is overconfident and your range should be wider. Summing daily lower and upper bounds into months, as above, gives a rough monthly band that is wider than a true monthly interval; use it as a cautious range, not an exact one.
Three adjustments matter more than tuning. Remove or flag known one-off events (a tracking outage, a viral day) before fitting. If a core update or migration changed the level of traffic, add it as a changepoint or train only on data after it. And forecast non-brand clicks separately if you can export them, because brand demand follows marketing, not SEO. For repeated backtests over several cutoffs, Prophet includes cross_validation and performance_metrics in prophet.diagnostics.
How accurate is a typical SEO forecasting tool?
No one can give you a fair general figure, and claims of a fixed accuracy percentage should be treated with suspicion. Accuracy depends on the site, the horizon and the method, not the brand of tool. What can be said with confidence:
Time-series tools are most accurate on stable sites over short horizons. A site with years of steady, seasonal traffic is far easier to project three months out than a young site, a site mid-migration, or any site twelve months out.
Keyword-opportunity tools are least accurate on the parts that matter most. Whether you reach the target position, how fast, and what CTR you get there are assumptions, not data.
Third-party traffic estimates do not match Search Console. Suites estimate from their own keyword panels and CTR models, and differences from your measured clicks can be large in either direction. Compare a suite's estimate for your own site against your Search Console clicks before trusting its estimates for anything else.
How to back-test any tool. The same test works for a spreadsheet, a library or a paid platform:
1. Hide the recent past. Pick a cutoff two or three months back and give the tool only the data before it.
2. Forecast the hidden period. Use the same settings you would use for a real forecast.
3. Score the error. Compare forecast with actual week by week. Mean absolute percentage error is easy to explain; also note whether the tool ran consistently high or low.
4. Score the range. Count how many actual weeks fell inside the tool's low-to-high band. A band that misses most weeks is overconfident.
5. Repeat with two or three cutoffs. One lucky quarter proves little. If the results hold across cutoffs, you have a number you can quote.
A measured error on your own site is worth more than any vendor claim. After that, track forecast against actual every month, so the next forecast starts from better inputs.
SEO forecasting is difficult because…
The short answer: search results are controlled by a third party that changes the rules without notice, and most of the inputs are estimates. In detail:
1. Algorithm updates are unpredictable. Google runs several core updates a year plus many smaller changes. They can move rankings sharply, and no historical pattern predicts the next one.
2. The results page keeps changing shape. AI Overviews, ads, shopping and video packs and People Also Ask can cut clicks at a given position even when your ranking does not move. Several industry studies have reported lower organic CTR where AI Overviews appear.
3. Search volume data is an estimate. Keyword tools round and average volumes, and different tools disagree.
4. CTR by position is not a constant. Published CTR curves differ by study, industry, device and intent.
5. Competitors act too. Your forecast assumes the other pages stay where they are; they do not.
6. Rankings take an uncertain time to arrive. Indexing and ranking new content can take weeks or many months.
7. Measurement is imperfect. Search Console omits some rare queries for privacy, Analytics depends on consent and tagging, and Google counts AI Overview and AI Mode activity inside normal Search Console totals, so you cannot cleanly separate it.
8. Execution is uncertain. A forecast assumes the planned pages and fixes ship on time.
None of this makes forecasting useless. It means a tool's output should be read as a range with named assumptions and re-run regularly, whichever tool produced it.
Choosing an SEO forecasting tool for an agency pitch
A pitch forecast has a different job from an internal one. It has to win trust from someone who does not know your methods yet, and it will be remembered when the results come in. That changes what you want from a tool:
Use the prospect's own data if you can get it. Ask for read access to Search Console before the pitch. A forecast built on their real clicks and CTR beats any third-party estimate, and asking for it signals that you measure rather than guess.
Pick a tool whose assumptions you can show on one slide. If you cannot say which CTR curve, volume source and ramp the tool used, you cannot answer the first challenge from a finance lead. Spreadsheets and dedicated platforms with documented assumptions do well here; black-box traffic estimates do not.
Show scenarios, not a single target. Conservative, expected and aggressive cases, each with a sentence explaining what has to happen. Tools that only output one number need a spreadsheet around them.
Separate the baseline from your contribution. Seasonal growth that would have happened anyway is not your result. A tool that shows last year's seasonal pattern next to the forecast makes this easy to explain.
Plan to re-forecast. Tell the prospect the forecast will be checked against actuals monthly and refreshed quarterly. That is easier with a tool that stores past forecasts or a sheet with a frozen, dated copy.
In practice many agencies use a dedicated platform or a suite for the keyword list, then rebuild the numbers in a spreadsheet they control before they present.
Limitations and risks of relying on an SEO forecasting tool
Hidden assumptions. If you cannot see the CTR curve, volume source and ramp the tool used, you cannot defend the number when someone challenges it.
False precision. A tool that outputs "14,382 visits in March" implies an accuracy no SEO forecast has. Round it and attach a range.
Third-party data presented as your data. Suite estimates describe a model of the market. Basing a budget on them without reconciling with Search Console builds the error into the plan.
Extrapolating the past into a changed SERP. A time-series model trained before AI Overviews appeared for your queries will keep projecting the old click pattern.
Turning a forecast into a commitment. Tool output pasted into a proposal reads as a promise. When it misses, the cost is trust, not just a number.
Forecasting the wrong metric. Clicks are not revenue. A tool that forecasts traffic says nothing about conversion rate or value; add those yourself, as in calculating SEO ROI.
No feedback loop. Most tools do not compare their own past forecasts with what happened. You have to do that, or you never learn whether the tool is any good for your site.
GetCited's Traffic Forecast tab
GetCited's Search Console module includes a Traffic Forecast tab. It forecasts Google clicks for the next 8 weeks using a year-on-year seasonal ratio: it takes the same weeks last year and multiplies them by this year's growth, where growth is clicks in the last 8 complete weeks divided by clicks in the same weeks a year earlier. The shaded range uses the weakest and strongest of those 8 weekly year-on-year ratios, so a choppy recent run gives you a wider band. It needs a year of Search Console history; without the same weeks last year, the tab says there is not enough data instead of drawing a line through a few points.
You can get the dashboard and Traffic Forecast free by requesting access with your work email.
It is a short-horizon check on whether you are on track, not a 12-month plan or a keyword-opportunity model, so pair it with a spreadsheet when you need scenarios. Plans are on the pricing page.
One thing no click forecast covers is AI answers. None of the tools above measures whether ChatGPT, Perplexity, Gemini or Google's AI Mode name your brand when people ask about your category, and clicks can fall while AI visibility rises, or the reverse. Track it as a separate metric next to the forecast; the AI visibility tracker records how often each engine mentions and cites you for a fixed set of prompts. For the Google side, see Google AI Overviews.
Mistakes to avoid
Picking a tool before the question. Baseline questions need time-series or seasonal tools; "what is this keyword worth" questions need opportunity models.
Skipping the backtest. Ten minutes of holding out the last 90 days tells you more about a tool's accuracy than any vendor claim.
Feeding the model polluted history. Outages, migrations and tracking changes in the training data get projected into the future.
Forecasting brand and non-brand together. Brand demand is driven by marketing, not SEO.
Reporting the point forecast alone. Always show yhat_lower and yhat_upper, or their equivalent, next to the central number.