Organic Traffic Forecaster

Upload a Google Search Console CSV and predict organic clicks, impressions or sessions for the next months using Facebook Prophet.

Forecast Your Organic Traffic with Confidence

Export a daily performance report from Google Search Console (or Analytics) and upload it here. The model detects weekly and yearly seasonality, respects country holidays, and returns a forecast with a confidence interval you can share with stakeholders.

  • Facebook Prophet under the hood — weekly + yearly seasonality
  • Holiday-aware (Brazil by default, other countries selectable)
  • Interactive Plotly chart with confidence band
  • Monthly breakdown of the forecast for reporting

In Search Console → Performance, click Export → CSV. Use the "Dates" sheet (daily granularity). At least 30 data points required; 12+ months recommended for yearly seasonality.

How to use the Organic Traffic Forecaster

From CSV to a defensible growth forecast in under 30 seconds. No account, no OAuth, no data leaves the tool after processing.

1

Export daily data

In Google Search Console → Performance, click Export → CSV. The zip contains a "Dates" sheet with daily clicks, impressions, CTR and position. Any date + numeric metric CSV also works (GA4, custom scripts).

2

Upload the CSV

The tool auto-detects the date and metric columns (Portuguese, English, Spanish, German headers all supported), recommends a horizon based on your history length, and defaults to Brazilian holidays. Change any parameter before submitting.

3

Read the results

Get four summary cards (total forecast, growth vs. last 90 days, daily trend, history used), an interactive forecast chart with confidence band, trend decomposition, weekly seasonality, and a monthly breakdown table for reporting.

How the forecast works

Under the hood we use Facebook Prophet, an additive time-series model designed for business metrics with clear seasonality. Prophet decomposes your traffic into four components and projects each one forward.

Trend

The underlying growth or decline direction, smoothed to ignore weekly noise. Prophet detects changepoints — moments where the trajectory shifted — automatically.

Weekly seasonality

The typical difference between weekdays and weekends. B2B sites usually peak Tue–Thu and collapse on weekends; e-commerce may see the opposite pattern.

Yearly seasonality

Recurring annual patterns (Black Friday spikes, summer/winter dips, back-to-school). Only activated when you upload at least 365 days of history — otherwise Prophet cannot estimate it reliably.

Holiday effects

National holidays that reliably shift traffic. Selecting Brazil applies Carnaval, Corpus Christi, Independence Day, Finados, Christmas and others. The US, UK, PT, ES, FR, DE, IT calendars are also available.

Confidence interval: The shaded band around the forecast represents an 80 percent confidence interval — the range within which future values are expected to fall 80 percent of the time, based on residual noise in your historical data. Wider bands mean the model is less sure. If you extend the horizon past 50 percent of your history length, the band widens sharply and the forecast becomes speculative.

Domain Rating Result

Forecast total

Sum of all daily predicted values across the horizon. The "per day (avg)" subline gives you the run rate — compare it to your current daily average in the History card to sanity-check the projection.

Expected growth (90d window)

An apples-to-apples comparison: next 90 forecast days vs. last 90 history days. Fixed to 90 days regardless of horizon so the number stays comparable across runs. Positive = growth, negative = decline.

Daily trend across horizon

The trend component at the first and last day of the forecast, expressed in the same unit as your metric. This is the pure growth signal with weekly and yearly noise removed.

Weekly seasonality bars

Effect of each weekday on the metric. Positive bars mean days that pull traffic above trend; negative bars pull it below. Sum across the week averages to zero by construction.

Monthly forecast table

Aggregated calendar-month totals. Rows flagged "Partial" cover fewer than 28 forecast days — typically the first month after your history ends. Use the Days column to interpret the totals correctly.

Where to get the data

Google Search Console (recommended)

  1. Open your property → Performance report
  2. Adjust date range (last 3, 6, 12 or 16 months)
  3. Click Export → Download CSV
  4. From the zip, upload the Dates.csv file

16 months is the hard limit of the GSC UI/API. For longer history, use BigQuery export.

Google Analytics 4

  1. Reports → Acquisition → Traffic acquisition
  2. Filter by Session default channel group = Organic Search
  3. Add Date as primary dimension, export CSV
  4. Open in Sheets/Excel and remove the metadata header rows before uploading

Aggregated reports keep data since property creation. Event-level retention is 14 months max.

Custom CSV / script output

Any CSV with a date column and at least one numeric column works. Column names in Portuguese, English, Spanish or German are auto-detected; separators can be comma, semicolon or tab.

Common sources: SEMrush/Ahrefs traffic exports, Umami/Plausible/Matomo dashboards, internal analytics warehouses.

GSC via BigQuery / Looker Studio

For history longer than 16 months, enable the GSC → BigQuery bulk export. Query date + total clicks, download as CSV, upload here.

Alternatively, connect Looker Studio to GSC, build a Date × Clicks table, export to CSV.

Frequently asked questions

How much history do I need?
Minimum 30 daily data points to run the model at all. 90+ days give you weekly seasonality. 12–24 months is the sweet spot — that activates yearly seasonality and captures Black Friday, holiday dips, back-to-school. More than 3 years is rarely useful because search behaviour shifts (BERT, HCU, AI Overviews) make old data less representative.
Which metric should I forecast?
Clicks (GSC) or Sessions (GA4) are the most actionable — they map directly to business outcomes. Impressions forecast future opportunity (demand). CTR and average position are harder to forecast reliably because they are ratios/aggregates dominated by keyword mix changes.
What horizon should I pick?
Rule of thumb: horizon ≤ 50 percent of your history. The tool auto-recommends the largest valid option after you upload the file. You can extend beyond that, but the confidence band widens fast and the forecast becomes a "scenario" rather than a prediction. A warning banner appears above the results when you cross the threshold.
Why is my forecast trending negative or flat?
Prophet reads the trend from your recent data. If the last few months have been declining, the projection continues that decline. If you had a temporary drop (algo update, seasonal recess, publishing pause), the model treats it as structural. Values are clipped at zero — traffic cannot go negative — but the projection can flatten to near zero if the trend line crosses.
Can Prophet predict algorithm updates or AI Overviews impact?
No. Prophet is a pattern-recognition model — it extrapolates trend and seasonality it has seen before. External shocks (algorithm updates, AI Overviews eating clicks, a competitor launching a stronger page) are invisible to it until they show up in the data. Use forecasts as baselines to detect deviations, not as guarantees.
Why is yearly seasonality "off" in my results?
Yearly seasonality is only enabled when you upload ≥365 days of history. With less, Prophet cannot distinguish a real yearly cycle from short-term noise. Once you cross the 12-month mark on your next upload, it activates automatically and captures Brazilian holiday/seasonal patterns (or whichever country you selected).
What if there are gaps in my data?
Prophet tolerates missing dates natively — it fills them internally as needed. Duplicate dates are collapsed keeping the last value. What breaks the model is having under 30 total data points, or a column format the parser cannot detect. Both cases return a clear error message.
Is my data uploaded anywhere or stored?
Your CSV is processed in memory to generate the forecast and discarded afterwards. Nothing is persisted to disk or shared with third parties. No account or login is required.
How often should I re-run the forecast?
Monthly is a sensible cadence for most SEO workflows. Re-run after any structural change to the site (redesign, migration, big content push) or after a known Google update — the model needs fresh data to update its trend.
Why does the July / partial month total look tiny?
The Monthly forecast table sums only the days that fall inside the forecast window. If your history ends on the 30th of a month, the first row of the table covers just one forecast day. Rows with fewer than 28 days are flagged "Partial" and the Days column tells you exactly how many days are included.