Performance Optimierung wird immer wichtiger, schließlich sind sich mittlerweile fast alle SEO-Blogs einig, dass die Performance einer Seite ein wichtiges Ranking Kriterium ist. Genauso wie die Hardware Performance stetig gestiegen ist in den letzten Jahren, so sind auch die Performance Ansprüche von Skripten gestiegen. Gerade Performance Monster wie Magento wären auf Pentium 3 Webservern undenkbar gewesen. Doch wie holt man das meiste aus seiner Webseite heraus ohne auf den modularen Luxus von Magento und Drupal zu verzichten?
Wenige HTTP Requests
Ein einfach umzusetzender Performance Tweak sind die HTTP Requests. Die meisten Browser verarbeiten in den Standard Einstellungen nur 2-5 HTTP Requests gleichzeitig. Also muss der Browser bei 40 Requests diese alle seriell abarbeiten, wodurch das ganze deutlich langsamer wird.
Die einfachste Optimierungsmöglichkeit der HTTP Requests sind die Javascripts und Stylesheets. Gerade bei aktuellen Content Management Systemen werden viele Teile der Seite nur noch Modular eingebunden. Das heißt allerdings auch, dass jedes Modul für die Darstellung ein CSS mitbringt und eventuell noch ein oder zwei Javascript Datei(en).
Es gibt für viele Systeme mittlerweile Module, welche die Javascript und CSS Dateien vor dem Ausliefern der Seite in eine Datei zusammenfassen. Genau zu solchen Modulen würde ich auch raten, obwohl sie nicht das Optimum aus der Seite herausholen. Auch wenn die (minimale notwendige) Rechenleistung für das Zusammenfassen der Dateien bei den meisten Servern heute keine wirkliche Rolle mehr spielt, ist das manuelle Zusammenfügen von CSS und Javascript Dateien nach wie vor Effizienter, wenn auch umständlicher in der Wartung.
Auch Hintergrund Bilder kann man ohne Probleme zusammenfassen. Wenn die Bilder nicht in der Bilder Suche erscheinen sollen, kann man diese mit sogenannten CSS Sprites zusammenfassen und dadurch enorm viele HTTP Requests einsparen. Uninteressant wird das allerdings, wenn die Bilder in der Google Bilder Suche erscheinen sollen, da Google keine CSS Sprites verarbeiten kann.
Expire Header
Bei einem Seitenbesuch werden viele Dateien dank der intelligenten Caching Mechanismen nur einmal von dem Server in den Cache geladen. Allerdings werden die meisten Dateien immer noch ohne Expire Header ausgeliefert. Diese sogenannten Expire Header übermitteln dem Browser, wie lange sich diese Datei nicht ändern wird. Werden die Expire Header bei einer Datei mit ausgeliefert, behält der Browser die Datei solange im Cache bis der Expire Header ausläuft. Gerade CSS und JS Dateien kann man dem Browser deutlich länger in den Cache einlagern, als es durch die Standardwerte geschieht.
DNS Abfragen reduzieren
Bei vielen Providern sind die DNS Server sehr langsam. Um dieses Performance Problem auszutricksen hilft eigentlich nur eins: Inhalte von so wenigen Domains wie möglich laden. Durch die Verbreitung von Widgets, Werbung und sonstigen eingebundenen Diensten ist das leider nicht immer möglich. Allerdings sollte man sich bei vielen Widgets auch fragen, ob man diese wirklich braucht oder nicht vom lokalen Server einbinden kann? Bestes Beispiel dafür sind die Iconfarmen für die verschiedenen Social Bookmark Seiten. Ich kenne eigentlich kaum jemand, der diese Icons wirklich benutzt, und selbst wenn man auf die Icons besteht, kann man diese auch vom lokalen Server aus mit dem richtigen Link einbinden.
Bilder nicht mit HTML verkleinern
Eigentlich ein lächerlicher Tipp, wenn man es nicht noch viel zu oft sehen würde: Bilder die 3 Megapixel groß sind und dann via HTML auf 800×600 herunterskaliert werden. Sowas ist ein absolutes No-Go und sollte auf jeden Fall entweder durch serverseitige Skalierung oder durch kleinere Bilder vermieden werden. Mittlerweile gibt es aber kaum noch ein CMS, welches das serverseitige skalieren von Bildern nicht zulässt und daher ist die Empfehlung die Bilder via PHP auf dem Server verkleinern zu lassen.
Caching Mechanismen
Mittlerweile gibt es kaum mehr ein CMS welches ohne intelligente Caching Mechanismen ausgeliefert wird oder Module für diese Funktionen existieren. Allerdings wird es auf vielen Seiten, trotz der technischen Möglichkeit, nicht eingesetzt. Manche Teile einer Seite kann man leider nicht cachen, andere dafür umso besser. Also informieren Sie sich und finden Sie heraus welche Caching Möglichkeiten das verwendete CMS bietet. Gerade für WordPress und Drupal bieten sich eine Vielzahl von Möglichkeiten. Hiervon profitiert natürlich nicht nur die Ladezeit der Seite, sondern auch die Auslastung des Servers.
Viel Bandbreite und dadurch Ladezeit kann man auch durch den Einsatz von GZIP-Kompression einsparen.