Esportazione GSC BigQuery

Come utilizzare l'esportazione BigQuery di Google Search Console per interrogare dati giornalieri non campionati di clic e impressioni senza limite di righe nell'interfaccia (le query anonimizzate rimangono comunque escluse), la differenza tra l'interfaccia e l'esportazione grezza, la configurazione, i meccanismi di costo e il problema del mancato backfill.

Prima pubblicazione: 27 giu 2026 · Ultimo aggiornamento: 3 ago 2026 · Advanced
Lingue

Per le proprietà web, l'esportazione bulk GSC BigQuery pianifica un dump giornaliero non campionato dei dati Performance—meno le query anonimizzate—in BigQuery, bypassando il limite di righe dell'interfaccia e la finestra di conservazione di 16 mesi. Crea tabelle a livello di sito, a livello di URL e di log di esportazione, non esegue il backfill, richiede la fatturazione e può comportare costi di interrogazione. Google ora supporta le proprietà di piattaforme Instagram, TikTok, X e YouTube, ma la documentazione attuale sulle piattaforme non promette supporto BigQuery per esse; non dare per scontato che questa pipeline si applichi agli account social.

TL;DR — L’esportazione bulk dei dati è un dump giornaliero, non campionato e pianificato dei tuoi dati Performance di Search Console in un dataset BigQuery — niente limite di esportazione di ~1 000 righe, niente muro di conservazione di ~16 mesi. Crea tre tabelle (searchdata_site_impression, searchdata_url_impression, ExportLog). Configurazione: un progetto Google Cloud con fatturazione attiva, API BigQuery + BigQuery Storage attive, due ruoli IAM concessi all’account di servizio di esportazione di Google, poi Impostazioni → Esportazione bulk dei dati in GSC. Non esegue il backfill, riporta ancora le query anonimizzate come stringhe vuote, e la prima esportazione arriva entro ~48 ore. Il costo è un vero livello gratuito più addebiti per query per TB — la fattura classica arriva dai dashboard che interrogano le tabelle grezze in tempo reale. Consideralo come il terzo gradino: UI → API → esportazione bulk.

La scala seguente è per le proprietà del sito web. Non è una prova che le proprietà delle piattaforme social o video supportino l’API di Search Console o l’esportazione BigQuery.

Cosa è realmente

L’esportazione bulk è una pipeline pianificata di dati di Search Console in un progetto Google Cloud, non una fonte indipendente di dati di ranking. 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 Le query devono rispettare le tabelle, le chiavi e il comportamento di privacy/aggregazione documentati. 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, un Search Advocate di Google, lo descrive chiaramente: “A bulk data export is a scheduled daily export of your Search Console performance data. It includes all the data used by Search Console to generate performance reports. Data is exported to Google BigQuery, where you can run SQL queries for advanced data analysis or even export it to another system.” (traduzione) «Un’esportazione bulk dei dati è un’esportazione giornaliera pianificata dei tuoi dati Performance di Search Console. Include tutti i dati utilizzati da Search Console per generare i report Performance. I dati vengono esportati in Google BigQuery, dove puoi eseguire query SQL per analisi avanzate dei dati o persino esportarli in un altro sistema.» (citato in Search Engine Journal).

Il punto è la scala. L’interfaccia di Search Console limita la maggior parte delle esportazioni a circa 1 000 righe e mostra una finestra mobile di ~16 mesi. L’API di Search Console ti dà di più ma è ancora limitata e soggetta a limiti di frequenza. L’esportazione bulk rimuove completamente il tetto delle righe e ti permette a te di decidere per quanto tempo conservare i dati. La dichiarazione di Google dall’annuncio, come riprodotta da Search Engine Land: “The daily data row limit does not impact this data, so you can extract more data using this method,” (traduzione) «Il limite giornaliero di righe di dati non incide su questi dati, quindi puoi estrarre più dati usando questo metodo», e la funzionalità “could be particularly helpful for large websites with tens of thousands of pages.” (traduzione) «potrebbe essere particolarmente utile per siti web di grandi dimensioni con decine di migliaia di pagine».

Quali dati ottieni: le tre tabelle

Tutto finisce in un dataset il cui nome inizia sempre con searchconsole. Tre oggetti compaiono (Linee guida e riferimento per le tabelle):

  1. searchdata_site_impression“Contains performance data for your property aggregated by property.” Key fields: data_date (“The day on which the data in this row was generated (Pacific Time)”), site_url (domain properties use the sc-domain: prefix), query, is_anonymized_query, country (ISO-3166-1 Alpha-3), search_type (web/image/video/news/discover/googleNews), device, impressions, clicks, and sum_top_position.
  2. searchdata_url_impression“Contains performance data for your property aggregated by URL.” Everything above, plus url (“The fully-qualified URL where the user eventually lands when they click the search result”), 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 you can slice by rich-result type, and sum_position. This is the granular table most analysis runs on.
  3. ExportLog“A record of what data was saved for that day. Failed exports are not recorded here.” Fields include agenda (currently only SEARCHDATA), namespace (which table was written), data_date, epoch_version (“An integer, where 0 is the first time data was saved to this table” — it increments when Google later revises a day’s data), and publish_time.

The anonymized-query caveat is the important one. Even here, at the raw level, anonymized queries are not revealed. As Google’s field description puts it, when is_anonymized_query is true the query field “will be a zero-length string.” Their metrics are still aggregated into your totals, but they’re never attributable to a specific term — exactly the same limitation the UI and the API have. This is a big deal at scale: in my Ahrefs study of GSC’s hidden terms, across 146 741 websites and roughly 9 billion clicks, 46,08% of all clicks went to queries Google doesn’t disclose — and that study used the Search Console API, which “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.

Come configurarlo

Il flusso (Start a new bulk data export):

  1. Crea o scegli un progetto Google Cloud con fatturazione attivata. Secondo Google: “Data is subject to Google Cloud storage and query costs, but there is a free usage level.” (traduzione) «I dati sono soggetti ai costi di archiviazione e query di Google Cloud, ma esiste un livello di utilizzo gratuito.» Devi avere la fatturazione attiva anche solo per restare nel livello gratuito.
  2. Abilita l’API BigQuery e l’API BigQuery Storage in quel progetto.
  3. Concedi l’accesso all’account di servizio di esportazione di Google. Aggiungi search-console-data-export@system.gserviceaccount.com come principal con due ruoli IAM: BigQuery Job User (bigquery.jobUser) e BigQuery Data Editor (bigquery.dataEditor).
  4. In Search Console, vai su Impostazioni → Esportazione dati in blocco. Incolla l’ID progetto Cloud (l’ID, non il numero di progetto), scegli un nome del set di dati e scegli una posizione del set di dati. Nota la regola di denominazione: “The dataset name always starts with the string searchconsole, even when you customize it.” (traduzione) «Il nome del set di dati inizia sempre con la stringa searchconsole, anche quando lo personalizzi.» Se imposti una policy di scadenza della partizione sul set di dati dell’esportazione stesso, mantienila a 14 giorni o più — Google documenta un minimo di 14 giorni, e andare più in basso è una causa di errore documentata. Lascia intatto anche lo schema della tabella generato; alterarlo è l’altro modo documentato per rompere l’esportazione (maggiori dettagli nella sezione Risoluzione dei problemi qui sotto).
  5. Aspetta. Google dice che il processo di esportazione stesso dovrebbe iniziare entro circa un giorno dall’attivazione. “The first export will happen up to 48 hours after your successful configuration in Search Console,” (traduzione) «La prima esportazione avverrà entro 48 ore dalla configurazione riuscita in Search Console,» e quella prima consegna contiene solo i dati del giorno dell’esportazione — niente di prima della configurazione (vedi la sezione successiva sul mancato backfill). Dopo di che viene eseguita quotidianamente finché non la interrompi.
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’aspettativa pratica da impostare: i dati di Search Console arrivano con un ritardo di due giorni, quindi il giorno più recente che avrai mai è due giorni fa. Se chiedi un intervallo di 30 giorni, in pratica ottieni circa 28 giorni di dati utilizzabili.

Il problema del mancato backfill

Dillo ad alta voce, perché brucia le persone: attivare l’esportazione non recupera i tuoi dati storici. Inizia dal giorno dell’attivazione e si accumula solo in avanti. Questo è abbastanza comune che il forum della community di Google ha più thread al riguardo — “How to backfill with historical data when Bulk data export is activated” (traduzione) «Come fare il backfill con dati storici quando l’esportazione dati in blocco è attivata» (thread 300051568), thread 255704574 e thread 429248330. Antoine Eripret lo dice senza mezzi termini nel suo approfondimento pratico: “You can’t get historical data: if you activate it today, you’ll have data from today.” (traduzione) «Non puoi ottenere dati storici: se lo attivi oggi, avrai dati da oggi.» Il messaggio è semplice — attivalo il giorno in cui ne senti parlare per la prima volta, anche se non sei ancora pronto ad analizzare nulla, così l’orologio parte.

Quanto costa e come non farsi sorprendere

Il post del blog Google Cloud di Daniel Waisberg e Gaal Yahas vende il lato positivo — “If you have a large website, this solution will provide more queries and pages than the other data exporting solutions” (traduzione) «Se hai un sito web di grandi dimensioni, questa soluzione fornirà più query e pagine rispetto alle altre soluzioni di esportazione dati» e “Search Console stores up to sixteen months of data; using BigQuery you can store as much data as it makes sense to your organization” (traduzione) «Search Console conserva fino a sedici mesi di dati; usando BigQuery puoi conservare tutti i dati che hanno senso per la tua organizzazione» — ma i meccanismi di costo dipendono da te.

Al momento in cui scrivo, il livello gratuito di BigQuery è circa 10 GiB di archiviazione gratuiti più 1 TiB (~1 TB) di elaborazione query on-demand gratuita al mese; oltre a questo, si parla di circa 6,25 USD USD per TiB elaborato e circa 0,02 USD per GB archiviato al mese (varia in base alla regione e alla classe di archiviazione). I prezzi cambiano, quindi verifica i numeri attuali prima di citarli a qualcuno. La maggior parte dei siti piccoli e medi rimane gratuita o quasi.

Le bollette arrivano da come interroghi, non da quanto traffico hai. Due cose contano:

  • Il costo scala con la diversità di query/parole chiave, non con il traffico grezzo. Come dice Trevor Fox nella sua guida completa: “The volume of data that is more a factor of keyword variety than it is search volume. A site with a low search volume for lots of keywords will generate more data than a site with lots of search volume for a single keyword.” (traduzione) «Il volume di dati è più un fattore della varietà di parole chiave che del volume di ricerca. Un sito con un basso volume di ricerca per molte parole chiave genererà più dati di un sito con molto volume di ricerca per una singola parola chiave.»
  • Non collegare una dashboard live alle tabelle grezze. Questa è la classica storia dell’orrore. Antoine Eripret ha documentato Looker Studio che scansiona 23 TB in un solo giorno, circa 115 €, quando collegato direttamente alle tabelle grezze con miliardi di righe. Il post sui suggerimenti di efficienza di BigQuery di Google dice lo stesso in linea di principio: pre-aggregare in tabelle di riepilogo, filtrare sulla partizione di data in una clausola WHERE, evitare SELECT *, impostare avvisi di budget e impostare la scadenza della partizione per eliminare automaticamente le vecchie partizioni.

La soluzione è noiosa ma efficace: materializza i risultati delle tue query in piccole tabelle di riepilogo permanenti secondo una pianificazione e punta le tue dashboard a quelle, non all’esportazione grezza.

Query: le regole che ti mantengono sano (ed economico)

Dalle linee guida sulle query di Google:

  • Aggrega sempre. “Data in the tables is not guaranteed to be consolidated by date, URL, site, or any combination of keys.” (traduzione) «I dati nelle tabelle non sono garantiti come consolidati per data, URL, sito o qualsiasi combinazione di chiavi.» Traduzione: otterrai più righe per lo stesso giorno/URL/query, quindi fai sempre SUM() delle tue metriche e GROUP BY delle tue dimensioni. Non trattare mai una singola riga come un numero definitivo.
  • Filtra la partizione di data. “A good way to minimize query costs is to use a WHERE clause to limit the date range in the date partitioned table.” (traduzione) «Un buon modo per minimizzare i costi delle query è usare una clausola WHERE per limitare l’intervallo di date nella tabella partizionata per data.»
  • Elimina le righe anonimizzate quando vuoi le vere query principali. “An anonymized query is reported as a zero-length string in the table” (traduzione) «Una query anonimizzata viene riportata come stringa di lunghezza zero nella tabella» — quindi aggiungi WHERE query != ''.
  • La posizione è a base zero. Entrambe le tabelle memorizzano la posizione a partire da 0, quindi la posizione media è SUM(sum_top_position) / SUM(impressions) + 1 (aggiungi l’1).

Google fornisce query di esempio per le statistiche giornaliere di ricerca web, le principali query mobili per paese, gli URL di Discover per clic, le prestazioni dei rich result FAQ (is_tpf_faq = true) e il monitoraggio delle query di marca tramite REGEXP_CONTAINS. Inizia da quelle.

Gestione e risoluzione dei problemi dell’esportazione

Da Gestire e monitorare le esportazioni di dati in blocco:

  • L’arresto non è immediato. Impostazioni → Esportazione dati in blocco → Disattiva esportazione. “Le esportazioni in blocco si fermeranno nelle prossime 24 ore,” quindi un altro giorno di dati potrebbe ancora arrivare dopo che l’hai disattivata.
  • Due soglie di errore, non una. “Search Console conserva i dati delle esportazioni fallite per circa una settimana.” E poi: “Search Console smetterà di tentare di esportare i dati per una data specifica dopo circa una settimana di tentativi falliti, e dopo circa un mese di tentativi di esportazione falliti, Search Console interromperà completamente l’esportazione in blocco.” Quindi un problema persistente non salta solo i giorni — dopo circa un mese disattiva l’intera esportazione, e dovresti configurarla di nuovo.
  • La trappola del cambiamento di schema (e il limite minimo di scadenza delle partizioni). Se modifichi lo schema di una tabella esportata, interrompi l’esportazione. Google richiede inoltre almeno 14 giorni di scadenza delle partizioni sul dataset di esportazione — se la imposti più breve, l’esportazione può fallire. Lascia stare quelle tabelle; crea invece le tue tabelle derivate. (Altre cause comuni di errore includono il superamento della quota del tuo progetto Cloud e la revoca dell’accesso dell’account di servizio.)
  • Usa il report di test. C’è una funzione “Test report” che ti permette di verificare alcuni problemi correggibili — ID progetto/credenziali, autorizzazioni — senza aspettare la prossima esecuzione programmata. Nota che non forza una riesportazione immediata; controlla di nuovo circa 24 ore dopo per confermare che la correzione abbia funzionato.
  • Search Console invia email ai proprietari delle proprietà quando iniziano gli errori di esportazione e quando si risolvono, e le Impostazioni mostrano lo stato del tentativo di esportazione più recente.

Dove si colloca: UI → API → esportazione in blocco

Pensa a tre gradini di una scala, ognuno dei quali rimuove un limite che quello sottostante ha raggiunto:

  • Esportazione UI — ~1 000 righe, ~16 mesi, nessuna query anonimizzata. Va bene per la maggior parte.
  • API Search Console — più righe, ancora limitata e con limiti di frequenza, ancora nessuna query anonimizzata. Buona per estrazioni ad hoc e programmatiche.
  • Esportazione dati in blocco — nessun limite di righe, conservazione che controlli tu, dati granulari giornalieri, progettata per data warehousing e join. Ancora nessuna query anonimizzata. Non fa backfill.

E una sfumatura che le guide più vecchie sbagliano: non sei più limitato a una proprietà per progetto Cloud. Google ha successivamente permesso più proprietà in un singolo progetto utilizzando nomi di dataset distinti con prefisso searchconsole_.

E Bing?

Al momento in cui scrivo, non esiste un equivalente nativo. Bing Webmaster Tools non offre un’esportazione in blocco/BigQuery di prima parte — che è esattamente il motivo per cui esiste un mercato di connettori ETL di terze parti (Supermetrics, Improvado, Catchr e altri) per spostare i dati di Bing Webmaster Tools in BigQuery. Se Bing avesse una pipeline nativa, quel mercato non esisterebbe. Detto questo, un connettore non è garantito che replichi lo schema di esportazione di GSC o il comportamento di partizionamento giornaliero campo per campo — controlla l’ambito documentato di qualsiasi connettore prima di assumere la parità. Quindi se vuoi i dati di Bing in BigQuery insieme alla tua esportazione GSC, metti in budget un connettore e verifica cosa consegna effettivamente. (Conferma che questo sia ancora attuale prima di citarlo — il set di funzionalità di Bing può cambiare.)

Per il contesto più ampio su dove si colloca, vedi l’hub Search Engine Tools e i suoi walkthrough di Google Search Console e Bing Webmaster Tools.

Add an expert note

Pin an expert quote

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