Upgrade to Pro — share decks privately, control downloads, hide ads and more …

WordPress Performance Optimierungen

6574ee7c61e5e961ba64928fad6615e5?s=47 Jan Thiel
January 26, 2016

WordPress Performance Optimierungen

Wie mache ich meine WordPress Seite schneller? Welche Optimierungen lohnen sich? Und warum Hype-Themen wie CDN und Varnish den meißten kaum Nutzen werden. Eine Präsentation über die technischen Hintergründe von "langsamen" Webseiten und wie man dieses beheben kann und sollte. Die meißten Tips und Tricks lassen sich für jede Webseite und jedes CMS einsetzen.

6574ee7c61e5e961ba64928fad6615e5?s=128

Jan Thiel

January 26, 2016
Tweet

More Decks by Jan Thiel

Other Decks in Technology

Transcript

  1. Performance Optimierung Für WordPress und andere Webanwendungen

  2. Die Akteure Webseite PHP + MySQL Server Theme

  3. Ein normaler Request im Leben von WordPress Besucher fragt Webseite

    beim Server an Server leitet Anfrage an WordPress weiter WordPress holt Inhalte aus Datenbank WordPress erzeugt aus Daten, Theme und Plugins HTML WordPress liefert HTML an Server zurück Server reicht HTML an Besucher zurück Besucher fragt CSS, JS, Bilder, etc. beim Server an Server schickt CSS, JS, Bilder zurück
  4. Die üblichen Verdächtigen JS / CSS Dateien zusammenfassen Bilder und

    Grafiken optimieren Komprimierung Browser Caching Server Caching Schnelle Hardware (SSDs, CPU) CDN JS / CSS Includes optimieren Inline JS / CSS vermeiden Varnish Cache Server Lazy Loading von Bildern Weniger Plugins verwenden Theme Code optimieren
  5. Ermittlungswerkzeuge • Google PageSpeed (Browser Plugin oder WebTool) • NewRelic

    (Anwendungs Profiling - kostenpflichtig) • Munin (Server Profiling) https://developers.google.com/speed/pagespeed/insights/ http://newrelic.com/
  6. Spurensuche

  7. Spurensuche • Auslieferung reines HTML ~ 100ms Ohne Caches, Ohne

    Browser Komprimierung
  8. Spurensuche • Auslieferung WordPress HTML ~ 1000ms Ohne Caches, Mit

    Browser Komprimierung
  9. Spurensuche

  10. Die Täter

  11. Sinnvoll optimieren Webseite PHP + MySQL Server Theme

  12. Sinnvoll optimieren • WordPress selbst ist performant. Plugins und Themes

    machen die Probleme. • Drittanbieter Code kann nicht vernünftig von außen optimiert werden • Optimierungen direkt an der Wurzel des Übels – „Onpage“ Optimierungen => Theme – Server Optimierungen => Server / PHP / MySQL Configs
  13. WAS BRINGT WELCHE OPTIMIERUNG WIRKLICH? Sekt oder Selters Disclaimer: Die

    folgende Bewertungen beziehen sich auf eine durchschnittliche, normale WordPress Webseite! Je nach Setup und Anforderungen kann die Bewertung auch anders aussehen.
  14. CDN Statische Dateien (CSS, JS, IMG) in ein Content Distribution

    Network auslagern Kriterium Bewertung Einrichtungsaufwand ++ = gering | -- = hoch O Nutzen Besucher (Ladezeit) O Nutzen Server (Auslastung) O Größter Nutzen Dateien kommen nicht mehr vom eigenen Server und können von global verteilten Servern ausgeliefert werden. Wo implementierbar Theme WordPress Server Wo sollte es implementiert werden WordPress Unicorn-Faktor
  15. CDN Statische Dateien (CSS, JS, IMG) in ein Content Distribution

    Network auslagern • Wenige sinnvolle Anwendungsfälle: – Große Dateien (Filme / Programme) – Seite muss global schnell sein • Kosten pro GB (unkalkulierbar) • Datenschutzproblematik
  16. Bessere Hardware Server / Hosting mit SSDs und moderner CPU

    Kriterium Bewertung Einrichtungsaufwand ++ = gering | -- = hoch ++ Nutzen Besucher (Ladezeit) + Nutzen Server (Auslastung) + Größter Nutzen SSDs reduzieren Zugriffszeiten deutlich Wo implementierbar Theme WordPress Server Wo sollte es implementiert werden Server Unicorn-Faktor
  17. Bessere Hardware Server / Hosting mit SSDs und moderner CPU

    • Hardware ist nur selten der Flaschenhals • Bei „Shared Hosting“ selten Einfluss auf die Hardware • Wechsel bei alten Verträgen (> 2 Jahre) kann sinnvoll sein • SSD einziger Punkt, der spürbaren Unterschied bringt
  18. Server Konfigurationen optimieren Memory Limits, Ressourcen Limits, Tuning der Default

    Einstellungen Kriterium Bewertung Einrichtungsaufwand ++ = gering | -- = hoch - Nutzen Besucher (Ladezeit) O Nutzen Server (Auslastung) + Größter Nutzen „Angezogene Handbremse“ wird gelöst. PHP & MySQL können die vorhandenen Ressourcen einsetzen Wo implementierbar Theme WordPress Server Wo sollte es implementiert werden Server Unicorn-Faktor
  19. Server Konfigurationen optimieren Memory Limits, Ressourcen Limits, Tuning der Default

    Einstellungen • Spezielles Know-How notwendig • Änderungen nur mit root Zugang möglich • Standard Einstellungen nie auf individuellen Anwendungsfall ausgerichtet • Tuning von php & MySQL kann spürbare Leistungsgewinne bringen (Memory Caches)
  20. JS / CSS / IMG Optimierungen Includes optimieren (Header /

    Footer), Dateien minimieren / zusammenfassen, kein Inline Code, Lazy Loading von Bildern Kriterium Bewertung Einrichtungsaufwand ++ = gering | -- = hoch - Nutzen Besucher (Ladezeit) ++ Nutzen Server (Auslastung) -- Größter Nutzen Die Seite wird viel schneller geladen. Bessere Platzierung bei Google. Wo implementierbar Theme WordPress Server Wo sollte es implementiert werden Theme Unicorn-Faktor
  21. JS / CSS / IMG Optimierungen Includes optimieren (Header /

    Footer), Dateien minimieren / zusammenfassen, kein Inline Code, Lazy Loading von Bildern • Riesiges Optimierungspotenzial • Wirklich sinnvoll und effizient nur direkt im Theme • Aufwände nicht zu unterschätzen • Nachträglich nur schwierig oder ineffizient umzusetzen
  22. Komprimierung Dateien vom Server vor Übertragung mit gzip / deflate

    packen lassen Kriterium Bewertung Einrichtungsaufwand ++ = gering | -- = hoch ++ Nutzen Besucher (Ladezeit) ++ Nutzen Server (Auslastung) O Größter Nutzen ~70%-80% weniger Traffic zwischen Besucher und Server Wo implementierbar Theme WordPress Server Wo sollte es implementiert werden (Web-)Server Unicorn-Faktor
  23. Komprimierung Dateien vom Server vor Übertragung mit gzip / deflate

    packen lassen • Simple Einstellung in .htaccess oder nginx Config • CSS, JS, HTML werden gepackt • Benötigte CPU-Last (Server / Browser) zu vernachlässigen • Riesiger Nutzen
  24. Caching Browser Caching • Dateien (CSS / JS / IMG

    / HTML) werden auf der Festplatte des Besuchers gespeichert • Dateien werden nur beim ersten Seitenaufruf und bei Änderungen geladen Server Caching • Rechenintensive Operationen (PHP, MySQL, etc) werden zwischengespeichert • Verarbeitungszeiten und Server-Last werden reduziert
  25. Caching – Fallstricke • Bei Codeänderungen (js, css, Grafiken) können

    alte Versionen im Cache verbleiben – Lösung: Cache Buster (Parameter mit Version des Themes / Plugins an Dateien anhängen -> style.css?v=1.2. Nach Update: style.css?v=1.3) • Bei Inhaltsänderungen (Beiträge, Seiten) können alte Versionen im Cache verbleiben – Lösung: Caching Plugin muss statischen Cache bei Events (z.B. Post publish) löschen • Nicht / nur eingeschränkt für voll-dynamische Webseiten (Community, Shops) geeignet
  26. Browser Caching Statische Dateien direkt im Browser des Users speichern

    Kriterium Bewertung Einrichtungsaufwand ++ = gering | -- = hoch ++ Nutzen Besucher (Ladezeit) ++ Nutzen Server (Auslastung) O Größter Nutzen Nach dem ersten Seitenaufruf laden alle Folgeseiten deutlich schneller Wo implementierbar Theme WordPress Server Wo sollte es implementiert werden (Web-)Server Unicorn-Faktor
  27. Browser Caching Statische Dateien direkt im Browser des Users speichern

    • Simple Einstellung in .htaccess oder nginx Config • Browser lädt HTML, CSS, JS, Bilder,… nur initial und speichert diese • Dateien werden dann aus dem Browser Cache geladen statt vom Server • Bei Updates von Dateien auf dem Server kann es zu Problemen kommen (Besucher hat noch alte Dateien im Cache)
  28. Server Caching Umgehung von PHP / MySQL bei so vielen

    Anfragen wie möglich Kriterium Bewertung Einrichtungsaufwand ++ = gering | -- = hoch - Nutzen Besucher (Ladezeit) ++ Nutzen Server (Auslastung) ++ Größter Nutzen Statische Seiten werden als HTML zwischengespeichert und ohne WordPress ausgeliefert Wo implementierbar Theme WordPress Server Wo sollte es implementiert werden WordPress + (Web-)Server Unicorn-Faktor
  29. Server Caching Umgehung von PHP / MySQL bei so vielen

    Anfragen wie möglich • Initiale Einrichtung aufwändig (Plugin + Server) • Plugin in WordPress erzeugt HTML aus Seiten – Plugins: Cachify, W3TotalCache, WP-Super Cache • HTML liegt auf SSD oder im RAM • Besucher bekommt HTML direkt vom Webserver • Keine PHP / MySQL Last mehr durch Besucher • Dynamische Seiten dürfen nicht gecacht werden (Community, Shops, etc.)
  30. Varnish Vorgelagerter Caching Server speichert Antworten des Servers und liefert

    diese direkt aus Kriterium Bewertung Einrichtungsaufwand ++ = gering | -- = hoch - Nutzen Besucher (Ladezeit) + Nutzen Server (Auslastung) + Größter Nutzen Wie Server Caching, nur mit zusätzlicher Software gelöst. Wo implementierbar Theme WordPress Server Wo sollte es implementiert werden WordPress Unicorn-Faktor
  31. Varnish Vorgelagerter Caching Server speichert Antworten des Servers und liefert

    diese direkt aus • Aufwändige Konfiguration • Spezialwissen notwendig • Kaum Vorteile gegenüber Server Caching • Probleme mit Inhalten die im Cache festhängen möglich • Zusätzliche Ressourcen notwendig
  32. TLDR;

  33. Optimierungs Plugins nutzen? • PHP = (Zweit-) größtes Optimierungspotenzial •

    Plugins = (Längere) PHP Ladezeit • 90% der Funktionen der Plugins können direkt im Theme oder am Server umgesetzt werden • Einfache Optimierung: Plugins deaktivieren • Plugins sind nicht die Lösung, sondern das Problem!
  34. Jan Thiel CEO / DEVOp jan@wlwp.eu Du benötigst Beratung oder

    Unterstützung bei der Optimierung deiner Server / Webseite / Anwendung? Melde dich gerne!