Speed up your WordPress

11 Jul 2010 0 Comments , Estimated reading time: 3 minutes read

Geschwindigkeit ein­er Web­site ist ein wichti­ger Fak­t­or für die User Exper­i­ence ein­er Web­site. Und seit Anfang des Jahres natür­lich auch ein wichti­ger Fak­t­or für das Google Rank­ing ein­er Web­site.

Word­Press ist Out-of-the-box nicht unbedingt ein Per­form­ance Biest. Aber mit ein wenig Tun­ing ist das schon recht gut hin­zukrie­gen.

Fol­gende Aufgaben sind bei der Opti­mier­ung zu erledi­gen:

  • Cach­ing der gen­er­ier­ten Word­Press Seiten
  • Zusam­men­fassen von Javas­cript und CSS Dateien in jew­eils eine Datei
  • Akt­ivier­ung des Cach­ings von stat­ischen Dateien

Die ersten beiden Aufgaben habe ich mith­il­fe von zwei Word­Press Plu­gins real­is­iert: WP Super Cache und WP Mini­fy. Die dritte Aufgabe lässt sich auf einem Shared Host­ing Serv­er mit Hil­fe von .htac­cess real­is­ier­en.

Über WP Super Cache habe ich ja bereits ges­chrieben, allerd­ings ist jet­zt eine neue Kon­fig­ur­a­tionsmög­lich­keit hin­zugekom­men. Seit neuestem kann man auto­mat­isch für alle Word­Press Seiten stat­ische Abbilder der Seite im Voraus gen­er­i­er­en. Ich habe es so kon­fig­ur­iert, dass die Caches auto­mat­isch alle zwei Stun­den neu gen­er­iert wer­den.

WP Mini­fy fasst alle in einem Tem­plate vorhanden­en CSS und Javas­cript Files auto­mat­isch zusam­men. Das Plu­gin musste ich nur instal­lier­en und schon funk­tionierte es ein­wand­frei.

Die let­zte Aufgabe, das Cach­ing von stat­ischen Dateien, lässt sich durch ein­faches Ein­fü­gen von fol­gen­dem Code in die .htac­cess Datei akt­ivier­en. Die Dateien wer­den für zwei Mon­ate gecacht, das lässt sich aber natür­lich anpassen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Expire headers 5184000 Sekunden = 2 Monate
<ifmodule mod_expires.c="">
ExpiresActive On
ExpiresByType image/x-icon "access plus 5184000 seconds"
ExpiresByType image/gif "access plus 5184000 seconds"
ExpiresByType image/jpg "access plus 5184000 seconds"
ExpiresByType image/png "access plus 5184000 seconds"
ExpiresByType text/css "access plus 5184000 seconds"
ExpiresByType text/javascript "access plus 5184000 seconds"
ExpiresByType application/javascript "access plus 5184000 seconds"
ExpiresByType application/x-javascript "access plus 5184000 seconds"
</ifmodule>
 
# BEGIN Cache-Control Headers
<ifmodule mod_headers.c="">
<filesmatch "\\.(ico|jpe?g|png|gif|swf)$"="">
Header set Cache-Control "max-age=5184000, public"
</filesmatch>
<filesmatch "\\.(css)$"="">
Header set Cache-Control "max-age=5184000, private"
</filesmatch>
<filesmatch "\\.(js)$"="">
Header set Cache-Control "max-age=216000, private"
</filesmatch>
</ifmodule>
 
# Turn ETags Off
<ifmodule mod_headers.c="">
Header unset ETag
</ifmodule>
FileETag None

Durch diese Maß­nah­men hat sich die Per­form­ance meines Blogs im Ver­gleich zu vorher deut­lich gesteigert.

No comments yet

Post a comment

Marian Steinbach wrote on 12. July 2010 at 09:19:   Reply

Statt »access plus 5184000 seconds« kann man übri­gens auch »access plus 2 months« schreiben. 🙂

 

Martin wrote on 12. July 2010 at 10:37:   Reply

Ich gebe zu, ich hab’s mir ein­fach gemacht und den recher­chier­ten Code ein­fach übernom­men :).

 

Your comment

Your Gravatar