Webinale 2018
Performance-Optimierung für CMS getriebene Websites, 

Berlin, 06 Juni 2018
Sporty Speedometer @ welcomia/ depositphotos
20 goldene Regeln
von Steve Souders
Wie messen?
webpagetest.org
Wie messen?
https://developers.google.com/speed/pagespeed/insights/
Wie messen?
Uptrends
Wie messen?
New Relic
Wie messen?
1. Bilder
1. Bildformate
1. Bildformate
GIF: gut für Grafiken mit wenigen Farben
PNG: Das „bessere“ GIF, komprimiert verlustfrei, kann
Transparenz.Achtung: Kann dadurch sehr gross werden
JPEG: Optimal für Biilder, lässt sich gut komprimieren. Sollte
progressive sein.
TIFF: Hat imWeb nichts verloren. Sicher, daß es im CMS
nicht doch benutzt wird?
BMP: Dito
SVG:Vectorgrafikformat, daß im Browser darstellbar ist,
sehr gut für Logos etc.
1. Bildformate
Was ist mit WebP?
1. Bildformate
1. Bildformate
Bilder zusätzlich für Chrome inWebP ausgeben.
Ergibt ca. 30% kleinere Bilder
ACHTIUNG: Speicherplatz
ACHTUNG: CDN
(Umsetzung per picture element, mit polyfill)
2. Bildgrössen
2. Bildgrössen
2. Bilder sollen
natürlich vom CMS
automatisch skalliert
und komprimiert
werden.
Falls das CMS das nicht (gutgenug) kann:
www.imgemagick.org
2. Bildgrössen
Gewünschter Workflow:
Der Redakteur lädt das Bild im Originalformat in der
Originalauflösung hoch, den Rest erledigt das System
automatisch.
Achtung: Ritch-Text-Editor!
2. Bildgrössen
Berücksichtigung von
HiDPI Monitoren:
Source Sets:

@1und @2 und @3
2. Bildgrössen
Für Bilder mit fester Breite
Qualität vs. Geschwindigkeit vs. Speicherbedarf
ACHTIUNG: Speicherplatz
ACHTUNG: CDN
2. Bildgrössen
Für responsive
Websites oder mobile
Versionen
Source Sets:

Wieviele und welche
Bildbreiten sind
sinnvoll?
2. Bildgrössen
Grafic: Wikipedia.com
2. Bildgrössen
2. Bildgrössen
Qualität vs. Geschwindigkeit vs. Speicherbedarf
ACHTIUNG: Speicherplatz
ACHTUNG: CDN
3. Metadaten
3. Metadaten
Metadaten können
Bilder stark
aufblähen.
3. Metadaten
35 kb
Mit Metadaten Ohne Metadaten
14 kb
http://exif.regex.info
Bei allen Bildern oder evtl. nurThumbnails alles ausser
IPTC rausnehmen.
Achtung: Evtl. rechtliche Implikationen
Farbprofile blähen
Bilder ebenfalls auf und
sind zumeist unnötig.
Evtl. alle Farbprofile auf SRGB umrechnen
3. Metadaten
Evtl. alle Farbprofile auf SRGB umrechnen
3. Metadaten
II. Caching
1. Locales Caching
Expire Dates im Server setzen, damit
die Dateien im Browser gecached
werden:
Bilder: lange
HTML, Javascript und CSS: kürzer
Ausnahmen für Analytics etc.
Achtung:Wird vom CDN überschrieben
1. Locales Caching
2. Content Delivery
Network
2. CDN
Optimal bei weltweiten Zielgruppen und high trafficWebsites
Kostspielig
VORSICHT bei dynamischen Inhalten
2. CDN
Bei AMP Pages kriegt man das Google CDN „gratis“ dazu.
III. Ladereihenfolge
Optimalerweise den sichtbaren
Bereich zuerst, den Rest lazy loading
Text vor Bildern
Skripte am Ende der Seite laden

(Geht nicht mit allen, manche müssen/sollen
im Head stehen. 

Browserdetection, JQuery, Analytics)
Hier muss man immer Kompromisse machen
ACHTUNG:Themenbühne
III. Ladereihenfolge
IV. Anzahl der HTTP
Requests
IE 11:
Max Connections = 33
Connections per Hostname = 13
Chrome 60:
Max Connections = 24
Connections per Hostname = 6
Firefox 54:
Max Connections = 29
Connections per Hostname = 6
IV. Anzahl HTTP
Requests
IV. Anzahl HTTP
Requests
CSS und Javascript zusammenlegen
wo immer möglich und sinnvoll
Bilder auf (mehrere) Subdomain
auslagern. Request Limit gillt pro
(Sub)Domain.
Fremden Code evtl. von extern laden
(Bootstrap, Fonts, JQuery etc.)
Auslagern von CSS und JS eher nicht sinnvoll, da gecached
Achtung: CMS
Achtung: CDN
Achtung: HTTP/2
IV. Anzahl HTTP
Requests
V. Javascript und CSS
minifizieren
V. Javascript und CSS
minifizieren
Performancegewinn hängt von der
Größe der JS und CSS ab
Nur sinnvoll, wenn automatisiert
möglich (Less, Sass)
Lesbarkeit geht verloren und
Deployment Prozess wird komplexer
Genau prüfen, ob im konkreten Fall wirklich sinnvoll
V. Javascript und CSS
minifizieren
VI. DNS Lookups
reduzieren
Weiterleitung von http auf https plus Site Root in einem
Schritt machen.
DNS Lookup aus anderen Ländern hängt von der CDN
Performance ab.
Gzip auf dem Server benutzen
AJAX cachbar machen
VII. Der Rest
Find these slides and
much more stuff at
www.bokowsky.net/de/knowledge-base/
Vielen Dank
Markus Bokowsky
markus@bokowsky.de
@MarkusBokowsky
sowie auf Facebook, Google+, Foursquare,
LinkedIn, Lanyrd, Pinterest, etc.
Bokowsky + Laymann GmbH
www.bokowsky.de
@BokowskyLaymann
sowie auf Facebook, Slideshare, YouTube,
Flickr
P.S: Bokowsky + Laymann sucht Entwickler
Objective-C, Java (Android), PHP, ColdFusion, Swift
jobs@bokowsky.de oder im Social Network IhresVertrauens

Performance-Optimierung für CMS getriebene Websites.