Es gibt einen Fehler in der Discourse-App, der sich auf die Aktualisierung des <link rel="canonical">-Meta-Datenelements im <head>-Bereich des Discourse-DOM bezieht.
Im Grunde genommen: Wenn ein Browser-Client die Anwendung betritt und diese zum ersten Mal geladen wird, wird das <link rel="canonical" href="">-Element entsprechend diesem initialen Seitenaufruf gesetzt. Wenn ein Nutzer jedoch in der App klickt (normales Nutzerverhalten), ohne die Seite manuell neu zu laden, wird der <link rel="canonical">-Link nicht aktualisiert.
Ich habe diesen Fehler getestet und auf der Meta-Site reproduziert:
Abb. 1: Einstieg auf Meta von der Startseite aus – der Canonical-Link ist korrekt, ebenso das Titel-Element.
Abb. 2: Aufruf eines Themas – das Titel-Element ändert sich korrekt, der Canonical-Link ist jedoch nicht korrekt (wird nicht aktualisiert, wie es sollte).
Abb. 3: Aufruf eines weiteren Themas – das Titel-Element ändert sich korrekt, der Canonical-Link ist jedoch nicht korrekt (wird nicht aktualisiert, wie es sollte).
Dieser Fehler könnte sich negativ auf das SEO auswirken, denn wenn Google die Seite indexiert und Googlebot nicht jede Seite mit einem „harten Neuladen
[quote=“neounix, Beitrag:1, Thema:159435”]
Dieser Fehler könnte sich negativ auf das SEO auswirken, da Google die Seite indiziert, wenn Googlebot nicht jede Seite mit einem „harten Neuladen
Wir stellen für Crawler ein völlig anderes Dokument bereit, da nicht jeder Crawler JavaScript ausführen kann und wir möchten, dass Discourse auch für diese Clients zugänglich ist. Selbst wenn sie eine eingeschränkte Funktionalität erhalten, können sie dennoch alle Inhalte nutzen.
In der Zwischenzeit, da ich das, was ich möchte, in einem (auf Handlebars basierenden) Plugin für HTML, das Crawlern ausgeliefert wird, nicht umsetzen kann, haben wir uns entschieden, die kanonischen Tags aus Discourse einfach zu entfernen. Das ist vorläufig eine Teillösung, bis ich herausfinde, wie ich das kanonische Tag mit etwas JavaScript für Web-Crawler anpassen kann.
Discourse bietet einen schönen Mechanismus für solche Änderungen in den Container-yml-Dateien, und das habe ich heute auch umgesetzt.
Ich bin Discourse Meta sehr dankbar dafür, darauf hingewiesen zu haben, dass die an (identifizierte) Crawler ausgelieferte Discourse-App nicht dieselbe ist wie die an Benutzer ausgelieferten Seiten.
Bitte beachten Sie, dass ich diese „vorläufige Lösung