Artikel · 9 oktober 2026

Search Console-export naar BigQuery in 6 stappen, met SQL

Hoe zet je de bulk-export van Search Console aan, en hoe maak je er tabellen van die je kunt gebruiken? Zes stappen, met de SQL die ik op de export van een kleine zakelijke site heb getest.

Geschreven door Ferry Jansen
Bijgewerkt op 9 oktober 2026
Hoort bij stap 1 van de SEO/GEO-gidsMeten op orde ← Terug naar stap 1
Kort antwoord

Je zet de bulk-export aan in Search Console onder Instellingen, nadat je in Google Cloud een project met BigQuery hebt klaargezet en het account waarmee Search Console zelf schrijft (een serviceaccount) daar twee rollen hebt gegeven. Vanaf dan schrijft Search Console elke dag je prestatiegegevens naar BigQuery. Met twee opvragingen in SQL maak je daar een tabel met cijfers per dag per pagina en een per dag per zoekterm per pagina van.

In het rapport Prestaties van Search Console zie je hoogstens zestien maanden terug,1 en een tabel toont hoogstens 1.000 rijen.2 De bulk-export schrijft je prestatiegegevens elke dag naar BigQuery,3 de database van Google Cloud, waar ze blijven staan tot je zelf een vervaltermijn instelt.4

Als voorbeeld gebruik ik een kleine zakelijke site die ik meet, waar de export sinds juni 2026 aanstaat. In dit stuk zet je hem stap voor stap aan, vul je de historie van daarvoor aan en maak je er dagtabellen van, tabellen met één regel per dag per pagina of per dag per zoekterm per pagina. De SQL daarvoor kun je downloaden, en ik heb hem op de export van die site getest.

Wat je nodig hebt

  • Toegang. Een property is in Search Console de site of het domein waarvoor je de gegevens ziet. Je moet eigenaar zijn van die property.5 In Google Cloud heb je een project nodig met facturering en BigQuery,6 en het recht om in dat project rollen toe te kennen.
  • Gereedschap. Een browser voor Search Console en de Google Cloud-console. Voor stap 2 kun je ook de opdrachtregel van Google Cloud gebruiken (gcloud). Voor de historie in stap 5 schrijf je zelf een script voor de Search Console API; dat staat niet in de download.
  • Kosten. Opslag en opvragingen vallen onder de kosten van Google Cloud, met een gratis gebruiksniveau.7 Voor BigQuery is dat 1 TiB (ruim 1.000 GB) aan opvragingen8 en 10 GiB (ruim 10 GB) opslag per maand.9 Op 9 oktober 2026 was de export van de voorbeeldsite, met gegevens van 18 juni tot en met 6 oktober, 0,25 MB groot, en de drie opvragingen uit stap 6 lazen er samen minder dan 0,2 MB uit.10
  • Tijd. Het instellen gaat via een paar schermen. Daarna wacht je op de eerste export, die binnen 48 uur volgt.11

1. Maak een Google Cloud-project met BigQuery

Een project is in Google Cloud de map waarin je diensten, rechten en kosten bij elkaar houdt. BigQuery bewaart de export daarin in een dataset, een verzameling tabellen.

  1. Open de Google Cloud-console en maak een nieuw project, of kies een bestaand project. Noteer het project-ID, de unieke naam van het project in kleine letters, cijfers en streepjes, die je in stap 3 nodig hebt.
  2. Koppel onder Facturering een factuuraccount aan het project.
  3. Zet onder API’s en services de BigQuery API aan.

Controle. Open BigQuery in de console. Het project staat in de verkenner aan de linkerkant.

2. Geef het serviceaccount van Search Console twee rollen

Een serviceaccount is een account voor een programma in plaats van een persoon. Search Console schrijft de export met zijn eigen serviceaccount, search-console-data-export@system.gserviceaccount.com, en dat moet in jouw project tabellen mogen aanmaken en vullen. Google noemt daarvoor twee rollen, BigQuery Job User en BigQuery Data Editor.12

  1. Ga in de Google Cloud-console naar IAM en beheer, IAM, en kies Toegang verlenen. IAM is het deel van Google Cloud waar je rechten beheert.
  2. Vul bij nieuwe principals het account search-console-data-export@system.gserviceaccount.com in.
  3. Kies de rollen BigQuery Job User en BigQuery Data Editor, en sla op. Toont de console de namen in het Nederlands, zoek dan op bigquery.jobUser en bigquery.dataEditor.

Ik doe dit met twee opdrachten in de opdrachtregel. Vervang jouw-project door je project-ID.

gcloud projects add-iam-policy-binding jouw-project --member="serviceAccount:search-console-data-export@system.gserviceaccount.com" --role="roles/bigquery.jobUser"
gcloud projects add-iam-policy-binding jouw-project --member="serviceAccount:search-console-data-export@system.gserviceaccount.com" --role="roles/bigquery.dataEditor"

De rollen geef je in Google Cloud, en in Search Console voeg je dit account niet toe als gebruiker.

Controle. Op de pagina IAM staat het account met beide rollen. In de opdrachtregel zie je hetzelfde met gcloud projects get-iam-policy jouw-project.

3. Zet de export aan in Search Console

  1. Open in Search Console de property en ga naar Instellingen, Bulksgewijze gegevensexport (Bulk data export).13
  2. Vul het project-ID uit stap 1 in, niet het projectnummer.
  3. Kies de naam van de dataset. Standaard is dat searchconsole.14 Ik houd die naam aan, zodat de SQL uit stap 6 zonder aanpassing van de dataset werkt.
  4. Kies de locatie van de dataset en zet de export aan.

Controle. Binnen 48 uur volgt de eerste export,11 en dan staan de tabellen uit stap 4 in de dataset.

4. Controleer de eerste export

Na de eerste export staan er drie tabellen in de dataset.

TabelWat erin staat
searchdata_site_impressionPrestaties van de hele property, per zoekterm, land en apparaat
searchdata_url_impressionPrestaties per URL, per zoekterm, land en apparaat
ExportLogEen regel per gelukte export

Google beschrijft de eerste tabel als gegevens per property15 en de tweede als gegevens per URL.16 ExportLog bevat een regel voor elke gelukte export naar een van de twee.17

Elke dag komt er per tabel een nieuwe dag bij, in de kolom data_date. De kolom search_type zegt uit welk deel van Google de gegevens komen, zoals WEB voor de gewone zoekresultaten.

Wat gebeurt er met anonieme zoekopdrachten?

Google schrijft dat je in de export alle prestatiegegevens ziet, “with the exception of anonymized queries”.18 In de beschrijving van de tabellen staat dat een zeldzame zoekopdracht, een anonieme zoekopdracht, een vlag krijgt en dat het veld met de zoekterm dan leeg is.19

De rij staat er dus, met klikken en vertoningen, maar zonder zoekterm. Op de voorbeeldsite hoorden van 11 juli tot en met 6 oktober 2026 16 van de 20 klikken in Google Zoeken bij zo’n rij.20 Hoe groot het aandeel bij jouw site is, reken je uit met aandeel-anonieme-zoekopdrachten.sql.

Begint de export met terugwerkende kracht?

De export begint niet met terugwerkende kracht, en voor gegevens van vóór het instellen verwijst Google naar de Search Console API of naar de rapporten.21 Bij elke export die ik lees, bevatte de eerste levering precies één dag, twee tot vier dagen vóór die levering.22 Wat daarvoor ligt, haal je op in stap 5.

Verloopt je export na een tijd?

Volgens Google blijft de export bewaard, tenzij je een vervaltermijn instelt.4 Kijk daarom in BigQuery bij de details van de dataset of er een standaard verlooptijd voor tabellen staat. Bij één aangesloten organisatie stond die op 60 dagen, waardoor de tabel per property nooit meer dan 60 dagen bevatte.23

Staat er een verlooptijd, zet die dan uit via Details bewerken (Edit details) bij de dataset, en kijk ook bij de details van de tabellen zelf. Dagen die al verlopen zijn, komen niet terug. Wat binnen de laatste zestien maanden valt, haal je opnieuw op via de API in stap 5.

Controle. In ExportLog staat na de eerste export minstens één regel, en searchdata_url_impression bevat rijen met een data_date.

5. Vul de historie aan via de Search Console API

De Search Console API is de koppeling waarmee je met een script gegevens uit Search Console opvraagt. Ze geeft net als het rapport Prestaties tot zestien maanden terug, en levert per dag en per zoektype hoogstens 50.000 rijen.24 Bij dit stuk staat geen script; hieronder staat hoe mijn systeem het doet, zodat je het zelf kunt bouwen.

Mijn systeem haalt bij het aansluiten van een organisatie zestien maanden op en zet die in twee aparte tabellen naast de export, in dezelfde vorm. Het vraagt per dag op, in delen van 25.000 rijen, en vraagt door tot er geen rijen meer komen of de grens van 50.000 rijen voor die dag is bereikt.

  1. Vraag per dag de klikken en vertoningen op per zoekterm, pagina, land en apparaat. In deze vraag ontbreken de zeldzame zoekopdrachten.
  2. Vraag per dag ook de klikken en vertoningen per pagina op, zonder zoekterm. Dat is het echte totaal van elke pagina.
  3. Zet per pagina het verschil tussen het totaal en de som van de rijen met een zoekterm in één rij zonder zoekterm, met is_anonymized_query op waar. Zo heeft de historie dezelfde vorm als de export. Wil je de SQL uit stap 6 erop gebruiken, vervang dan de tabelnaam; dat heb ik niet getest.

Sluiten de API en de export op elkaar aan? Bij één aangesloten organisatie overlapten ze 58 dagen, en kwamen de klikken en vertoningen per pagina over die dagen precies overeen.25 Dat is één voorbeeld, op paginaniveau en voor de gewone zoekresultaten.

Controle. Je analyses gebruiken per dag één bron, de historie tot de eerste dag van de export en vanaf die dag de export, zodat geen dag twee keer telt. Een opvraging die de twee samenvoegt, zit niet in de download.

6. Maak de dagtabellen met de SQL

Je maakt twee dagtabellen, omdat de anonieme zoekopdrachten anders uit je totalen verdwijnen, en je controleert het aandeel anonieme zoekopdrachten. De download bestaat uit drie opvragingen (queries) in SQL.

  • dagtabel-per-pagina.sql telt per dag en per pagina de vertoningen en klikken in de gewone zoekresultaten, ook die van anonieme zoekopdrachten. Hij leest uit searchdata_url_impression.
  • dagtabel-per-zoekterm.sql doet hetzelfde per zoekterm, en laat de rijen zonder zoekterm weg.
  • aandeel-anonieme-zoekopdrachten.sql rekent uit welk deel van je vertoningen en klikken bij een anonieme zoekopdracht hoort. Hij leest uit searchdata_site_impression.

Alle drie filteren op search_type = 'WEB', de gewone zoekresultaten. Ze lezen alleen, maken geen tabel aan en veranderen niets in je dataset.

  1. Open BigQuery in de Google Cloud-console en start een nieuwe opvraging.
  2. Plak de inhoud van een bestand en vervang jouw-project door je project-ID. Heet je dataset anders dan searchconsole, pas dan ook die naam aan.
  3. Kies de periode in de regel met data_date. Standaard zijn dat de laatste 90 dagen. Wil je alles vanaf de eerste dag, haal die regel dan weg; hoe korter de periode, hoe minder gegevens BigQuery leest.
  4. Draai de opvraging. Wil je de tabel blijven gebruiken, sla de opvraging dan op als weergave (view). Een weergave draait de opvraging opnieuw telkens als je hem gebruikt, en volgt de export dus vanzelf.

De kolom gemiddelde_positie_gsc vraagt uitleg. De export bewaart per rij de som van de bovenste positie per vertoning, waarbij 0 de bovenste plek is.26

Google rekent de gemiddelde positie uit als die som gedeeld door de vertoningen, plus 1.27 Dat is een gemiddelde over alle vertoningen, en niet de plek die je in een SERP ziet, de pagina met resultaten bij één zoekterm.

Wat leverde de test op een kleine site op?

Ik heb de drie bestanden op 9 oktober 2026 gedraaid op de export van de voorbeeldsite, met als enige wijziging het project-ID. Van de laatste 90 dagen hadden er 88 gegevens, van 11 juli tot en met 6 oktober 2026.

BestandTabel in de exportRijenVertoningenKlikken
dagtabel-per-pagina.sqlper URL4631.08022
dagtabel-per-zoekterm.sqlper URL2974674
aandeel-anonieme-zoekopdrachten.sqlper property186120

Schuif opzij voor alle kolommen →

Eigen meting RankFellow · 36 pagina's · 11 juli tot en met 6 oktober 2026

Van de 22 klikken in de dagtabel per pagina stonden er 4 in de dagtabel per zoekterm.20 De andere 18 hoorden bij anonieme zoekopdrachten. Het zijn kleine aantallen, want het is een kleine site.

De tabel per URL telde 25% meer vertoningen dan de tabel per property.28 Google beschrijft de ene tabel als gegevens per URL en de andere als gegevens per property.16 Een verklaring is dat de tabel per URL elke pagina van je site in een SERP apart telt, en de tabel per property de site één keer.

Controle. De klikken in de dagtabel per pagina zijn minstens zo hoog als in de dagtabel per zoekterm, en het verschil zijn de anonieme zoekopdrachten. Haal totalen per pagina daarom uit de dagtabel per pagina, en totalen voor de hele site uit searchdata_site_impression.

Met deze tabellen staat de basis voor de rest van de SEO/GEO-gids. In stap 1, meten op orde lees je hoe ze samengaan met de rest van de meting, zoals de sleutelgebeurtenissen in GA4.

Veelgestelde vragen

Wat is Google BigQuery?
BigQuery is de database van Google Cloud waarin je grote tabellen bewaart en met SQL doorrekent. Search Console kan er met de bulk-export elke dag je prestatiegegevens naartoe schrijven. Daar blijven ze bewaard zolang je geen vervaltermijn instelt, en kun je ze combineren met andere gegevens, zoals die uit GA4.
Is Google Cloud gratis?
Google Cloud rekent kosten voor opslag en opvragingen, maar BigQuery heeft een gratis gebruiksniveau (free tier) van 1 TiB aan opvragingen en 10 GiB opslag per maand. Voor de bulk-export heb je wel een project met een gekoppeld factuuraccount nodig. Bij een kleine zakelijke site die ik meet bleef de export ruim binnen het gratis niveau. Van 18 juni tot en met 6 oktober 2026 groeide hij tot 0,25 MB.
Wat kost cloudopslag bij Google?
Voor BigQuery is de eerste 10 GiB opslag per maand gratis. Daarboven betaal je per GiB per maand, en de bedragen per regio staan op de prijspagina van BigQuery. Hoeveel ruimte een tabel inneemt, zie je in BigQuery bij de details van die tabel.
Hoe deel je toegang tot Search Console?
Een gebruiker voeg je toe in Search Console onder Instellingen, Gebruikers en rechten. Voor de bulk-export hoef je daar niemand toe te voegen. Je moet zelf eigenaar van de property zijn, en het serviceaccount van Search Console krijgt zijn rechten in Google Cloud, met twee rollen in het project waar de export naartoe gaat.

Bronnen en eigen metingen

  1. 1Google Search Central (2018). Introducing the new Search Console. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  2. 2Google Search Console Help. About Search Console data. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  3. 3Google Search Console Help. About bulk data export of Search Console data to BigQuery. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  4. 4Google Search Console Help. Start a new bulk data export. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  5. 5Google Search Console Help. Manage and monitor bulk data exports in Search Console. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  6. 6Google Search Console Help. Start a new bulk data export. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  7. 7Google Search Console Help. Start a new bulk data export. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  8. 8Google Cloud. Free Google Cloud features and trial offer. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  9. 9Google Cloud. Free Google Cloud features and trial offer. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  10. 10Eigen meting RankFellow · 18 juni tot en met 6 oktober 2026. 0,25 MB was de bulk-export van een kleine zakelijke site groot na 109 dagen met gegevens; de drie opvragingen uit dit stuk lazen er samen minder dan 0,2 MB uit.
  11. 11Google Search Console Help. Start a new bulk data export. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  12. 12Google Search Console Help. Start a new bulk data export. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  13. 13Google Search Console Help. Start a new bulk data export. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  14. 14Google Search Console Help. Start a new bulk data export. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  15. 15Google Search Console Help. Table guidelines and reference. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  16. 16Google Search Console Help. Table guidelines and reference. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  17. 17Google Search Console Help. Table guidelines and reference. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  18. 18Google Search Console Help. About bulk data export of Search Console data to BigQuery. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  19. 19Google Search Console Help. Table guidelines and reference. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  20. 20Eigen meting RankFellow · 36 pagina's · 11 juli tot en met 6 oktober 2026. 4 van de 22 klikken uit de dagtabel per pagina stonden ook in de dagtabel per zoekterm; de andere 18 hoorden bij anonieme zoekopdrachten.
  21. 21Google Search Console Help. Start a new bulk data export. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  22. 22Eigen meting RankFellow · juni 2025 tot september 2026. 1 dag stond er in de eerste levering van de bulk-export, twee tot vier dagen vóór die levering, bij elke export die ik meet.
  23. 23Eigen meting RankFellow · augustus tot oktober 2026. 60 dagen was de standaard verlooptijd op de dataset van één organisatie, waardoor de tabel per property nooit meer dan 60 dagen bevatte.
  24. 24Google Search Central. Getting your performance data. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  25. 25Eigen meting RankFellow · 1.673 pagina's · januari tot maart 2026. 0% verschil in klikken en vertoningen per pagina tussen de koppeling en de bulk-export, over 58 overlappende dagen bij één organisatie.
  26. 26Google Search Console Help. Table guidelines and reference. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  27. 27Google Search Console Help. Table guidelines and reference. Documentatie, engels. Gecontroleerd op 9 oktober 2026.
  28. 28Eigen meting RankFellow · 11 juli tot en met 6 oktober 2026. 25% meer vertoningen in de tabel per URL dan in de tabel per property (1.080 tegenover 861).

Verder in de gids

Zien wat Fellow voor jouw website zou voorstellen?