Andreas Hecht 18. August 2016

Behoben: Google Analytics und die Warnung “Leverage Browser Caching”

Google Analytics: “Leverage Browser Caching” Warnung beheben

Wenn du deine Website auf Speed optimierst und dabei nach den Richtlinien von GooglePage Speed Insights vorgehst, dann kennst du diese Warnung. Aktiviere »Leverage Browser Caching« für das Google Analytics Script. Oftmals ist es gerade diese Warnung, die es verhindert, die berühmten 100 von 100 PageSpeed Punkte zu erhalten. Genau da liegt das Problem, wie kann man eine Datei cachen, die sich nicht auf dem eigenen Server befindet? Wir bieten dir heute drei Lösungsansätze.

Google Analytics: “Leverage Browser Caching” Warnung beheben

Google Analytics ist eine feine Sache und immer noch das Tool der Wahl für jeden Nutzer, der den Traffic auf seiner Website genauestens unter die Lupe nehmen möchte. Allerdings kann das Script auch einiges Kopfzerbrechen bereiten, wenn man seine Website gern auf die berühmten 100 Punkte von GooglePage Speed optimieren möchte.

Problematisch ist, dass einige der von Google gewünschten und empfohlenen Punkte deinen Blog nicht beschleunigen werden und daher nicht empfehlenswert sind. Wenn du zum Beispiel dein komplettes CSS (zumeist mehrere Dateien inklusive der Plugin Stylesheets) in das HTML inline einfügst, dann gratuliert Google dir zu dieser Entscheidung.

Wenn du jedoch nur ein kleines und durch eine Versionierung hervorragend cachbares Stylesheet im Header hast und den Rest des CSS im Footer, dann versucht Google dir mitzuteilen, dass dies deine Seite langsamer macht. Natürlich ist das Gegenteil der Fall.

So verhält es sich auch bei dem Google Analytics Fehler. Das Script wird von Google für zwei Stunden gecacht. Google möchte jedoch einen längeren Zeitraum haben. Das erhöht die Geschwindigkeit deiner Website ebenfalls nicht.

google-analytics-leverage-browser-caching

Google bemängelt hier das zu kurze Caching des eigenen Analytics-Scripts und zeigt daher nur maximal 99 der begehrten 100 Punkte an. Um dieses Problem zu lösen, bieten sich mehrere Möglichkeiten an. Drei davon stelle ich Dir heute vor.

Bevor wir beginnen: Stelle sicher, dass du Browser Caching nutzt

Solltest du in deiner .htaccess-Datei noch keinen Code für ein Caching verwenden, dann wird es höchste Zeit. Denn einfaches Browser-Caching kombiniert mit einer Kompression der Dateien sorgt bereits für einen ordentlichen Geschwindigkeitsschub. Hier findest du den benötigten Code, füge ihn in die .htaccess im Hauptverzeichnis deines Blogs ein.

Lösung 1: Hoste das Analytics-Script lokal

Hoste das Script auf deinem Server. Diese Lösung ist ambivalent. Auf der einen Seite behebt es den Fehler sofort und du bekommst die 100 Punkte lässig. Auf der anderen Seite ist es etwas aufwändig, weil du sicherstellen musst, dass das Script upgedatet wird.

Mir erscheint diese Lösung als sehr gut, denn erstens wird das Script auf meinem Server schneller ausgeliefert, zweitens lässt es sich mit etwas Aufwand durchaus automatisch updaten – wenn du einen richtigen Cronjob auf deinem Hosting-Paket starten darfst.

Schritt 1: Analytics.js herunterladen

Lade dir das im Google Analytics Code verwendete Script auf deinen Computer herunter. Die URL ist die folgende:

https://www.google-analytics.com/analytics.js

Lade das Script in das Hauptverzeichnis von WordPress. Der neue Pfad zur Datei könnte dann so aussehen:

https://deinewebsite.de/analytics.js

Suche nun deinen Google Analytics Code im Theme oder in deinen Plugins. Solltest du ein Plugin einsetzen, dass deinen Analytics-Code dem Theme hinzufügt, deaktiviere das automatische Hinzufügen in dein Theme. Ansonsten suche in der header.php oder der footer.php. Eventuell wirst du auch in der functions.php deines Themes fündig.

Ersetze die Original-URL gegen deine URL. Siehe Script:

Füge den bearbeiteten Code in den Footer deines Themes ein – in die footer.php oberhalb oder unterhalb von wp_footer();. Lade die Datei anschließend wieder in deinen Theme-Ordner hoch.

Schritt 2: Erstelle ein Script, das dein lokales Script aktuell hält

Erstelle eine leere Datei und nenne sie analytics-update.php. Füge den folgenden Code in die Datei ein.

Nun musst du diese Update-Datei noch um den absoluten Pfad zu deiner Google-Analytics-Datei ergänzen. Hierzu muss Zeile 6 der PHP-Datei ergänzt werden.

Um den absoluten Pfad zu ermitteln, erstelle eine leere Datei namens dir.php und kopiere folgenden Code hinein:

Kopiere diese Datei in das Hauptverzeichnis deines WordPress und rufe die Datei im Browser auf:

http://deinewebsite/dir.php

Der untere Pfad ist korrekt, kopiere ihn und ersetze damit die Angaben in der analytics-update.php in Zeile 6.

Lösche die dir.php im Anschluss wieder von deinem Server, sie stellt ein Sicherheitsrisiko dar. Stelle nun sicher, dass beide Dateien auf dem Server beschreibbar sind. Die Dateirechte CHMOD 755 sollten okay sein und funktionieren.

Nun musst du nur noch einen Cronjob erstellen, der die analytics-update.php Datei einmal in der Woche aufruft. Das funktioniert bei jedem Hoster und Betriebssystem anders, daher poste ich für diesen Job keinen Code.

Sollte dein Webhoster keine Cronjobs zulassen, dann nutze einen externen Dienst wie zum Beispiel cronjob.de.

Weiterführende Informationen:

HowTo: Add Jobs To cron Under Linux or UNIX?

Das Endergebnis unserer Bemühungen

Durch das Hosten der Datei auf dem eigenen Server kann diese vom Browser in den Cache befördert werden und GooglePage Speed Insights zeigt nun die gewünschten 100/100 Punkte an.

Der behobene Fehler des Google Analytics JavaScripts.

Lösung 2: Nutze ga-lite.js anstatt Google-Analytics.js

ga-lite ist eine abgespeckte Version des Scripts von Google Analytics. Es wurde auf Speed und optimales Browser-Caching entwickelt und optimiert. Es funktioniert tadellos und zeichnet die Grundfunktionen des Original-Codes von Google Analytics auf. Ein weiterer Vorteil: das ga-lite.js Script lädt wesentlich schneller als das Original.

Wenn du nicht nur Google überlisten willst, sondern wirklich etwas für die Performance deiner Website tun willst, dann ist ga-lite richtig für dich.

Allerdings hat es zurzeit auch Nachteile. Es können keinerlei benutzerdefinierte Notierungen verwendet werden. Die Bounce-Rate kann nicht angepasst und Links nicht getrackt werden. Die IPs lassen sich mittlerweile jedoch anonym auszeichnen.

Die Installation von ga-lite:

Füge den folgenden Code in die footer.php deines Themes ein, oberhalb oder unterhalb von wp_footer().

Auch mit ga-lite wirst du nun das gewünschte Ergebnis bei GooglePage Speed erhalten.

Lösung 3: Wir überlisten Google

Du verwendest einen angepassten Analytics-Code und die beiden Lösungen oben kommen nicht für dich infrage? Du willst alles so behalten wie es ist, aber trotzdem die begehrten 100 Punkte für dein Ego?

Kein Problem, auch die Ego-Lösung ist im Angebot. Dazu verwenden wir eine kleine PHP-Funktion, der den Google Analytics Code für PageSpeed Insights einfach »unsichtbar« macht. Damit funktioniert das Analytics.js problemlos, außer auf der Seite von Google PageSpeed.

Ergänze deinen Analytics-Code folgendermaßen:

Auch dieser Code sorgt für die gewünschten 100 Punkte, beschleunigt deine Website jedoch nicht. Dieser Code ist nur für dein persönliches Ego und erreicht die 100 Punkte ohne große Modifikationen.

Fazit:

Lösung eins erscheint mir persönlich als die Beste, wird allerdings nicht von Google empfohlen. Einsetzbar ist sie nur mit einem Cronjob, der die lokale Datei immer aktuell hält. Ohne diesen Schritt des Updates ist Lösung eins keinesfalls zu empfehlen. Lösung zwei ist ideal, wenn du bisher noch keine Anpassungen am Google Analytics-Code gemacht hast und nur die Standard-Funktionen der Analyse-Software nutzt. Diese bekommst du weiterhin ohne Probleme und schneller wird deine Website ebenfalls.

Lösung drei funktioniert ebenfalls, ist jedoch aus meiner Sicht nicht zu empfehlen. Ich persönlich würde lieber mit 99 Punkten oder weniger leben. Die Hauptsache ist doch, meine Websites laden deutlich unterhalb einer Sekunde.

Quelle: KeyCDN

Andreas Hecht

Andreas Hecht

entwickelt WordPress-Websites und bietet dir einen Website Sicherheit Service und einen Performance Service für deine Website. Außerdem ist er Spezialist für Onpage SEO und bringt Deine Website in die Top-Suchergebnisse von Google. Auf seinem Blog schreibt er über WordPress, SEO und Content SEO.
Dr. Webs exklusiver Newsletter
Hinweise zum Datenschutz, also dem Einsatz von Double-Opt-In, der Protokollierung der Anmeldung, der Erfolgsmessung, dem Einsatz von MailChimp als Versanddienstleister und deinen Widerrufsrechten findest du in unseren Datenschutzhinweisen.

9 Kommentare

  1. War einfacher als gedacht. Mein Factoring Portal lädt jetzt 1 Sekunde schneller, naja sagt zumindestens die Analyse. Bei Pagespeed gab es 10 Punkte mehr. Danke für die Hilfestellung!

  2. Danke für die Informationen, wird gerade umgesetzt.

  3. Hallo Torsten,
    man kann den Code des Ladens von GTM aus analytics.js mit einem str_replace überschreiben beim Laden des Files per Cronjob. Dann einfach einen zweiten Cronjob für den GTM hinzufügen und den entsprechenden Pfad inkl. Domain der Resource im str_replace einbauen. Habe das bereits für Typo3 so gemacht und es funktioniert.
    Natürlich muss das jeweils im 1. Cronjob wieder gemacht (also immer dann, wenn analytics.js gezogen wird).

  4. Hallo,

    erst mal vielen Dank für diesen Artikel, sehr nice und bringt einen weiter. Vor allem Möglichkeit 1 finde ich solide und sauber.

    Aber ich habe eine Frage dazu: Ist das konform mit den Google-Richtlinien?

    Ich würde das nämlich auch gerne für die Datei https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js machen, habe aber natürlich wenig Bock, das das gegen irgendwelche „Terms of Use“ oder so verstößt und einem dann der Account suspendiert wird oder so…

    Weiß da jemand genaueres? :)

    Viele Grüße!

  5. Hi Andreas,
    soweit so gut. Den Code für’s Caching ins htaccess installiert, Website nun wirklich schneller!
    Deine Erklärungen zum Leverage Browser Caching sind gut erklärt. Jedoch hat jede Deiner Lösungsvorschläge kleine Nachteile, die ich nicht unbedingt berücksichtigen will. Daher verzichte ich lieber auf die 100 Score-Punkte (im Augenblick sind es GTmetrix 84% PageSpeed und YSlow 80%). Die anderen Mängel sollte ich in den Griff bekommen. Jedenfalls teilt mir GTmetrix neben Google Analytics noch unter Leverage Browser Caching mit, dass der „Google Tag Manager“ 15 minutes ebenfalls angepasst werden sollte. Fällt diese Lösung dafür ebenfalls in die Optimierung des Scripts?

    Zwar hatte ich irgendwann mal den Tag Manager installiert, jedoch noch keinerlei praktische Ansätze für mich und meine Website entdecken können. Hatte wohl nicht die Muße zum Studieren der Vorteile des Tag Managers. Denke da ans „ganz Verzichten“ des Tag Managers. Obwohl meine Seite irgendwann mal mehrere hundert Unterseiten haben wird. Was meinst Du?

    Grüße,
    Torsten

    • Google Tag Manager: Wie willst Du etwas auf Deinem Server mittels .htaccess optimieren, das nicht auf Deinem Server liegt? Da schlägt doch schon die Logik zu :-) Und ob Du den Kram brauchst musst Du Dir beantworten. Die persönlichen Anforderungen an eine Website sind halt sehr verschieden.

      • Danke für Deine prompte Antwort. Ich hatte lediglich von Pingdom + GTmetrix die Meldung erhalten, dass der Tag Manager auf meiner Website eine zu kurze „freshness lifetime“ hat. Wie ich diesen Fall nun zu optimieren habe, darüber bin ich mir eben nicht im Klaren, wie das anzustellen ist. Genau das war halt meine Frage an Dich. Falls ich keine nachzuvollziehende Lösung finde, schmeiße ich ihn wahrscheinlich raus.

      • Du kannst keine Lösung auf Deinem Server finden für ein Script, das NICHT auf Deinem Server liegt. Genau das schrieb ich Dir doch eben:-)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Kennst du schon unseren Newsletter?

Hinweise zum Datenschutz, also dem Einsatz von Double-Opt-In, der Protokollierung der Anmeldung, der Erfolgsmessung, dem Einsatz von MailChimp als Versanddienstleister und deinen Widerrufsrechten findest du in unseren Datenschutzhinweisen.

Cookies

Weitere Informationen zu den Auswahlmöglichkeiten findest du hier. Dazu musst du zunächst keine Auswahl treffen!

Um Dr. Web zu besuchen, musst du eine Auswahl treffen.

Deine Auswahl wurde gespeichert!

Informationen zu den Auswahlmöglichkeiten

Was du erlaubst!

Um fortfahren zu können, musst du eine Auswahl treffen. Nachfolgend erhältst du eine Erläuterung der verschiedenen Optionen und ihrer Bedeutung.

  • Ich stimme zu:
    Du erlaubst uns das Setzen aller Cookies, die wir in unseren Datenschutzhinweisen genannt haben. Dazu gehören Tracking- und Statistik-Cookies. Aus dem Tracking per Google Analytics bieten wir auf der Seite Datenschutz ein Opt-Out, also die Möglichkeit der Abmeldung, an.
  • Ich stimme nicht zu:
    Wir verzichten bei dieser Option auf den Einsatz von Google Analytics. Die für den Betrieb von Dr. Web notwendigen Cookies werden aber dennoch gesetzt. Einzelheiten entnimmst du bitte den Datenschutzhinweisen

Du kannst deine Cookie-Einstellungen jederzeit hier ändern: Datenschutz. Impressum

Zurück