Keyword Rank Forecaster
Spot which keywords are trending up, going stale, or falling out of the SERP — before it costs you traffic.
Where to get the CSV
Needs daily position per keyword over time. Position semantics: lower is better (position 1 = top). A Prophet model is fit per keyword; keywords with fewer than 20 data points are skipped automatically.
Data Source
- Rank trackers: SEMrush, Ahrefs, AccuRanker, Serpstat, Wincher, SE Ranking, Nightwatch (export with keyword × date × position)
- Google Search Console via API, Looker Studio or BigQuery (dimensions: date + query, metric: position)
- Any custom script/CSV following the formats below (e.g. SerpAPI, DataForSEO, ValueSERP outputs)
Not compatible
- GSC → Queries CSV (aggregated, has no date axis)
- Google Analytics 4 (has no keyword position metric)
Long format (recommended)
date, keyword, position [, impressions]
Wide format
date, keyword_a, keyword_b, keyword_c, ...
Fitting Prophet for each keyword — this can take a minute.
Error
Improving
0
At risk
0
Stable
0
Volatile
0
Top keywords at risk
Top rising keywords
Inspect a keyword
Y-axis is inverted: lower value = better ranking.
All modelled keywords
| Keyword | Class | Current pos. | Forecast pos. | Δ trend | Volatility |
|---|
Ranking forecasts capture trend, not exact position. Algorithm updates and competitors can invalidate any projection.
How to use the Keyword Rank Forecaster
Turn hundreds of keyword position rows into a prioritised list of what is trending up, what is at risk, and what is quietly stable.
Export daily positions
From your rank tracker (SEMrush, Ahrefs, AccuRanker, Serpstat, Wincher, SE Ranking, Nightwatch) or from the GSC API / BigQuery / Looker Studio. You need a time series of positions per keyword, not a period aggregate.
Upload the CSV
Both long (date, keyword, position) and wide (date, kw_a, kw_b, ...) formats are auto-detected. The tool picks a sensible horizon and models the top N keywords by impressions (or data volume).
Comparison Results
Focus first on the "At risk" list — those are keywords quietly slipping. Then look at "Rising" to double down on wins. Use the keyword picker to inspect any individual keyword's full forecast chart.
How the forecast works
One Facebook Prophet model is fit per keyword. For each one we project the position 30 to 730 days forward, then classify it based on trend direction and volatility.
Position semantics
Lower value = better ranking. Position 1 is the top of the SERP. A negative delta means the keyword is climbing (position number decreasing).
Weekly seasonality disabled
Positions are noisy day-to-day (SERP fluctuations, personalisation, small ranking swaps). Weekly seasonality here is more noise than signal, so we turn it off to keep the trend clean.
Selection by impressions
If your CSV has an impressions column, keywords are ranked by total impressions and only the top N (10 to 100, configurable) are modelled. This focuses compute on the keywords that actually matter for traffic.
Minimum data per keyword
Keywords with fewer than 20 valid data points are skipped automatically. The count of skipped keywords is shown in the response so you know how much coverage you got.
The four classifications
Trend line drops by at least 1 position across the forecast horizon. The keyword is on track to rank higher — protect the page that ranks for it.
Trend line rises by at least 1 position (worsening) across the horizon. Investigate competitors, freshness, technical issues, or content decay before the drop translates into lost traffic.
Movement smaller than 1 position and volatility within acceptable range. The keyword sits comfortably where it is — low priority unless the current position is far from where you want it.
Residual noise exceeds 5 absolute positions or 35 percent of the mean position. The keyword is swinging too much for a reliable trend read — either the SERP is unstable (fresh news, low-authority queries) or you have data quality issues.
Interpreting the output
Class counters
Quick portfolio view: how many keywords fall into each of the four classifications. A healthy site should have improving ≥ at risk. If at-risk dominates, treat the report as a priority list.
Top at-risk / rising lists
The 10 keywords with the strongest projected change in each direction. Numbers show current 7-day average position and the position expected at the end of the horizon, with the delta.
Inspect a keyword chart
Interactive chart with inverted Y axis (position 1 at the top). Four traces: full history, forecast with confidence band, and the underlying trend line. Hover any point to see the exact predicted position and range.
All-keywords table
Every modelled keyword with its classification, current and forecast position, trend delta and volatility score. Sort or copy to a spreadsheet for reporting.
Where to get the data
Rank trackers
SEMrush (Position Tracking → Export), Ahrefs (Rank Tracker → Overview → Export), AccuRanker (History export), Serpstat, Wincher, SE Ranking, Nightwatch, Mangools SERPWatcher — all export a keyword × date × position table that works out of the box.
Coverage typically 6 months to 5 years depending on how long the campaign has been tracked and the plan.
Google Search Console (indirect)
The GSC UI export gives aggregated Queries only, without a date axis. To get date × query × position, use the Search Console API, the BigQuery bulk export, or a Looker Studio connector — then download the resulting table as CSV.
Max lookback: 16 months via API/UI, unlimited (forward) via BigQuery.
Custom scripts (SerpAPI, DataForSEO, ValueSERP)
If you scrape SERPs on a schedule, output a CSV in long format (date, keyword, position) and upload directly. Add an impressions column if you want the tool to prioritise which keywords to model.
Not compatible
- GSC UI → Queries.csv (aggregated over the period, no date axis)
- Google Analytics 4 (does not track keyword-level position)
- CSVs without a date column or without a query/position column