Guide : GSC BigQuery Export

Comment utiliser the Recherche Google Console BigQuery export to requête unsampled daily click and impression données with aucun UI row cap (anonymized requêtes encore excluded), the difference entre the UI and the raw export, setup, cost mechanics, and the no-backfill gotcha.

Première publication : 27 juin 2026 · Dernière mise à jour : 3 août 2026 · Advanced
Langues

Pour website properties, the GSC BigQuery bulk export schedules a daily, unsampled dump of Performances données—minus anonymized requêtes—into BigQuery, bypassing the UI row cap and 16-month retention window. It creates site-level, URL-level, and export-log tables, ne fait pas backfill, exige billing, and peut incur requête costs. Google now supports Instagram, TikTok, X, and YouTube platform properties, but its current platform documentation ne fait pas promise BigQuery prise en charge pour les; ne faites pas assume ce pipeline s’applique to social accounts.

TL;DR — The bulk données export is a scheduled daily, unsampled dump of votre Search Console Performances données into a BigQuery dataset — aucun ~1 000-row export cap, aucun ~16-month retention wall. It lands three tables (searchdata_site_impression, searchdata_url_impression, ExportLog). Setup: a Google Cloud project with billing enabled, the BigQuery + BigQuery Storage APIs on, two IAM roles granted to Google’s export service account, alors Settings → Bulk données export in GSC. It fait pas backfill, encore reports anonymized requêtes as vide strings, and the premier export lands dans ~48 hours. Cost is a réel free tier plus per-TB requête charges — the classic bill comes from dashboards querying raw tables live. Think of it as the third rung: UI → API → bulk export.

The ladder ci-dessous is pour website properties. It n’est pas evidence que social or video platform properties prise en charge the Search Console API or BigQuery export.

Ce que it en réalité is

Bulk export is a scheduled Search Console données pipeline into a Google Cloud project, pas an independent ranking-data source. Evidence for this claim Search Console bulk data export sends daily performance data to BigQuery in a configured Google Cloud project. Scope: Search Console bulk export; setup, permissions, quotas, and supported properties follow Google's current documentation. Confidence: high · Verified: Google: Bulk data export Requêtes doit respect the documented tables, keys, and privacy/aggregation behavior. Evidence for this claim Bulk export uses site-impression, URL-impression, and export-log tables with documented schemas. Scope: Google's published Search Console export schema; aggregation and privacy handling still affect analysis. Confidence: high · Verified: Google: Bulk export tables

Daniel Waisberg, a Search Advocate at Google, describes it plainly: “A bulk données export is a scheduled daily export of votre Search Console performances données. It inclut tout the données utilisé by Search Console to generate performances reports. Données is exported to Google BigQuery, où vous pouvez run SQL requêtes pour avancé données analysis or même export it to un autre system.” (quoted in Moteur de recherche Journal).

The point is scale. The Search Console UI caps la plupart exports autour 1 000 rows and montre a rolling ~16-month window. The Search Console API donne vous plus but is encore capped and rate-limited. The bulk export removes the row ceiling entirely and lets vous decide how long to retain. Google’s propre line from the announcement, as reproduced by Moteur de recherche Land: “The daily données row limite ne fait pas impact ce données, so vous pouvez extract plus données en utilisant ce méthode,” and the feature “pourrait be particularly utile pour grand websites with tens of thousands of pages.”

Ce que données vous obtenir: the three tables

Everything lands in a dataset whose nom toujours starts with searchconsole. Three objects montrer up (Table guidelines and référence):

  1. searchdata_site_impression“Contient performances données pour votre property aggregated by property.” Key fields: data_date (“The day on qui the données in ce row was generated (Pacific Temps)”), site_url (domain properties utiliser the sc-domain: prefix), query, is_anonymized_query, country (ISO-3166-1 Alpha-3), search_type (web/image/video/news/découvrir/googleNews), device, impressions, clicks, and sum_top_position.
  2. searchdata_url_impression“Contient performances données pour votre property aggregated by URL.” Everything above, plus url (“The fully-qualified URL où the utilisateur eventually lands quand ils click the résultat de recherche”), is_anonymized_discover, a family of is_[search_appearance_type] boolean flags (e.g. is_amp_top_stories, is_job_listing, is_tpf_faq) so vous pouvez slice by rich-result type, and sum_position. Ce is the granular table la plupart analysis runs on.
  3. ExportLog“A record of ce que données was enregistré pour que day. Failed exports ne sont pas recorded ici.” Fields inclure agenda (currently seulement SEARCHDATA), namespace (qui table was written), data_date, epoch_version (“An integer, where 0 is the first time data was saved to this table” — it increments quand Google plus tard revises a day’s données), and publish_time.

The anonymized-query caveat is the important un. Même ici, at the raw level, anonymized requêtes are pas revealed. As Google’s field description puts it, quand is_anonymized_query is vrai the query field “will be a zero-length string.” Leur metrics are encore aggregated into votre totals, but they’re jamais attributable to a spécifique term — exactly the même limitation the UI and the API have. Ce is a big deal at scale: in my Ahrefs study of GSC’s hidden terms, à travers 146 741 websites and roughly 9 billion clicks, 46,08% of tout clicks went to requêtes Google doesn’t disclose — and que study utilisé the Search Console API, qui “allows us to get all of the data—and there’s still a lot missing.” The BigQuery export doesn’t recover any of it. If someone tells you bulk export “finally shows you the hidden queries,” they’re wrong.

How to définir it up

The flow (Commencer a nouveau bulk données export):

  1. Créer or pick a Google Cloud project with billing enabled. Per Google: “Données is subject to Google Cloud storage and requête costs, but là is a free usage level.” Vous besoin billing on même to stay à l’intérieur the free tier.
  2. Enable the BigQuery API and the BigQuery Storage API in que project.
  3. Grant Google’s export service account accès. Ajouter search-console-data-export@system.gserviceaccount.com as a principal with two IAM roles: BigQuery Job Utilisateur (bigquery.jobUser) and BigQuery Données Editor (bigquery.dataEditor).
  4. In Search Console, go to Settings → Bulk données export. Paste the Cloud project ID (the ID, pas the project number), choisir a dataset nom, and choisir a dataset emplacement. Remarque the naming rule: “The dataset nom toujours starts with the string searchconsole, même quand vous customize it.” Si vous définir a partition-expiration policy on the export’s propre dataset, garder it at 14 days or plus long — Google documents a 14-day minimum, and going shorter is a documented échec causer. Leave the generated table schema untouched aussi; altering it is the autre documented façon to break the export (plus in Troubleshooting ci-dessous).
  5. Wait. Google dit the export traiter itself devrait begin dans à propos de a day of activation. “The premier export va se produire up to 48 hours après votre successful configuration in Search Console,” and que premier delivery contient seulement the day-of-export données — nothing from avant setup (voir the no-backfill section suivant). Après que it runs daily jusqu’à vous arrêter it.
Evidence for this claim Setup requires a billed Google Cloud project, BigQuery API and BigQuery Storage API, plus BigQuery Job User and BigQuery Data Editor roles for search-console-data-export@system.gserviceaccount.com. Scope: verified property and public web as applicable Confidence: high · Verified: Start a new bulk data export

Un practical expectation to définir: Search Console données lands with a two-day delay, so the la plupart recent day you’ll ever have is two days ago. Demander pour a 30-day range and vous effectively obtenir à propos de 28 days of usable données.

The no-backfill gotcha

Dire it out loud, parce que it burns personnes: activating the export ne fait pas pull in votre historical données. It starts from activation day and seulement accumulates forward. Ce is courant suffisant que Google’s propre community forum has multiple threads à propos de it — “How to backfill with historical data when Bulk data export is activated” (thread 300051568), thread 255704574, and thread 429248330. Antoine Eripret puts it bluntly in his practitioner deep-dive: “Vous pouvez’t obtenir historical données: si vous activate it today, you’ll have données from today.” The takeaway is simple — turn it on the day vous premier hear à propos de it, même si you’re pas ready to analyze anything yet, so the clock starts.

Ce que it costs, and how pas to obtenir surprised

The Google Cloud Blog post by Daniel Waisberg and Gaal Yahas sells the upside — “Si vous have a grand website, ce solution va provide plus requêtes and pages que the autre données exporting solutions” and “Search Console stores up to sixteen months of données; en utilisant BigQuery vous pouvez store as beaucoup données as it rend sense to votre organization” — but the cost mechanics are on vous.

As of ce writing, BigQuery’s free tier is roughly 10 GiB of storage free plus 1 TiB (~1 TB) of on-demand requête processing free per month; au-delà que it’s à propos de 6,25 USD per TiB processed and roughly 0,02 USD per GB stored per month (varies by region and storage class). Pricing changements, so vérifier the current numbers avant vous quote les to anyone. La plupart small-to-mid sites stay free or near-free.

The bills come from how vous requête, pas how beaucoup trafic vous have. Two choses matter:

  • Cost scales with requête/keyword diversity, pas raw trafic. As Trevor Fox puts it in his complet guide: “The volume of données que is plus a factor of keyword variety que it is search volume. A site with a low search volume pour lots of keywords va generate plus données que a site with lots of search volume pour a unique keyword.”
  • Don’t point a live dashboard at the raw tables. Ce is the classic horror story. Antoine Eripret documented Looker Studio scanning 23 TB in a unique day, autour €115, quand wired directement to the raw billion-row tables. Google’s propre BigQuery efficiency tips post dit the même in principle: pre-aggregate into summary tables, filter on the date partition in a WHERE clause, éviter SELECT *, définir budget alerts, and définir partition-expiration to auto-delete old partitions.

The fix is boring but effective: materialize votre requête results into petit permanent summary tables on a schedule, and point votre dashboards at ceux, pas at the raw export.

Querying: the rules que garder vous sane (and cheap)

From Google’s requête guidelines:

  • Toujours aggregate. “Données in the tables n’est pas guaranteed to be consolidated by date, URL, site, or quelconque combination of keys.” Translation: you’ll obtenir multiple rows pour the même day/URL/requête, so toujours SUM() votre metrics and GROUP BY votre dimensions. Jamais treat a unique row as a finished number.
  • Filter the date partition. “A bon façon to minimize requête costs is to utiliser a OÙ clause to limite the date range in the date partitioned table.”
  • Drop anonymized rows quand vous vouloir réel top requêtes. “An anonymized requête is reported as a zero-length string in the table” — so ajouter WHERE query != ''.
  • Position is zero-based. Les deux tables store position starting at 0, so average position is SUM(sum_top_position) / SUM(impressions) + 1 (ajouter the 1).

Google ships sample requêtes pour daily web-search stats, top mobile requêtes by country, Découvrir URLs by clicks, FAQ rich-result performances (is_tpf_faq = true), and brand-query tracking via REGEXP_CONTAINS. Commencer from ceux.

Managing and troubleshooting the export

From Manage and monitor bulk données exports:

  • Stopping isn’t instant. Settings → Bulk données export → Deactivate export. “Bulk exports will stop in the next 24 hours,” so un plus day of données may encore land après vous flip it off.
  • Two échec thresholds, pas un. “Search Console retains données from failed exports pour à propos de a week.” And then: “Search Console va arrêter trying to export données pour a donné date après à propos de a week of failed attempts, and après à propos de a month of failed export attempts, Search Console va arrêter the bulk export entirely.” So a sustained problem doesn’t simplement skip days — après ~a month it shuts the whole export off, and you’d have to définir it up à nouveau.
  • The schema-change trap (and the partition-expiration floor). Si vous alter the schema of an exported table, vous break the export. Google aussi exige au moins 14 days of partition expiration on the export dataset — définir it shorter and the export peut échouer. Leave ceux tables alone; construire votre propre derived tables à la place. (Autre courant causes of échec inclure exceeding votre Cloud project’s quota and revoking the service account’s accès.)
  • Utiliser the Tester report. There’s a “Test report” fonctionnalité que lets vous vérifier certain correctable problèmes — project ID/credentials, permissions — sans waiting pour the suivant scheduled run. Remarque it doesn’t force an immediate re-export; vérifier back roughly 24 hours plus tard to confirmer the fix took.
  • Search Console emails property owners quand export errors commencer and quand ils resolve, and Settings montre the status of the la plupart recent export attempt.

Où it sits: UI → API → bulk export

Think of three rungs on a ladder, chaque removing a limite the un ci-dessous it hit:

  • UI export — ~1 000 rows, ~16 months, aucun anonymized requêtes. Fine pour la plupart.
  • Search Console API — plus rows, encore capped and rate-limited, encore aucun anonymized requêtes. Bon pour ad-hoc and programmatic pulls.
  • Bulk données export — aucun row cap, retention vous contrôler, daily granular données, construit pour warehousing and joins. Encore aucun anonymized requêtes. Doesn’t backfill.

And a nuance older guides obtenir incorrect: you’re pas limited to un property per Cloud project anymore. Google plus tard allowed multiple properties into a unique project en utilisant distinct searchconsole_-prefixed dataset noms.

Ce que à propos de Bing?

As of ce writing, there’s aucun native equivalent. Bing Webmaster Outils doesn’t offer a first-party BigQuery/bulk export — qui is exactly pourquoi a market of third-party ETL connectors (Supermetrics, Improvado, Catchr, and others) exists to déplacer Bing Webmaster Outils données into BigQuery. Si Bing had a native pipe, que market wouldn’t. Que said, a connector isn’t guaranteed to replicate GSC’s propre export schema or daily-partition behavior field-for-field — vérifier quelconque connector’s documented scope avant assuming parity. So si vous vouloir Bing données in BigQuery alongside votre GSC export, budget pour a connector and vérifier ce que it en réalité delivers. (Confirmer ce is encore current avant citing it — Bing’s propre fonctionnalité définir peut modifier.)

Pour the broader context on où ce sits, voir the Moteur de recherche Outils hub and its walkthroughs of Recherche Google Console and Bing Webmaster Outils.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.