Fehler im SEO-Konzept

Hallo, ich bin derzeit dabei einen neuen Shop mit Shopware umzusetzen. Dabei sind mir einige Fehler bzw. Merkwürdigkeiten aufgefallen. Ich liste sie folgend auf, grundsätzlich ausgehend von gelöschtem Cache (alle drei Stufen) sowie auch vorab gelöschtem SEO-Cache und der VMware-Version & lokaler Zend-Install in MAMP. Grundsätzlich (wenn nicht anders genannt) wird von folgenden URL-Versionen im SEO-Modul ausgegangen: {$sArticle.ordernumber}/{$sArticle.supplier}-{$sArticle.name} sowie {sCategoryPath categoryID=$sCategory.id} 1.) Bilder SEO Aus technischer Sicht verständlich, werden Bilder in der Dateistruktur nach Import mit einer generierten Zeichenfolge als Dateiname ausgestattet. Jedoch wäre es sehr sinnvoll, könnte man vom Backend aus oder direkt beim Import am jeweiligen Artikel die Artikelbezeichnung oder wahlweise zusätzlich auch den Hersteller mit übernehmen. Dies wäre eine sehr wichtige Änderung für kommende Versionen. 2.) Artikeldetails > Crossseller Teilweise werden die richtig generierten SEO-Links verwendet, teilweise werden die alten Adressen angezeigt. Diese leiten zwar richtig auf die neue SEO-Modul-Adresse weiter, zeigen nativ jedoch vorab im Quelltext noch die alte Adresse auf. Interessant ist vor allem, dass einige Adressen nach der Vorgabe generiert werden, andere nach den ersten Bestandsdaten. 3.) URLs bei Bestellung, Registrierung als Neukunde etc. Unabhängig der Einstellung im Backend wird bei der Neuanlage von Kunden, dem Bestellprozess etc. immer noch keine sinnvolle Adresse angezeigt. Selbst bspw. eine “shop/anmeldung-step-1” wäre schon sinnvoll. Sei es auch nur für den Benutzer am Rechner zuhause. 4.) Artikel im Blog Wird ein neuer Artikel im Blog (/blog) geschrieben, bekommt dieser nicht eine sinnvolle neue Adresse wie bspw. /blog/ID/headline sondern /blog106/headline. Ersteres wäre für einen sauberen Stamm sehr wünschenswert. 5.) URL von statischen Seiten / Index Unabhängig der Einstellung im Backend, wird die Shop-Startseite (sofern liegend im root) immer als localhost bzw. http://www.shopware.vm angezeigt. Gebe ich nun im Backend vor, dass außer der Startseite für Kategorien sowie Artikel ein shop/ der URL am Anfang angefügt werden soll, ignoriert dies bspw. der Header und die Sidebar vollständig. Die hinterlegten Adressen sind alle ohne den Folder, bis sie angeklickt und weitergeleitet werden. Es wäre sehr wünschenswert, wenn die nativ angezeigten Links ebenfalls den generierten Zieladressen entsprechen würden. Ebenfalls verhält sich die Adressierung von bspw. dem Impressum, Blog, Datenschutz etc. Hier wird vollständig auf einen Präfix verzichtet, der auch nicht im Backend hinterlegt werden kann (sollte man dies wollen). 6.) Artikeldetails > Linkübergabe von Tabs Auf der Detailsseite von Artikeln wird einem Tab eine Adresse mit Anchor zugeteilt. Es wäre vorteilhaft, könnte man diese auch in die Adresszeile übernehmen um History-Daten dem Benutzer zur Verfügung zu stellen. Ist mit JS ebenfalls möglich, wie auch der Tab-Wechsel. Dies ist auch sinnvoll, damit Kunden evtl. Unter-Tabs im Internet verlinken können. Ein Canonical-Tag ist nunmal sowieso vorhanden. 7.) Artikeldetails etc. > Supplier URL Befindet man sich bspw. auf der Detailseite zu einem Artikel und lässt sich nun alle Artikel des Herstellers anzeigen, wird die Regel “Nur Kleinschreibung in URLs” ignoriert. 8.) Punkte in URL Es macht bspw. bei der Übergabe von Artikelnummern (nicht ID) kein Problem einen Punkt in der URL zu haben. Punkte in Produktbezeichnungen, Herstellernamen etc. sind jedoch eher unschön in einer ausgegebenen URL. Besser bzw. optisch auch ansprechender wäre die Ersetzung von Punkten, Unterstrichen und anderen nicht konformen Zeichen durch ein durchgend verwendetes Zeichen. Entweder durch Vorgabe im Backend oder grundsätzlicher Festlegung. Zum Beispiel ein einfacher Bindestrich, jedoch einfach ausgeführt (keine --, — in URLs). 9.) 404-Seiten Es ist zwar ungemein praktisch, wenn Kunden bei fehlerhaften URLs auf die Startseite weitergeleitet werden (eben welche Einstellung ich im Backend/SEO-Modul auch vornehme), dennoch würde ich auch gerne die Wahl haben, meinem Kunden eine “Fehlerseite” vorzusetzen. Oder bei Weiterleitung einen Log, bei welcher (fehlerhaften) Adresse auf die Startseite weitergeleitet wurde. Diesen konnte ich bisher leider nicht ausfindig machen. 10.) Breadcrumbs Die Breadcrumbs sind wichtig, wichtiger wäre mir für kommende Versionen, könnte man diese bspw. im Backend auch teilweise bestimmen. So wäre mir zB. der Artikelhersteller als Punkt auch wichtig. Würde ich auf diesen klicken, käme ich zur Übersichtsseite aller Artikel dieses Herstellers. Oder würde auch den anderen Weg wählen, und diesen einfach nur der Produktbezeichnung vorne anzufügen. Für Letzteres wähle ich eben den Weg über ein Template, dennoch sind die Hersteller sehr wichtig und auf kaum einer Seite so unwichtig um deren häufiges Auftreten unnötig zu verringern, sowie auch für den menschlichen Betrachter gut sichtbar zu sein. Über eine Antwort vom Shopware-Service würde ich mich sehr freuen. Natürlich werde ich den Shop auch mit der aktuellen Version umsetzen, dennoch tut es weh, zu wissen wo etwas hängt und etwas deutlich besser ginge, und es trotzdem erst einmal teilweise so hinnehmen zu müssen, möchte man diese tolle Software nutzen. Viele Grüße, Andi

Hallo, ein kurzer Nachtrag nach einem weiteren Test. Nicht angesprochene Punkte bleiben wie oben genannt bestehen. Zu 2. und teilw. 5.) Nach einem vollständigen Neustart des Servers wurde die Artikel-URL sowie Kategorie-URL in allen Bereichen richtig geschrieben. Auch mit dem Beispiel-Präfix „shop/“. Leider wird so nun auch dem „Blog“ ein Präfix vorangesetzt. Eine explizite Wahl bzw. Abwahl wäre sehr von Vorteil. Beispielsweise für statische Seiten wie den Newsletter, Sitemap etc. wird der Präfix ebenfalls (in diesem Fall passend) nicht vorangesetzt. Zu 7.) Alle URLs sind derzeit in folgender Form abgelegt „http://localhost/Supplier-menu_2.html“. Dies wird trotz dem eingestellten Präfix („shop/“) in dieser Form angezeigt, ebenfalls wird in jeder URL zur Übersicht der Produkte eines Herstellers „Supplier“ eingefügt. Ungeachtet der Groß- und Kleinschreibung, trotz Vorgabe von Kleinschreibung. Viele Grüße, Andi

Hi Andi, erst einmal vielen Dank für deine ausführlichen Infos und das Feedback. Generell haben wir uns die Punkte alle schon einmal angesehen und vermerkt, da einiges sicher auch sehr interessant ist für zukünftige Updates. Auf einige Punkte gehe ich aber direkt einmal ein. Wie du im zweiten Beitrag bereits geschrieben hast, sind einige Punkte auf den Cache zurück zu führen, z.B. dass nicht an allen Stellen die neue SEO-Url aktiv war. Generell ist es zur zeit so, dass du Artikel- und Kategorie-URL bestimmen oder modifizieren kannst. Aus diesem Grund wird dein Präfix z.B. auch nicht auf die Shopseiten angewendet. Es werden nur die Sonderzeichen aus der URL entfernet, die auch in einer Url nicht angezeigt werden können. So bleibt es dem Shopbetreiber offen, welche Sonderzeichen er verwenden will. Wenn man möchte kann man die ja auch einfach entfernen. Hierzu muss nur mit dem Smarty-Modifier “replace” gearbeitet werden. Bilder SEO wäre z.B. interessant. Einige Kunden nutzen so etwas auch bereits, da der Name z.B. über einen Import/Wawi/Schnittstelle vorgenommen wird. Die Bezeichnung findet man ja für das Bild in der Shopware-Datenbank. Daher ließe sich das auch jetzt bereits modifizieren. Die URL der Blogartikel ist identisch mit normalen Artikeln, da es sich bei Blogeinträgen auch um Artikel handelt, welche im Prinzip nur anders Dargestellt werden. Das könnte man aber auch modifizieren. Wenn man nicht tief eingreifen möchte, könnte man hier ein Artikel-Attribut nutzen. Das Artikel-Attribut könnte dann z.B. wie folgt mit in deinen URL-Aufbau eingesetzt werden {if $sArticle.attr20}{$sArticle.attr20}{else}…Standardaufbau{/if} --> (Ein Beispiel ;-)) So könntest du ein Präfix oder auch eine komplette individuelle URL für Blog-Artikel, je Artikel, definieren. Für neue oder erweiterte Funktionen, z.B. eigene 404-Seite/Breadcrumbs, oder auch SEO Bild-Bezeichnungen, kannst du ansonsten auch gut unser Shopware Feature-Voting nutzen. http://www.shopware.de/wiki/Feature-Vot … 8_483.html Dort kannst du Vorschläge einreichen, welche bewertet und auch kommentiert werden können. Falls wir hier weitere News oder Änderungen haben, werden wir diese direkt in diesem Thread posten :wink: Soweit erstmal… Viele Grüße Sebastian

Hallo Sebastian, vielen Dank für Deine Antwort. Ich möchte jedoch gerne bestimmte Shopseiten auf eine andere URL umleiten. Beispielsweise „/widerrufsrecht“ auf „/service/widerrufsrecht“. Die URL zu „/widerrufsrecht“ wird nun ja bereits über den URL-Controller bzw. PlugIn ausgegeben/umgeleitet. Doch an welche Stelle kann ich diesen finden, wie heißt er explizit und was ist änderbar? Im Backend wird die URL schließlich auch über „{url controller=custom sCustom=8}“ abgerufen. Ebenso wenn ich eine Testseite anlege, in diesem Fall bspw. „Testseite, die Erste“, die über die Variable „{url controller=custom sCustom=44}“ hinterlegt ist, im Frontend in der URL als „unternehmen/Testseite-die-Erste_custom_44.html“ erscheint. Wo kann ich diese URLs sowie die URLs von eigenen Seiten anpassen? Leider konnte ich dies bisher nicht finden. Ich vermute zudem stark, dass die ausgebene Adresse „unternehmen/Testseite-die-Erste_custom_44.html“ erst einmal mit dem SEO-/URL-Cache zu tun hat, da sie inzwischen „testseite-die-erste“ lautet. Jedoch interessiert mich eben genau die Editierbarkeit dieser Adresse. Werdet ihr für 3.5.3 die Hersteller-URL säubern, oder muss dies von Hand selbst vorgenommen werden? (Groß- und Kleinschreibung, basierend auf der Einstellung im SEO-Modul „Nur Kleinbuchstaben in den Urls nutzen“) Vielen Dank für den Tipp zur Blog-URL. Wird es hier in absehbarer Zukunft eine Erweiterung für das SEO-Modul geben, um so etwas direkt festlegen zu können? (Also, dass auch jeder übliche Anweder darauf kommt.) Nachfolgend habe ich deinen Tipp natürlich ausprobiert und ein Problem festgestellt. Zwar kann ich so im Artikel-Attribut text bzw. textarea nutzen und auch im neuen Blog-Artikel eingeben (bspw. „blog/headline-1-2-3-4-5-6-7-8-9-10-11-12-13-14-15“), wird diese Adresse jedoch bei beiden Feldtypen übernommen und in die Datenbank geschrieben, jedoch nicht mehr im Feld angezeigt. Zudem werden bei beiden Feldtypen ins Frontend, in der URL nur die ersten 19 Zeichen („blog/headline-1-2-3“) übernommen. Ebenfalls kann die direkte URL vom Blog-Artikel nicht aufgerufen werden, folgend der Fehlercode. Lege ich nun einen weiteren Blog-Artikel ohne Vergabe von Attribut 20 (Blog-URL) an, wird dieser wie gewohnt geladen - nur eben mit der ID in der URL (bspw. blog115/…). exception 'SmartyException' with message 'Unable to load template extends 'frontend/detail/../blog/details.tpl|frontend/plugins/seo/index.tpl|frontend/plugins/paypal/index.tpl|frontend/widgets/compare/index.tpl'' in /Applications/MAMP/htdocs/engine/Enlight/Vendor/Smarty/libs/sysplugins/smarty\_internal\_template.php:174 Stack trace: #0 /Applications/MAMP/htdocs/engine/Enlight/Vendor/Smarty/libs/sysplugins/smarty\_internal\_template.php(551): Smarty\_Internal\_Template-\>isExisting(true) #1 /Applications/MAMP/htdocs/engine/Enlight/Vendor/Smarty/libs/Smarty.class.php(328): Smarty\_Internal\_Template-\>getRenderedTemplate() #2 /Applications/MAMP/htdocs/engine/Enlight/Vendor/Smarty/libs/sysplugins/smarty\_internal\_template.php(865): Smarty-\>fetch(Object(Enlight\_Template\_Template)) #3 /Applications/MAMP/htdocs/engine/Enlight/Enlight/View/ViewDefault.php(154): Smarty\_Internal\_Template-\>fetch() #4 /Applications/MAMP/htdocs/engine/Enlight/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(89): Enlight\_View\_ViewDefault-\>render(Object(Enlight\_Template\_Template)) #5 /Applications/MAMP/htdocs/engine/Enlight/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(104): Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>renderTemplate(Object(Enlight\_Template\_Template)) #6 /Applications/MAMP/htdocs/engine/Enlight/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(43): Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>render() #7 [internal function]: Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>onPostDispatch(Object(Enlight\_Event\_EventArgs)) #8 /Applications/MAMP/htdocs/engine/Enlight/Enlight/Event/EventHandler.php(60): call\_user\_func(Array, Object(Enlight\_Event\_EventArgs)) #9 /Applications/MAMP/htdocs/engine/Enlight/Enlight/Event/EventManager.php(70): Enlight\_Event\_EventHandler-\>execute(Object(Enlight\_Event\_EventArgs)) #10 /Applications/MAMP/htdocs/engine/Enlight/Enlight/Controller/Action.php(62): Enlight\_Event\_EventManager-\>notify('Enlight\_Control...', Array) #11 /Applications/MAMP/htdocs/engine/Enlight/Enlight/Controller/Dispatcher/DispatcherDefault.php(329): Enlight\_Controller\_Action-\>dispatch('indexAction') #12 /Applications/MAMP/htdocs/engine/Enlight/Enlight/Controller/Front.php(88): Enlight\_Controller\_Dispatcher\_DispatcherDefault-\>dispatch(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp)) #13 /Applications/MAMP/htdocs/engine/Shopware/Bootstrap.php(21): Enlight\_Controller\_Front-\>dispatch() #14 /Applications/MAMP/htdocs/engine/Enlight/Enlight/Application.php(69): Shopware\_Bootstrap-\>run() #15 /Applications/MAMP/htdocs/shopware.php(6): Enlight\_Application-\>run() #16 {main} Ebenfalls besteht bei mir nach wie vor der Fehler, der in Punkt 3 beschrieben wurde. Unabhängig der Einstellung (O/I), wird grundsätzlich auf die ‚unsaubere‘ URL im Warenkorb etc. geleitet (bspw. „shopware.php/sViewport,checkout/sAction,cart“). Zudem greift ebenfalls die Einstellung „Bei nicht vorhandenen Kategorien/Artikel auf Startseite umleiten“ aus dem SEO-Modul nicht. Es wird immer auf die Startseite umgeleitet. Woran können diese beiden Fehler liegen? Wie ich gesehen habe, wird es in Version 3.5.3 Änderungen in den Recommendation-URLs geben, was ich sehr gut finde. Dennoch stellt sich mit die Frage, welche kleine Bugfixes bzgl. SEo noch durchgeführt werden und welche ohne „Featute-Voting“ folgen werden. Immerhin geht es dabei um einen sehr wichtigen Bereich, der eure Software noch ein Stück weiter vor andere Systeme bringt (zumindest von Grundlagen ausgehend, wie bspw. die Supplier-URL, Blog-URLs oder eine individuelle Fehlerseite). EDIT: Ich meine natürlich Änderungen für eine evtl. Version 3.5.4 Viele Grüße, Andi

Hi Andi, die Shopseiten kannst du von der URL noch nicht selber modifizieren. Der Aufbau richtet sich zur Zeit nach dem Namen der jeweiligen Seite. Dieser Link: unternehmen/Testseite-die-Erste_custom_44.html ist noch der SEO-Link der Shopware Vorgänger. Dieser wird bei dir vermutlich angezeigt, da du das Plugin RouterOld aktiviert hast. Diese deaktviere einmal. Dadurch wird auch der Link shopware.php/sViewport,checkout/sAction,cart geändert in: checkout/cart Die Möglichkeit Shopseiten-Links einfacher zu modifizieren nehmen wir aber als Anregung auf. Auch die Säuberung des Hersteller-Links, können wir somit bei einem kommenden Update berücksichtigen. Aber die generellen Anregungen / Änderungswünsche kannst du wirklich am besten direkt in unser Feature-Voring eintragen. Dadurch sind diese Vorschläge direkt als Tickets in unserem System vorhanden und auch immer für alle anderen Interessenten und Kunde einsehbar. Vielen Dank aber für dein detailliertes Feedback! Sebastian PS: Das genaue Problem bei dir bzgl. des Blog kann ich so nicht nachstellen. Der Fehler scheint ja direkt mit dem Template verbunden zu sein. Also das hier eine Datei nicht geladen werden kann. Das ist aber kein generelles Problem.