Skip to content
Technical guide · Published

Search Console deletes your data after 16 months

It is not a bug and not a setting you can change. The performance report runs on a rolling window, and every day that passes takes one day off the far end. Here is what disappears, what you can still rescue today, and what to start storing in parallel.

By Alejandro Verjel · Founder of Rankiamos

TL;DR

  • The window rolls, it does not accumulate. One day enters, the oldest one leaves. Nobody warns you and nothing brings it back.
  • The UI export caps at 1,000 rows per table. You stretch it by slicing on country, device or folder — not by asking for more.
  • BigQuery is not retroactive. The bulk export starts the day you switch it on. It does not copy the 16 months you already have.
  • A rank tracker is not a Search Console backup. It stores a different series, measured differently. Complement, not copy.
  • The only decision that matters is today. The only thing lost for good is the month you let pass without storing it anywhere.

How long Google Search Console keeps data, and what disappears exactly

The short answer to how long Google Search Console keeps data is 16 months. The useful answer is how those 16 months behave, because almost everyone pictures them wrong. It is not an archive that grows until it hits a ceiling. It is a rolling window: as one day enters at one end, the oldest one drops off the other. The Search Console 16-month limit never arrives as an event — there is no email, no notice in the panel, no red banner. One day you open the report calendar and the date you needed simply cannot be selected anymore.

Put numbers on it. If you are reading this in August 2026, the furthest day the Performance report will let you query sits somewhere around April 2025. By March 2027, everything before November 2025 will be gone. And if at that point you want to compare the launch of a project that started in January 2025 against where it stands now, you will not be able to: that data no longer exists for you. The only version left will be the one you saved yourself.

There is a wrinkle that makes it slightly worse than it sounds. The window is not the same across every report in the tool, and plenty of people assume the rest of the sections hold the same amount of history. They do not.

Retention window for each Google Search Console report
Report or data Window available What it means for you
Performance · Search results Rolling 16 months This is the painful one. Clicks, impressions, CTR and position by query, page, country and device.
Performance · Discover and News Rolling 16 months Same rule. If your traffic leans on Discover, the history evaporates identically.
Crawl stats Around 90 days Useless for comparing this quarter against the same quarter last year.
Page indexing Short window, months Shows current state and a recent trend, not a multi-year series.
URL Inspection No history A snapshot of the current state. If you want the before, you had to save it.

One more detail that reframes everything above: Search Console is not retroactive at the start either. The day you verify a new property, the tool begins recording from that moment; it does not hand you the preceding months even if the site had existed for years. In other words, Google’s history has two hard borders, one at the beginning and one at the end, and neither of them moves.

On top of that sits the omission of low-volume queries for privacy reasons, which already affects what you see inside the window. That is a separate limitation from retention, but keep it in mind when you export: what you save is what Search Console shows you, not everything that happened. If you want the full map of what the tool tells you and what it does not, start with the guide to connecting Search Console to a rank tracker, and if you want to see what can be measured continuously without depending on that window, it is summarized in the Rankiamos feature breakdown.

Why the 16-month limit exists: a usefulness window and a privacy one

It is worth understanding the logic, if only to stop waiting for Google to change it. And it helps to remember where we came from: until 2018, the tool kept 90 days. Ninety. It would not even let you compare two consecutive quarters. The jump to 16 months was a large improvement at the time, and it reads as a shortfall today only because expectations about what we should be able to measure have risen.

Why 16 and not 12 or 24? The explanation Google itself has given is analytical usefulness: with 16 months you can compare the current month against the same month a year earlier and still have four months of context around it to judge whether that comparison means anything. A flat twelve months would not do it — last year’s equivalent month would sit exactly on the edge of the window, with nothing before or after it — and 24 would multiply the stored volume for a small share of users who actually query that far back.

The second reason is cost and privacy, and it gets mentioned far less. Search Console processes search query data for millions of properties. That detail is sensitive: these are terms typed by people, aggregated and filtered, but sensitive nonetheless. Keeping them indefinitely for everyone carries an infrastructure cost and a risk surface that both grow without a ceiling. Limited GSC data retention is, in part, a risk-reduction policy. The same logic explains why very low-volume queries are dropped from the report entirely: protecting the identifiability of whoever searched.

The practical conclusion is unwelcome but clear. There will be no paid tier that extends the period, because Search Console has no tiers. There is no hidden “keep longer” toggle in settings. The only lever that exists is yours, and it consists of getting the data out before it expires or building your own parallel series.

There is a business reading that helps you decide, too. Sixteen months is enough to operate: to know whether last month beat the one before, whether a change worked, whether a query collapsed. It is not enough to argue: to show a client or a manager that two years of work moved the needle, or to explain why a project that started in 2024 sits where it does today. Operating and arguing need different windows, and Google only covers the first.

Exporting Search Console data by hand: the row cap and the remembering problem

The most obvious way to preserve your Search Console historical data is the one already sitting in the interface: the export button in the Performance report. It works, it is free and it needs no special permissions. It has two problems, one technical and one human, and the human one is worse.

The technical one is the row cap. When you export Search Console data from the panel you get up to 1,000 rows of whatever table is on screen. For a blog with 300 queries a month that is the entire dataset; for a store with tens of thousands, it is the tip of the iceberg. The way to stretch it is not to ask for more rows, because you cannot: it is to slice the export. The cap applies to each request, so if you segment by country and export six times, you walk away with up to six thousand rows instead of one thousand. The same trick works with device, with search type, and with URL folders using the page filter.

Here is the monthly routine I recommend to anyone who does not want to build anything technical. It takes twenty to thirty minutes a month and, executed with discipline, solves ninety percent of the problem.

  1. Step 1 · Rescue everything still inside the window

    Before you think about the routine, run a rescue export. Set the range to the full 16 months and download the Queries and Pages tables. This is the only part of the past you can still save; starting tomorrow, it is one day shorter. If you have never exported anything, this step is the single most valuable line in this post.

  2. Step 2 · Pick the same day every month and put it in the calendar

    The 5th works well: the previous month has closed and the two-to-three-day reporting lag has cleared. Create the recurring event now, not “when there is time”. A backup system that depends on you remembering is not a system.

  3. Step 3 · Export the closed month, table by table

    Custom range from the 1st to the last day of the previous month. Download the Queries table and then the Pages table as separate files. If your traffic comes from several countries, export the Countries table too: that is the cut you will want later to read your evolution market by market.

  4. Step 4 · Slice it if you hit 1,000 rows

    Check whether the table landed on exactly 1,000 rows: if it did, you are almost certainly losing long tail. Repeat the export filtered by country, by device or by URL folder. Each filter is a fresh request with its own cap, which is how you recover what fell below the cut.

  5. Step 5 · Name files so alphabetical order is chronological

    Use site_2026-07_queries.csv. Leading with the year and a two-digit month makes the folder sort itself. It sounds trivial until you have 40 files and need to find last May in the middle of a client call.

  6. Step 6 · Consolidate into one master sheet each quarter

    Loose CSVs are a backup, not a queryable history. Once a quarter, append the months into a single sheet with a period column. That turns a folder of files into something you can chart and filter, which is why you saved the data in the first place.

The real problem is not the row cap, it is consistency. I have seen far more history lost to a routine abandoned in month four than to any technical limit. People export enthusiastically in January, February and March; April brings a launch and gets skipped; by May nobody remembers the routine existed. Two years later there is a folder with three files and a gap exactly where the evidence was needed. If you know you will not sustain it, do not build it — go straight to an automated method.

A note on what to export: if you are not after the full dump but specific families of queries — brand versus non-brand, questions, country variants — the regular expression filter lets you isolate them before downloading, so each export arrives pre-organized. That syntax is covered separately in the Search Console regex guide.

Search Console API and BigQuery: what they solve and what they really cost

If volume or consistency is your bottleneck, there are two automated routes. Both are legitimate, and both carry fine print that rarely gets mentioned by the people recommending them.

The Search Console API

The Search Analytics API returns up to 25,000 rows per request and lets you paginate through the rest, so the practical ceiling stops being an issue. You can request data day by day, crossed with query, page, country and device, and dump it wherever you like: a spreadsheet, a database, a flat file. A fifty-line script running once a day solves the consistency problem better than any calendar reminder ever will.

The fine print: the API respects exactly the same 16-month boundary. It gives you more width, not more past. Ask it for data from two years ago and it returns the same thing the interface does — nothing. And the real cost is not the API, which is free: it is that somebody has to set up OAuth, keep the script alive, fix it when something changes and remember it exists. On a team with technical staff that is half an afternoon; for a freelancer who does not code, it is a genuine barrier.

The bulk export to BigQuery

This is Google’s own answer to the retention problem and the most complete option: you connect Search Console to a Google Cloud project and from then on the tool streams your daily data into BigQuery automatically, with more granularity than the interface ever shows and with no 1,000-row cap. Once it is there, the data is yours — it lives under your retention rules and nobody erases it at 16 months.

The fine print, and this is the most important sentence in the post: the bulk export is not retroactive. It starts copying data the day you enable it and moves forward from there. It does not take a copy of the 16 months already in your account. If you wanted those months, they have to be exported another way first, and anyone who enables BigQuery believing their history is now safe is in for an unpleasant surprise a year from now. It is the same principle that governs every accumulation system: only what you were recording at the time exists.

On price: Google does not charge for the export itself, but the data lands in your own Cloud project, where you pay storage and query rates according to current BigQuery pricing. A small site usually stays inside or near the free tier; a large site with frequent queries will not. Google Cloud pricing changes, so check it before assuming this is free, and note that you need an active billing account even when consumption is minimal.

Comparison of the four ways to preserve Search Console history
Method What it preserves Effort Cost Rescues the past?
Manual export Up to 1,000 rows per table and period 20-30 min a month, forever $0 Yes, up to 16 months back
API script Up to 25,000 rows per request, paginated Build once, then maintain API free; your time Yes, up to 16 months back
BigQuery bulk export Full daily detail, no row cap One-time setup, then automatic BigQuery storage and queries No: starts the day you enable it
Rank tracker in parallel Position of your chosen keywords, by country and city Add the keywords once From $0 on the Free plan No: starts the day you add the keyword

Look at the right-hand column, because it is what orders the decision. The first two methods rescue the past and the last two do not. That means they are not alternatives to each other: the correct move is to run a rescue export today — via the interface or the API — and switch on at least one forward-accumulating method. Picking only one side always leaves you with half the problem solved.

Building your own SEO ranking history in parallel from day one

The rule that repeats across all three automated methods: only what you were measuring at the time exists.

There is an asymmetry worth accepting early. Everything you can do about the past is decided today and runs out fast: you export what is left inside the window and that is the end of it. Everything you can do about the future has no ceiling but requires starting. Your own SEO ranking history cannot be bought or recovered — it accumulates, and the only possible moment to begin accumulating it is now.

This is where being transparent about the product matters, because the same limitation applies. In Rankiamos, the history of a keyword begins the day you add it: it is not retroactive. If tomorrow you want to know where a keyword stood six months ago and you had not added it, the answer is that you will not know. Exactly the same rule as the BigQuery export. The difference between tools is not whether they can recover the past — none can — but how cheap it is to start recording it.

So the operational advice is to start with what you can actually sustain. These are the four decisions that define your future series, and each is made only once.

1 · Choose the keywords that get long memory

Not every keyword deserves two years of tracking. The ones that do: the ones that bring revenue, the ones that define your category, and the ones a client will ask about two years from now. With the 5 keywords on the Free plan you have to be surgical; with the 50 on Pro you can cover a full project without agonizing. In the Free case, the constraint is useful discipline.

2 · Fix the measurement context before you start

Country and city are part of the series: change the city of a keyword six months in and the before and after stop being comparable. Pick the market that actually matters and leave it alone. Each keyword-and-city combination consumes one unit of quota, so that decision has a cost worth thinking through once rather than monthly.

3 · Set the frequency and do not change it midway

A weekly series and a daily one describe the same reality at different resolutions. The Free plan’s weekly check is fine for multi-month trends, as long as you open the app at least once every 30 days; the Pro plan’s daily check lets you date movements and handles volatility better. What does not work is mixing them: if you plan to compare 2026 with 2028, both years should be measured the same way. One product detail that depends on this choice: on either plan the history is never deleted, but each keyword’s chart shows its last 180 measurements, which is about three years at the weekly pace and about six months at the daily one.

4 · Connect Search Console from the start

The Google Search Console integration is included from the Free plan, no card required. Having it connected on day one puts your top queries from the last 28 days (clicks, impressions, CTR and average position) in the same app as your tracked positions; comparing the two, and spotting when they disagree, is still your call. It does not extend Google’s 16-month window: the integration only shows those last 28 days, and each refresh replaces the previous snapshot instead of archiving it.

One note for anyone running multi-country SEO, because it raises the urgency. If your site competes across several markets at once, the 16-month limit hurts more: what gets erased is not one series but ten, one per market. And since Search Console blends positions from all of those countries into a single average, reconstructing what happened in Colombia versus Mexico later will require the country-level cut you exported yourself. That blending of markets into one metric is unpacked in the post on why average position does not match your real ranking.

A rank tracker does not back up your GSC: it stores a different series (and why that matters)

Here is the distinction almost nobody draws, and the reason this post exists. A rank tracker is not a Search Console backup. It does not copy your clicks, it does not copy your impressions and it does not reconstruct your CTR. It stores a different series, measured differently, answering a different question. Selling it as a backup would be a lie, and the user would find out on their own within six months.

The difference is easiest to see by looking at where each number comes from. Search Console records what happened when real people searched: if nobody searched your keyword on Tuesday, there is no Tuesday. A tracker queries the SERP in a defined context and returns the position at that moment, whether or not any real searches occurred. That is why one series has holes and the other does not, and why the two numbers never fully agree.

Differences between the Search Console series and a rank tracker series
Search Console Rank tracker
Where the data comes from Real user searches A direct query to the SERP
What it measures Clicks, impressions, CTR and an averaged position The position in a context you define
Coverage All your queries, minus those omitted for privacy Only the keywords you added
Lag Two to three days Since the last check: daily on Pro, weekly on Free
History horizon Rolling 16 months From the day you added the keyword

Why the distinction matters in practice. If your goal is to preserve historical clicks and impressions — to calculate seasonality, model traffic, or justify an investment with business numbers — the tracker will not help and you need to export from Search Console. If your goal is to answer “where were we ranked and where are we now?” across years, the tracker is the right tool and Search Console is going to fall short by definition.

What a tracker does solve is the problem the rolling window creates: memory loss. Its series does not expire at 16 months because it does not depend on Google’s retention policy, which turns an impossible question into one you can answer. In exchange, it only covers the keywords you added, while Search Console covers all of them, including the ones you never thought of. Those are complementary strengths, not competing ones.

And there is one case where the two series together are worth more than the sum: verifying that a change worked. Search Console confirms that impressions moved; the tracker tells you which exact day the position shifted. That cross-check is the backbone of, for example, confirming a URL merge in the guide to detecting keyword cannibalization with Search Console.

The client question GSC cannot answer: where were we two years ago?

All of the above stays abstract until the meeting happens. The client has been paying you for two years, the brand grew, the team changed, and at some point somebody asks: “where were we when we started?” It is a reasonable question, it is the question that justifies your contract, and Search Console alone has no answer for it.

Twenty-four months is more than sixteen. The month the project launched fell out of the window eight months ago. What you can show is the last year and a half, which is probably the least impressive stretch of the journey: the phase where things already worked. The exact segment where the jump is visible — the messy start, the first keyword that broke into the top 10 — is the one that no longer exists.

The honest ways out of that moment are three, and none is good. The first is admitting you do not have the data, which is correct and uncomfortable. The second is reconstructing it from whatever survived: old screenshots, a PDF report you sent at the time, an email with figures. It half works and does not survive a follow-up question. The third is telling it from memory, which is the worst because it sounds like an excuse even when it is true.

The version of that same meeting with your own series is different. You arrive with the starting point on record, and the conversation stops being about whether the work paid off. That is the entire value of having started to accumulate: not a pretty chart, but never having to defend yourself without evidence. One caveat on how you show it: the history lives in the app, and each keyword’s chart shows its last 180 measurements, so with daily checks month one is no longer on the chart two years later. On Pro you can export a PDF of current positions under your name and color, or a plain CSV — a snapshot, not the history. If you measure daily, export that snapshot in month one and keep the file: it is the baseline you will show.

What has to be said plainly: the PDF customizes name, color and footer but does not accept your own logo, and the CSV carries no branding inside the file (only its name starts with “rankiamos-”). Neither export includes the history: both show current positions. There is also no client login to a dashboard and no automatic report delivery — you export the file and you send it. If your workflow requires the client to log in and browse the history themselves, that is not something we cover today.

If you are kicking off a new project this week, the moment to add the keywords is before you touch anything on the site. Three minutes now buys the baseline that, two years from now, carries the whole meeting. And if the project has been running for a while, the play is a double one: export today the 16 months you still have in Search Console, and start your own parallel series the same day. What gets measured continuously, and what each plan costs, is laid out in the product feature detail and on the pricing page.

How Rankiamos handles it

It does not recover what Google deleted, and it does not keep a copy of Search Console. It starts a position series of your own, today, that does not expire.

📈 Your own series from day one

Each keyword’s history starts the day you add it and does not depend on Google’s 16-month window: it is never deleted on either plan, and its chart shows the last 180 measurements. It is not retroactive, which is exactly why the best time to add keywords is today.

🔗 Search Console connected, Free plan included

The Google Search Console integration is included from the free plan, no card required. It shows up to 250 of your queries from the last 28 days inside the app. Each refresh replaces the previous one: it is not an archive, and the 16-month window still lives in Google.

📆 Weekly on Free, daily on Pro

The Free plan checks once a week (it pauses after 30 days without opening the app); Pro checks every day, and on both plans you can re-measure a keyword by hand 6 hours after its last check. The resolution you pick today is the resolution you will have two years from now.

📄 PDF and CSV export

On Pro, export current positions to a one-page PDF with your name and color, or to a plain CSV; exports show today’s state, not the history. No custom logo in the PDF, so you know exactly what to expect before subscribing.

No tool can hand back a month Google already deleted, and anyone telling you otherwise is selling something. The only thing you can do about the 16-month limit is get ahead of it: export today whatever is still inside the window, and start a parallel series that does not expire. Rankiamos covers the second half of that play — the first half you can do this afternoon with the export button in your own Search Console.

Try Rankiamos free

Free plan: 2 projects, 5 keywords, weekly check · iPhone · iPad · Mac · Apple Watch · App in Spanish only

Frequently asked questions

How long does Google Search Console keep data, exactly?
The Performance report holds 16 months of data in a rolling window. It is not 16 months counted from the day you verified the property, and it is not an archive that keeps growing: it is a tape that moves. Every day, one new day enters at one end and the oldest one falls off the other, with no warning, no email and no way to get it back afterwards. If you open the report today, the furthest date the calendar will let you pick sits roughly 480 days behind you. Other reports run on even shorter windows: Crawl stats holds around 90 days, and URL Inspection keeps no history at all — it only shows the current state of that address.
Can I recover Search Console data older than 16 months?
No. Once a day falls out of the window, Google does not hand it back — not through the interface, not through the API, and not by writing to support. There is also no paid Search Console tier that extends the period, because the tool has no tiers. The only partial exception is the bulk export to BigQuery, and only going forward: whatever it has been copying since the day you switched it on stays yours and lives under your retention rules rather than under Google’s. That is why this is urgent rather than theoretical. Every month you let pass without storing it somewhere is a month that will simply vanish 16 months later. What you can still rescue today is everything inside the window.
How many rows can I export from the performance report?
From the interface, the export button hands you up to 1,000 rows of whatever table you are looking at. For a small site that may be the entire dataset; for an online store with thousands of queries it is a sliver. The way to stretch it without writing code is to slice: filter by country, by device or by URL folder and export each segment separately, because the 1,000-row cap applies to each request you make, not to the month as a whole. If you need the full detail, the Search Console API returns up to 25,000 rows per request and can be paginated through the rest. The API respects the same 16-month boundary: it gives you more width, not more past.
Does the BigQuery bulk export recover my older history?
No, and this is the most expensive misunderstanding in the whole topic. The bulk export starts writing data on the day you configure it and moves forward from there. It does not take a copy of the 16 months already sitting in your account: if you wanted those months, you had to export them another way first. The practical consequence is simple — turning it on today is worth more than turning it on in January, even if you do not yet know what you will query. On cost, Google does not charge for the export itself, but the data lands in your own Google Cloud project, where you pay BigQuery storage and query rates. A small site often stays inside or near the free tier; check current pricing before assuming it.
Can a rank tracker act as a backup for Search Console?
No, and saying so plainly saves an expensive disappointment. A rank tracker does not copy your Search Console data: it stores a different series, measured a different way, with different properties. Search Console tells you what happened when real people searched — impressions, clicks, CTR — and averages the position across all of those impressions. A rank tracker queries the SERP in a context you define (country, city, device) and returns the position at that moment, whether or not anyone searched. They answer two different questions and neither replaces the other. What the tracker does solve is the memory problem: its series does not expire at 16 months, so two or three years later you still have something to compare against.
How often should I export my Search Console data?
Once a month, on the same day every month, with a calendar alert that does not depend on you remembering. A monthly routine works because the two-to-three-day reporting lag has cleared by then and because a month is the unit results get reported in. Export the full closed month, with the Queries and Pages tables as separate files, and name each file after the period. The failure that kills these systems is not technical, it is human. People export diligently for three months, then a busy week arrives, one month gets skipped, and two years later the history has holes exactly where the evidence was needed. If you know you will not sustain the routine, automate it or accept that you do not have one.
Is the Rankiamos Free plan enough to start building history?
It is, with limits worth knowing up front. The Free plan includes 2 projects, 5 keywords, an automatic weekly check and the Google Search Console connection, with no card required. That is enough to start a series of 5 keywords today, and two years from now that series will still exist while the performance report will have erased half of the same period. The real constraint is not price: it is that 5 keywords force you to be surgical about which ones deserve long-term memory. The second is resolution — one point per week describes a trend but will not let you pin down the day something moved. The third: the weekly check pauses if you go 30 days without opening the app. The Pro plan raises it to 50 keywords with daily checks.

Try Rankiamos free for 7 days.

The Free plan needs no card. The Pro trial runs through your Apple account; cancel before day 7 and you pay nothing.

iPhone iOS 17.0+
iPad iPadOS 17.0+
Mac macOS 14.0+