Ladezeiten-Vergleich: Links ohne Cache, rechts mit Cache & Gzip | Johannes Ulrich Gehrke
Ladezeiten-Vergleich: Links ohne Cache, rechts mit Cache & Gzip
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress



# === COMPRESSION & OPTIMIZATION (begin) ===
# Enable GZIP
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</ifmodule>

# Expires Headers - 2678400s = 31 days
<ifmodule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType text/html "access plus 7200 seconds"
  ExpiresByType image/gif "access plus 2678400 seconds"
  ExpiresByType image/jpeg "access plus 2678400 seconds"
  ExpiresByType image/png "access plus 2678400 seconds"
  ExpiresByType text/css "access plus 518400 seconds"
  ExpiresByType text/javascript "access plus 2678400 seconds"
  ExpiresByType application/x-javascript "access plus 2678400 seconds"
</ifmodule>

# Cache Headers
<ifmodule mod_headers.c>
  # Cache specified files for 31 days
  <filesmatch "\.(ico|flv|jpg|jpeg|png|gif|css|swf)$">
  Header set Cache-Control "max-age=2678400, public"
  </filesmatch>
  # Cache HTML files for a couple hours
  <filesmatch "\.(html|htm)$">
  Header set Cache-Control "max-age=7200, private, must-revalidate"
  </filesmatch>
  # Cache PDFs for a day
  <filesmatch "\.(pdf)$">
  Header set Cache-Control "max-age=86400, public"
  </filesmatch>
  # Cache Javascripts for 31 days
  <filesmatch "\.(js)$">
  
 # === COMPRESSION & OPTIMIZATION (end) === 
  
.htaccess Code ( Quelle )

GZIP, Caching & Header-Control über die .htaccess für WordPress aktivieren

Um eine bessere Perfomance vom Server zu bekommen mit einer WordPress installation, lohnt es sich GZIP Komprimierung und Browser Caching zu aktivieren. Auf einem Server mit den entsprechenden Modulen, kann das problemlos aktiviert werden.

Dieses Stück Code vom User „Umut“ habe ich auf Stackoverflow gefunden und ist seit dem meine goto Lösung für Komprimierung und Caching. Mit der Lösung habe ich es geschafft bei einer WordPress-Installation (sofern keine Inhalte neu sind oder aktualisiert wurden), die Ladezeit von +900ms auf ca. 350ms zu senken.

Hinweis 1: Eine GZIP Komprimierung bringt nur etwas, wenn diese entweder direkt in den Files gespeichert wird, oder die Ausgabe beim User cached wird. Ansonsten dauert die Ladezeit oft sogar länger! Dies liegt daran, dass der Server während der Laufzeit alle Files erst komprimiert, was zusätzliche Rechenzeit beansprucht.

Hinweis 2: Das Caching in dieser Konfiguration nur nutzen, wenn Ihr Ressourcen nicht nachträglich ändern. Also wenn ein Bild hochgeladen wurde und der User es bereits geladen hat, und das Bild (z.b. Ein Logo im Theme Folder) austauschst, wird jedoch weiter das alte Bild beim User angezeigt.