Seite auswählen

In der Wall Street Oasis haben wir festgestellt, dass Google uns jedes Mal, wenn wir uns auf die Verbesserung unserer Seitengeschwindigkeit konzentrieren, mehr organischen Traffic sendet. Im Jahr 2018 erreichte die Website unseres Unternehmens über 80 Prozent unseres Traffic aus der organischen Suche. Das sind 24,5 Millionen Besuche. Natürlich sind wir sehr darauf eingestellt, wie wir unser Nutzererlebnis weiter verbessern und Google glücklich machen können.

Wir dachten, dass dieser Artikel eine großartige Möglichkeit wäre, die spezifischen Schritte hervorzuheben, die wir unternehmen, um unsere Seitengeschwindigkeit blitzschnell und den organischen Traffic gesund zu halten. Während dieser Artikel etwas technisch ist (Seitengeschwindigkeit ist ein wichtiges und komplexes Thema), hoffen wir, dass er Website-Besitzern und Entwicklern einen Rahmen bietet, wie sie versuchen können, ihre Seitengeschwindigkeit zu verbessern.

Schneller technischer Hintergrund: Unsere Website basiert auf dem Drupal CMS und wir arbeiten auf einem Server mit einem LAMP-Stapel (plus Varnish und memcache). Wenn Sie jedoch MySQL nicht verwenden, sind die Schritte und Prinzipien in diesem Artikel immer noch für andere Datenbanken oder einen Reverse-Proxy relevant.

5 Schritte zur Beschleunigung des Backends
Bevor wir in konkrete Schritte einsteigen, die Ihnen helfen können, Ihr Backend zu beschleunigen, könnte es helfen, zu überprüfen, was wir mit “Backend” meinen. Sie können sich das Backend von allem vorstellen, was in die Speicherung von Daten einfließt, einschließlich der Datenbank selbst und der Server – im Grunde alles, was hilft, die Website funktionieren zu lassen, mit der Sie nicht visuell interagieren. Weitere Informationen über den Unterschied zwischen Backend und Frontend finden Sie in diesem Artikel.

Schritt 1: Stellen Sie sicher, dass Sie einen Reverse Proxy konfiguriert haben.
Dies ist ein wichtiger erster Schritt. Für Wall Street Oasis (WSO) verwenden wir einen Reverse-Proxy namens Varnish. Es ist bei weitem die kritischste und schnellste Cache-Lage und bedient den größten Teil des anonymen Traffics (abgemeldete Besucher). Lacke speichern die gesamte Seite im Speicher, so dass die Rückgabe an den Besucher blitzschnell erfolgt.

Schritt 2: Erweitern Sie die TTL dieses Caches.
Wenn Sie eine große Datenbank mit Inhalten (insbesondere im URL-Bereich von 10.000+) haben, die sich nicht sehr häufig ändert, um die Trefferrate auf der Varnish-Cache-Schicht zu erhöhen, können Sie die Lebenszeit verlängern (TTL bedeutet im Grunde genommen, wie lange Sie das Objekt aus dem Cache löschen).

Für das WSO gingen wir den ganzen Weg bis zu zwei Wochen (da wir über 300.000 Diskussionen hatten). Zu einem bestimmten Zeitpunkt sind nur wenige tausend dieser Foren-URLs aktiv, daher ist es sinnvoll, die anderen Seiten stark zwischenzuspeichern. Der Nachteil dabei ist, dass Sie, wenn Sie Änderungen an Seiten, Vorlagen oder Designs vornehmen, zwei Wochen warten müssen, bis es über alle URLs hinweg ankommt.

Schritt 3: Aufwärmen des Caches
Um unseren Cache “warm” zu halten, haben wir einen speziellen Prozess, der auf alle URLs in unserer Sitemap trifft. Dies erhöht die Wahrscheinlichkeit, dass sich eine Seite im Cache befindet, wenn ein Benutzer oder Google-Bot dieselben Seiten besucht (d.h. unsere Trefferquote verbessert sich). Es hält Varnish auch voller weiterer Objekte, die schnell zugänglich sind.

Wie Sie aus der folgenden Grafik ersehen können, liegt das Verhältnis von “Cache-Hits” (grün) zu den Gesamthits (blau+grün) bei über 93 Prozent.

Schritt 4: Optimieren Sie Ihre Datenbank und konzentrieren Sie sich auf die langsamsten Abfragen.
Auf WSO verwenden wir eine MySQL-Datenbank. Stellen Sie sicher, dass Sie den Bericht über langsame Abfragen aktiviert haben und überprüfen Sie ihn mindestens einmal im Quartal. Überprüfen Sie die langsamsten Abfragen mit EXPLAIN. Fügen Sie bei Bedarf Indizes hinzu und schreiben Sie Abfragen neu, die optimiert werden können.

Auf WSO verwenden wir eine MySQL-Datenbank. Um MySQL zu optimieren, können Sie die folgenden Skripte verwenden: https://github.com/major/MySQLTuner-perl und https://github.com/mattiabasone/tuning-primer

Schritt 5: HTTP-Header
Verwenden Sie den HTTP2-Server-Push, um Ressourcen an die Seite zu senden, bevor sie angefordert werden. Stellen Sie einfach sicher, dass Sie testen, welche zuerst geschoben werden sollen. JavaScript war für uns eine gute Option. Mehr darüber erfahren Sie hier.

Achten Sie darauf, dass Sie das richtige Format verwenden. Wenn es sich um ein Skript handelt: <url>; rel=preload; as=script,

Wenn es sich um eine CSS-Datei handelt: <url>; rel=preload; as=style,