Vielleicht haben Sie schon von HTTP/2 gehört? Es ist nicht nur eine Idee, es ist eine echte Technologie und langsam, aber sicher, stellen Hosting-Unternehmen und CDN-Dienste sie ihren Servern zur Verfügung. Es wurde viel über die Vorteile von HTTP/2 gegenüber HTTP1.x gesagt, aber der Beweis liegt im Geschmack.
Heute werden wir einige Praxistests durchführen, einige Zeitmessungen vornehmen und sehen, welche Ergebnisse wir daraus ableiten können.
Warum HTTP/2?
Wenn Sie noch nichts über HTTP/2 gelesen haben, empfehle ich Ihnen, sich einige Artikel anzusehen. Es gibt die HTTP/2 FAQ, die Ihnen alle technischen Details liefert, und ich habe auch einige Artikel über HTTP/2 selbst geschrieben, in denen ich versuche, die Technik abzuschwächen und mich hauptsächlich auf das Warum und Wie von HTTP/2 zu konzentrieren.
Kurz gesagt, HTTP/2 wurde veröffentlicht, um die inhärenten Probleme von HTTP1.x zu lösen.
- HTTP/2 ist binär und nicht textbasiert wie HTTP1.x – das macht die Übertragung und das Parsen von Daten über HTTP/2 von Natur aus maschinenfreundlicher, also schneller, effizienter und weniger fehleranfällig.
- HTTP/2 ist vollständig multiplexed, was die gleichzeitige Übertragung mehrerer Dateien und Anfragen ermöglicht, im Gegensatz zu HTTP1.x, das nur eine einzige Anfrage/Verbindung gleichzeitig akzeptierte.
- HTTP/2 verwendet dieselbe Verbindung für die Übertragung unterschiedlicher Dateien und Anfragen und vermeidet den aufwendigen Vorgang, für jede zu übertragende Datei eine neue Verbindung zwischen Client und Server zu öffnen.
- HTTP/2 verfügt über eine integrierte Header-Komprimierung, die eine weitere Möglichkeit ist, mehrere der Overheads zu entfernen, die mit HTTP1.x verbunden sind, wenn mehrere verschiedene Ressourcen vom selben oder von mehreren Webservern abgerufen werden müssen.
- HTTP/2 ermöglicht es Servern, benötigte Ressourcen proaktiv zu pushen, anstatt darauf zu warten, dass der Client-Browser Dateien anfordert, wenn er glaubt, sie zu benötigen.
Dies sind die besten (wenn auch vereinfachten) Darstellungen, wie HTTP/2 besser ist als HTTP1.x. Anstatt dass der Browser immer wieder zum Server zurückkehren muss, um jede einzelne Ressource abzurufen, werden alle Ressourcen auf einmal abgerufen und übertragen.

Ein semi-wissenschaftlicher Test der HTTP/2-Performance
Theorie ist großartig, aber es ist überzeugender, wenn wir einige reale Daten und reale Leistungsverbesserungen von HTTP/2 gegenüber HTTP1.x sehen können. Wir werden einige Tests durchführen, um festzustellen, ob wir eine deutliche Leistungssteigerung feststellen.
Warum nennen wir das einen semi-wissenschaftlichen Test?
Wenn dies ein Labor oder gar eine Entwicklungsumgebung wäre, in der wir exakte Ergebnisse demonstrieren wollten, würden wir alle Variablen eliminieren und nur die Leistung desselben HTML-Inhalts testen, einmal mit HTTP1.x und einmal mit HTTP/2.
Doch (die meisten von uns) leben nicht in einer Entwicklungsumgebung. Unsere Webanwendungen und Websites agieren in der realen Welt, in Umgebungen, in denen aus allen möglichen gültigen Gründen Schwankungen auftreten. Labortests sind also großartig und definitiv erforderlich, aber für diesen Test gehen wir in die reale Welt und führen einige Tests auf einer (simulierten) echten Website durch und vergleichen ihre Leistung.
Wir werden eine standardmäßige Einzelseiten-Bootstrap-Vorlage (Zebre) aus mehreren Gründen verwenden.
- Es ist ein sehr realistisches Beispiel dafür, wie moderne Websites heute aussehen.
- Es verfügt über eine recht vielfältige Sammlung von Ressourcen, die typisch für heutige Websites sind und die normalerweise eine Reihe von Optimierungen für die Leistung unter HTTP1.x-Bedingungen durchlaufen würden.
- 25 Bilder
- 6 JS-Skripte
- 7 CSS-Dateien
- Es basiert auf WordPress, sodass wir eine Reihe von HTTP1.x-basierten Optimierungen durchführen können, um seine Leistung so weit wie möglich zu steigern.
- Es wurde im Januar kostenlos von ThemeForest verschenkt. Das war eine großartige Zeit, was für ein besserer Praxistest als die Verwendung eines Premium-Themes von einem Elite-Autor auf ThemeForest?
Wir werden diese Tests auf einem brandneuen Konto durchführen, das von Kinsta Managed WordPress Hosting betrieben wird, das wir in letzter Zeit entdeckt haben und dessen Leistung wir wirklich großartig finden. Wir tun dies, weil wir die überlasteten Umgebungen von Shared-Hosting-Konten vermeiden wollen. Um den externen Einfluss anderer Websites, die gleichzeitig auf demselben Konto laufen, zu reduzieren, wird diese Umgebung ausschließlich für diesen Test verwendet.
Wir haben die Tests auf dem niedrigsten Plan durchgeführt, da wir nur eine einzige WordPress-Site testen müssen. In Wirklichkeit gibt es im Gegensatz zu den meisten Hosting-Diensten keinen Unterschied in der Geschwindigkeit/Leistung der Pläne. Die größeren Pläne bieten lediglich Kapazität für mehr Websites. Anschließend haben wir eine der Domains eingerichtet, die wir horten (iwantovisit.com), und darauf WordPress installiert.
Wir haben uns auch entschieden, diese Tests auf WordPress durchzuführen.
Der Grund dafür ist eher Bequemlichkeit als alles andere. Alle diese Tests auf manuellem HTML würden ziemlich viel Zeit in Anspruch nehmen. Wir würden diese Zeit lieber für umfangreichere und konstruktivere Tests verwenden.
Mit WordPress können wir Plugins wie z.B. aktivieren
- Ein Caching-Plugin (um Diskrepanzen bei der Generierungszeit so weit wie möglich zu beseitigen)
- Kombinations- und Minifizierungs-Plugin zur Durchführung von Optimierungen auf Basis von HTTP1.x
- CDN-Plugin zur einfachen Integration mit einem CDN, während HTTP/2-Tests integriert mit einem CDN durchgeführt werden.
Wir haben das Zebre-Theme eingerichtet und mehrere Plugins installiert. Auch das macht den Test sehr realistisch. Sie werden kaum eine WordPress-Website ohne eine Reihe von installierten Plugins finden. Wir haben Folgendes installiert.

Wir haben auch die Demodaten des Zebre-Themes importiert, um ein schön befülltes Theme mit vielen Bildern zu erhalten, was diese Website zu einem idealen Kandidaten für HTTP/2-Tests macht.
Das Letzte, was wir getan haben, war sicherzustellen, dass ein Seiten-Caching vorhanden ist. Wir wollen einfach sicherstellen, dass wir aufgrund von Seiten-Generierungszeiten keine drastischen Schwankungen erleiden. Das Tolle ist, dass mit Kinsta kein Caching-Plugin benötigt wird, da das Seiten-Caching vollständig auf Server-Ebene in den Dienst integriert ist.
Die finale Seite sah ungefähr so aus.

Und das ist unter dem "Fold".

Wir sind bereit für die ersten Tests.
Test 1 – HTTP1 – Caching, aber keine anderen Optimierungen
Beginnen wir mit einigen Tests, um sicherzustellen, dass wir eine gute Testumgebung haben und einige Basiswerte erhalten.
Wir führen diese Tests nur mit WordPress-Caching durch – keine anderen Optimierungen.
| Test-Website | Standort | Seitenladezeit | Gesamtseitengröße | Anfragen |
|---|---|---|---|---|
| GTMetrix | Vancouver | 3,3s | 7,3 MB | 82 |
| Pingdom Tools | New York | 1,25s | 7,3 MB | 82 |
Es gibt eindeutig etwas Seltsames. Die Ladezeiten sind viel zu unterschiedlich. Oh ja: Google Cloud Platform, zentralamerikanische Server im Osten befinden sich in Iowa, wodurch der Teststandort von Pingdom Tools New York viel näher ist als Vancouver, was die Ergebnisse zugunsten von New York verzerrt.
Sie wissen wahrscheinlich, dass es eine sehr einfache Lösung gibt, um die Leistung Ihrer Website zu verbessern: Hosten Sie Ihre Website oder Anwendung so nah wie möglich am Standort Ihrer Besucher. Dies ist dasselbe Konzept, das CDNs zur Leistungssteigerung nutzen. Je näher die Besucher am Serverstandort der Website sind, desto besser ist die Ladezeit.
Aus diesem Grund werden wir zwei Arten von Tests durchführen. Einer wird einen sehr nahen Standort zwischen dem Hosting-Dienst und dem Teststandort haben. Für den anderen werden wir uns entscheiden, das Problem der Entfernung zu verstärken. Wir werden also eine transatlantische Reise mit unseren Tests unternehmen, von den USA nach Europa, und sehen, ob die HTTP/2-Optimierungen zu einer besseren Leistung führen oder nicht.
Versuchen wir, ähnliche Teststandorte bei beiden Testdiensten zu finden. Dallas, Texas ist ein gängiger Testort, also werden wir ihn für den physisch nahen Standort verwenden. Für den zweiten Standort werden wir London und Stockholm verwenden, da es keinen gemeinsamen europäischen Standort gibt.
| Test-Website | Standort | Seitenladezeit | Gesamtseitengröße | Anfragen |
|---|---|---|---|---|
| Pingdom Tools | Dallas | 2,15s | 7,3 MB | 82 |
Das ist besser. Führen wir noch ein paar Tests durch.
| Test-Website | Standort | Seitenladezeit | Gesamtseitengröße | Anfragen |
|---|---|---|---|---|
| GTMetrix | Dallas | 1,6s | 7,3 MB | 83 |
| Pingdom Tools | Dallas | 1,74s | 7,3 MB | 82 |
| GTMetrix | London | 2,6s | 7,3 MB | 82 |
| Pingdom Tools | Stockholm | 2,4s | 7,3 MB | 82 |
Sie bemerken vielleicht einige Schwankungen bei den Anfragen. Wir glauben, dass diese von externen Skripten stammen, die manchmal in der Anzahl der generierten Anfragen variieren. Tatsächlich, obwohl die Ladezeiten um etwa eine Sekunde variieren zu können scheinen, können wir bei Betrachtung des Wasserfalldiagramms sehen, dass die Assets auf der Website ziemlich konsistent geliefert werden. Es sind die externen Assets (insbesondere: Schriftarten), die stark schwanken.

Wir können auch deutlich sehen, wie die Entfernung die Ladezeit signifikant um etwa eine Sekunde beeinflusst.
Bevor wir fortfahren, werden Sie auch feststellen, dass unsere Score für Geschwindigkeitsoptimierung miserabel ist. Deshalb werden wir für unsere zweite Testrunde eine Reihe von Geschwindigkeitsoptimierungen durchführen.

Test 2 – HTTP1 mit Performance-Optimierungen und Caching
Da wir wissen, dass HTTP1.x sehr ineffizient im Umgang mit Anfragen ist, werden wir eine Runde von Performance-Optimierungen durchführen.
Wir werden HummingBird von WPMUDEV auf der WordPress-Installation installieren. Dies ist ein Plugin, das die Ladezeiten von Seiten optimiert, ohne zu cachen. Genau das, was wir brauchen.
Wir werden die meisten Optimierungen aktivieren, die sich auf die Reduzierung von Anfragen und die möglichst häufige Zusammenfassung von Dateien konzentrieren.
- Minifizierung von CSS- und JS-Dateien
- Kombination von CSS- und JS-Dateien
- Aktivierung der GZIP-Kompression
- Aktivierung des Browser-Cachings
Wir werden die Bilder nicht optimieren, da dies die Ergebnisse völlig verfälschen würde.
Wie Sie unten sehen können, haben wir nach unserer Optimierung fast perfekte Werte für alles außer Bildern. Wir werden die Bilder absichtlich unoptimiert lassen, damit sie ihre große Größe behalten und eine gute "Last" zu tragen haben.

Leeren wir die Caches und führen eine zweite Testrunde durch. Sofort sehen wir eine drastische Verbesserung.

Machen Sie sich keine Sorgen über das C bei YSlow. Das liegt daran, dass wir kein CDN verwenden und einige der externen Ressourcen (die Schriftarten) nicht im Browser-Cache gespeichert werden können.
| Test-Website | Standort | Seitenladezeit | Gesamtseitengröße | Anfragen |
|---|---|---|---|---|
| GTMetrix | Dallas | 1,9s | 7,25 MB | 56 |
| Pingdom Tools | Dallas | 1,6s | 7,2 MB | 56 |
| GTMetrix | London | 2,7s | 7,25 MB | 56 |
| Pingdom Tools | Stockholm | 2,28s | 7,3 MB | 56 |
Wir sehen eine ziemlich schöne Verbesserung auf der Website. Als Nächstes werden wir HTTPS auf der Website aktivieren. Dies ist eine Voraussetzung für die Einrichtung von HTTP/2.
Test 3 – HTTP/2 ohne Optimierungen und Caching
Wir werden die Let's Encrypt-Funktionalität verwenden, um ein kostenloses SSL-Zertifikat zu erstellen. Dies ist in Kinsta integriert, was bedeutet, dass die Einrichtung von HTTPS ziemlich einfach sein sollte.

Nachdem wir ein HTTPS-Zertifikat generiert haben, werden wir das Really Simple SSL WordPress Plugin verwenden, um HTTPS auf der gesamten Website zu erzwingen.

Dieses Plugin prüft, ob ein sicheres Zertifikat für die Domain auf Ihrem Server vorhanden ist. Wenn ja, erzwingt es HTTPS auf Ihrer WordPress-Website. Dieses Plugin macht die Implementierung von HTTPS auf Ihrer Website wirklich zum Kinderspiel. Wenn Sie eine Migration von HTTP zu HTTPS durchführen, vergessen Sie nicht, eine vollständige 301-Weiterleitung von HTTP zu HTTPS durchzuführen, damit Sie während des Erzwingens von HTTPS auf Ihrer Website keine Besucher oder Suchmaschinen-Rankings verlieren.


Nachdem wir HTTPS auf unserer Website vollständig aktiviert und getestet haben, müssen Sie möglicherweise etwas Magie anwenden, um Ressourcen über HTTP/2 zu servieren. Obwohl die meisten Server heute Sie direkt zu HTTP/2 wechseln, wenn Sie eine SSL-Seite betreiben.
Kinsta läuft auf Nginx und aktiviert HTTP/2 standardmäßig auf SSL-Sites. Daher reicht die Aktivierung von SSL aus, um die gesamte Website auf HTTP/2 umzustellen.
Sobald wir die Konfiguration durchgeführt haben, sollte unsere Website nun über HTTP/2 ausgeliefert werden. Um zu bestätigen, dass die Website über HTTP/2 läuft, haben wir diese nette Chrome-Erweiterung installiert, die prüft, welche Protokolle von unserer Website unterstützt werden.

Sobald wir bestätigt haben, dass HTTP/2 einwandfrei funktioniert, können wir eine weitere Testrunde durchführen.
| Test-Website | Standort | Seitenladezeit | Gesamtseitengröße | Anfragen |
|---|---|---|---|---|
| GTMetrix | Dallas | 2,7s | 7,24 MB | 82 |
| Pingdom Tools* | Dallas | 2,04s | 7,3 MB | 82 |
| GTMetrix | London | 2,4s | 7,24 MB | 82 |
| Pingdom Tools* | Stockholm | 2,69s | 7,3 MB | 82 |
*Leider verwendet Pingdom Tools Chrome 39, um die Tests durchzuführen. Diese Version von Chrome hat keine HTTP/2-Unterstützung, daher können wir die Geschwindigkeitsverbesserungen nicht realistisch berechnen. Wir führen die Tests trotzdem durch, da wir einen Benchmark zum Vergleichen haben.
Test 4 – HTTP/2 mit Performance-Optimierungen und Caching
Nachdem wir nun HTTP/2 ohne Performance-Optimierungen gesehen haben, ist es auch eine gute Idee, tatsächlich zu prüfen, ob HTTP1-basierte Performance-Optimierungen einen Unterschied machen können und werden, wenn HTTP/2 aktiviert ist.
Es gibt zwei Denkweisen hierzu.
- Dagegen: Um Optimierungen zur Reduzierung von Verbindungen und Größe durchzuführen, fügen wir der Website einen Performance-Overhead hinzu (während der Server Minifizierung und Kombination von Dateien durchführt), daher gibt es eine negative Auswirkung auf die Leistung.
- Dafür: Die Durchführung solcher Minifizierungen und Kombinationen von Dateien und anderer Optimierungen wird unabhängig vom Protokoll eine Leistungsverbesserung bringen, insbesondere die Minifizierung, die im Wesentlichen die Größe der zu liefernden Ressourcen reduziert. Jeder Performance-Overhead kann durch Caching gemildert werden.
| Test-Website | Standort | Seitenladezeit | Gesamtseitengröße | Anfragen |
|---|---|---|---|---|
| GTMetrix | Dallas | 1,0s | 6,94 MB | 42 |
| Pingdom Tools** | Dallas | 1,45s | 7,3 MB | 56 |
| GTMetrix | London | 2,5s | 7,21 MB | 56 |
| Pingdom Tools** | Stockholm | 2,46s | 7,3 MB | 56 |
**HTTP/2 wird nicht unterstützt
Test 5 – CDN mit Performance-Optimierungen und Caching (kein HTTP/2)
Sie haben wahrscheinlich immer wieder gesehen, wie eine der wichtigsten Möglichkeiten zur Verbesserung der Leistung einer Website die Implementierung eines CDN (Content Delivery Network) ist.
Aber warum sollte ein CDN *immer noch* erforderlich sein, wenn wir jetzt HTTP/2 verwenden?
Ein CDN wird weiterhin benötigt, auch wenn HTTP/2 vorhanden ist. Der Grund dafür ist, dass ein CDN nicht nur die Leistung aus Infrastruktursicht verbessert (leistungsfähigere Server zur Bewältigung des Verkehrsaufkommens), sondern auch die Entfernung reduziert, die die schwersten Ressourcen Ihrer Website zurücklegen müssen.
Durch die Verwendung eines CDN werden Ressourcen wie Bilder, CSS und JS-Dateien von einem Standort aus bereitgestellt, der (typischerweise) physisch näher an Ihrem Endbenutzer liegt als der Hosting-Server Ihrer Website.
Dies hat einen impliziten Leistungsvorteil: Je weniger Inhalt reisen muss, desto schneller lädt Ihre Website. Dies ist etwas, dem wir in unseren anfänglichen Tests bereits begegnet sind. Physisch nähere Teststandorte schneiden bei den Ladezeiten deutlich besser ab.
Für unsere Tests werden wir unsere Website auf einem Incapsula CDN-Server ausführen, einem der CDN-Dienste, die wir in letzter Zeit für unsere Websites verwenden. Natürlich wird jedes CDN die gleichen oder ähnliche Vorteile haben.
Es gibt ein paar Möglichkeiten, wie ein typisches CDN funktioniert.
- URL-Rewrite: Sie installieren ein Plugin oder schreiben Code, so dass die Adresse von Ressourcen umgeschrieben wird, damit sie vom CDN statt von der URL Ihrer Website geliefert werden.
- Reverse Proxy: Sie nehmen DNS-Änderungen vor, so dass das CDN den Großteil Ihres Datenverkehrs abwickelt. Der CDN-Dienst leitet dann die Anfragen nach dynamischen Inhalten an Ihren Webserver weiter.
| Test-Website | Standort | Seitenladezeit | Gesamtseitengröße | Anfragen |
|---|---|---|---|---|
| GTMetrix | Dallas | 1,5s | 7,21 MB | 61 |
| Pingdom Tools | Dallas | 1,65s | 7,3 MB | 61 |
| GTMetrix | London | 2,2s | 7,21 MB | 61 |
| Pingdom Tools | Stockholm | 1,24s | 7,3 MB | 61 |
Test 6 – CDN mit Performance-Optimierungen und Caching und HTTP/2
Der letzte Test, den wir durchführen werden, ist die Implementierung aller möglichen Optimierungen. Das bedeutet, wir betreiben ein CDN mit HTTP/2 auf einer Website, die mit HTTP/2 läuft und bei der alle Seitenladeoptimierungen durchgeführt wurden.
| Test-Website | Standort | Seitenladezeit | Gesamtseitengröße | Anfragen |
|---|---|---|---|---|
| GTMetrix | Dallas | 0,9s | 6,91 MB | 44 |
| Pingdom Tools** | Dallas | 1,6s | 7,3 MB | 61 |
| GTMetrix | London | 1,9s | 6,90 MB | 44 |
| Pingdom Tools** | Stockholm | 1,41s | 7,3 MB | 61 |
**HTTP/2 wird nicht unterstützt
Sehr gut! Wir haben eine Ladezeit von unter einer Sekunde für eine 7-MB-Website! Das ist ein beeindruckendes Ergebnis, wenn Sie mich fragen!
Wir sehen deutlich, welchen positiven Einfluss HTTP/2 auf die Website hat – wenn man die Ladezeiten vergleicht, sieht man, dass es einen Unterschied von 0,5 Sekunden bei den Ladezeiten gibt. Da wir in einer Umgebung arbeiten, die im schlimmsten Fall in weniger als 2 Sekunden lädt, ist ein Unterschied von 0,5 Sekunden eine RIESIGE Verbesserung.
Dies ist das Ergebnis, das wir uns tatsächlich erhofft haben.
Ja, HTTP/2 macht wirklich einen Unterschied.
Fazit – Analyse der HTTP/2-Performance
Obwohl wir versucht haben, Schwankungen so gut wie möglich zu eliminieren, wird es in unserem Setup einige Ungenauigkeiten geben, aber es gibt einen sehr klaren Trend. HTTP/2 ist schneller und ist der empfohlene Weg nach vorn. Es gleicht den Performance-Overhead aus, der bei HTTPS-Websites entsteht.
Unsere Schlussfolgerungen sind daher:
- HTTP/2 ist in Bezug auf Performance und Seitenladezeit schneller als HTTP1.x.
- Minifizierung und andere Wege zur Reduzierung der Größe der ausgelieferten Webseite werden immer mehr Vorteile bringen als der Overhead, der für diese "Minifizierung" erforderlich ist.
- Die Reduzierung der Entfernung zwischen Server und Client wird immer Leistungsvorteile bei der Seitenladezeit bringen. Die Verwendung eines CDN ist daher weiterhin notwendig, wenn Sie die Leistung Ihrer Website maximieren möchten, unabhängig davon, ob Sie HTTP/2 aktiviert haben oder nicht.
Was halten Sie von unseren Ergebnissen? Haben Sie HTTP/2 bereits implementiert? Haben Sie auch bessere Ladezeiten gesehen?
Wir haben auch einen Realitätscheck für HTTP/2 durchgeführt. Die Ergebnisse waren nicht eindeutig, vielleicht haben wir es falsch gemacht. Wir konnten endlich sicher sagen, dass HTTP/2 nicht langsamer ist.
https ist aufgrund des Handshakes viel langsamer
Ich denke, Sie sollten http1 und http2 beide mit SSL vergleichen.
Ich habe HTTP/2 mit Cloudflare implementiert und meine Website für HTTP/2 "optimiert". GTMetrix und Pingdom geben mir keine gute Bewertung (nicht zusammengefasste CSS usw.), aber ich erhalte eine wirklich gute Bewertung bei WPT und Dareboost, da sie HTTP/2-Tests durchführen.
Es scheint, dass HTTP/2 weniger sicher ist als HTTP/1.1 http://thehackernews.com/2016/08/http2-protocol-security.html
Sehr guter Artikel, ich bin froh, dass HTTP/2 mehr Praxistests von Leuten bekommt, die nicht so groß wie Google sind.
Mein ständiges Ärgernis ist, wenn Leute "7Mb" schreiben, wenn sie "7MB" meinen: Ein Bit ist achtmal kleiner als ein Byte, daher ist es wichtig, ob man das B großschreibt oder nicht. Sie können diesen Kommentar löschen, Moderatoren.
Nur damit Sie es wissen: Das Kombinieren von Dateien mit http2 wird nicht empfohlen. Es ist schneller, viele kleinere Dateien aufgrund der Fenstergröße zu multiplizieren.
Auch nur damit Sie es wissen: Ich habe Kinsta gegen ihre Testimonials-Websites getestet und die Geschwindigkeit, die sie angeben (d.h. 0,4s Ladezeit etc.), ist NICHT, was sie tatsächlich erreichen. Ihre Websites haben durchweg Ladezeiten von etwa 2,5 Sekunden. Für 100 $ im Monat kann man viel mehr bekommen.
Toller Artikel, und ich habe die Anstrengungen geschätzt, die Sie unternommen haben, um alles konsistent zu messen.
ABER... als jemand aus Australien, wo die meisten Leute nicht die Internetgeschwindigkeiten der USA haben, hätte ich gerne gesehen, dass die gleichen Tests über eine Heim- oder Büroumgebung durchgeführt werden, d.h. ein realer Test einer realen Internetverbindung, nicht ein Server-zu-Server-Test (GTMetrix und Pingdom führen ihre Tests auf High-End-Servern durch, die auf Hochgeschwindigkeits-Internetverbindungen laufen... soweit ich weiß?).
Ich bin nicht überzeugt, dass ein großer Teil der realen Benutzer Ihre Website tatsächlich in 1 Sekunde vollständig laden würde – das habe ich noch nie erlebt, auf keiner modernen Website (mit einem leeren Browser-Cache).
Ich wollte prüfen, wie lange Ihre Website http://www.iwanttovisit.com von meiner (für Australien sehr typischen) Internetverbindung aus benötigt, um die Ergebnisse zu vergleichen, aber leider ist die Seite jetzt offline.
Also habe ich geprüft, wie lange es dauert, diese aktuelle Webseite auf css-tricks.com zu laden… die auch HTTPS – und ein CDN – und HTTP2 verwendet – das Ergebnis ist laut Wasserfall meines Browsers eine ziemlich konsistente 12 Sekunden (mit einem leeren Browser-Cache).
12 Sekunden sind eine lange, lange Zeit im Vergleich zu 1 Sekunde.
FWIW: speedtest.net bewertet mich mit 20 ms Ping, 7,93 Mbps Download, 0,89 Mbps Upload, was hier laut speedtest.net durchschnittlich ist und laut derselben Seite auch weltweit durchschnittlich ist.
Ich wäre sehr daran interessiert zu erfahren, wie lange es dauert, bis Sie diese Webseite, die wir gerade ansehen, von Ihrer Verbindung aus laden... :)
Offensichtlich wurde viel Aufwand in diese Studie investiert, Hut ab dafür. Dennoch ist sie weit weniger wertvoll, als sie sein könnte. Hier ist warum:
Ich habe den Artikel durchforstet, und nirgends gibt es eine Erwähnung der Client-Details des Tests, was auch bei einem synthetischen serverseitigen Testwerkzeug relevant ist. Ohne grundlegende Details über den Testclient zu kennen, wie Bandbreite, Latenz und mehr, haben die Zahlen wenig Bedeutung. Um diesen Punkt weiter zu verdeutlichen, hat eine Bandbreitenkategorie namens "3G" ein Spektrum von einem Faktor 20. Winzige Unterschiede in den Client-Details erzeugen spektakulär unterschiedliche Zahlen.
Da die Client-Details nicht bekannt sind und die Zahlen betrachtet werden, muss ich davon ausgehen, dass es sich um einen Desktop-ähnlichen Test handelt. Was in allen Fällen falsch ist, aber der moderne Konsens beim Performance-Testing ist, Stresstests durchzuführen, also langsames 3G mit hoher Latenz. Die Optimierung für dieses Szenario erreicht den Goldstandard bei allem. Es ist auch der Bereich, in dem Optimierungen verstärkt und am einfachsten zu analysieren sind. Deshalb sind die Unterschiede zwischen HTTP/1 und 2 in einem Desktop-Test normalerweise ziemlich enttäuschend.
Alle drei von Ihnen verwendeten Metriken sind nutzlos, um festzustellen, ob eine Website schnell lädt. Die modernen Metriken, die es zu beobachten gilt, sind First Paint, First Meaningful Paint, SpeedIndex... Metriken, die mit dem Rendering einer Website zusammenhängen. Eine Website kann sehr schnell rendern, aber eine schreckliche Ladezeit haben. Eine Website kann langsam rendern, aber eine großartige Ladezeit haben. Sie haben den Renderpfad komplett ignoriert.
Ich denke, einige Ihrer Tests sind unnötig. Nicht falsch, aber sie komplizieren die Situation. Es ist bereits gut bewiesen, dass grundlegende HTTP-Optimierungen und das CDN vorteilhaft für die Leistung sind. Sie sollten für beide – HTTP/1 und HTTP/2 – ein Ausgangspunkt für einen klaren Äpfel-mit-Äpfeln-Vergleich sein.
Die abschließende Schlussfolgerung zu HTTP/2 erscheint mir sehr überstürzt. Sie ist auch zu allgemein. Sie sagen im Grunde "ja, es ist besser". Wo ist die Analyse? Warum ist es besser? Wo ist der Wasserfall? Sie ist in dem Sinne zu allgemein, dass die Vorteile von HTTP/2 (bessere Nutzung von Verbindungen) in einem bandbreitenbeschränkten Szenario auf der Strecke bleiben. Es ist also besser für Sie, in diesem Fall. Aber es gibt viele Wenns und Abers. Und wie bereits erwähnt, besser für die Seitenladezeit ist nicht aussagekräftig, da die Seitenladezeit nicht das ist, was wir messen sollten.
Ich hoffe, meine große Menge an Kritik wird Sie nicht verärgern, ich habe gute Absichten. Ich weiß, dass es keine wissenschaftliche Studie ist, aber sie hat so viele Mängel, dass sowohl die Zahlen als auch die Schlussfolgerungen wenig Bedeutung haben.
Eine weitere Frage von mir (vielleicht ein wenig vom Thema abweichend): Da HTTP/2 das Kombinieren von Dateien nicht empfiehlt, überlege ich, eine große CSS-Datei in verschiedene kleine aufzuteilen. Wird diese spezifische HTTP/2-Implementierung die Rankings bei Suchmaschinen beeinträchtigen?
Google Audits (aus dem Chrome Dev Tool) verlangt immer noch, dass Dateien auf meiner Website kombiniert werden.
Wenn jemand etwas darüber weiß, schicken Sie mir bitte Artikel oder Ressourcen, die dies klar belegen. Vielen Dank im Voraus.