Performance Optimierung

Performance Optimierung

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...
HTML 5 Überblick

HTML 5 Überblick

Die letzte HTML Spezifikation ist von 1999, also mittlerweile knapp zehn Jahre her. Auch wenn man das kaum mitkriegt, hat sich seitdem einiges bewegt bei der W3C. Nachdem zwischenzeitlich immer wieder an XHTML gearbeitet wurde, wird jetzt doch noch eine Version 5 von HTML erscheinen. Und die neue Version wird eine Vielzahl von Änderungen enthalten. Die größte Änderung der neuen Version dürfte der Abschied von SGML sein. Dadurch wird zum zweiten Mal ein sehr alter Standard verabschiedet, welcher damals auch mit XHTML beseitigt wurde. Generell kann man sagen, dass HTML5 deutlich näher am Nutzer entwickelt worden ist, als irgendeine HTML/XHTML Version davor. Den Dokumententyp beispielsweise kann man in Zukunft mit einem simplen <!dopytype html> angeben. Bisher sind hier Mammutzeilen wie diese keine Seltenheit: Bei vielen Änderungen kommt es einem so vor, als würde die W3C einfach die aktuellen Seiten als valide erklären. So wird beispielsweise das Verlinken von Blockelementen, was man heute schon sehr oft sieht, nun nachträglich als valide erklärt. Das dürfte auch eine Folge davon sein, dass die Browserhersteller diesmal deutlich besser in den Prozess eingebunden worden sind, als in die neuen Versionen zuvor. Die Browserhersteller müssen diesmal also nicht 2 Standards, den Standard und den quasi-Standard der im Web verwendet wird, unterstützten, sondern der Standard wird dem quasi-Standard einfach angepasst. Ein weitere große Änderung ist die native Unterstützung von Audio und Videodateien. Ist Audio und Video Material bisher ausschließlich mit Flash oder Silverlight anzusehen, so sieht der neue Standard vor, dass die Browser dass auch nativ beherschen. Die Idee ist sicherlich gut, scheitert aber vermutlich an den Codecs. Leider wurde bei HTML 5 bisher kein Codec vorgeschrieben und daher wird das ganze vermutlich...
Die Hassliebe zwischen Magento und Afterbuy

Die Hassliebe zwischen Magento und Afterbuy

Afterbuy dürfte vor allem durch die sehr gute eBay Integration zu Kunden gekommen sein. Diese Kunden haben anschließend auch ihren Online Shop an Afterbuy angeschlossen. Auch dürfte die perfekte Integration in XT:Commerce viele dazu bewegt haben sich dort anzumelden. Dass diese Afterbuy Nutzer bei der Umstellung ihres Online Shop Systems nicht mehr von Afterbuy wegzukriegen sind, klingt auch durchaus verständlich. Die Kunden sind schließlich bereits an die Features und Eigenheiten von Afterbuy gewöhnt. Leider hat das aber durchaus eine problematische Seite, wenn man das ganze in Zusammenhang mit Magento sieht. Magento ist ein sehr modularer Shop, den man in jegliche Richtung erweitern kann. Leider ist er aber durch die vielen Funktionen und die hohe Erweiterbarkeit deutlich komplexer als die anderen eCommerce Systeme, wie beispielsweise XT:Commerce. Dadurch wird er zwar einerseits deutlich flexibler, anderseits wird es auch deutlich komplexer diese Flexibilität auszunutzen. In Zusammenhang mit Afterbuy sieht man hierbei erste schwächen des Shopsystems. Der Shop kommt ursprünglich aus Amerika und dort ist Afterbuy, soweit ich weiß, nicht vertreten. Dadurch ist die Integration von Afterbuy an den deutschen Entwicklern hängen geblieben, was diese mit mäßigem Erfolg erledigt haben. Es gibt bislang, soweit ich weiß, zwei Möglichkeiten einer Afterbuy Integration in Magento. Einmal wäre hier das Modul von Mickser zu nennen und das Afterbuy Modul von Rico Neitzel. Ich habe mit beiden Modulen meine Erfahrung gemacht und musste feststellen, dass leider auch nicht jedes gekaufte Modul seine Funktion voll erfüllt. Trotzdem rate ich im Zweifelsfall auf jeden Fall zu dem Modul von Rico Neitzel, das deutlich stabiler arbeitet. Aber auch wenn das Modul von Rico Neitzel gut arbeitet, so sind hier leider auch noch...
.htaccess RewriteRule mit Umlauten

.htaccess RewriteRule mit Umlauten

Ein Webseiten-Umzug vom einem Server auf den anderen ist immer ein heikles Unterfangen, vor allem wenn die Server unterschiedliche Standard Character Encodings verwenden. Da kann es durchaus passieren, dass die htaccess 301’er danach nicht mehr funktionieren, speziell wenn Umlaute dabei verwendet werden. In meinem direkten Fall wurde beim Umzug gleichzeitig von ä/ö/ü Urls auf ae/oe/ue Urls umgestellt. Also wurde logischerweise ein 301-Redirect auf die neuen URL’s gesetzt. Auf dem Testserver (UTF-8) kam dabei folgende Regel zum Einsatz: Leider sah das ganze auf dem neuen Server deutlich anders aus. Hier funktionierten die alten RewriteRules nicht mehr. Nach ein paar Veränderungen hat das ganze aber wieder hingehauen. Hier die neue Rule:...
Magento für den deutschen Markt Rechtssicher machen

Magento für den deutschen Markt Rechtssicher machen

Wie so oft hat Deutschland im Ecommerce sehr spezielle Gesetze. Speziell durch das deutsche Abmahnrecht muss man als Shopbetreiber sehr aufmerksam sein, dass alle Gesetze ordnungsgemäß umgesetzt werden. Leider ist das mit vielen Shopsystemen aus Amerika nicht immer so ganz einfach. Daher haben sich die heimischen Anbieter von Shoplösungen auch ein quasi Monopol aufgebaut. Auf der rechtlich sicheren Seite war man teilweise nur mit Lösungen von deutschen Softwareanbietern. Magento ist derzeit dabei den E-Commerce Markt von hinten aufzurollen, allerdings ist das speziell in Deutschland mit einigen Problemen behaftet. Das ganze könnte sich aber jetzt ändern, da für den deutschen Markt eine deutsche Erweiterung programmiert worden ist, die angeblich alle Abmahngefahren beseitigen soll. Die Erweiterung Market Ready Germany by symmetrics & Trusted Shops soll alle Probleme beseitigen. Ich persönlich hab die Erweiterungen noch nicht installiert, da ich die von mir betreuten Shops mittlerweile so sehr modifiziert habe, dass diese abmahnsicher sind. Ich muss also meine Erweiterungen erstmal mit dem Modul zusammen testen und dementsprechend wieder zurückbauen. Hier noch eine kleine Übersicht über die Funktionen des Moduls: Anpassung der Informationsseiten für die Anbieterkennzeichnung (Impressum), der Datenschutzerklärung, sowie der Widerrufsbelehrung und der AGB Standardkonfiguration für den deutschen Markt (insbesondere Datumsformate, MwSt.-Sätze) Einbindung aussagekräftiger und leicht auffindbarer Verweise auf Informationsseiten Zentrale Verwaltung aller Stammdaten im Impressums-Modul Verlinkung der Preisbestandteile und zusätzlich anfallender Kosten (einschließlich 19 Prozent Umsatzsteuer zuzüglich Versandkosten) an notwendigen Stellen Optimierung der Auftragsabwicklung (Angabe von Lieferzeit und Versandgewicht, Anzeige des Lagerbestands durch Ampel-Funktion) Anpassung der Informationen im Bestellprozess und zur Rechnungsstellung Verbesserung der Shop-Performance (Caching, Templates, automatische Bildoptimierung) Entfernung abmahnungsgefährdeter Formulierungen aus Shop- und E-Mail-Templates Integration des aktuellen German Language Packs mit...
Magento Startseite gestalten

Magento Startseite gestalten

Die Startseite von Magento anzupassen ist gar nicht so einfach. Man findet einfach kein Template, dass die Startseite wiedergibt. Das könnte daran liegen, dass die Startseite eine einfache CMS Page von Magento ist. Klingt vielleicht etwas seltsam, denn wie soll man den so vernünftig das Look&Feel der Startseite verändern. Durch das Template & Block System kann man sogar in CMS Seiten Blöcke einbinden. Man kann also sowohl die Bestseller Produkte einblenden, als auch eine eigene Kategorie für die Startseite anlegen und diese anzeigen lassen. Beispielsweise kann man sich mit diesem Snippet: Die Kategorie mit der ID 2 anzeigen lassen. Man kann natürlich ebenso andere Blöcke einbinden, z.B. einen mit den aktuellen Bestsellern (gibt es Module dafür) oder sogar selbst einen Block schreiben. Bewährt hat es sich, dass man eine Kategorie erstellt mit Produkten die auf die Startseite sollen und diese deaktiviert. Dadurch wird sie im normalen Menü nicht angezeigt und man kann trotzdem die Produkte manuell per Hand auf die Startseite...
Drupal und eine leere XML Sitemap

Drupal und eine leere XML Sitemap

Heute mal wieder ein kurzer Ausflug in die Drupal Welt, da es hier zur Zeit einige Probleme mit dem Module XML Sitemap gibt. Das Modul ist einem beim erstellen von Sitemaps eine große Hilfe, wenn es richtig funktioniert. Nach dem letzten Update (13.5.09) hatten aber leider viele Leute und auch ich das Problem, dass das Modul die Sitemap nicht mehr richtig erstellt. Das Modul gab bei mir immer nur eine leere Sitemap aus. Zum Glück gab es schon ein dazu passendes Topic im Forum. Die Lösung des Problems ist relativ einfach. Man muss dazu nur das PHP-Filter Modul aktiviert haben. Anschließend erstellt man einen node mit folgendem Inhalt: Jetzt wird dieser Node einmal aufgerufen. Anschließend kann man die Cronjob Datei aufrufen und sollte jetzt in der Sitemap wieder erste Einträge sehen. Je nach größe der Seite muss man den Cronjob aber öfters durchlaufen lassen, da dieser nur eine bestimmte Anzahl an Nodes hinzufügt pro...
Drupal Taglinks – Automatische Verlinkung von Tags

Drupal Taglinks – Automatische Verlinkung von Tags

Habe heute aus der Not heraus das ALinks Plugin ein bisschen umgeschrieben. Das Alinks Plugin selber dient dazu, bestimmte Beiträge automatisch zu verlinken, wenn ein bestimmter Ausdruck vorkommt. Das Plugin ist an und für sich sehr praktisch. Das Plugin wurde für ein Kundenprojekt realisiert. Dort wurde auch die Tagseite ein bisschen modifiziert – zu einer Tabelle. Ich habe bei dem Projekt aber recht schnell festgestellt, dass die Funktion an und für sich gar nicht so sinnvoll ist. Kurzzeitig hier im Blog eingesetzt uferte das ganze ziemlich aus. Jedes 3-4 richtige Wort wurde Unterstrichen und hat auf die Tag Seite verwiesen. So machts dem Nutzer natürlich wenig Spaß, den Text zu lesen. Wenn man das Projekt aber konsequent auf wenige Tags begrenzt und diese Tags von allen Autoren verwendet werden, kann das Plugin durchaus Sinn machen. Daher habe ich mich entschlossen das Plugin auf Anfrage per Mail zu verschicken. Veröffentlichen selber ist leider keine Option, da das Plugin wirklich nur sehr rudimentäre Administrationsmöglichkeiten bietet. Diese werde ich in folgenden Versionen daher eventuell noch ausbauen. Im Moment schwebt mir allerdings eher ein Ausbau in Richtung „Lexikon“ Sektion vor. Das heisst man hat einen Inhaltstypen mit dem namen Lexikon und wenn ein Node hier „Knochen“ heisst, wird dieser von allen anderen Nodes automatisch verlinkt. Hierfür könnte ich mir durchaus einige Sinnvolle Verwendungen vorstellen. Allerdings müsste man hier wohl gleichzeit Caching Mechanismen einbauen, da der Rechenaufwand hier sonst durchaus drastisch steigen dürfte. Speziell bei großen Drupal Sites, die vermutlich aber sowieso Caching Mechanismen einsetzen, würde Rechenaufwand unskalierbar...
Alinks mit Sonderzeichen

Alinks mit Sonderzeichen

Alinks gehört wohl zu den besten Modulen für Drupal. Damit lassen sich großartige Dinge verwirklichen. Leider hat Alinks im Zusammenspiel mit FCKEditor leichte Probleme mit den Sonderzeichen. Der FCKEditor setzt automatisch Sonderzeichen in HTML-Kodierung um, das heisst aus ä wird &auml;. Dadurch kann Alinks das ganze dann nicht mehr in einen Link verwandeln. Zum Glück ist aber Drupal UTF-8 fähig und wird standardmässig als UTF-8 ausgeliefert. Daher kann man die Sonderzeichenmaskierung, die der FCKEditor betreibt, einfach abschalten. Dies funktioniert wie folgt: In das FCKEditor Verzeichnis wechseln In den Unterordner FCKEditor wechseln Hier die Datei fckconfig.js öffnen und folgende Zeilen anhängen: Danach funktioniert Alinks auch prima mit...
Drupals Nachteile im Vergleich zu WordPress

Drupals Nachteile im Vergleich zu WordPress

Jeder der sich schon einmal mit den beiden Systemen WordPress und Drupal beschäftigt hat, weiß dass man die Systeme nicht wirklich miteinander vergleichen kann. Drupal als Allrounder CMS – WordPress als vielseitiges Blogsystem mit Grenzen. Doch natürlich hat auch Drupal gewisse Macken, die einem speziell im Vergleich mit WordPress sehr drastisch auffallen. Speziell die unvollständigkeit am Anfang dürfte viele Nutzer zurück zu WordPress getrieben haben. Ich möchte hier auf ein paar Eigenheiten eingehen und wie man mit ihnen umgeht. Bilder Der wohl größte Schwachpunkt von Drupal ist die Bilderverwaltung. Es gibt zwar durchaus einige Module, die die Bilderverwaltung in die Hand nehmen, allerdings sind diese Module meistens eher Benutzerunfreundlich. Speziell für die Inline Bilderbearbeitung ist Drupal WordPress um einiges hinterher. Hier kann man eigentlich nur IMCE + TinyMCE oder IMCE + FCKeditor verwenden. Die IMCE-Erweiterung ist zwar kein schlechtes Modul, allerdings fehlen doch einige simple Features die man aus WordPress gewohnt ist. Für die meisten Fälle ist aber IMCE derzeit das Drupal Bilder Modul der Wahl. Alternativ dazu könnte man auch Image + ImageAssist verwenden. Diese Kombination ist derzeit am wenigsten zu empfehlen. Hier würde ich auf jeden Fall auch die Kombination CCK + Imagefield vorziehen. Das Image Modul legt für jedes Bild einen eigenen Node an. Dieses Verhalten ist für Gallerien sicherlich ganz interessant, allerdings für die Bildereinbindung in Seiten und Blogs ziemlich ungeeignet. Dafür gibt es dann ImageAssist, das dazu dienen soll, die Einbindung zu vereinfachen. Bisher konnte ich allerdings keine eigenen Erfahrungen mit ImageAssist sammeln, da ich mein eigenes kleines Bildermodul für ganz einfache Sachen geschrieben habe und ansonsten IMCE verwende. Ansonsten gibt es noch die Möglichkeit CCK...