An der WordPress Konferenz Zürich vom 5. März 2013 sprachen Karin Friedli und Michael Sebel von der Blogwerk AG von den Möglichkeiten und Herausforderungen beim Einsatz von WordPress für Corporate Websites.
Küchen-Verband Schweiz – Publizieren? Sich unterhalten
Blogwerk WordPress für die Corporate Website
1. WordPress Konferenz 2013
WordPress für die Corporate Website:
Möglichkeiten und Best Practices
Karin Friedli & Michael Sebel
5. März 2013
2. WordPress für die Corporate Website
WordPress ≠ Blog
WordPress kann mehr als Blogs und vereint dabei das Beste
aus beiden Welten:
ist durch die zahlreichen Möglichkeiten zum klassischen CMS
ausbaubar
unterstützt durch seine Herkunft als publishing-getriebenes Tool
redaktionelle Prozesse und schnelles, einfaches Veröffentlichen
von dynamischen Inhalten
3. WordPress für die Corporate Website
www.mobilesport.ch
Filterlogik mit verschie-
denen Kategorien und
Ebenen.
Ergebnisse weiter Filter-
und Durchsuchbar.
Merklisten von Artikeln.
Erweiterte PDF- und
Druck-Funktionen.
4. WordPress für die Corporate Website
www.klimapioniere.ch
Multisite WordPress.
Hauptseite mit derzeit
310 Blogs/Projekten.
Umsetzung Registration
und automatische Blog
Installation.
5. WordPress für die Corporate Website
Newsletter-Anbindung (Social Media Kit)
6. WordPress für die Corporate Website
Infrastruktur und Statistiken
350k – 450k Requests pro Tag ( != Page Impressions)
Ca. 100 Requests/Minute aus HTML Cache
Ca. 300-400 Requests/Minute ohne HTML Cache
WordPress mit Loadbalancing, Memcached Cluster, Multi-AZ
Datenbankserver und automatischer Skalierung.
Webserver: Amazon M1 Large (7.5 GB RAM, 2x 2.4 GHz)
Server im Normalbetrieb: 2 - 4
Server im Spitzenbetrieb: 4 - 12
7. WordPress für die Corporate Website
Überblick über die Architektur
CNAME / A-
Records
n-Webserver
Jobserver
Datenbanken
Amazon S3
ElastiCache Nodes
(Memcached)
8. WordPress für die Corporate Website
Vorteile der Architektur
Alles auf der S3 = Keine Files auf den Servern ausser Code /
Tempfiles (10 GB reichen völlig).
Nicht ausgeführte Reserve Server kosten 1$ pro Monat, sind aber in
2 Minuten bereit um Last abzufangen.
Memory Cache ist sehr günstig, je mehr gecached ist, desto weniger
hat der Datenbankserver zu tun.
Jeder Teil der Infrastruktur ist auf mehrere RZ verteilt.
9. WordPress für die Corporate Website
HTML Cache / Core-Anpassung WordPress
1. Plugin: Legt nach gewissen Checks fest, ob eine Frontend Seite
gecached werden darf.
2. Plugin: Durch einen Output-Buffer wird der gesamte HTML Code in
im Memory-Cache gespeichert. Key: Hash der URL.
3. Möglichkeit 1: advanced-cache.php nutzen, um den Output
frühestmöglich zu machen sofern im Memory-Cache Daten sind.
4. Möglichkeit 2: WordPress Kern ein bisschen anpassen um noch
einiges mehr an Performance zu sparen.
10. WordPress für die Corporate Website
HTML Cache / Core-Anpassung WordPress
Normales wp-settings.php Modifiziertes wp-settings.php
Konstanten definieren Konstanten definieren
PHP/MySQL Checks Object Cache starten
Ein paar Funktionen die ca. Memory Cache prüfen
200ms Zeit benötigen Ein paar Funktionen die ca.
advanced-cache.php 200ms Zeit benötigen
DB Verbindung aufbauen advanced-cache.php
Object Cache starten DB Verbindung aufbauen
Vorteil: Zeitersparnis von ca. 200ms. Auslieferung HTML in 10 - 15ms.
11. WordPress für die Corporate Website
www.ensi.ch – Mehrsprachen-Plugin
Unsere Erfahrung mit WPML: Overpowered, extrem viel
Code, langsam bei grossen Datenmengen, UI nur bedingt cool.
WPML kriegte manchmal Updates, welche (unter Umständen nur im
Zusammenspiel mit anderen Plugins) die Datenbank zerstören.
Daher: Entscheid, eigenes Plugin zu programmieren.
Tipp: Bei kleineren- bis mittelgrossen Blogs ist WPML
ok, Erfahrungen mit alternativen haben wir bisher keine.
Protipp: DON‘T!!!... Try to build your own multilang plugin.
12. WordPress für die Corporate Website
www.ensi.ch – Grosse Menustrukturen
Problem: 836 Seiten, 200 Menüpunkte – Pro Sprache.
Führte bis WordPress 3.4 beim Speichern einer Seite oder der
Menustruktur in ein Timeout (60 Sekunden).
Seite Speichern: Rekursives clean_post_cache() unterbinden.
Wurde in WordPress 3.5 übernommen und gelöst.
Menü Speichern: Javascript Handler, der vor dem absenden den
Request verändert sodass nur die Menüpunkte gespeichert werden,
die denn auch bearbeitet wurden.
Nebenbei: Bug gefixt. Wurde aber nicht übernommen.
13. WordPress für die Corporate Website
Wenn möglich: Object Cache verwenden
13‘500 Posts.
4‘500 Tags.
Der Flaschenhals (5s)
wurde mit der Zeit das
Dropdown zur Ortssuche.
Berechnung des
Dropdowns in den Object-
Cache gelegt, senkte die
Ladezeit von 5s auf 1s.
Einschalten des HTML
Cache von 1s auf ~0.3s.
14. WordPress als Firmenwebsite - Möglichkeiten und Best Practices
Fragen? Fragen!
Karin Friedli Michael Sebel
karin.friedli@blogwerk.com michael.sebel@blogwerk.com
+41 44 533 30 08 +41 44 533 30 05
@karinfriedli @msebel