Using filters in Google Analytics to report on SERP ranking positions

This article describes four simple steps required to set up Google Analytics to report on the ranking position of a keyword within Google’s SERPs. Firstly, it is important to note that this will only report ranking positions going forward, as it is recommended that a new profile is set up on the existing domain.

STEP 1 – Include organic search results

First you need to set up a new profile (if not done already), and then we need to set up a custom filter, to filter all trafic by organic traffic. This will ensure the profile only shows data from natural organic search results.

STEP 2 – Include Google search results

Secondly, we need to set up another custom filter, to filter all organic traffic by Google traffic. This will ensure the profile now only shows data from Google’s organic search results.

STEP 3 – Extract rank position

Thirdly, we need to set up an advanced custom filter, to filter all Google organic traffic and extract the ranking position from the referral string. This can be achieved by using the following code:

  • Campaign Term        :        (.*)
  • Referral                  :        [?#&]cd=([^&]+)&
  • User Defined            :        $A1 (Position: $B1)

STEP 4 – Filter order

Lastly, please ensure the order of filters appears as below and as described in the above steps. This is because the filter will not work correctly otherwise.

Once this is finally all done, now log in to the new Google Analytics profile and hit “visitors” and “user defined”. There you should see the ranking position of all keywords. Please note, some of the results still will report “not set”, so the data is not flawless. However, for those that do work, I can verify that the ranking position is very accurate.

Vipul Halai
Senior SEO Programmer

One Response to Using filters in Google Analytics to report on SERP ranking positions

  1. m3

    … how i can make that in the new analytics version?

Leave a Reply

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