Skip to content

What is the Bulk Data Export in Google Search Console?

Performance Reports & Data

Bulk data export is a Search Console setting that sends your property's performance data to a BigQuery dataset in your own Google Cloud project once a day. It holds every row Search Console has, with rare queries included as rows without their text, and it is not limited to 16 months: it keeps growing until you delete it. It only starts from the day you switch it on, and storage and queries above BigQuery's free usage are billed to you.

What it gives you that the report and the API cannot

Performance reportSearch Analytics APIBulk data export
Rows1,000 per table or exportUp to 50,000 per day per search typeEvery row
History16 months16 monthsFrom setup day, kept until you delete it
Rare (anonymised) queriesLeft out of tables, counted in totalsSameIncluded as rows with an empty query
CostFreeNo Cloud bill, but quotas applyBigQuery storage and query charges
EffortNoneCode and OAuthCloud project and SQL

Before you start

  • You need owner permission on the Search Console property.
  • You need a Google Cloud project with billing enabled.
  • In that project, enable the BigQuery API and the BigQuery Storage API under APIs & Services > Enabled APIs & Services.

How to set up bulk data export

  1. In the Cloud console, open IAM and Admin and choose Grant access.
  2. Add the principal search-console-data-export@system.gserviceaccount.com with two roles: BigQuery Job User and BigQuery Data Editor. Save.
  3. In Search Console, open Settings > Bulk data export.
  4. Enter the Cloud project ID (not the project number).
  5. Choose a dataset name. The default is searchconsole, every name must start with it, and each property exporting to the same project needs its own.
  6. Pick the dataset location carefully: Google does not support changing it once exports have started.
  7. Choose Continue. The first export arrives within 48 hours and covers the day it runs.

Once the tables exist you can set a partition expiration (14 days or longer) to cap storage. Do not add or change columns: a schema change makes the export fail.

What lands in BigQuery

  • searchdata_site_impression: performance aggregated by property, like the chart totals in Search Console. No URL column.
  • searchdata_url_impression: aggregated by URL, with a column per search appearance (such as is_job_listing) and an is_anonymized_discover flag.
  • ExportLog: one row per successful export per table. Its epoch_version goes up each time Google rewrites a day with corrected data.

Dates are in Pacific Time. Rows are not pre-aggregated, so always SUM() your metrics. Position is zero-based and summed, so average position is SUM(sum_top_position) / SUM(impressions) + 1 in the site table and the same with sum_position in the URL table.

A starting query for top web queries last month:

SELECT
  query,
  SUM(clicks) AS clicks,
  SUM(impressions) AS impressions,
  SUM(sum_top_position) / SUM(impressions) + 1 AS avg_position
FROM `your-project.searchconsole.searchdata_site_impression`
WHERE data_date BETWEEN '2026-09-01' AND '2026-09-30'
  AND search_type = 'WEB'
  AND query != ''
GROUP BY query
ORDER BY clicks DESC
LIMIT 100

Always filter on data_date. The tables are partitioned by date, so the date filter is what keeps each query from scanning, and billing, your whole history.

Limits and failure modes

  • Not retroactive. Anything before setup has to come from the API or the reports.
  • Failures stop it. After an error, Search Console retries the next day and holds unexported data for about a week. After about a month of failed attempts it stops exporting altogether. Owners and full users get an email when an export fails or recovers.
  • Gaps can be permanent. Google's data anomalies page records that 28 February and 1 March 2026 are missing from some properties' exports and will not be recovered. Compare ExportLog against the calendar now and then.
  • Stopping. Deactivate export in the settings page ends exports within 24 hours. Existing tables stay in BigQuery.

Do you need it?

If you need every long-tail query, search appearance flags per URL, or SQL joins with other company data, yes. If you mainly want history past 16 months for ordinary reporting, a stored property in AutoPSEO does that without a Cloud project: switch on full storage and it backfills 16 months, then saves up to 25,000 query, page and query-and-page rows a day for web search, kept for up to ten years. That is less than every row, and fully enough for most sites. See administration, how long Search Console keeps data and the Search Console API.

Sources: Google's bulk data export overview, setup, monitoring, table reference and sample queries.

Put your SEO content on autopilot

Connect Search Console and your site. AutoPSEO scans it and plans the first topics right away. No credit card needed.