WordPress Konferenz 2013
WordPress für die Corporate Website:
Möglichkeiten und Best Practices
Karin Friedli & Michael Sebel
5. März 2013
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
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.
WordPress für die Corporate Website
www.klimapioniere.ch

                                      Multisite WordPress.


                                      Hauptseite mit derzeit
                                      310 Blogs/Projekten.


                                      Umsetzung Registration
                                      und automatische Blog
                                      Installation.
WordPress für die Corporate Website
Newsletter-Anbindung (Social Media Kit)
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
WordPress für die Corporate Website
Überblick über die Architektur

                                      CNAME / A-
                                      Records
                                      n-Webserver
                                      Jobserver
                                      Datenbanken
                                      Amazon S3
                                      ElastiCache Nodes
                                      (Memcached)
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.
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.
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.
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.
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.
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.
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

Blogwerk WordPress für die Corporate Website

  • 1.
    WordPress Konferenz 2013 WordPressfür die Corporate Website: Möglichkeiten und Best Practices Karin Friedli & Michael Sebel 5. März 2013
  • 2.
    WordPress für dieCorporate 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 dieCorporate 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 dieCorporate Website www.klimapioniere.ch Multisite WordPress. Hauptseite mit derzeit 310 Blogs/Projekten. Umsetzung Registration und automatische Blog Installation.
  • 5.
    WordPress für dieCorporate Website Newsletter-Anbindung (Social Media Kit)
  • 6.
    WordPress für dieCorporate 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 dieCorporate Website Überblick über die Architektur CNAME / A- Records n-Webserver Jobserver Datenbanken Amazon S3 ElastiCache Nodes (Memcached)
  • 8.
    WordPress für dieCorporate 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 dieCorporate 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 dieCorporate 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 dieCorporate 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 dieCorporate 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 dieCorporate 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