Überblick
Dieses Projekt war ungewöhnlich. Die Website war bereits fertig gebaut, Konzept und Design waren längst erledigt. Es ging um die technische Basis, die nicht wie gewünscht funktionierte. Sie musste ausgetauscht werden, ohne dass man davon an der Oberfläche etwas bemerken sollte.
Hintergrund
Die Agentur kilometer19 bat uns, einen Blick auf die Website ihres Kunden Gruse GmbH zu werfen. Die Ladezeiten machten dem Kunden Sorgen.
Der Blick unter die Haube zeigte, dass elf Sekunden und mehr vergingen, bevor man etwas erkennen konnte.

Beim Seitenaufruf wurden sehr viele Dateien geladen (183 requests), nur ein Teil davon war für die Darstellung der Seite notwendig. Standard-Maßnahmen wie Caching oder das Optimieren von Bildern brachten kaum Verbesserung. Wir haben daher vorgeschlagen, auf ein schlankeres Theme umzustellen.
Prozess
Wir haben zunächst eine 1:1 Kopie der Website erstellt und ein neues Theme sowie das PageBuilder-Plugin BeaverBuilder installiert.
Herauslösen der Inhalte
Die Website war mit dem Theme Avada aufgebaut, einem Bestseller unter den Allzweck-Themes. Diese Themes sind keine Themes im eigentlichen Sinn, sondern Plugin-Sammlungen. Theme und Plugins werden zu einem festen Paket verschnürt. Es ist nicht möglich, Funktionen, die man nicht nutzt, zu deaktivieren. Individuelle Anpassungen sind ebenfalls kaum möglich.
Normalerweise ist der Wechsel eines WordPress-Themes nicht schwierig. Aber der Fusion-Builder von Avada packt Text und Layout in ein komplexes Geflecht aus Shortcodes. Das hat zu Folge, dass man Texte nicht einfach übernehmen kann, nachdem man das Theme gewechselt hat. Im Editor sieht man eine Shortcode-Wüste:

Normalerweise kann man in WordPress nahezu nahtlos das Theme wechseln: Das Design ändert sich, aber die Inhalte sind unverändert. Mit Avada — und vielen anderen Allzweck-Themes — funktioniert das aufgrund der Shortcodes im Editor leider nicht.
Durcheinander in der Datenbank
Als nächstes haben wir das Theme Avada gelöscht, um mit dem neuen Theme und WPML (Plugin für Mehrsprachigkeit) weiterzuarbeiten. Es stellte sich jedoch heraus, dass sich sowohl das Theme Avada selbst als auch die Verknüpfungen des Themes Avada mit WPML nicht vollständig löschen liessen.
Normalerweise sollten Themes und Plugins beim Löschen alle Daten „mitnehmen“, die sie in die Datenbank geschrieben haben. Daran halten sich aber nicht alle Entwickler. Avada hinterliess jedenfalls jede Menge Tabellen und mehrere Tausend Datensätze in der Datenbank.
Der Versuch, WPML zu löschen und neu zu installieren, schlug fehl. Auch hier verblieben alte Daten in der Datenbank, die das Plugin beim Löschen nicht entfernt hatte. WPML liess sich dadurch mit dem neuen Theme nicht zum Laufen bringen.
Inzwischen hatten sich die Ladezeiten allerdings deutlich verbessert:

Clean Install
Wir haben uns dann entschieden, alle Inhalte (Texte und Bilder) in eine frische WordPress-Installation zu übertragen und mit einer sauberen Basis weiter zu machen. Das kostete zwar noch einmal Zeit, aber wir haben uns dadurch Aufwand erspart, der zuvor in Fehlersuche und -behebung geflossen war.
Für die Umsetzung der Mehrsprachigkeit haben wir uns für ein Multisite-Installation entschieden. Die Sprachen managt das Plugin MultilingualPress Pro.
Fazit
Die Ladezeit der Website hat sich drastisch verbessert. Die Startseite lädt jetzt unter zwei Sekunden. Ursprünglich musste man über 10 Sekunden warten bis die Seite geladen war.

Das schnelle Hosting bei unserem Partner Spacehost erzeugt keine Wartezeiten mehr, das neue Theme lädt nur 62 statt 180 Dateien beim Seitenaufruf.
Die Sprachversionen sind jetzt getrennt. Jede Sprache hat eine eigene Website mit eigenen Datenbank-Tabellen innerhalb einer Multisite-Installation. Das Plugin WPML hatte alle Sprachversionen innerhalb seiner Datenbank-Tabellen gemanagt. Das passiert über viele komplizierte Verknüpfungen, was in der Vergangenheit häufig zu Konflikten und Fehlfunktionen führte. Mit MultilingualPress ist die Struktur einfacher und deutlich weniger fehleranfällig.