HomeDigital MarketingGet Started With GSC Queries In BigQuery

Get Started With GSC Queries In BigQuery

BigQuery has an a variety of benefits not discovered with different instruments relating to analyzing massive volumes of Google Search Console (GSC) information.

It permits you to course of billions of rows in seconds, enabling deep evaluation throughout large datasets.

This can be a step up from Google Search Console, which solely permits you to export 1,000 rows of information and should have information discrepancies.

You learn all about why try to be utilizing BigQuery as an search engine optimization professional. You discovered the best way to plug GSC with BigQuery. Knowledge is flowing!

Now what?

It’s time to begin querying the info. Understanding and successfully querying the info is essential to gaining actionable search engine optimization insights.

On this article, we’ll stroll by how one can get began along with your queries.

Understanding GSC Knowledge Construction In BigQuery

Knowledge is organized in tables. Every desk corresponds to a particular Google Search Console report. The official documentation may be very intensive and clear.

Nonetheless, if you’re studying this, it’s since you wish to perceive the context and the important thing parts earlier than diving into it.

Taking the time to determine this out signifies that it is possible for you to to create higher queries extra effectively whereas protecting the prices down.

GSC Tables, Schema & Fields In BigQuery

Schema is the blueprint that maps what every area (every bit of knowledge) represents in a desk.

You will have three distinct schemas introduced within the official documentation as a result of every desk doesn’t essentially maintain the identical kind of information. Consider tables as devoted folders that arrange particular kinds of info.

Every report is saved individually for readability. You’ve received:

  • searchdata_site_impression: Incorporates efficiency information in your property aggregated by property.
  • searchdata_url_impression: Incorporates efficiency information in your property aggregated by URL.
  • exportLog: every profitable export to both desk is logged right here.

A number of vital notes on tables:

  • You’ll discover within the official documentation that issues don’t run the way in which we anticipate them to: “Search Console exports bulk information as soon as per day, although not essentially on the similar time for every desk.”
  • Tables are retained ceaselessly, by default, with the GSC bulk export.
  • Within the URL degree desk (searchdata_url_impression), you’ve got Uncover information. The sector is_anonymized_discover specifies if the info row is topic to the Uncover anonymization threshold.

Fields are particular person items of knowledge, the particular kind of information in a desk. If this have been an Excel file, we’d seek advice from fields because the columns in a spreadsheet.

If we’re speaking about Google Analytics, fields are metrics and dimensions. Listed below are key information fields obtainable in BigQuery while you import GSC information:

  • Clicks – Variety of clicks for a question.
  • Impressions – Variety of instances a URL was proven for a question.
  • CTR – Clickthrough fee (clicks/impressions).
  • Place – Common place for a question.

Let’s take the searchdata_site_impression desk schema for example. It accommodates 10 fields:

Area Clarification
data_date The day when the info on this row was generated, in Pacific Time.
site_url URL of the property, sc-domain:property-name or the total URL, relying in your validation.
question The consumer’s search question.
is_anonymized_query If true, the question area will return null.
nation Nation from which the search question originated.
search_type Kind of search (net, picture, video, information, uncover, googleNews).
machine The machine utilized by the consumer.
impressions The variety of instances a URL was proven for a selected search question.
clicks The variety of clicks a URL acquired for a search question.
sum_top_position This calculation figures out the place your web site usually ranks in search outcomes. It appears to be like on the highest place your website reaches in several searches and calculates the typical.

Placing It Collectively

In BigQuery, the dataset for the Google Search Console (GSC) bulk export usually refers back to the assortment of tables that retailer the GSC information.

The dataset is known as “searchconsole” by default.

BigQuery search console tables

In contrast to the efficiency tab in GSC, it’s important to write queries to ask BigQuery to return information. To do this, it is advisable click on on the “Run a question in BigQuery” button.

Run SQL query option among three other options on the welcome screenScreenshot from Google Cloud Console, January 2024Run SQL query option among three other options on the welcome screen

When you do this, you must have entry to the BigQuery Studio, the place you’ll be creating your first SQL question. Nonetheless, I don’t advocate you click on on that button but.

access screen to the BigQuery Studio where you will be creating your first SQL query. Screenshot of BigQuery Studio, January 2024access screen to the BigQuery Studio where you will be creating your first SQL query.

In Explorer, while you open your undertaking, you will note the datasets; it’s a brand with squares with dots in them. That is the place you see you probably have GA4 and GSC information, as an illustration.

data set for search impression table data set for search impression table

While you click on on the tables, you get entry to the schema. You’ll be able to see the fields to substantiate that is the desk you wish to question.

For those who click on on “QUERY” on the high of the interface, you possibly can create your SQL question. That is higher as a result of it hundreds up some info you want in your question.

It should fill out the FROM with the right desk, set up a default restrict, and the date which you can change if it is advisable.

 If you click on “QUERY” at the top in the interface, you can create your SQL query. This is better because it loads up some information you need for your query.Screenshot from Google Cloud Console, January 2024 If you click on “QUERY” at the top in the interface, you can create your SQL query. This is better because it loads up some information you need for your query.

Getting Began With Your First Question

The queries we’re going to focus on listed here are easy, environment friendly, and low-cost.

Disclaimer: The earlier assertion relies on your particular state of affairs.

Sadly, you can’t keep within the sandbox if you wish to discover ways to use BigQuery with GSC information. You should enter your billing particulars. If this has you freaked out, concern not; prices must be low.

  • The primary 1 TiB per thirty days of question information is free.
  • You probably have a good finances, you possibly can set cloud billing finances alerts — you possibly can set a BigQuery-specific alert and get notified as quickly as information utilization expenses happen.

In SQL, the ‘SELECT *’ assertion is a robust command used to retrieve all columns from a specified desk or retrieve particular columns as per your specification.

This assertion lets you view the whole dataset or a subset based mostly in your choice standards.

A desk contains rows, every representing a novel file, and columns, storing completely different attributes of the info. Utilizing “SELECT *,” you possibly can study all fields in a desk with out specifying every column individually.

As an illustration, to discover a Google Search Console desk for a particular day, you may make use of a question like:


FROM `yourdata.searchconsole.searchdata_site_impression`

WHERE data_date="2023-12-31"


You at all times have to guarantee that the FROM clause specifies your searchdata_site_impression desk. That’s why it is suggested to begin by clicking the desk first, because it mechanically fills within the FROM clause with the appropriate desk.

Essential: We restrict the info we load by utilizing the data_date area. It’s an excellent observe to restrict prices (together with setting a restrict).

results from the first query we made shown in a table formatresults from the first query we made shown in a table format

Your First URL Impression Question

If you wish to see info for every URL in your website, you’d ask BigQuery to tug info from the ‘searchdata_url_impression’ desk, choosing the ‘question’ and ‘clicks’ fields.

That is what the question would appear to be within the console:



SUM(clicks) AS clicks,





data_date = ‘2023-12-25’




clicks DESC



You at all times have to guarantee that the FROM clause specifies your searchdata_url_impression desk.

While you export GSC information into BigQuery, the export accommodates partition tables. The partition is the date.

Which means that the info in BigQuery is structured in a manner that enables for fast retrieval and evaluation based mostly on the date.

That’s why the date is mechanically included within the question. Nonetheless, you will have no information if you choose the most recent date, as the info might not have been exported but.

Breakdown Of The Question

On this instance, we choose the URL, clicks, and impressions fields for the twenty fifth of December, 2023.

We group the outcomes based mostly on every URL with the sum of clicks and impressions for every of them.

Lastly, we order the outcomes based mostly on the variety of clicks for every URL and restrict the variety of rows (URLs) to 100.

Recreating Your Favourite GSC Report

I like to recommend you learn the GSC bulk information export information. You ought to be utilizing the export, so I can’t be offering details about desk optimization. That’s a tad bit extra superior than what we’re overlaying right here.

GSC’s efficiency tab reveals one dimension at a time, limiting context. BigQuery permits you to mix a number of dimensions for higher insights

Utilizing SQL queries means you get a neat desk. You don’t want to know the ins and outs of SQL to make the perfect use of BigQuery.

This question is courtesy of Chris Inexperienced. You could find a few of his SQL queries in Github.



is_anonymized_query AS anonymized,

SUM(impressions) AS impressions,

SUM(clicks) AS clicks,

SUM(clicks)/NULLIF(SUM(impressions), 0) AS CTR









clicks DESC

This question gives insights into the efficiency of consumer queries over the past 28 days, contemplating impressions, clicks, and CTR.

It additionally considers whether or not the queries are anonymized or not, and the outcomes are sorted based mostly on the overall variety of clicks in descending order.

This recreates the info you’ll usually discover within the Search Console “Efficiency” report for the final 28 days of information, outcomes by question, and differentiating anonymized queries.

Be at liberty to repeat/paste your technique to glory, however at all times be sure you replace the FROM clause with the appropriate desk identify. In case you are curious to study extra about how this question was constructed, right here is the breakdown:

  • SELECT clause:
    • question: Retrieves the consumer queries.
    • is_anonymized_query AS anonymized: Renames the is_anonymized_query area to anonymized.
    • SUM(impressions) AS impressions: Retrieves the overall impressions for every question.
    • SUM(clicks) AS clicks: Retrieves the overall clicks for every question.
    • SUM(clicks)/NULLIF(SUM(impressions), 0) AS CTR: Calculates the Click on-By Charge (CTR) for every question. Using NULLIF prevents division by zero errors.
  • FROM clause:
    • Specifies the supply desk as mytable.searchconsole.searchdata_site_impression.
  • WHERE clause:
    • Filters the info to incorporate solely rows the place the data_date is inside the final 28 days from the present date.
  • GROUP BY clause:
    • Teams the outcomes by question and anonymized. That is vital since aggregations (SUM) are carried out, and also you need the totals for every distinctive mixture of question and anonymized.
  • ORDER BY clause:
    • Orders the outcomes by the overall variety of clicks in descending order.

Dealing with The Anonymized Queries

In keeping with Noah Learner, the Google Search Console API delivers 25 instances extra information than the GSC efficiency tab for a similar search, offering a extra complete view.

In BigQuery, you can even entry the data concerning anonymized queries.

It doesn’t omit the rows, which helps analysts get full sums of impressions and clicks while you mixture the info.

Understanding the quantity of anonymized queries in your Google Search Console (GSC) information is essential for search engine optimization execs.

When Google anonymizes a question, it means the precise search question textual content is hidden within the information. This impacts your evaluation:

  • Anonymized queries take away the flexibility to parse search question language and extract insights about searcher intent, themes, and so forth.
  • With out the question information, you miss alternatives to determine new key phrases and optimization alternatives.
  • Not having question information restricts your capability to attach search queries to web page efficiency.

The First Question Counts The Quantity Of Anonymized Vs. Not Anonymized Queries



WHEN question is NULL AND is_anonymized_query = TRUE THEN "no question"




AS annonymized_query,

rely(is_anonymized_query) as query_count



GROUP BY annonymized_query

Breakdown Of The Question

On this instance, we use a CASE assertion as a way to confirm for every row if the question is anonymized or not.

In that case, we return “no question” within the question area; if not, “question.”

We then rely the variety of rows every question kind has within the desk and group the outcomes based mostly on every of them. Right here’s what the consequence appears to be like like:

anonymized queries shown in resultsanonymized queries shown in results

Superior Querying For search engine optimization Insights

BigQuery allows complicated evaluation you possibly can’t pull off within the GSC interface. This implies you can even create personalized intel by surfacing patterns in consumer habits.

You’ll be able to analyze search developments, seasonality over time, and key phrase optimization alternatives.

Listed below are some issues try to be conscious of that can assist you debug the filters you place in place:

  • The date might be a difficulty. It might take as much as two days so that you can have the info you wish to question. If BigQuery says on the highest proper nook that your question would require 0mb to run, it means the info you need isn’t there but or that there isn’t a information in your question.
  • Use the preview if you wish to see what a area will return by way of worth. It reveals you a desk with the info.
  • The nation abbreviations you’re going to get in BigQuery are in a unique format (ISO-3166-1-Alpha-3 format) than you’re used to. Some examples: FRA for France, UKR for Ukraine, USA for the USA, and so forth.
  • Wish to get “fairly” queries? Click on on “extra” inside your question tab and choose “Format question.” BigQuery will deal with that half for you!
  • If you’d like extra queries instantly, I counsel you join the SEOlytics publication, as there are fairly a couple of SQL queries you need to use.


Analyzing GSC information in BigQuery unlocks transformative search engine optimization insights, enabling you to trace search efficiency at scale.

By following the perfect practices outlined right here for querying, optimizing, and troubleshooting, you will get probably the most out of this highly effective dataset.

Studying this isn’t going to make you an professional immediately. This is step one in your journey!

If you wish to know extra, try Jake Peterson’s weblog publish, begin practising totally free with Robin Lord’s Misplaced at SQL recreation, or just keep tuned as a result of I’ve a couple of extra articles coming!

You probably have questions or queries, don’t hesitate to tell us.

Extra assets:

Featured Picture: Tee11/Shutterstock


Most Popular