Skip to main content

The Anatomy of a Google Query - 2015

Here at AgencyAnalytics we spend A LOT of time answering the question: Why don’t your rankings match what I see? This blog post is meant shed light on some of the fundamental inner workings of Google. Lessons learned by scraping a few hundred million rankings.

How NOT to Verify a Ranking

Most people’s knee-jerk reaction is to simply visit Google.TLD (.ca,, etc.), type in a query and click “search”. This is NOT a valid way to verify a ranking. Even if your IP address location matches the location you have set within our tracking system; you are still experiencing personalization.

The True Purpose of Rank Tracking

The primary goal of rank tracking is not to match what your client is seeing at any given moment. This is a romantic idea that is simply not possible in 2015. This ship has sailed; the S.S. Personalizacion. The main goal is to strip away all search bias and consistently track a keyword’s performance over time much like a scientific experiment removes all unnecessary variables.

Back to the Basics

At it’s core, Google relies heavily on 4 very important variables. It is absolutely critical that you are aware of how your actions (or lack thereof) affect each of these variables:

  1. Data Center

  2. Personalization

  3. Location (levels: Country, Region, City)

  4. Language

1. Data Center

Google operates roughly 20 data centers around the world. Their database (index) contains information on 60 trillion individual pages. That’s 100 million gigabytes! Ideally an identical query to each of these data centers should return the exact same results. Unfortunately it’s simply impossible to keep 100 million gigabytes across 20 different locations in sync. This explains why anomalies can occur when tracking rankings. Thankfully our rank tracker attempts to sense these anomalies and retry in specific situations.

2. Personalization

Personalization is the process in which Google attempts to improve your search experience by analyzing your past search history. In a nutshell, your search results will not match my search results because your past search history is different from mine. This is bad for rank tracking. Personalization can bias your search results by tracking you via cookie or IP address. For this reason it is important to always disable personalization by using the “&pws=0” parameter.

Google’s Logic

  • is the pws=0 parameter specified

    • YES - disable all personalization

    • NO - enable personalization

3. Location

Location is by far the most misunderstood aspect of rank tracking. It’s particularly complicated when you consider that you can search from a location and target a different level of said location (ie Country, Region, City). If you are tracking rankings for a specific city, your rankings will generally match the results displayed to a random user within this city. If you are tracking rankings for a specific country, your rankings will NOT match the results displayed to a random user within this country. Again, the random user’s search results are biased based on their city location. You have chosen to target an entirely different geographic level (Country). A UULE code is an encoded geographic location. It’s the same code used when you change your location within the Google interface.

Google’s Logic

  • is a uule= parameter specified?

    • YES - set location to decoded value of parameter (Country, Region or City)

    • NO - is there a location set within the Google cookie?

      • YES - set location to cookie value

      • NO - is there a location associated with this ip address (not based on IP’s location)?

        • YES - set location to location associated with IP’s search history

        • NO - use location of IP address (always at the City level)

4. Langauge

Naturally, Google will serve you drastically different results based on your language.

Google’s Logic

  • Is the hl= parameter specified?

    • YES - use language defined in parameter value

    • NO - Did this user’s browser send me a Accept-Language http request header?

      • YES - use language defined in header value

      • NO - use default language associated with Google TLD

Let’s Recap

In order to properly and reliably verify a ranking, it’s recommended you use the follow format:<TLD>/search?q=<query>&pws=0&uule=<uule code>. Our software makes this extremely easy. Simply hover over a ranking and click the “SERP” link. This will redirect you to Google using all the correct parameters.

Written by

Blake Acheson

Blake has been building Marketing SaaS Applications for over 20 years. A Cloud-Native Engineer passionate about containerization, automation and scalability.

Get Started for Free

Try AgencyAnalytics risk-free for 14 days. No credit card required.

AgencyAnalytics Dashboard Preview