Guide · about 8 minutes
Google Search Console historical data: how to keep it past 16 months
By the GSC PAP team · Updated
Google Search Console keeps 16 months of historical performance data. Every day, the oldest day in that window is deleted: the web interface stops showing it, the API stops returning it, and nothing can bring it back afterward. Any Search Console data you have from further back exists only because someone saved it before it expired.
This page covers what that historical data includes, the four ways to keep it (manual export, the Search Console API, Google's BigQuery bulk export, and an automatic archive), and a worked example of querying an archive with Claude. GSC PAP's archive starts on its own when you sign in with Google: it saves the full 16 months Google still has, then adds each new day.
How long does Google Search Console keep historical data?
16 months. That is the limit for the Performance report: clicks, impressions, click-through rate and average position. It is a rolling window, so each new day of data pushes the oldest day out. The Search Console API serves the same 16 months; there is no longer archive behind it.
Google introduced the 16-month window in January 2018 with the new Performance report, the successor to the old Search Analytics report, to make longer-term trends and year-over-year comparisons easier. It is still 16 months today. At the recent end, new data usually shows up two to three days late.

Can you recover Search Console data older than 16 months?
No. Once a day falls out of the 16-month window, Google deletes it on its side. The Performance report cannot show it, the API cannot return it, and no third-party tool can recover it, GSC PAP included. When a tool shows you older Search Console data, it is because that tool saved the data while it was still inside the window.
So the useful question is not how to get old data back, but how to stop losing more of it. Until you start saving it somewhere, one more day of your site's history expires every day.
What does Search Console historical data include?
Four metrics (clicks, impressions, CTR and average position) that you can break down by query, page, country, device, search appearance and date, and filter by search type, such as web, image or video. How much of it you can actually see depends on where you look:
- ·The Performance report in the web interface shows up to 1,000 rows per table. On a site with thousands of queries or pages, you see the top of the list and nothing below it.
- ·The Search Analytics API returns up to 25,000 rows per request and lets you page through more. Google's documentation also caps it at 50,000 rows per day for each search type, sorted by clicks.
- ·Google's BigQuery bulk export is not affected by that daily row limit. Google describes it as most useful for large sites with tens of thousands of pages, or of queries a day.
- ·In the interface, the API and the BigQuery export alike, anonymized queries are left out of the query rows. Google defines them as very rare queries, not issued by more than a few dozen users over two to three months. Your totals still include their clicks and impressions, but no tool can show you the queries themselves.
Why keep Search Console data past 16 months?
Sixteen months covers one year-over-year comparison and a few months more. That is enough to compare this month with the same month last year, and not enough for anything longer, such as:
- ·Comparing this year with two years ago, or following a query or a section of your site across several years.
- ·Telling a seasonal dip from a real decline when the season you need to check is more than 16 months back.
- ·Looking at traffic before and after a migration, a redesign or a Google core update once that date has aged out of the window.
- ·Keeping a record for clients or stakeholders that does not quietly get shorter every day.
How do you keep Search Console data longer than 16 months?
There are four ways. They differ in setup, in how complete the data is, and in whether they can save the 16 months you already have.
- ·Manual export. In the Performance report, export to CSV or Google Sheets on a schedule. It is free and needs no setup, but each table stops at 1,000 rows, the tables are separate summaries (you cannot later ask which page a query landed on in a given week), and it only works if someone remembers to do it.
- ·The Search Console API. A script pulls one day at a time (the approach Google's documentation recommends) and stores the rows in your own database. It can also save the 16 months still in Search Console, but you need a Google Cloud project, OAuth credentials, a scheduler and somewhere to keep the data.
- ·BigQuery bulk export. This is Google's official answer. A property owner connects Search Console to a Google Cloud project with billing enabled, enables the BigQuery API and gives Search Console's service account access; daily exports then start within 48 hours. It is the most complete record, but it only exports from the day you set it up, with no backfill of the 16 months already in Search Console, and you read it with SQL.
- ·An automatic archive. A service reads the API for you, saves the full 16 months on day one and keeps adding days, with no code or Cloud project on your side. This is what GSC PAP does. It also works alongside BigQuery: BigQuery captures more rows from the day you turn it on, and the archive keeps the 16 months BigQuery never copies.
How does GSC PAP keep your Search Console history?
You sign in with Google and the archive starts by itself. There is no button to press, no Google Cloud project and no code. GSC PAP is read-only and free during the public preview, and you query the archive in plain language from Claude, Cursor or Claude Code.
- Search Console on the day you connect: 16 months
- Search Console a year later: Deleted by Google; 16 months
- GSC PAP archive: Every day since 16 months before you connected
- ·On sign-in, it backfills the full 16 months Google still has for every property your Google account can read.
- ·After that, a daily job fetches each new day, about four days behind today, because Google's numbers take around three days to settle.
- ·Days older than 16 months stay in your archive after Google deletes them, so from the day you connect, your history keeps growing past 16 months for as long as your account is active.
- ·Questions about stable past data (older than about three days) are answered from the archive at zero Google API quota. Recent days still come live from Google.
- ·The archive stores query, page, country, device and date, with clicks, impressions, CTR and position. It is private to your account.
- ·What it cannot do: bring back days Google deleted before you connected, or show anonymized queries. It reads the same Search Analytics API, so on a very large site it holds what the API exposes, not every row a BigQuery export would.
Querying Search Console data older than 16 months with Claude
The prompt works in any client connected to GSC PAP. Not set up in Claude yet? Connect GSC PAP to Claude
The scenario
You connected example.com to GSC PAP in late April 2026, so its archive reaches back to the end of December 2024, 16 months before that day. It is now September 2026, and Search Console's own window starts in May 2025, so January to March 2025 is gone from Google. You want to compare the first quarter of 2026 with the first quarter of 2025, query by query.
The prompt
Use the gsc-pap MCP server. For https://example.com, check archive coverage with archive_status first. Then compare clicks and impressions for Q1 2025 (January 1 to March 31) with Q1 2026 using search_analytics_archive, since Search Console no longer has Q1 2025. Group by query and return the top 30 queries by Q1 2026 clicks, with their Q1 2025 numbers, the change and the percentage change.What happens
- 1
Claude checks coverage with archive_status
archive_status(site_url) returns the earliest_date, latest_date and row count stored for the property. Here earliest_date is in late December 2024, so all of Q1 2025 is covered. A later earliest date would mean a partial quarter and a misleading comparison, which is why this check comes first. On a site you connect today, earliest_date sits about 16 months back, and the range you can compare grows by one day every day.
- 2
Claude calls search_analytics_archive for both quarters
Two calls, one per quarter, each with dimensions set to query. The archive aggregates the stored daily rows in its database, so neither call uses Google API quota and neither is bound by the 16-month window. Claude joins the two result sets on the query text and computes the change and percentage change for each query.
- 3
Claude summarizes what changed
You get the comparison table plus a short read of it: which queries grew, which shrank, and which appear in only one of the two quarters. Search Console cannot produce this table anymore, because one half of it is gone from Google.
Outcome
A year-over-year view of a quarter Google has already deleted, built from your own daily rows instead of exports someone remembered to take. The same prompt works for any window your archive covers, and that coverage grows by one day for every day you stay connected.
Where to take it next
- ·Follow a single query across the whole archive with historical_position_trend, for example to see whether its position started slipping before or after a site change.
- ·For two windows that are both still inside Google's 16 months, compare_periods runs the same kind of diff against live Search Console data.
- ·There is no backfill to trigger. The archive page in your account (/account/archive) shows per-site coverage, and its manual backfill is still there if you ever want it.
Frequently asked questions
Can I see Search Console data older than 16 months?
Not in Search Console. The Performance report and the API both stop at 16 months, and older days are deleted. You can only see older data if it was saved before it expired: in your own exports, in a BigQuery bulk export, or in an archive such as GSC PAP's.
Does the BigQuery bulk export include past Search Console data?
No. It exports from the day you set it up onward, with daily exports starting within 48 hours of a successful setup. The 16 months already in Search Console are not copied, so if you want them too, save them through the API or an archive that backfills.
How far back will GSC PAP go for my site?
The full 16 months Google still has on the day you sign in, then forward from there, one day at a time. Ask your AI client to run archive_status to see the earliest and latest date stored for each property.
How do I see my top queries for the last 16 months?
In Search Console, open Performance, then Search results, set the date range to the last 16 months and open the Queries table. It lists up to 1,000 queries. For more rows, use the Search Analytics API, or ask GSC PAP from your AI client.
Does the old version of Search Console have older data?
No. The old Search Analytics report kept less history, not more: Google introduced the 16-month window with the new Performance report in January 2018, after users asked for more data. Google began retiring the old interface in 2019.
Other guides
All guidesAI queries in Google Search Console: how to tell people, AI Mode and agents apart
Search Console mixes AI Mode follow-ups, AI agent searches and scripts into your query report. How to spot each one, with regex filters and real data.
Good position, no clicks: find the SERP features eating your CTR
Ranking third and getting no clicks usually means something sits above you: an AI Overview, a featured snippet or a map pack. How to check which, query by query.
Find the pages quietly losing organic traffic, before the rankings go
Content decay is slow enough to miss on a dashboard. How to find the pages whose clicks keep sliding, tell decay from seasonality, and decide what to refresh.
Traffic changed: how to compare two Search Console periods and find out why
Clicks are down 18% and nobody knows why. How to compare two periods properly, avoid the three traps that fake a drop, and find the queries and pages behind it.
Google Search Console anonymized queries: measure the traffic you can't see
Search Console hides anonymized queries from query rows but counts them in totals. Learn what they are, why no tool reveals them, and how to measure them.
GSC clicks vs GA4 sessions: why they differ and how to tie clicks to conversions
A Search Console click and a GA4 session measure different things. Why the numbers never match, what gap is normal, and how to compare and combine them page by page.
Audit Core Web Vitals across your site with AI
Audit Core Web Vitals with Claude through a hosted PageSpeed Insights MCP server: Lighthouse lab data and real-user CrUX field data for your top pages.
Build a weekly SEO health report with Claude
Automate a weekly SEO report with Claude: one saved prompt pulls Search Console changes, quick wins, decaying pages, GA4 conversions and Core Web Vitals.
Bulk URL inspection in Google Search Console: diagnose indexing issues at scale
Search Console inspects one URL at a time. The URL Inspection API allows 2,000 checks a day per property. How to inspect in bulk and find indexing issues.
Track keyword rankings in Google Search Console, past the 16-month limit
See a keyword's position history in Google Search Console, what that average really measures, and how to keep ranking history past the 16-month limit.
How to find striking distance keywords in Google Search Console
Striking distance keywords rank just off page one of Google. Find them in Search Console, pick the ones worth fixing, and learn what to change on the page.
How to find keyword cannibalization in Google Search Console
Check for keyword cannibalization in Google Search Console: find queries where your pages compete, judge whether it hurts, and fix the cases that do.