Eines vorab: Der hier beschriebene Weg, um 404-Seitenaufrufe eines WordPress-Blogs in Google Analytics zu tracken, funktioniert komplett ohne Plugin.

Google Analytics Code in WordPress einbauen

Zunächst einmal benötigen wir den Standard-Tracking-Code von Google Analytics. Diesen findet ihr im Analytics-Account, indem man im Bereich „Verwalten“ unter „Property“ auf „Tracking-Information“ und dort auf „Tracking-Code“ klickt. Der Standard-Code sieht so aus:

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-xxxxxxx-x', 'auto');
  ga('send', 'pageview');
</script>

Die Zeile ga('send', 'pageview'); sorgt dafür, dass jeder Seitenaufruf an Analytics übermittelt wird. Standardmäßig wird dabei die aktuelle URL der Seite übermittelt, man kann jedoch auch einen eigenen Seiten-Namen vergeben. Dies tun wir nun, um die 404-Seiten zu „markieren“. Ich nutze den Conditional Tag is_404 von WordPress um zu prüfen, ob eine 404-Seite angezeigt wird. Wenn dies der Fall ist, dann lesen wir die aktuelle URL auf und hängen ein ?error=404 an. Wenn nicht, wird die pageview-Zeile wie im Stanard-Code ausgeben.

<?php
  if ( is_404() ) {
    echo "ga('send', 'pageview', '" . $_SERVER['REQUEST_URI'] . "?error=404');";
  } 
  else {
    echo "ga('send', 'pageview');";
  } 
?>		

404-Fehlerseiten in Google Analytics filtern

Möchte man nun die Seitenaufrufe von Fehlerseiten analysieren, so muss man im Google-Analytics-Account unter „Verhalten“ -> „Website-Content“ -> „Alle Seiten“ nach „error=404“ suchen um zu sehen, wie oft eine bestimmte URL aufgeufen wurde. Ebenso kann man einen Alert erstellen, um per E-Mail informiert zu werden, wenn die Anzahl der 404-Seitenaufrufe eine bestimmte Zahl übersteigt.

Weitere Anpassungen des Google Analytics Trackingscodes für Wordperss

Neben der oben beschriebenen Anpassung empfehle ich zudem noch eine weitere Anpassung. Damit ihr euren Traffic nicht künstlich nach oben treibt, indem ihr selbst ständig auf eurer Website herumsurfst, würde ich diese Aufrufe vom Tracking ausschließen. Auch hierbei kommt der Conditional Tag von WordPress zum Einsatz: Ich prüfe, ob ein User in WordPress eingeloggt ist. Nur wenn dies nicht der Fall ist, dann gebe ich den Analytics-Zeile aus, die die Property-ID enthält (denn ohne diese Angabe wird keine Info ins Google-Konto übermittelt).

Und zu guter Letzt füge ich noch die Zeile ga('set', 'anonymizeIp', true); ein, damit der Tracking-Code dem deutschem Datenschutzgesetz entspricht. Insgesamt sieht mein Analytics-Code für eine WordPress-Installation also so aus:

<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

   <?php
   if (!is_user_logged_in()) {
      echo "ga('create', 'UA-xxxxxxx-x', 'auto');"; 
   } 
   else {
      echo "//do not track";
   }
   ?>

   <?php
   if ( is_404() ) {
      echo "ga('send', 'pageview', '" . $_SERVER['REQUEST_URI'] . "?error=404');";
   } else {
      echo "ga('send', 'pageview');";
   } 
   ?>	

ga('set', 'anonymizeIp', true);
</script>