GSC, read properly · Part 8 of 8
Beyond the GSC interface: the API, bulk export and what the screen hides
The GSC screen shows 1,000 rows and 16 months. The Search Console API and the bulk data export to BigQuery show far more. What each one gives you, what it still hides, what it costs, and how to keep your own copy before the history runs out.
The Performance screen in GSC (Google Search Console) is where most people stop. It is a good screen, but it is a summary: a table cut at 1,000 rows, a history of 16 months, and some searches left out on purpose.¹ ² For a small site that is enough. For a site with hundreds of pages, or a business that wants to compare this year with three years ago, the screen hides most of what matters.
Google offers two other doors to the same data: the Search Console API and the bulk data export to BigQuery. This part of the series explains what each one gives you, what none of them gives you, and how we use the first one in our audits. If GSC is new to you, start with part 1, What Is GSC?
If you lead the team: what to ask
- Are we keeping our own copy of our GSC data, or will we lose everything older than 16 months?
- When we look at our search data, are we seeing the whole list or only the first 1,000 rows?
- Who outside the company can read our GSC, and with which permission?
What the screen hides
- Rows beyond 1,000. The table in the Performance report shows at most 1,000 rows, so rare and long-tail searches and pages can be missing from it.² On a site with many pages, the long tail is often where most of the searches are.
- Rare searches, on purpose. For privacy, Google leaves out searches made by very few people. They still count in the totals on the chart, but their words never appear.² No tool, API or export brings them back.
- Anything older than 16 months. The longest range you can choose is the last 16 months. Google’s own advice, if you want more, is to use the Search Analytics API or the bulk data export.³ Neither goes back in time: they let you start keeping a copy from now on.
- The last two or three days. New data usually arrives two to three days late,² so the right edge of every chart is still filling in.
The Search Console API: the same data, without the 1,000-row cut
The API is how software reads GSC. One request returns the same four numbers as the screen (clicks, impressions, click-through rate and average position), split by whichever dimensions you ask for: search, page, country, device, search appearance, date, and even hour.⁴
The limits are much wider than the screen’s:
- Up to 25,000 rows per request, and you can page through more by asking for the next block.⁴
- Up to 50,000 rows per day of data, per search type (web, image, video and so on), sorted by clicks.⁵ For most sites that is the whole list; for very large ones, it is the top of it.
- It doesn’t promise every row. Google says the API returns the top rows, not necessarily all of them, and that splitting by page and search together may drop some data.⁴ ⁵
- Rare searches stay hidden, as on the screen.
The API is free. What it costs is someone who knows how to call it, store the answers and make sense of tens of thousands of rows.
Bulk data export: everything, every day, into your own database
The bulk data export sends your GSC performance data to BigQuery, Google’s cloud database, once a day.⁶ Google describes it as all the performance data Search Console has for your property, except the rare searches it hides for privacy.⁶ It lands in two tables, one with totals for the whole site and one split by page, plus a log of each export.¹¹
Three things to know before you switch it on:
- It starts on the day you set it up. The first export holds that day’s data; for anything earlier, Google points you to the API or the reports.⁷ Every month you wait is a month you will never have in it.
- It isn’t quite free. You need a Google Cloud project with billing turned on. There is a free usage level, but storage and queries above it are charged to your project.⁷
- It keeps everything forever, unless you set an expiry date for the data.⁷ That is what you want for history; it is also why the bill grows slowly over the years.
Which one, for which business
- A small site, a few dozen pages: the screen is enough. Download a copy of the Performance report every few months so the history doesn’t run out.
- A site with hundreds or thousands of pages: the API, run by someone on your team or ours, gives you the whole list instead of the top 1,000.
- A large site that lives on search: switch on the bulk export now, even if nobody reads it yet. It is the only way to have, two years from now, a complete history to compare with.
What we do in the deep audit
Our deep audit reads a client’s GSC through the API. The client adds one address of ours, a Google service account, as a user with Restricted permission: Google’s lowest level, which can view most data and cannot change settings, submit sitemaps or add users.⁸ Our key asks Google only for read-only access. The step-by-step is in how to give an auditor GSC access, read-only.
With that access we pull, in one run, what the screen can’t show in one view: every search and page pair of the last three months, not just the first 1,000; each page’s clicks for the last three months, the three before, the same three months a year earlier and the last twelve; the daily clicks across the full 16 months; devices, countries and sitemaps; and Google’s index status for a few key pages. Comparing those periods is how we find the day a drop started, which searches almost bring a click, and which pages are fading. When the work is done, the client removes our address from the users list.
For the people who build
- Endpoint:
searchanalytics.queryon a property;rowLimitfrom 1 to 25,000 (default 1,000), andstartRowto page.⁴ Stop when a response comes back short. - Fresh or final:
dataStatedefaults tofinal;allincludes fresh data, andhourly_allgives the hourly breakdown.⁴ - Quotas: 1,200 queries per minute per site and per user; URL Inspection, 2,000 per day and 600 per minute per site.⁹ Inspect key pages, not the whole site.
- Daily pulls: Google’s own pattern is one query per day of data, per search type, which stays within the quota.⁵ Run it every day and you have your own history, with no billing account.
- Read-only scope:
webmasters.readonlyis enough to list properties and read data.¹⁰
If you want to know what your own GSC data says, beyond the first 1,000 rows, the deep audit reads it with read-only access and turns it into a ranked list of what to fix first.
Notes. ¹ Google, “Debug Google Search traffic drops” (the 16-month range). ² Google, “Performance report (Search results): Troubleshooting data discrepancies” (1,000 rows, anonymized searches, 2–3 days). ³ Google, “Debug Google Search traffic drops” (“If you’d like to extend the 16 months, you could use the Search Analytics API or bulk data exports”). ⁴ Google, “Search Analytics: query”. ⁵ Google, “Getting your performance data” (50,000 rows per day per search type). ⁶ Google, “About bulk data export of Search Console data to BigQuery”. ⁷ Google, “Start a new bulk data export”. ⁸ Google, “Managing owners, users, and permissions”. ⁹ Google, “Usage Limits”. ¹⁰ Google, “Sites: list”. ¹¹ Google, “Table guidelines and reference”. Read on 26 October 2026.
The examples in this article come from real engagements. Client details withheld; every figure comes from the client’s own data.
Read the case study →