Magento ist eine hoch professionelle und komplexe Onlineshopsoftware. Magento wurde im Jahr 2011 von eBay vollständig übernommen und wird von dieser Firma weiterentwickelt.
Die Möglichkeiten mit dieser Software sind vielfältig. Als Einsteiger ist es nicht immer trivial alle Einstellungen zu finden und Anpassungen durchzuführen. Damit Magento weiterhin schnell auch in einem Webhosting Paket aufrufbar ist, sollten bestimmte Optimierungen am Onlineshop durchgeführt werden. Und wenn die Umsetzung einmal nicht gelingt kann die Magento Optimierung auch von einer Magento Agentur durchgeführt werden.
Die folgenden Tipps sorgen für eine bessere Performance:
Magento Optimierung: 1. Flat Table / Flat Catalog aktivieren
Ab einer bestimmten Artikelanzahl sollte die Option Flat Table bzw. Flat Catalog aktiviert werden. Hierbei werden die Datenbankverbindungen optimiert und die Anzahl der Abfragen in der Datenbank reduziert, indem oft abgefragte Abfragen in separaten Tabellen abgespeichert werden. Aktiviert wird die Option folgendermaßen:
System >>> Konfiguration >>> Katalog >>> Shop >>> Flat Catalog Product verwenden
System >>> Konfiguration >>> Katalog >>> Shop >>> Flat Catalog Category verwenden
Ein Index Neuaufbau ist nach Aktivierung nötig!
Magento Optimierung: 2. Log Einträge
Die Logeinträge lassen die Magento Datenbank schnell anwachsen. Vielfach werden externe Tools zur Analyse genutzt. Dann sollten die Log-Einträge dringendst reduziert werden. Die Voreinstellung der Speicherung beträgt 180 Tage und kann hier drastisch reduziert werden:
System > Konfiguration > System > Log Bereinigung
Generell kann die Datenbanken optimiert werden, indem die log_* Tabellen geleert werden.
Magento Optimierung: 3. Optimierung mit einer Extension
Die Erweiterung Fooman Speedster optimiert eingebundene Javascript- und CSS- Dateien und komprimiert diese bei Bedarf. Magento verwendet einige dieser Dateien. Für den Pagespeed eines Magento Shops kann diese Erweiterung erhebliche Verbesserungen schaffen. Bitte beachten Sie die Kompatibilität mit bestehenden Erweiterungen im Magento Shop. Hinweise diesbezüglich sind auf der folgenden Seite nachzulesen:
https://www.magentocommerce.com/magento-connect/fooman-speedster.html
Magento Optimierung: 4. Subdomains
Nutzen Sie Subdomains für den Aufruf der Skin-, Media- und Javascript Dateien. Benennen Sie z.B. die Subdomains so:
skin.IhreDomain.de, media.IhreDomain.de, js.IhreDomain.de
Im Magento Backend geben Sie die Subdomains in den "Ungesichert" Einträgen des Stores an:
System > Konfiguration > Web > Ungesichert (unsecure)
Basis Skin URL > https://skin.IhreDomain.de/skin/
Basis Media URL > https://media.IhreDomain.de/media/
Basis JavaScript URL > https://js.IhreDomain.de/js/
Erklärung: Mit den Subdomain simulieren Sie Keep_Alive am Server und erhöhen die Anzahl gleichzeitiger Ladevorgänge der Medien vom Internetbrowser des Besuchers. Zu viele Subdomains kehren sich jedoch in das Gegenteil um und verlangsamen den Shop
Magento Optimierung: 5. optimierte Bilder und Skripte
Nutzen Sie den Onlineservice der Seite https://www.gtmetrix.com. Hier werden verlustfreie optimierter Bilder der angegebenen Shopseite generiert und hingewiesen, welche Skripte optimiert werden sollten. Führen Sie zuvor eine Sicherung aller FTP Daten durch. Das Kombinieren der Javascript- und CSS Daten im Magento Backend ist nicht ratsam. Ebenso sollte auf die Kompilierung vom Shop verzichtet werden. Änderungen an den Shopdaten sind im Nachhinein nur schwer anzupassen.
Tipp: Magento Admin Verzeichnis ändern
Das Admin Verzeichnis kann bei der Installation umbenannt werden. Nach der Installation kann dieser Wert auch "von Hand" in einer Datei gesetzt werden. In der Datei config.php im gleichen Verzeichnis sind die Datenbank Zugangsdaten enthalten.
app/etc/local.xml
<admin> <routers> <adminhtml> <args> <frontName><![CDATA[admin]]></frontName> </args> </adminhtml> </routers> </admin> |
Tipp: Aussagekräftige Fehlermeldungen zum Debugen
Im Verzeichnis /errors befindet sich folgende Datei "local.xml.sample". Diese Datei sollte kopiert und umbenannt werden in: "local.xml". Nun sind aussagekräftigere Fehlermeldungen sichtbar, welche bei einer Fehlersuche unterstützen können.
Tipp: In Magento CMS Seite PHP Datei / Skriptcode einbinden/ includieren
Magento verhindert PHP Aufrufe aus Sicherheitsgründen. Manchmal ist es dennoch notwendig PHP Skriptzeilen in CMS Seiten einzubinden. Dies ist möglich wenn eine PHP Datei als Block eingebunden wird. Die PHP Datei sollte dabei in folgendes Verzeichnis als *.phtml Datei erstellt werden:
app/design/frontend/default/default/template/cms/blocks/test.phtml
In dieser Datei kann PHP Code eingebunden werden. In der CMS Seite von Magento wird direkt im Content der Block wie folgt angegeben:
{{block type="core/template" template="cms/blocks/test.phtml"}}
Tipp: Cronjob-Verwaltung im Backend von Magento
Ein Cronjob wird für viele Aufgaben in Magento verwendet. Beispiele für solche Schedules sind der Newsletterversand, automatisch geplante Backups, Währungsaktualisierung, Zahlungsaktualisierung mit Paypal u.v.m. Der Cronjob wird in der Regel über eine Oberfläche oder direkt in den Crontabs (auf Linuxsystemen) eingebunden. Aktiviert werden die Aufgaben (Schedules) im Backend von Magento.
Damit nun nicht jede Aufgabe über das Dateisystem in die Cronjobdatei aufgenommen werden muss, kann die kostenfreie Extension AOE Scheduler verwendet werden. Mit dieser Extension stehen 3 Fenster im Backend zur Verfügung worin die Aufgaben für den Cronjob aktiviert / deaktiviert werden können. Die Cronjobs im AOE Scheduler werden ebenfalls über ein integriertes Monitoring überwacht.
Tipp: Magento Multistore robots.txt für jede Domain
Magento verwaltet die Domains für einen Multishop intern. Es wird also in Abhängigkeit vom Domainaufruf unterschiedliche Templates und Kategorien aufgerufen. Für Suchmaschinenbots ist es jedoch notwendig für jede Domain unterschiedliche Sitemap-Dateien und robots.txt zur Verfügung zu stellen obwohl es für alle Multistores nur Hauptverzeichnis gibt. Die Lösung für das Problem ist recht simpel und kann über mod_rewrite gelöst werden:
Ich habe für jeden Shop ein Unterverzeichnis im Hauptverzeichnis erstellt, z.B. /shop1, /shop2 etc. hierin habe ich die robots.txt platziert. Die Inhalte darin entsprechen denen als wenn die Datei im Hauptverzeichnis existiert, z.B.:
User-agent: *
Disallow: /admin/
Disallow: /app/
Disallow: /checkout/
Disallow: /downloader/
Disallow: /lib/
Disallow: /var/
Disallow: /agb/
Sitemap: https://meinshop1.de/shop1/sitemap.xml
In der .htaccess Datei sollten dann nach dem Eintrag RewriteEngine on in der nächsten Zeile diese angepassten Einträge für die robots.txt ergänzt werden:
RewriteCond %{HTTP_HOST} meinshop1\.de$
RewriteRule ^robots\.txt$ /shop1/robots.txt [L]
RewriteCond %{HTTP_HOST} meinshop2\.de$
RewriteRule ^robots\.txt$ /shop2/robots.txt [L]
In diesem Beispiel wird also je nach aufgerufener Domain die robots.txt aus den Verzeichnissen /shop1 oder /shop2 ausgeliefert in denen wiederum die jeweilige Sitemap-Datei definiert ist die sich ebenfalls in den Verzeichnissen befindet. Eine recht einfache Lösung um bei Magento Multishops die jeweils aktuelle robots.txt Datei zu definieren - wie ich finde.
Download: Magento-Optimierung.pdf
Alle Vorschläge und Tipps sollten nur an zuvor gesicherten Dateien, Datenbanken durchgeführt werden und erfolgen ohne Gewährleistung nur auf eigenes Risiko!