Search Term Categorisation in Google Analytics
02/03/2011 | Written by | Categories: Analytics Set-up

Digging around to understand search marketing performance can be difficult.  A site may receive traffic from tens of thousands of unique search terms, too much data to effectively analyse.  As a result, it is difficult to know what search terms or types of search terms are important and performing well for your business (even with Weighted Sort).

Analysing this performance can be vital for understanding customer intent and making business decisions such as which search terms to invest in with PPC/SEO or where landing pages need to be developed.  So what are your options?

What people do currently

Web Analytics tools includes standard reporting that split search marketing performance into Paid and Natural Search or by Search Engine.  This is a great start but ultimately only provides limited insights as both options are very high level segmentations.

It is already fairly common practice to split search terms into brand and non-brand.  There are numerous blog posts out there describing how you can track brand search terms using Filters or create Advanced Segments for brand and non-brand search terms.  This is usually done through the use of often quite simple Regular Expressions as demonstrated in this post on tracking non-brand keywords.

Once you have your filters or advanced segments in place, you have another level of segmentation for understanding the performance of your search marketing.  But still, it is another binary segmentation and can be slightly unwieldy to apply.  What if there was a better way???

My recommended approach

I recommend taking these existing approaches further, creating not two but between four and eight categories.  And to populate a campaign variable such as Campaign Name with the names of these different search term categories instead of creating each category individually using filters or segments.

By doing this, comparisons are much simpler as all categories can be viewed in a single report and data can easily be viewed for a single category only.  All of the existing features of Google Analytics can be applied to the data – drilling through or displaying secondary dimensions, creating custom reports, pivot tables, data visualisation, filters, etc.  Basically you get a mid level of segmentation for your search terms that allows you to understand performance and extract insights to drive your business performance.

The method I am recommending is to create a profile filter for each search term category, based on the values for the search term, to populate another variable with the search term category name.  For organic search, the Name/Campaign and Ad Content fields are not currently populated and can be used for this purpose.  It is more difficult for paid search if you wish to keep Adwords campaign information but there are workarounds.

A regular expression (LunaMetrics has published an excellent e-book on Regular Expressions for Google Analytics) needs to be created for each category but I have found this to be fairly straight forward in most cases – just list the relevant terms for that category and use the pipe “|”as an OR separator.  Other times, you can get around the multiple mis-spellings and variations issue using something simple e.g. “L3” captures all versions of L3 Analytics brand term.  Occasionally you need to get more creative but remember, this is web analytics and data doesn’t need to be 100% accurate to be useful – if some search terms aren’t in the right category, it is not the end of the world.

You do also need to have a clear hierarchy in place as search terms can meet the definition for multiple categories.  Just define in advance that if a search term is both a branded and a product search term, which category it is placed in.

Using this approach with WooThemes

I was reviewing the Google Analytics configuration for the WooThemes website – this is a business built around supplying themes for WordPress and other CMS platforms.  They get decent search engine traffic levels with over 10k unique search terms a month.  The search terms for this website could be categorised as follows:

List of Search Term Categories for WooThemes

Note that with this categorisation hierarchy, any search term that contains a theme name will fall into the Theme bucket, even if it also contains “WooThemes WordPress” – it is set up this way as I believe this to be most useful for WooThemes.  I don’t think there is ever only one best solution for categorisations, it just comes back to what data you can use for making business decisions.

Keeping things simple, I am creating these categories for organic search terms only and using the Campaign Name variable as the destination for the category names.  For this approach, you start with the category lowest in the hierarchy first and work your way up.  That way, search terms that match multiple categories end up in the highest level category.

The first filter doesn’t need a regular expression, as the default option you just populate the Name variable with the name of the category (e.g. Generic Terms) for all organic search terms.

Filter for Generic Terms

Subsequent filters though require a regular expression and for the filter to look at both the Search Term and another variable, e.g. Medium = Organic.  The filters used for WooThemes can be seen below.

Filter for Unbranded CMS Terms

The regular expression used here is an OR statement for the different CMS platforms – expression|wordpress|drupal|magento.  It doesn’t capture mis-spellings but should include the majority of relevant search terms.  Note how I have used “expression” rather than the complete “ExpressionEngine” to capture variations on this search term.

Filter for Brand Terms

This is a simple regular expression, basically every variation of a Brand search contains woo but there are very few other words that would match this pattern of letters, at least not words that people would use to access the WooThemes website.

Filter for Branded CMS Terms

It almost feels like I have cheated a little bit here.  This filter is not built off the Medium of “organic” but instead is a filter applied to search terms that were already captured in a previous filter for Unbranded CMS Terms.  If these search terms also contain “woo”, then the search term is reassigned to the Branded CMS Terms category.

Filter for Theme Terms

The final filter contains all of the different theme names, although in some cases I have just used elements of the theme name.

Note that if you want to test the results for any regular expression that you create, just use it as a filter on a keyword report.  If you select “containing”, these are the keywords included (do they all look appropriate?).  If you select “excluding”, these are keywords that won’t appear in this category (are they any there that you want to include?).

Once all filters are set up, check the filter order for that profile.  I have found that filters don’t always follow the order in which they were set up so make adjustments as required.  Then sit back and wait for the reports to populate with categorised search term data.

Something else you can segment by

This approach to grouping search terms triggered a memory though – that logic existed for grouping search terms by the number of keywords that they contain.  A bit of research and I found this post from LunaMetrics on Keyword Analysis by Number of Terms.  Just note though that the regular expression that I found to work was

^(W*w+bW*){3}$ NOT ^(W*w+bW*){3}$

The exact same approach as above applies here.  You do need to choose a level beyond which search terms are grouped however many keywords they contain e.g. 5+.  This is the filter that you create first without any regular expression required.

Filter for 5+ keyword Terms

Then create a filter for each level of keywords within the search term as can be seen in this filter for search terms containing 2 keywords.

Filter for 2 keyword Terms

In this example, I have used Campaign Content as the field to populate with the category name as this variable is also not currently used by organic search.  However, there appears to be a bug in Google Analytics and I have not been able to populate anything into this field using a profile filter.  But as I said earlier, there are workarounds for this.

Next Time

While I would have loved to include everything I have thought of on this topic within this single post, it reads long enough already.  I am therefore writing a follow-up post covering

  • tips & tricks around implementing and using search term categorisations
  • the sort of insights you can find in the data and business decisions this can drive
  • a request for Google to add this as standard feature in GA and how I envisage this working

This post on Insights from Search Term Categorisation is now available.

Of course, if this sounds amazingly useful for you and you would like some assistance setting up search term categorisations in your Google Analytics account, please contact L3 Analytics on 07843617347 or

3 responses to “Search Term Categorisation in Google Analytics”

  1. Peter,

    Really liked the your breakdown of not just brand, but the different type of brand as well

Leave a Reply

Your email address will not be published. Required fields are marked *

Looking to improve your digital analytics or conversion rate optimisation?
Contact us today on +44 (0)20 7148 5970

Alternatively, come visit us in London and we’ll buy the coffee!
Get in touch
Leave us a message
Use the form below to leave us a message.

Lindsey Street