PageSpeed Optimierung für Einsteiger - SEO Day 2014 von Murat Özdemir und Franz Hernschier.
In 5 Schritten zu einer schneller Website.
http://www.fairrank.de
http://francoseville.com
5. EINFLÜSSE DES PAGESPEEDS
Warum der PageSpeed wichtig ist
Benutzerfreundlichkeit
Google Ranking Faktor
Kosten reduzieren
Umsatzsteigerung
www.fairrank.de
Besseres Nutzererlebnis, längere
Verweildauer
Einsparen von Speicherplatz und
Bandbreite
Mehr Kaufabschlüsse
1
2
3
4
Bessere Auffindbarkeit und
Crawlbarkeit
6. STATS & FACTS - SHOPZILLA
Ladezeit von 6s auf 1,2s verringert
www.fairrank.de
12 % mehr Umsatz
1,2
s
12 %
25 % mehr Page
Impressions
25 %
6 s
Quelle: http://www.strangeloopnetworks.com
7. STATS & FACTS - AMAZON
Steigerung des Umsatzes um 1% je 100ms
www.fairrank.de
100 ms
1 %
Quelle: http://www.strangeloopnetworks.com
8. STATS & FACTS - YAHOO
9% mehr Traffic je 400ms Verbesserung der Ladezeit
www.fairrank.de
400 ms
9
%
Quelle: http://www.strangeloopnetworks.com
9. STATS & FACTS - MOZILLA
Ladezeit um 2,2 Sekunden reduziert, 60 Millionen Downloads im Jahr mehr
60 Mio /
www.fairrank.de
Jahr
2,2s
Quelle: http://www.strangeloopnetworks.com
10. INFRASTRUKTUR
Solide Basis als Voraussetzung
Der Server sollte in einem
Rechenzentrum des Landes eurer
Besucher stehen um hohe Latenzen
zu vermeiden
www.fairrank.de
Im Vorfeld ausreichend
dimensionierte Hardware um auch
kurzfristige Leistungs-Peaks
abzufangen
SOFTWARE
Nicht genutze Software/Module auf
OS- oder Webserverbasis
deaktivieren.
Auf CMS/Shop Ebene nicht genutzte
Plugins oder Module deaktivieren und
aktuelle Versionen nutzen.
ANBINDUNG
HARDWARE
12. WEITERLEITUNGEN
Weiterleitungen vermeiden
ZU LANGE WEITERLEITUNGSKETTEN UNBEDINGT VERMEIDEN!
GUT
deineseite.de
AKZEPTABEL
deineseite.de deineseite.de/startseite
www.fairrank.de
5
SCHLECHT
deineseite.de www.deineseite.de m.deineseite.de m.deineseite.de/startseite
13. BROWSER CACHING
Images, CSS, JS, PDF usw.
www.fairrank.de
4
STEUERUNG
ÜberApache Modul
mod_headers oder
mod_expires. Alternativ
httpd.conf / PHP
CACHING
Ressourcen dauerhaft
bzw. mitVerfallsdatum
im Browser-Cache
speichern
MANAGEMENT
Nachträgliche
Änderungen durch
Versionierung oder
geänderte
Dateibezeichnung
14. REQUESTS REDUZIEREN
Zusammenführung von statischen Dateien
www.fairrank.de
3
Anzahl Anfragen
2-8 Anfragen
parallel, je nach
Browser
CSS Dateien
JS-Dateien
19. KOMPRIMIERUNG AKTIVIEREN
Aktivierung über .htaccess oder httpd.conf
mod_gzip mod_deflate
Komprimiert nach LZ77 Algorithmus und Huffman
www.fairrank.de
Apache HTTP Server 1.3.x und 2.0.x
Gzip-Komprimierung
Apache HTTP Server 2.0.x
coding
Kompressionslevel zwischen 1 und 9 (Standard ist 6)
einstellbar
Dateien kleiner als ~120 bytes können größer ausfallen
2
20. KOMPRIMIERUNG AKTIVIEREN
Keyfacts
www.fairrank.de
Komprimierung 30% - 40%
Mod_deflate ist einfacher zu konfigurieren und
performanter (keine temporären Dateien)
Mod_gzip ist leistungsstärker (z.B. kann man
content vorkomprimieren)
2
21. BILDER KOMPRIMIEREN
www.fairrank.de
BILDAUSWAHL
Keine BMP oder TIFF Dateien
PNG besser geeignet als GIF
GIF nur für sehr kleine Bilder
JPG für Bilder in Fotoqualität
GRUNDLEGENDE
OPTIMIERUNG
(VERLUSTFREIE)
KOMPRIMIERUNG
Photoshop
JPegMini
PNGGauntlet
1
3
2
1
Wegschneiden unnötiger Bildteile
Farbtiefe verringern
Entfernen von Bildkommentaren /
Metadaten / Chunks
26. AUSBLICK
Und was es sonst so gibt…
Neue Standards
(z.B. SPDY / HTTP/2.0)
Mehr Performance durch Multiplexing
und Pipelining
PartielleAuslieferung der Seiten und
parallelisierte Ladevorgänge
Neue und erweiterte
BigPipe Prerendering / Prefetching
Iconfonts
www.fairrank.de
Vorabrufen und Vorabrendern von
Inhalten
Fonts ersetzen Images
Techniken
27. WIR HOFFEN, DASS ES
EUCH GEFALLEN HAT!
www.fairrank.de
Murat Özdemir
m.oezdemir@fairrank,de
Franz Hernschier
f.hernschier@fairrank.de
28. Bildnachweise
Bild in Slide 3 - nicholasjon @ flickr.com
https://www.flickr.com/photos/nicholasjon/4498088305
Bild in Slide 4 – KNLphotos2010 @ flickr.com
https://www.flickr.com/photos/knlphotos/4876774117
Bild in Slide 11 - Michaelroper @ flickr.com
https://www.flickr.com/photos/michaelroper/2611673
Bild in Slide 22 - Shreyans Bansali @ flickr.com
https://www.flickr.com/photos/thebigdurian/118602801
Bild in Slide 25 - aurelio.aisain @ flickr.com
https://www.flickr.com/photos/ionushi/2051249439
Bilder in Slide 17, 18 - designyourweb.info
http://designyourweb.info/mit-css-sprites-die-website-performance-steigern/801
www.fairrank.de
Notas del editor
Beispiel:
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 1 month"
ExpiresByType text/html "access plus 0 seconds"
ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType application/json "access plus 0 seconds"
ExpiresByType text/cache-manifest "access plus 0 seconds"
</IfModule>
Beispiel mod_headers:
<IfModule mod_headers.c>Header set Vary Accept-Encoding<FilesMatch "\.(gif|jpe?g|png|ico|swf)$">Header set Cache-Control "max-age=5184000, public"</FilesMatch><FilesMatch "\.(css)$">Header set Cache-Control "max-age=5184000, public"</FilesMatch><FilesMatch "\.(js)$">Header set Cache-Control "max-age=216000, public"</FilesMatch><FilesMatch "\.(x?html?|php|xml)$">Header set Cache-Control "max-age=604800, private, must-revalidate"</FilesMatch></IfModule>
Händisch oder automatisiert per PHP Script oder Extension / Modul / Plugin.
Beispiel:
<?php
header("Content-type: text/css");
echo file_get_contents("reset.css")."\r\n";
echo file_get_contents("page.css")."\r\n";
echo file_get_contents("navi.css")."\r\n";
echo file_get_contents("content.css")."\r\n";
?>
Achtung bei JS Dateien