Die deutsche Spracheinstellung kostet WordPress teilweise über 40 Prozent Geschwindigkeit im Vergleich zur englischen Variante. Die Hauptursache ist die aufwendige und speicher-fressende Übersetzungsbibliothek, die WordPress bei jedem Seitenaufruf abarbeiten muss, um die originalen englischen Texte in ihr deutsches Gegenstück zu übersetzen.

Dazu wird der Webserver durch eine träge in PHP geschriebene Nachahmung von Funktionen gequält, die in vielen Fällen bereits als schneller C-Code im Betriebssystem des Webservers vorhanden sind – die sogenannte gettext-Bibliothek.

Langsames WordPress als Resultat von “günstigem” Webspace

Kann das deutsche WordPress auf diese “nativen” C-Funktionen zurückgreifen, reduziert sich der Übersetzungs-Overhead auf schlanke vier Prozent. Gleichzeitig sinkt der Hauptspeicher-Verbrauch des Webservers, sodass als Konsequenz WordPress auch wieder auf billigeren Webhosting-Paketen mit etwas niedrigerem memory_limit laufen könnte. Es gibt ja immer noch günstige Webspace-Angebote, bei dem der Hoster dieses Speicherlimit für PHP auf asketische 32 MB gesetzt hat.

Und beim Webspace-Anbieter liegt auch in Zukunft “der Hund begraben”: Die gettext-Erweiterung für PHP ist ein optionaler Bestandteil, den der Webhoster bereitstellen muss. Nicht auf jedem Webspace ist PHP mit dieser schnellen Extension eingerichtet, und in diesen Fällen wird sich an der Geschwindigkeit wahrscheinlich auch in Zukunft nichts ändern.

Licht → Tunnel

Für Nutzer aller anderen Webspace-Angebote ist Licht am Ende des Tunnels zu erkennen. Beim WordPress-Team ist ein Patch eingetrudelt, der die im Betriebssystem eingebauten schnellen gettext-Funktionen in WordPress integriert, und Andrew Nacin hat vorsichtig signalisiert, dass dieser Patch in die Version 3.4 eingearbeitet werden könnte.

Leider zeigt WordPress nirgendwo im Dashboard an, ob die schnelle oder die langsame Variante der Übersetzungsbibliothek genutzt wird – die Auswahl erfolgt vollständig ohne Eingriffsmöglichkeit für den Anwender, indem die vorhandenen Fähigkeiten (oder eben auch Unfähigkeiten) des Webservers benutzt werden.

Ein Diagnose-Plugin

Ich habe darum das Plugin Native gettext diagnosis geschrieben, das sich als zusätzlicher Eintrag im Menü “Werkzeuge” einnistet und eine Reihe von Tests durchführt.

Screenshot des Plugins “Native gettext diagnosis”

Ist die PHP-Erweiterung “gettext” geladen und das Ergebnis des Tests “WordPress kann das locale setzen” ein “Ja”, kann WordPress zumindest nach dem derzeitigen Stand der Entwicklung in Version 3.4 schneller werden.

Das Plugin funktioniert auch ab WordPress 3.2 und kann daher schon jetzt benutzt werden, um festzustellen, ob der eigene Webspace mit WordPress 3.4 schneller oder langsam arbeiten wird.

Mein Tipp: “Native gettext diagnosis” installieren, den Menüpunkt “Werkzeuge → Gettext-Diagnose” aufrufen und bei negativem Resultat entweder den eigenen Webhoster kontaktieren oder schlimmstenfalls den Webspace-Anbieter wechseln.

Meine eigenen Tests zeigen, dass zum Beispiel Host Europe, Uberspace und Dreamhost die schnelle gettext-Extension anbieten, während auf Windows basierende Hoster da leider oft passen müssen.

28. Februar 2012, 13:39 − Abgelegt in

Kommentare

Bei all-inkl.com ist es auch möglich.

Torsten · 28. Februar 2012, 16:48 · #

Tophoster.de ist auch o.k. (Paket “M”)

— Birgit · 28. Februar 2012, 19:23 · #

Selbst bei den oft gescholtenen Hostern 1&1 und Strato ist “gettext” verfügbar. :-)

Schnurpsel · 28. Februar 2012, 22:18 · #

Webhost-united.de unterstützt die Funktion ebenso.

Torsten · 29. Februar 2012, 08:46 · #

Habe es bei mir auch getestet. Was kann ich unternehmen, damit bei “WordPress kann das locale setzen” ein ja steht?

Claudio · 29. Februar 2012, 09:28 · #

Ich habe Dein Tool installiert, funktioniert wunderbar, besten Dank! Strato unterstützt gettext wohl :)

Rolf · 29. Februar 2012, 14:47 · #

Domain Factory ist auch o.k.

— karsten · 1. März 2012, 14:53 · #

Webhostone.de (Webpaket Profi V2) ist auch OK.
Danke für das Plugin :)

Hutzel · 2. März 2012, 18:44 · #

Da habe ich ja Glück einen guten Provider erwischt zu haben, bei www.wp-webhosting.de habe ich 256 MB Memory-Limit und es läuft bisher trotz vieler Plugins alles reibungslos!

— Erik · 2. März 2012, 20:15 · #

Auch bei Alfahosting ist “gettext Aktiv” (Profipaket) -auch allgemein ist Alfahosting für WP durchaus eine gute Adresse!

Peter · 2. März 2012, 22:37 · #

Danke für das hilfreiche Plugin. Der Provider meiner Wahl, Servage, bietet auch “native gettext”.

Domino5702 · 3. März 2012, 08:25 · #

Der Hoster “Revido.de” unterstützt die Funktion ebenso (Mein Paket: Profi Web Medium)

Runningsocks · 3. März 2012, 21:11 · #

1blu auch.

Martin Emmerich · 3. März 2012, 21:43 · #

Danke für das Plugin.
Q-X.ch ist ebenfalls okay (Linux-Pakete)

Hoku · 4. März 2012, 03:55 · #

Hi. Vielen Dank für den Artikel und das Plugin.
Ich habe es soeben auf meinem eigenen Server getestet. Leider steht bei ‘WordPress kann das locale setzen’ ein ‘Nein’. Der Rest sieht so aus wie auf dem Screenshot oben.
Kann mir jemand sagen was ich installieren / in den Configs einstellen muss, damit mir das Plugin an dieser Stelle ein ‘Ja’ ausgibt?
Vielen Dank!

— Icke · 4. März 2012, 04:22 · #

Also bei mir funktioniert de_DE nicht. Es muss de_DE.UTF8 sein. Solche Fälle sollte bei der Implementierung berücksichtigt werden, sonst muss ich das selbst machen. ;)

Tom · 5. März 2012, 13:54 · #

Bei uns (UD Media (http://www.udmedia.de)) ebenfalls kein Problem.

UD Media · 7. März 2012, 11:19 · #

Kurze Nachfrage bei meinem Provider planet-hosting.de und nun funktioniert es auch bei mir. Lohnt sich also mal nachzuhaken.

Tom · 9. März 2012, 11:18 · #

Danke für dieses tolle Plugin! Schön jetzt schon zu wissen, dass dieses Feature funktionieren wird :-)

Alex · 9. März 2012, 20:21 · #

Hallo,

hier ein WP-Plugin http://goo.gl/rpdLl

— Chris · 11. März 2012, 11:12 · #

Was heißt denn jetzt “WordPress kann das locale setzen”? Bei mir steht dort ein Nein. Was muss man ändern, damit dort ein Ja auftaucht, da dies ja anscheinend ein Kriterium für die Benutzung von gettext ist!?

— Fliphip · 14. März 2012, 09:44 · #

@Fliphip
setlocale muss mit ‘de_DE’ funktionieren damit dort ein Ja steht. Bei mir ging es zuerst nur mit ‘de_DE.UTF8’. Sprich mal mit deinem Provider.

Tom · 14. März 2012, 19:39 · #

Vielen Dank für diese hervorragende Recherche zu diesem sensiblen Thema.

Die WP-Entwickler sollten wirklich darauf achten, das bestehende Wordpress erst so weit wie irgendmöglich zu optimieren, bevor ständig neue Funktionen implementiert werden.

Das Thema Geschwindigkeit einer Website ist natürlich auch für Google hochaktuell.

Horst · 10. Oktober 2012, 12:25 · #

Bei webgo24.de geht es auch!
Top Support bei denen!

— Achim · 27. Oktober 2012, 23:33 · #

green.ch geht auch.

— Dani · 25. November 2012, 20:39 · #

Hallo,

danke für das Plugin, – doch es verursacht einen Fehler:

Warning: setlocale() [function.setlocale]: Specified locale name is too long in /home/vhosts/****/****.de/***.de/htdocs/wp-content/plugins/native-gettext-diagnosis/wet_native_gettext_diagnosis.php on line 39

Desweiteren schreibt es als Ergebnis das “gettext” geladen ist, aber “das geladene” nicht gesetzt werden kann
Ausserdem sind diese locales geladen:

LC_CTYPE=de_DE.UTF-8@euro UTF-8 LC_NUMERIC=C LC_TIME=de_DE.UTF-8@euro UTF-8 LC_COLLATE=de_DE.UTF-8@euro UTF-8 LC_MONETARY=de_DE.UTF-8@euro UTF-8 LC_MESSAGES=de_DE.UTF-8@euro UTF-8 LC_PAPER=de_DE.UTF-8@euro UTF-8 LC_NAME=de_DE.UTF-8@euro UTF-8 LC_ADDRESS=de_DE.UTF-8@euro UTF-8 LC_TELEPHONE=de_DE.UTF-8@euro UTF-8 LC_MEASUREMENT=de_DE.UTF-8@euro UTF-8 LC_IDENTIFICATION=de_DE.UTF-8@euro UTF-8

Mein Hoster ist prosite.de.

Was wäre hier ggf. zu tun?
Vielen Dank :)

— Orwell · 3. Dezember 2012, 10:04 · #

ist auch bei tophoster möglich, jetzt sogar mit zusätzlichen Kauf vom PHP Memory-Limit

— paul · 21. März 2013, 02:03 · #

Auch wenn dieser Beitrag schon etwas älter ist: Die gettext-Unterstützung hat es ja leider bisher nicht in WordPress direkt geschafft, aber ich habe sie in mein Plugin WP Performance Pack ( http://wordpress.org/plugins/wp-performance-pack/ ) integriert. Für alle, die keine gettext-Erweiterung haben, gibt’s eine alternative mo-Implementierung, die mit Caching fast genauso schnell wie natives gettext ist.

Björn · 25. Februar 2014, 22:35 · #



Textile-Hilfe