„At Google we’re obsessed with speed.”
Google legt auf Geschwindigkeit großen Wert: „Schnelle Websites erhöhen die Zufriedenheit der Nutzer und verbessern die Gesamtqualität des Webs, insbesondere für Nutzer mit einer langsamen Internetverbindung.” Möglicherweise wird Google in Zukunft die Geschwindigkeit von Websites direkt in sein Suchmaschinen-Ranking einfließen lassen. Indirekt wirkt sie sich heute schon aus, denn Google registriert und bewertet die Ladeabbrüche, wenn genervte Besucher das Laden einer langsamen Webseite nicht mehr abwarten wollen und auf den Zurück-Button, zur Google-Suche klicken.
Das sollte für Drupal-Admins Grund genug sein, sich das Caching genauer anzusehen, insbesondere da dynamisch mittels eines Content Management Systems generierte Webseiten gegenüber statischen ohnehin einen prinzipiellen Geschwindigkeitsnachteil aufweisen.
Caching in Drupal 7
Drupal 7 bringt out-of-the-box ein Caching mit sich, man findet die Einstellungen dazu in Administration » Configuration » Development » Performance. Entscheidend ist der Wert für Minimum Cache Lifetime. Wählt man ihn zu hoch, dauert es sehr lange, bis Änderungen an der Website für Besucher sichtbar werden. Wählt man ihn zu kurz, muss das CMS die jeweilige Seite öfter neu generieren als es notwendig wäre – mit den entsprechenden Geschwindigkeitseinbußen.
Leider lässt Drupal 7 nur einen Wertebereich zwischen einer Minute und einem Tag zu – was für stark besuchte Websites, die häufig aktualisiert werden, ausreichend ist. Für kleine Homepages, die selten aktualisiert oder (vorübergehend) nicht weiter entwickelt werden, ist die Begrenzung auf einen maximal 24 Stunden gültigen Cache unbefriedigend.
Der Wertebereich kann jedoch einfach ausdehnt werden. In modules/system/system.admin.inc muss dazu folgende Zeile modifiziert werden:
$period = drupal_map_assoc(array(0, 60, 180, 300, 600, 900, 1800, 2700, 3600, 10800, 21600, 32400, 43200, 86400), 'format_interval');
Das in Klammern aufgeführte Array ist der fragliche Wertebereich, jeweils in Sekunden und durch Kommata getrennt. Gewünschte zusätzliche Werte können nach Belieben hinzugefügt werden. Beispielsweise erlaubt folgende Einstellung, die Minimum Cache Lifetime auf eine Woche und einen Monat auszudehnen:
$period = drupal_map_assoc(array(0, 60, 180, 300, 600, 900, 1800, 2700, 3600, 10800, 21600, 32400, 43200, 86400, 604800, 2592000), 'format_interval');