Canonicals bei Einkaufswelten-Landingpages nicht mit SEO-Url

Hallo, eine Frage in die Runde an diejenigen, die Landingpages mit den neuen Einkaufswelten gebaut haben und dort SEO-Urls verwenden: Wird bei euch der Canonical richtig gesetzt auf die SEO-Url? - Bei mir nämlich leider nicht. An sich funktioniert die Einstellung für die Landingpage in den SEO-Router-Einstellungen, d.h. die Landingpages werden von den Kategorien heraus richtig mit den SEO-Urls verlinkt. Dass der Canonical jedoch weiterhin auf eine Url like /campaign/index/emotionId/20 verweist, hatte ich vorhin zufällig gesehen, als ich so eine Seite bei Facebook teilen wollte. Falls das bei euch auch so sein sollte, würde ich das Ganze als Ticket einreichen. LG Markus

Sieht aus wie ein Bug. Im Demoshop ist’s genauso: http://www.shopwaredemo.de/sommerwelten … mmerurlaub

1 „Gefällt mir“

Danke simplybecause, ist eingereicht als Ticket -> jira.shopware.de/Widgets/Jira/?ticket=SW-5120 (kann als Newbie hier den Link wegen Spamschutz nur so posten)

gibt es schon neuigkeiten zu dem bug - ist nicht ganz unwichtig.

Ja, vor allem in Verbindung mit doppeltem Content: templates-und-design-f57/doppelter-content-bei-shopseiten-t11935.html

Genau! Aus der SEO Brille ist Shopware leider noch sehr anpassungdürftig! Ich habe aber bereits gestern ein paar Tickets erstellt! Biete mich auch gern zur Beratung an, Shopware! Da kann man noch richtig was rausholen! :wink:

hat jemand auf die schnelle eine lösung oder workaround. Meine Suchergebnisse sehen mit dieser URL nicht gut aus. Wo kann ich - bis es eine Lösung gibt - die Canonical URLs bei Landingpages erstmal komplett rausnehmen?

Lösung ist in frontend/campaign/index.tpl <link rel="canonical" href="%7Burl%20emotionId=%24emotionId%7D"> mit <link rel="canonical" href="%7Burl%20sCategory=%24sCategoryCurrent%20emotionId=%24emotionId%7D"> zu ersetzen. Um die Landingpages in die Sitemap.xml zu inkludieren muss man in engine/Shopware/Controllers/Frontend/SitemapXml.php nach $this-\>readBlogUrls($parentId); das einfügen: $this-\>readCampaignUrls($parentId); und dann die Funktion hinzufügen: /\*\* \* Read campaign urls \* \* @param int $parentId \*/ public function readCampaignUrls($parentId) { $sql = " SELECT e.id, c.category\_id, DATE(e.modified) as changed FROM s\_emotion e, s\_emotion\_categories c WHERE c.category\_id=? AND e.is\_landingpage = 1 AND e.active=1 AND (e.valid\_from \< NOW() OR e.valid\_from IS NULL) AND (e.valid\_to \> NOW() OR e.valid\_to IS NULL) GROUP BY e.id "; $result = Shopware()-\>Db()-\>query($sql, array($parentId)); if (!$result-\>rowCount()) { return; } while ($url = $result-\>fetch()) { $url['link'] = $this-\>Front()-\>Router()-\>assemble(array( 'sViewport' =\> 'campaign', 'sCategory' =\> $url['category\_id'], 'emotionId' =\> $url['id'] )); $this-\>printArticleUrls($url); } }

3 „Gefällt mir“

danke für die ausführliche anleitung. sobald ich mein system auf die aktuelle version geupdatet habe, werde ich es ausprobieren. besteht die chance, das der patch im nächsten SW release mit aufgenommen wird?

der Fix fürs template ist seit 2 Monaten schon im GitHub Repo und den für die SiteMap pull ich nachher :wink:

@Tr0nYx das habe ich gesucht :thumbup: Fehlt mir nur noch die Anpassung für die HTML Sitemap, frontend/sitemap/index.tpl Schade dass SW das immer noch nicht gefixt hat :frowning:

Hallo, habe das Problem auch. Zwischenzeitlich hatte ich zwar eine URL erstellen können, die ich dann auf {$campaign.name} und habe dann auch eine URL wie …/meinelandingpage erstellt und die existiert jetzt auch noch so. Allerdings wollte ich jetzt eine weitere erstellen und jetzt klappt es mit der neuen wieder nicht:( Ich habe sowohl Kategorie (deustch), als auch ein TEaserbidl eingepflegt und eine Seite aufgerufen, au der dieses teaserbild ebenfalls eingebunden ist, aber die URL wird nicht umgebaut, sondern bleibt wie oben beschrieben. Laut dem Ticket soll der Bug im Juni letzten Jahres behoben worden sein, aber so richtig scheint das immer noch nicht zu funktioneiren.

Hab Version 4.3.2 und das Problem besteht immer noch. Doppelter content sollte doch nun heutzutage auch der letzte Techniker verstanden haben oder? :oops:

Hallo, das Problem kann ich nicht mit 4.3.2 nachstellen. Da haben wir das speziell angepasst und ich habe das gerade noch einmal in einer Testumgebung verifiziert. Dort klappt es auch. Es wird immer eine SEO-URL nach dem Schema /landingpage-name erzeugt. Diese URL wird auch fest für den Canonical-Tag genutzt. Man kann die Landingpage noch in weiteren Kategorien zuweisen. Dann wird für jede Zuweisung auch eine SEO-URL erzeugt, aber der Canonical bleibt fest stehen auf /landingpage-name Sollte das bei dir nicht der Fall sein, so kann das an einem eigenen Template liegen, so dass z.B. der Canonical-Tag nicht korrekt gesetzt wird im Template Seitenquelltext Sebastian

Mit dem eigenen Template kann natürlich sein. Muss ich mir genauer ansegen. Vielen Dank :sunglasses: