How to Find Informational Intent Queries Using BigQuery

Photo of author
Written By Ed Roberts

A so-called SEO expert. 

A quick explainer on informational queries

If you’re new to SEO or maybe have been living under a rock (although I’m sure even SEOs living under a rock are aware of query intent) then let’s quickly run through the concept.

Broadly speaking, all searches that occur on Google and other search engines can be bucketed into four different kinds of intent:

Navigational: Using the search bar to navigate directly to a site or page (usually this will be branded search)

Commercial: Comparing or researching products or services (best x, brand a vs brand b for example)

Transactional: Looking to directly purchase, download or commit another key action (buy x online, download x for example)

Informational: Answer a question or learn more about a topic (how do I do x, what is x etc)

Now, informational searches are incredibly important to SEO as they make up at least 80% of all searches according to this only slightly outdated source from 2008 😅. However, more recent studies – like this one from Conductor on e-commerce search trends found a large shift towards informational intent queries as well.

Informational queries usually (though not always) take the form of questions – this makes it easy to identify them by filtering for interrogative words at the start of the query. These words include:

  • Who: Used to ask about a person or group of people
  • What or which: Used to ask about things
  • When: Used to ask about time
  • Where: Used to ask about places
  • Why: Used to ask about reasons
  • How: Used to ask for more details

As an SEO you will want to uncover informational queries your site already ranks for – either to identify new content opportunities or to optimise existing content by adding FAQs or other sections to a page to answer common customer questions. This is a really powerful way to help ensure your providing users with a satisfying experience. If you want to take it a step further I definitely recommend using a tool like AlsoAsked to mine People Also Ask data for even more great ideas around common customer questions.

Identifying Informational Queries

Directly in the GSC UI

You can quickly identify informational queries in the GSC UI by using the query filter with > custom regex > regex matches > who|what|where|when|why|how

Now if you’re working with a much larger site and you’ve moved beyond the UI or even API and are now storing your data in BigQuery (the best option) then you may be wondering how to get this same data.

SQL Query for Informational Queries

WITH question_queries AS (
  SELECT 
    query,   
    SUM(impressions) AS impressions,
    SUM(clicks) AS clicks,
    SUM(clicks), SUM(impressions) AS ctr,
   ((SUM(sum_top_position) / SUM(impressions)) + 1.0) AS avg_position
  FROM `gsc-export-381016.searchconsole.searchdata_site_impression` 
  WHERE REGEXP_CONTAINS(LOWER(query), r'^(who|what|where|when|why|how)\s')
  GROUP BY query
)
SELECT 
  query,
  impressions,
  clicks,
  ROUND(ctr * 100, 2) AS ctr_percentage,
  ROUND(avg_position, 1) AS avg_position
FROM question_queries
ORDER BY impressions DESC;

Here’s what it does step by step:

  1. First, it creates a temporary table called question_queries using WITH (also called a CTE – Common Table Expression) that:
    • Looks at data from a Google Search Console table
    • Filters for queries that start with question words using REGEXP_CONTAINS
    • Groups the data by each unique query
    • Calculates total impressions, clicks, and average position for each query
  2. Then, from this temporary table, it selects:
    • The search query text
    • Total number of impressions
    • Total number of clicks
    • Click-through rate (CTR) as a percentage, rounded to 2 decimal places
    • Average position in search results, rounded to 1 decimal place
  3. Finally, it sorts the results by impressions in descending order (highest to lowest)

If your interested in exploring your GSC data further in BigQuery check out my SQL recipe for measuring traffic from anonymised queries.

Leave a Comment