There are a few possible explanations:

  • Are your pages tagged correctly?
    If you click on your website in a search result, and look at your page source, can you see the Piwik tracking code? Make sure the Piwik tracking code is installed on all the pages you want to track, and is not within an iframe. We advise to put the Piwik code just before the tag.
  • Are you using a redirect on your website landing page?
    If you are using a redirect, the visitor browser may lose the referer information. If you are tracking campaigns, and the landing page has a redirect, the URL loaded after the redirection will have lost the URL parameters. Make sure that your visitors arrive directly on the page with the Piwik tracking code installed.
  • Piwik only records 1 referer by visit, which means that only the first referer used to access the website will be recorded.
    If you search for a keyword in a search engine, click on your website in the search engine results, and land on a page with the Piwik tracker, you may expect to see the keyword in your Piwik reports.
    However, if you visited your website less than 30 minutes ago, Piwik will recognize you as an known visitor on the website, will record your page view, but will not update your visit referer. Piwik only record the first referer of a visit. When testing Piwik and search engine detection, make sure you make the test more than 30 minutes after your last page view on your website.
  • Check that the Piwik domain name in your Javascript tracking code is correct (this URL is in the second line of the Piwik tracking code). There have been cases of missing referrers when the Piwik JS code in the pages points to a URL that returns a 302 response instead of the final destination. It seems that some webserver compromise the tracking request when such redirects occur. Check in particular if the URL (doesn’t) contains “www.”. Also, if the server does an automatic redirection from http to https which also affects tracking requests to piwik.php, it might create problems such as missing referer data. Make such any http->https redirection excludes piwik.php requests.