Pagespeed: combine_css mit WordPress

Wer WordPress mit mod_pagespeed bzw. ngx_pagespeed verwendet und den Filter combine_css verwendet, wird feststellen, das nichts passiert. Was ist zu tun?

Der Grund für die Probleme: Das Pagespeed-Modul berücksichtigt keine CSS-Einbindungen, die unterschiedliche IDs haben. WordPress setzt den Namen des CSS als ID bei der Einbindung, am Ende sieht es dann so aus:

link rel='stylesheet' id='wp-pagenavi-css' href='/wp-content/plugins/wp-pagenavi/pagenavi-css.css?ver=2.70' type='text/css' media='all'/

Der Lösungsansatz: die ID sowie den dazugehörigen Wert entfernen. Dafür kann man eine entsprechende Funktion in der functions.php des Themes einbinden:

function remove_style_id($link) {
        return preg_replace("/id='.*-css'/", "", $link);
}
add_filter('style_loader_tag', 'remove_style_id');

Der Hintergrund: der Filter style_loader_tag beinhaltet die Einbindung, die Funktion remove_style_id macht nichts weiter als in der fertigen Ausgabe der CSS-Einbindung in WordPress die ID-Werte zu entfernen. Das „Problem“ besteht schon länger, auf Codecentric.de wurde dieser Lösungsansatz bereits 2011 beschrieben.

Insgesamt braucht man am Ende mit den funktionierenden combine_css das WordPress W3TC-Plugin nicht mehr: Caching wird via Microcaching direkt von Nginx gelöst, alle anderen Seitenoptimierungen erledigt das Pagespeed-Modul im Webserver. Dieser Blog läuft mit einer entsprechenden Konfiguration und erreicht damit sehr gute Speed-Index-Werte.

Bindestrich im Online-Marketing

Aktuell wird ein lange vernachlässigtes Thema im Online-Marketing allgemein und in der Suchmaschinen-Optimerung im speziellen Diskutiert: wie wird der Bindestrich korrekt verwendet bzw. wann wir getrennt geschrieben oder „durchgekoppelt“?

Viele Texte im Internet sind nicht unbedingt ein Musterbeispiel für die korrekte Verwendung der deutschen Sprache (auch ich hier in meinem Blog mach den ein oder anderen Fehler). Besonders beliebt: Getrenntschreibung von Wörter, die eigentlich durchgekoppelt werden sollten. Kollege Martin Stäbe hat auf Sprachschach.de die korrekten Regeln einmal zusammengefasst.
Weiterlesen…

Pagespeed: Microcaching mit Nginx

Nginx ist für sich schon ein sehr schneller Webserver – er bietet jedoch noch einige interessante Funktionen für Caching, womit Zugriffe auf PHP minimiert werden und Seiten deutlich schneller ausgeliefert werden. Eine kurze Anleitung.

Für diesen Blog verwende ich als Basis die aktuelle Nginx-Mainline-Version 1.7.0 mit ngx_pagespeed-Module. Dafür musste ich nginx selbst kompilieren, was aber kein grundlegendes Problem darstellt und mit den entsprechenden Anleitungen auch auf einem aktuellen Debian-System schnell erledigt ist. Weiterlesen…

SEO: Linkmonitoring per PHP-Script

Wer Links auf anderen Seiten setzt, sei es in Kommentaren oder Gastbeiträgen, möchte natürlich wissen ob diese Links bestehen bleiben oder nach einiger Zeit still und leise gelöscht werden. Neben kostenpflichtigen Lösungen gibt es auch PHP-Scripte, die sich umsonst nutzen lassen. Ein solches soll hier kurz vorgestellt werden: BLAM – Backlink Analyser and Monitor

BLAM - Backlink Analyses and Monitoring
BLAM – Backlink Analyses and Monitoring
Die Systemvoraussetzungen für BLAM sind relativ einfach gehalten, wenn auf dem Webspace ein WordPress funktioniert sollte auch dieses Script keine Probleme haben. Voraussetzungen sind Apache oder Nginx als Webserver, PHP ab Version 5.3 und eine MySQL-Datenbank.

Nach der kurzen geführten Installation, die eigentlich nur die Datenbank-Login-Daten benötig, ist der Login in die Oberfläche möglich, in der die Projekte (bzw. das Projekt, regulär unterstütz BLAM nur ein einzelnes Projekt) verwaltet werden können.
Weiterlesen…

Pagespeed: Nginx + Memcached + PHP5-FPM

Nginx mit PHP5-FPM ist schon recht schnell, werden fertige Seiten mittels Memcached gespeichert lässt sich die Ladezeit noch weiter reduzieren. Die Umsetzung ist einfach.

Dieser Beitrag ist inspiriert von einer Anleitung auf 6tech.org und auf aktuelle Software-Versionen übertragen. Folgende Voraussetzungen müssen erfüllt sein, damit das Nginx-Setup von Memcached profitieren kann:

  1. nginx mit PHP5-FPM
  2. php5-memcached-Module installiert und aktiviert
  3. memcached muss installiert sein

Die Grundidee: statt der eigentlichen index.php wird ein Zwischenscript aufgerufen, welches den Aufruf an die eigentliche index.php weitergibt und das Ergebnis im Memcache ablegt. Dadurch erhält man auf einfachem Wege eine eine Caching-Lösung ähnlich des Plugins WP Supercache, bei der die die fertig erstellten Seiten hinterlegt werden. Dadurch ist im Falle eines Cache-Hits nur ein PHP-Aufruf nötig um das Memcache-Ergebnis auszuliefern – da die Daten im RAM abgelegt werden ist dies deutlich schneller als ein regulärer Aufruf.
Weiterlesen…

Pagespeed: Disqus mit Lazyload verwenden

Wer das Disqus-Kommentar-System in seinem Blog verwendet, wird früher oder später gemerkt haben, dass es manchmal zu Ladeverzögerungen durch Disqus kommt. Die Lösung: Lazyload.

Disqus-LogoDie Grundidee: wird beim Scrollen in einem Beitrag ein definierter Punkt erreicht, werden die Kommentare nachgeladen. Wenn ein Leser nicht den ganzen Beitrag liest werden die Kommentare gar nicht geladen, wer einen Post komplett liest bekommt die Kommentare rechtzeitig geladen sodass sie dargestellt werden wenn der Kommentarbereich erreicht ist.

Bekannt ist dieser „Lazyload“-Ansatz von Bilder (wird auch hier im Blog verwendet), da so nicht angezeigte Bilder auch nicht übertragen werden. Mit einer Anpassung des Disqus-Scripts lässt sich dieses Verhalten auch für den Kommentar-Bereich nutzen. Zwar gibt es verschiedene Ansätze, ich verwende jedoch eine Variante die jQuery voraussetzt – für die Lightbox-Funktionalität ist diese Javascript-Bibliothek bereits eingebunden, es muss also nichts zusätzlich geladen werden.
Weiterlesen…

Nginx mit SSL und SPDY

HTTPS korrekt aktiviert für kadder.de
HTTPS korrekt aktiviert für kadder.de (Google Chrome)

Wie einigen vielleicht aufgefallen ist, läuft mein Blog kadder.de neuerdings über eine verschlüsselte Verbindung (zu erkennen am HTTPS-Symbol in der Browser-Leiste). Hauptgrund für diese Umstellung, die leider etwas Zeit bei der First Byte Time kostet, war die Möglichkeit, Verbindung auch via SPDY für entsprechende Browser (z.B. Chrome) anzubieten. Außerdem hat es mich interessiert, wie sich die Umstellung der ganzen Domain auf SEO auswirkt – das wird sich aber erst in der nächsten Zeit zeigen.
Weiterlesen…

Speed Index < 1000 mit Nginx, ngx_pagespeed, PHP, W3TC

Nginx-Logo
Nginx-Logo
Nichts ist nerviger als langsam ladende Webseiten – wer WordPress selbst hostet (in meinem Fall auf einem Cloudserver bei JiffyBox) hat jedoch etliche Luft für Optimierungen. Hier stelle ich einige vor.
Das Endergebnis vorweg: für die Blog-Startseite unter www.tech-blogger.net ermittelte Webpagetest.org am 09. November 2013 einen Speed-Index von 601 (kleiner ist besser, mehr Informationen zum Speed Index) für den „First View“ und 401 für den „Repeat View“. Das ganze für eine normale WordPress-Blog-Seite (Lightbox für Bilder, 10 Beiträge auf der Startseite, Bilder für Beiträge, Google Analytics) mit einem auf TwentyTwelve basierendem Theme (von mir etwas angepasst für SEO).
Weiterlesen…

Wer wird Österreichs Seokanzler?

Nachdem gestern auf dem SEO-Day in Köln der deutsche Seokanzler gekührt wurde, geht der Wettbewerb nun in Österreich weiter: wer am Stichtag, dem 22.11.2013, mit dem Begriff „SEOKanzler“ Platz 1 auf google.at belegt, gewinnt spannende Preise.

Nachdem der Google-Index in Deutschland und Österreich unterschiedlich ist, ist es natürlich schwieriger, mit einer deutschen Domain wie kadder.de in Österreich etwas zu erreichen. Trotzdem kann man es ja mal probieren 🙂
Weiterlesen…

SEO: die wichtigsten Keywords auf kadder.de

Natürlich will man als Blog-Betreiber, dass die eigene Seite von möglichst vielen Lesern besucht wird. Grundlegendes Mittel dazu: Suchmaschinenoptimierung, kurz SEO. Dabei ist es wichtig, die Keywords, mit denen die eigene Seite gefunde wird. Dabei hilft Google Analytics, welches auf dieser Seite eingesetzt wird mit der Übersicht über die Suchanfragen. Die Keywords für kadder.de der letzten vier Wochen (in Reihenfolge):

  1. hitmeister.de (bedingt durch die Teilnahme am Blog des Jahres Wettbewerb)
  2. ipad 3 (bedingt durch meine Erfahrungsberichte zum iPad 3)
  3. asus ux32vd und asus ux32 (das Interesse an den neuen Ultrabooks ist groß, ein Exemplar ist bereits unterwegs)
  4. myfyve (anscheinend suchen viele fyve-Kunden nach der Seite)
  5. ios 5.1.1 changelog (Apples aktuelles iOS)
  6. galaxy nexus (Googles Android Referenz-Smartphone)
  7. android apple tv (anscheinend wollen viele, dass Android auf Apples TV-Box funktioniert – leider ist mir keine Lösung bekannt ;))
  8. dlna einrichten (was gerade im Zusammenhang mit FreeNAS 8.0.4 Multimedia ein interessantes Thema ist)

Natürlich dient auch dieses Postings SEO-Zwecken – und der Information. Auch die Themenauswahl hier auf dem Blog wird durch Suchmaschinenoptimierung beeinflusst, auch wenn Postings nicht nur zum Selbstzweck entstehen (bis auf dieses vielleicht ;)). Jeder, der durch Eingabe eines Suchbegriffs auf diese Seite gekommen ist mag oben aus der Liste den passenden Beitrag auswählen.