FastWP

WordPress. Performance.

Cache Enabler: Dieses Snippet verhindert PHP-Ausführung


Auf Facebook teilen

Wordpress Cache Enabler Plugin Snippet

Cache Enabler noch schneller machen

Als ich euch vor kurzem das WordPress Plugin Cache Enabler vorstellte, war ich wirklich sehr begeistert. Die Erweiterung ist im Großen und Ganzen rund 1 Sekunde schneller als jegliches andere Caching Plugin für WordPress, sogar schneller als das extreme Leichtgewicht und der bisherige Geschwindigkeitssieger Cachify. Doch auch Cache Enabler lässt sich noch weiter optimieren, nämlich indem die PHP-Ausführung ganz und gar übersprungen wird. Das erfordert aber ein wenig Tuning innerhalb der .htaccess-Datei und ist daher nicht unbedingt für Anfänger geeignet. Wobei im Grunde nur ein fertiges Snippet kopiert werden muss, welches den Cache Enabler noch einmal schneller macht, vor allem aber den Server weiter entlastet und unnötige Umwege verhindert. Falls ihr WebP-Bilder nicht benutzt, kann der erste Teil (# webp HTML file) übrigens komplett entfernt werden, denn eine fette .htaccess drückt ebenfalls auf die Performance.

Folgendes in die .htaccess von WordPress einfügen:

# 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

Server entlasten und Blog beschleunigen

Darauf aufmerksam machte mich direkt beim Release übrigens ein Nutzer, der nach einem Problem das Snippet im Support von KeyCDN, dem Entwickler hinter Cache Enabler fand. Jetzt habe ich mich dazu entschlossen, das Snippet noch einmal hier zu veröffentlichen, weil ich es für wichtig halte und es ein wenig untergegangen ist, wie ich finde. Denn wer PHP mit dem Cache Enabler komplett umgeht, sorgt dafür, dass es keinerlei Umwege mehr gibt und das Caching Plugin direkt zur statischen HTML-Datei weiterleitet, wenn diese bereits zur Verfügung steht, was natürlich deutlich effizienter ist. Ausnahmen gibt es natürlich, denn im Gegensatz zu Cachify, funktioniert die wp-cron.php auch mit dem Snippet weiterhin und erledigt ihre Arbeit. Danke an Nils für den Hinweis, da haben sich die eingeschalteten Kommentare doch schon wieder gelohnt.


Auf Facebook teilen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Um offensichtlichen Spam zuverlässig herauszufiltern, werden die Kommentare händisch moderiert, erscheinen also erst nach manueller Freischaltung und einer kurzen Wartezeit.