Every day you don't save your keyword history from Google Search Console, you're losing data you can never get back. Not archived somewhere you can't find. Gone. Permanently.
Google Search Console stores exactly 16 months of performance data. After that window, data is deleted. Google doesn't archive it. There's no way to request it back, no export you can run later, no support ticket that will recover it. When that window slides forward, the oldest month drops off forever.
This is the data that tells you what keywords drove traffic to your site before a major algorithm update. Before a site redesign. Before you launched that content strategy two years ago. If you haven't preserved it, you can't answer the questions that matter most when something goes wrong or when you're trying to prove what went right.
The fix is straightforward, takes less than an hour to set up, and then runs automatically forever.
Why Google Deletes Your Keyword Data After 16 Months
The 16-month limit isn't arbitrary. According to analysis from GetDadSEO, GSC handles trillions of impressions, billions of clicks, and hundreds of millions of unique queries daily across approximately 1 billion tracked websites. One practitioner's single-site export reached 656.9 million rows totalling 67 gigabytes. Multiply that across all GSC users and the storage costs for a free product become prohibitive at any longer retention window.
That's a reasonable explanation for why Google made this choice. But it doesn't change what it means for your site. The data loss compounds rapidly:
- Month 17: Your earliest month of data is gone
- Month 24: Over 8 months of history is permanently lost
- Month 36: More than 20 months is irretrievable
Why Historical Keyword Data Is Business-Critical
Organic search drives approximately 53% of all trackable website traffic and over 40% of revenue across multiple industries, according to research from Conductor. Keyword-level performance is the granular signal that tells you whether your SEO strategy is working. Current-state snapshots show you where you are. Historical data shows you why you're there and whether you're trending in the right direction.
Three specific scenarios make this concrete:
- Algorithm updates. When Google rolls out a core update, the impact on your rankings may not be obvious for weeks. You need to distinguish between the update's effect, normal seasonality, and competitor changes. Research suggests you need 18-24 months of context to separate these signals cleanly. Without historical keyword data, all three scenarios look identical.
- Gradual ranking decline. Rankings often erode slowly before they collapse - position 3 to 6 to 11 over six months before falling off page one. By the time the traffic loss shows up in analytics, you've missed the intervention window. Historical data lets you see the drift early.
- Year-over-year comparison. Seasonal businesses, product launches, and content refresh programmes all need YoY comparison to evaluate success. If you're comparing Q2 2026 to Q2 2025, you need Q2 2025 data available in May 2026 - that's 14 months back. If you haven't preserved it, it's gone.
There's one more thing worth saying about third-party rank trackers: they're not a substitute for GSC data. According to analysis from SEO Stack, third-party rank trackers show approximately 48% average error margins against actual GSC data. They provide directional signals but are unreliable for decision-critical analysis. The authoritative source is GSC. If you lose GSC's historical data, no third-party tool can reconstruct it.
The Right Solution: BigQuery Bulk Export
The proper long-term solution for preserving your keyword history is the BigQuery bulk data export. Google launched this in February 2023, and it's the only approach that creates a permanent, automated, unlimited record of your GSC performance data.
- Data exports daily, automatically, with no manual intervention
- No row limits (vs. 1,000 in the UI and 50,000 via the API per day)
- Data accumulates indefinitely in BigQuery, under your control
- Queryable with SQL, connectable to visualisation tools
- Storage costs are negligible for most sites (around 1.5 GB per year for a typical mid-size site)
The full setup process is covered in our complete guide to exporting GSC data to BigQuery. The short version:
- Create or select a Google Cloud project with billing enabled
- Enable BigQuery API and BigQuery Storage API
- Grant Google's service account BigQuery Job User and Data Editor roles
- Configure the export in Search Console Settings > Bulk Data Export
- Enter your project ID and choose a dataset name and location
- Wait 48 hours for data to start flowing
| Method | Data Limit | Automated? | Backfill? | Queryable? | Cost |
|---|---|---|---|---|---|
| BigQuery Bulk Export | None | Yes (daily) | No | Yes (SQL) | Near-free |
| Manual CSV exports | 1,000 rows | No | Yes (up to 16 mo) | Limited | Free |
| Third-party rank trackers | Varies | Yes | No | Via tool only | $50-500+/mo |
| GSC API (raw) | 50,000 rows/day | Build yourself | Yes (up to 16 mo) | If stored | Engineering time |
Do This Today: Export a CSV Backup While You Set Up BigQuery
While you're configuring the BigQuery export (which takes a day or two to start producing data), do this immediately to capture the historical data you still have access to:
- Open Search Console and navigate to your property's Performance report
- Click the date range selector and choose "Last 16 months" (the maximum)
- Click the export icon and download as CSV
- Repeat separately for each dimension: Queries, Pages, Countries, Devices
- Save all files with a date label (e.g.
gsc_queries_export_2026-05.csv) - Set a monthly calendar reminder to repeat this process
Yes, this is manual and limited to 1,000 rows. But it captures aggregated data from the full 16-month window before it starts rolling off. It's a useful backstop while BigQuery is getting set up, and it preserves a snapshot of your historical baselines.
How to Analyse Your Keyword History Once It's in BigQuery
Having the data in BigQuery is only valuable if you can analyse it. Here are the analyses that become possible once you have persistent keyword history.
Year-Over-Year Keyword Comparison
SELECT
query,
SUM(CASE WHEN EXTRACT(YEAR FROM data_date) = 2026 THEN clicks ELSE 0 END) AS clicks_2026,
SUM(CASE WHEN EXTRACT(YEAR FROM data_date) = 2025 THEN clicks ELSE 0 END) AS clicks_2025,
ROUND(
SAFE_DIVIDE(
SUM(CASE WHEN EXTRACT(YEAR FROM data_date) = 2026 THEN clicks ELSE 0 END) -
SUM(CASE WHEN EXTRACT(YEAR FROM data_date) = 2025 THEN clicks ELSE 0 END),
NULLIF(SUM(CASE WHEN EXTRACT(YEAR FROM data_date) = 2025 THEN clicks ELSE 0 END), 0)
) * 100, 1
) AS yoy_change_pct
FROM `project.dataset.searchdata_site_impression`
WHERE (
(data_date BETWEEN '2026-04-01' AND '2026-04-30')
OR (data_date BETWEEN '2025-04-01' AND '2025-04-30')
)
AND is_anonymized_query = FALSE
GROUP BY query
HAVING clicks_2026 > 10 OR clicks_2025 > 10
ORDER BY clicks_2026 DESC;Algorithm Update Impact Attribution
SELECT
query,
ROUND(AVG(CASE WHEN data_date < '2026-03-15'
THEN sum_top_position / impressions ELSE NULL END), 1) AS avg_pos_before,
ROUND(AVG(CASE WHEN data_date >= '2026-03-15'
THEN sum_top_position / impressions ELSE NULL END), 1) AS avg_pos_after,
SUM(CASE WHEN data_date >= '2026-03-15' THEN clicks ELSE 0 END) AS clicks_after
FROM `project.dataset.searchdata_site_impression`
WHERE data_date BETWEEN '2026-02-01' AND '2026-05-01'
AND is_anonymized_query = FALSE
AND impressions > 50
GROUP BY query
HAVING avg_pos_before IS NOT NULL AND avg_pos_after IS NOT NULL
ORDER BY (avg_pos_after - avg_pos_before) DESC;Identifying Gradual Ranking Drift
SELECT
FORMAT_DATE('%Y-%m', data_date) AS month,
query,
ROUND(SUM(sum_top_position) / SUM(impressions), 1) AS avg_position,
SUM(clicks) AS clicks,
SUM(impressions) AS impressions
FROM `project.dataset.searchdata_site_impression`
WHERE query IN ('your target keyword 1', 'your target keyword 2')
AND data_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 12 MONTH)
GROUP BY month, query
ORDER BY query, month;From BigQuery to Insights: Visualisation and Ongoing Tracking
Raw SQL in BigQuery is powerful but not the most accessible format for regular SEO reporting. Looker Studio (formerly Data Studio) has a native BigQuery connector and is free. The downside is that building useful SEO dashboards from scratch takes meaningful time and SQL knowledge.
Keyword History connects directly to your BigQuery dataset and surfaces the analyses that matter most: brand vs. non-brand performance, striking distance keywords, AI visibility trends, cannibalization detection, and year-over-year comparisons. All queries are pre-built and run cost-efficiently against your partitioned data. The data stays in your BigQuery dataset - Keyword History just gives you the insight layer on top.
Conclusion
Google Search Console gives you a 16-month window into your keyword history. After that, data is permanently gone. The people who discover this limitation are almost always the ones who needed that old data for something, and it's too late.
Here's what to do right now to save your keyword history:
- Export a 16-month CSV backup from the GSC Performance tab today
- Follow the BigQuery export setup guide to start the permanent automated export
- Start querying with date-filtered SQL once data begins accumulating
- Connect to a visualisation layer so insights are accessible to your whole team
Your keyword history is one of the most valuable SEO assets you have. The solution to saving it is straightforward. The only thing that makes it hard is waiting too long to start.
