Noch mehr Speed mit KeyCDN Cache Enabler

Speed, Speed und nochmals Speed, ohne den geht in der Welt des WWW ja überhaupt nichts mehr Spätestens aber seit es ein Rankingfaktor bei Google geworden ist. Ich zeige Dir wie Du Deine Wordpress Installation mit KeyCDN’s Cache Enabler noch weiter aufbohren kannst.

Cache Enabler mit noch mehr Speed

Auf meinem Hauptprojekt guenstig-kochen.at rätselte ich lange warum, trotz Optimierung, z.B.: Pingdom immer noch meckerte was den Speed anging. Und so begann ich wieder zu recherchieren. Scheint ja mittlerweile ein zwanghaftes Hobby von mir zu sein ;-)

Ich wurde dann schließlich auf der Seite von KeyCDN selbst fündig. So findet man dort einen Hinweis, dass es durchaus Sinn macht PHP zu umgehen, welches ja nach wie vor trotzdem die Arbeit für den Seitenaufbau übernimmt, und mittels .htaccess die Anfrage des Browsers direkt auf die gecachten Seiten zu leiten.

Dazu benötigt man folgenden Code (Apache 2.3.9 und höher)

# BEGIN Cache Enabler
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# set blog sub path
SetEnvIf Request_URI "^(.*)$" SUB_PATH=/wp-content/cache/cache-enabler/

# set Cache Enabler path
SetEnvIf Request_URI "^(.*)$" CE_PATH=$1
SetEnvIf Request_URI "^(/)index.php$" CE_PATH=$1

<IfModule mod_mime.c>
# webp HTML file
RewriteCond %{ENV:CE_PATH} /$
RewriteCond %{ENV:CE_PATH} !^/wp-admin/.*
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{HTTP_COOKIE} !(wp-postpass|wordpress_logged_in|comment_author)_
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{HTTP:Accept} image/webp
RewriteCond %{DOCUMENT_ROOT}%{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index-webp.html.gz -f
RewriteRule ^(.*) %{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index-webp.html.gz [L]

# gzip HTML file
RewriteCond %{ENV:CE_PATH} /$
RewriteCond %{ENV:CE_PATH} !^/wp-admin/.*
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{HTTP_COOKIE} !(wp-postpass|wordpress_logged_in|comment_author)_
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{DOCUMENT_ROOT}%{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index.html.gz -f
RewriteRule ^(.*) %{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index.html.gz [L]

AddType text/html .gz
AddEncoding gzip .gz
</IfModule>

# webp HTML file
RewriteCond %{ENV:CE_PATH} /$
RewriteCond %{ENV:CE_PATH} !^/wp-admin/.*
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{HTTP_COOKIE} !(wp-postpass|wordpress_logged_in|comment_author)_
RewriteCond %{HTTP:Accept} image/webp
RewriteCond %{DOCUMENT_ROOT}%{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index-webp.html -f
RewriteRule ^(.*) %{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index-webp.html [L]

# default HTML file
RewriteCond %{ENV:CE_PATH} /$
RewriteCond %{ENV:CE_PATH} !^/wp-admin/.*
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{HTTP_COOKIE} !(wp-postpass|wordpress_logged_in|comment_author)_
RewriteCond %{DOCUMENT_ROOT}%{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index.html -f
RewriteRule ^(.*) %{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index.html [L]

# wp override
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [END]
</IfModule>
# END Cache Enabler

Also nichts wie hin und schnell per copy & paste in die eigene .htaccess gezaubert. Dies führte bei mir aber zu einem Serverfehler und die Seite brach mit eben einer solchen Meldung ab. Gott sei Dank hat der Ersteller von diesem wunderbaren Plugin auch hier eine Lösung parat.

Angepasster Code (Apache älter als 2.3.9)

# BEGIN Cache Enabler
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# set blog sub path
SetEnvIf Request_URI "^(.*)$" SUB_PATH=/wp-content/cache/cache-enabler/

# set Cache Enabler path
SetEnvIf Request_URI "^(.*)$" CE_PATH=$1

<IfModule mod_mime.c>
# webp HTML file
RewriteCond %{ENV:CE_PATH} /$
RewriteCond %{ENV:CE_PATH} !^/wp-admin/.*
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{HTTP_COOKIE} !(wp-postpass|wordpress_logged_in|comment_author)_
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{HTTP:Accept} image/webp
RewriteCond %{DOCUMENT_ROOT}%{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index-webp.html.gz -f
RewriteRule ^(.*) %{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index-webp.html.gz [L]

# gzip HTML file
RewriteCond %{ENV:CE_PATH} /$
RewriteCond %{ENV:CE_PATH} !^/wp-admin/.*
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{HTTP_COOKIE} !(wp-postpass|wordpress_logged_in|comment_author)_
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{DOCUMENT_ROOT}%{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index.html.gz -f
RewriteRule ^(.*) %{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index.html.gz [L]

AddType text/html .gz
AddEncoding gzip .gz
</IfModule>

# webp HTML file
RewriteCond %{ENV:CE_PATH} /$
RewriteCond %{ENV:CE_PATH} !^/wp-admin/.*
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{HTTP_COOKIE} !(wp-postpass|wordpress_logged_in|comment_author)_
RewriteCond %{HTTP:Accept} image/webp
RewriteCond %{DOCUMENT_ROOT}%{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index-webp.html -f
RewriteRule ^(.*) %{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index-webp.html [L]

# default HTML file
RewriteCond %{ENV:CE_PATH} /$
RewriteCond %{ENV:CE_PATH} !^/wp-admin/.*
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{HTTP_COOKIE} !(wp-postpass|wordpress_logged_in|comment_author)_
RewriteCond %{DOCUMENT_ROOT}%{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index.html -f
RewriteRule ^(.*) %{ENV:SUB_PATH}%{HTTP_HOST}%{ENV:CE_PATH}index.html [L]
</IfModule>
# END Cache Enabler

Dieser Kniff hat nicht nur meine Ladezeit um ca. 40% reduziert, sondern auch nochmals die zu ladende Anzahl an Bytes um einiges reduziert. Schau Dir dazu meinen Screenshot dazu an

Cache Enabler bypass PHP

Wenn ich jetzt wieder diese lästigen query_strings vom Revolution Slider weg bekomme, dann kann ich wieder ruhiger schlafen ^^ Google’s Page Speed meint zu meinen Optimierungen nun das

Mobil => 85 / 100

Google Pagespeed Mobile

Desktop => 95 / 100

Google Pagespeed Desktop

Das entspricht einer Steigerung von je 13(!) Punkten. Nicht übel, oder?

Ein neuer Test, den Google nun anbietet, ist ein gezielter Test für mobile Geräte, die sich im (zumindest) §G Netz herumtreiben. Was dieser jetzt genau macht und was dieser nun wirklich aussagt kann ich zu diesem Zeitpunkt noch nicht wirklich sagen. Mein Ergebnis sieht jedenfalls so aus

Leistung und Geschwindigkeit Ihrer mobilen Webseite testen – Google (kann jetzt auch auf Deutsch genutzt werden)

Leistung und Geschwindigkeit messen

Leistung und Geschwindigkeit messen

Im Grunde ja sehr erfreuliche Werte, die ich da jetzt abstaube. Mal sehen wie lange mich Google daran glauben lässt, dass ich „Excellent“ bin.

Auch GTMetrics ist jetzt mehr als zufrieden

GTMetrics Ergebnis für guenstig-kochen.at

Ich möchte hier nochmals anmerken, dass ich kein WordPress – Guru bin, sondern mir meine Ergebnisse hart erarbeiten muss. Sei es durch Recherche, Trial & Error, Learning by Doing oder was auch immer. Was ich allerdings sagen kann ist, dass ich dich mit meinen Texten hier genau vor so einer Odysee bewahren möchte, damit du gleich ans Ziel kommst.

Wenn Du jetzt noch wissen willst wie du das (so zumindest meine Meinung) fehlende Feature von KeyCDN’s Cache Enabler die Unterstützung von wp_is_mobile() in den Griff bekommst, dann lege ich dir meinen Beitrag => KeyCDN Cache Enabler um wp_is_mobile() Funktion erweitern ans Herz.