Bildschirmfoto 2016-05-18 um 20.50.41“Wordpress ist total lahm und lässt sich mit HTTPS nicht vernünftig nutzen und Apache mit PHP ist ja auch nicht mehr so optimal” hat mir ein Bekannter neulich erzählt.

Ich war anderer Meinung und habe Lust bekommen,  Performanceoptimierung zu betreiben, mit Software herumzuspielen und auszuprobieren ob die These stimmt – oder widerlegt werden kann.

Zu Anfang lag da noch ein alter Blog rum. Dieser hier. Oll, langsam, die Leserzahlen egal – ein idealer Kandidat für meinen Versuch.

Stylesheet aufräumen

Zunächst habe ich das Stylesheet aufgeräumt und viele schwere und unnütze Webfonts durch einen leichtgewichtigeren ersetzt. So kam ich von ~7MB, die in 12s auf etwa 6,1MB, die laut Webpagetest Performance Messtool in 11s geladen waren. 11s – eine halbe Ewigkeit. In der Auswertung sah ich, dass vor allem die Bilder auf der Webseite einen grossen Anteil (>50%!) am gesamten Seitenvolumen hatten.

Lazy Loading und Bilder komprimieren

Um dem entgegenzuwirken suchte ich eine Möglichkeit die Bilder im nicht sichtbaren Teil der Webseite erst zu Laden, wenn sie benötigt werden (oder kurz vorher). Also ein sogenanntes “Lazy Loading” einzurichten. Hierfür gibt es ein passendes WordPress Plugin (“Lazy Load”), mit dem der Job recht flott erledigt war. So werden beim Seitenaufruf erstmal nur die Thumbnails geladen, aber nicht mehr die kompletten Bilder.

Den Standardwert für die Bildkomprimierung habe ich ausserdem von 95% auf 80% gesenkt, ansonsten hätten viele Bilder doch zu sehr an Qualität eingebüsst. In einem Fotoblog darf man ruhig wenig komprimierte JPEGs zeigen, auch wenn diese Dateien dann etwas grösser ausfallen.

Diese Massnahmen haben die Ladezeit aber immerhin auf etwa 6s gedrückt und die Gesamtseitenkapazität auf etwa 700kB reduziert. Damit könnte man leben. Wenn da nicht diese 3s Time to first Byte in der Webpagetest Auswertung gewesen wären. In 3s laden moderne Webseiten inkl. Rendering im Browser. In 3s treffen Finanzalgorithmen Millardenentscheidungen in hunderten von Transaktionen. In 3s ändert sich die Welt.

Schneller!!!

Meine Vermutung war, dass eines der installierten Plugins dafür verantwortlich ist, dass es so lange dauert bis WordPress das erste Byte an den Browser ausliefert. Ich probierte also alle Plugins der Reihe nach durch (Messen, deaktivieren, messen…jeweils mehrere Zyklen) und identifizierte auf diese Art zwei Plugins die Zeit stehlen.

Interessanterweise kostete das W3 Total Cache Plugin fast 2s, obwohl es eigentlich zur Performanceverbesserung gedacht ist. Das veraltete Statistikplugin, dass im Hintergrund lief und Dinge tat, von denen ich keine Ahnung hatte und dabei alles bremste kostete nochmal etwa 1s.

Jetzt hatte ich also eine WordPress instanz, die etwa ein Zehntel der ursprünglichen Grösse hatte und in einem viertel der Zeit lädt. Blöderweise hatte ich dadurch den Cache und die Lesestatistik eingebüsst. Suboptimal. Ersteres bremste jetzt bei jedem weiteren Seitenaufruf und letzteres verhindert, dass ich sehe welche Artikel am meisten gelesen werden (schade, aber zu verschmerzen).

Johnny Cache alias Varnish.

Ich dachte über eine Architekturänderung nach. Bisher lief der Apache Webserver im Standalone Modus und machte alles alleine. Für das Caching habe ich spaßeshalber einen Varnish Cache davorgehängt – und siehe da: Die Ladezeiten beim zweiten Aufruf waren wieder da wo sie hin sollten: Im Keller. Ganz unten. Top!

Und dank neuem, passiven Statistikplugin sehe ich jetzt wieder die Seitenaufrufe, aber ohne störende Nebenwirkungen auf die Time-to-first-Byte (TTFB).

Und HTTPS?

SSL hätte ich ja auch gerne noch, dachte ich so. Vor allem im Hinblick auf die vielen Browserfeatures die in den Chromes, Firefoxes und Edges dieser Welt Stück für Stück nur noch per HTTPS zur Verfügung stehen bzw. stehen werden. Also flugs einen HA-Proxy als SSL Terminator vor den Varnish Cache geklemmt, ein LetsEncrypt SSL Zertifikat installiert – und erstmal nur Probleme gehabt: Redirect Loops, Security Warnungen wenn Seiteninhalte teilweise per HTTP geladen wurden, Browserfehler…Blöd.

Um die Warnungen vor gemischt geladenem Content zu verhindern habe ich das “SSL Insecure Content Fixer” Plugin installiert und einige Plugins mit hartkodiertem Protokoll in den URLs (z.b. das Google Translate Plugin) per Hand angepasst. Die Redirect Loop Probleme waren eine Mischung aus fehlerhafter HA-Proxy, Varnish und WordPress Config gepaart mit einer WordPress Default URL die mit “http://” begann.

Nachdem nun alle Probleme ausgemerzt sind läuft die Kiste. Genauer: das Blog ist flott geworden. Flotter als es jemals war.

In Zahlen: First Load: ~3,8s, 670kB. Second Load: 2,7s, 64kB.

Und das mit ein paar wenigen nicht so komplizierten Handgriffen. Die These meines Bekannten ist damit hinreichend widerlegt. Oder?

Auf jeden Fall war es ein Grund seit langer Zeit wieder einmal einen Artikel hier zu posten.

Seit dem letzten Segeltörn besitze ich ein T-Shirt mit der Aufschrift “Nee, nee. Das gehört so!” vorne und “Das ist mir ja noch nie passiert!” hinten. Eigentlich aus einer lustigen Begebenheit an Bord einer Segelyacht entstanden und als Geschichte von vorn nach hinten zu lesen habe ich heute gemerkt, dass man es auch von hinten nach vorne lesen kann. Also: “Das ist mir ja noch nie passiert!” – “Nee, nee. Das gehört so!”.

Der Kniebes’sche Markus hat mich mit einem Blogstock beschmissen. “Das ist mir ja noch nie passiert!” war mein erster Gedanke. Was ein Blogstöckchen ist wusste ich zu diesem Zeitpunkt noch nicht.

Eine kurze Internetrecherche später war klar: Ein Blogstöckchen ist quasi eine Art Stafettenlauf für Blogger. In diesem Fall soll wohl jeder angeworfene das Stöckchen aufnehmen und unter dem gleichen Titel ein paar Fakten über sich zusammentragen und so klammheimlich dazu gebracht werden endlich mal wieder einen Blogeintrag zu posten und dabei etwas über sich zu verraten. Anschliessend wird das Stöckchen an jemand anderen weitergereicht. Faulheit ist keine Ausrede.

Dass grade in dieser unpassenden, unproduktiven, entspannten Phase nach einem erholsamen Urlaub so etwas kommt ist wohl einfach nur ein blöder Zufall. Nun denn, hier sind meine 10 Cents 20Punkte:

1. Den pawlikviewing-Blog gibts jetzt seit 23.02.2011.

2. Insgesamt wurden bisher 442 Artikel veröffentlicht.

3. Der Postillion ist lustiger.

4. Basic Thinking ist unterhaltsamer

5. Für ein Fototechnikblog ist pawlikviewing meistens zu technikorientiert und zu spät dran.

6. Aber ich liebe es neue Kameras anzutesten und Bedienkonzepte auszuprobieren. durchzuspielen und zu zerlegen. UX hat Sex!

7. Für ein Fotokunstblog ist pawlikviewing nicht anspruchsvoll genug

8. Mit Fotokunst kann ich meistens wenig anfangen. Siehe auch Rhein IIdie Bechers oder eben dieser Dirk Brömmel. Zum Beispiel.

9. Aus diesem Grund wird aus mir auch nie ein richtiger Top-Fotograf werden, was auch nicht weiter schlimm ist.

10. Hier erscheinen nur Artikel über die Themen, die mich interessieren und nicht über das, von dem ich glaube, dass es “die Massen” (wer auch immer das sein mag) interessiert. Sorry dafür. ;-)

11. Ich versuche keine Tracker, Werbung oder anderen Internetmüll auf diesen Seiten zu verwenden.

12. Urlaubsfotos können hier schonmal einen ganzen Blogeintrag füllen…

13. Lieber ziehe ich aber über Kameradesignunfälle wie die K-01 her.

14. Morgen ist auch noch ein Tag: jaja, ich schreibe viel zu selten hier, aber…mehr geht halt nicht.

15. Meine Meinung über Fotorumors-Seiten: Sie sorgen dafür, dass einem das Sortiment in den Fotogeschäften, auch den am besten ausgestattetsten, völlig veraltet vorkommt.

16. Die beste Kamera ist die, die demnächst angekündigt werden wird.

17. Ich liebe Zitroneneis in Positano.

18. Pizza in Napoli ist auch toll.

19. Genauso wie Norwegen zu Fuß, mit dem Auto oder per Zug.

20. Der letzte Punkt. Definitiv. Der Allerletzte.

Ehrlich: ich finde es sehr Erstaunlich, dass wirklich 20 Punkte herausgekommen sind. Denn soviel gibts über pawlikviewing ja nicht zu erzählen. ;-)

Und damit reiche ich das Stöckchen mal weiter an…Sabine.

Aus der Kategorie: Alles

k-3_af-c_sushitest_SIn den Foren wurde seit dem Erscheinen viel über den neuen, verbesserten AF-C der Pentax K-3 diskutiert.

Vorhin beim Running Sushi kam einem Bekannten von mir die Idee, den AF-C der K-3 mal im Serienbildmodus mit vorbeifahrenden Sushitellern zu quälen.

Zuhause angekommen habe ich aus diesem Speicherkartenmüll dann dieses animierte GIF gebaut. Viel Spaß damit!

Da sag noch einer, dass der Pentax AF-C zu lahm ist für alles… ;-)

Aus der Kategorie: Alles