Common Causes of Self Referrals in Google Analytics
Undoubtedly Google Analytics is a powerful tool which provides great data and insights into user activity on your site. However some of the reports can commonly throw up more questions than answers. One of the most common issues that analytics users encounter are self referrals.
Self-referrals are any visits within the referral report that are attributed to your own domain. The reason that a self referral is an issue is that the incorrectly attributed visits are masking the true source and value of the traffic.
The exact cause of self referrals are quite often very tricky and time consuming to identify and resolve. A good way to reduce the time taken to resolve self referral issues is to first understand the main reasons that cause the issue.
What are the Common Causes?
Pages missing tracking code
One of the common causes for self-referrals is pages on your site that do not contain the Google analytics tracking code. For example, if a certain page on your site was missing the tracking code, users who visit that page whilst browsing your site and then return to another page that has the tracking code installed, will trigger your Web Analytics software to think that there has been another referral by your own website.
The resolution in this case is a fairly simple one; you should identify the pages that do not contain the relevant tracking code and advise that it is added ASAP. It is also important to note that any new pages developed as well as landing pages that are detached from the main site need to also be checked to ensure the tracking code is implemented.
Multiple domain and sub-domain tracking not set up correctly
Another major cause of self-referrals is sites that are not tracking across domains or sub-domains correctly. If the tracking code is not modified correctly then users accessing your site from a sub-domain or different domain will see their own site as the referral.
The resolution in this case is to amend the tracking code. It is also best practice to ensure that the analytics account has separate profiles set up to track sub domains correctly. Please refer to the following sources for more information on this:
Your website may appear as a self-referral if you are tracking across multiple domains and there is a redirect on any page. When the user is redirected, the Google Analytics Tracking Code records the referral source as website the user was redirected from. For example, if a website redirects from www.example.com to www.domain.com, Google Analytics will record the referral as www.example.com.
It is important to ensure that if any redirects are present on the site that could potentially cause this issue that parameters are passed with the redirect; this should prevent the self-referrals from redirects.
Pages dropping cookie data
Check through the site and ensure that the cookies are maintained. The pages that could potentially have the issue could be found by drilling into the self-referrals in analytics and looking at the specific landing pages and navigation paths to try and pinpoint the pages causing the issues.
Users timing out
Another potential cause of self-referrals is a user timing out. Especially now with modern browsers containing tabs, it is simple for a user to open a new tab, forget about their original tab until later and continue to browse after clicking back on it, the reason a self-referral will be registered is that more often than not the users inactivity for more than 30 minutes has caused a new session to be created upon their return to navigating the site.
Unfortunately this is something that can be controlled as it is a user's behaviour that causes the problem. You will generally find that the percentage of self-referrals for this reason is generally quite low.
Potentially there is a method available to combat this issue however it should only be used if the site does not have any other issues causing self-referrals as this method will mask all self-referrals. The method involves adding a snippet of code which ignores any referral from a specified domain and is simply added to the existing tracking code. Another alternative would be to extend the session length at page level to a longer period. This is done by adding a snippet of code:
_gaq.push(['_setSesssionCookieTimeout',xxxxxx]); the xxxx needs to be the amount of time in milliseconds you want the session to last for.