Kanonische Metadaten ändern sich in der Discourse App nicht korrekt, wenn sie nicht von einem Webcrawler geladen werden

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).

Auswirkungen auf SEO

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

1 „Gefällt mir“

[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

4 „Gefällt mir“

Hallo @Falco,

danke für deine Antwort.

Ja, es ist kein Problem, wenn der UA auf GoogleBot gesetzt ist (gerade bestätigt).

Ich stimme zu, dass dies für SEO kein Problem sein mag, da du GoogleBot keine SPA auslieferst, aber es ist dennoch ein Fehler in der SPA.

Außerdem muss ich mir über die Auswirkungen Gedanken machen, wenn die SPA nicht an GoogleBot ausgeliefert wird.

Danke, dass du mich auf diese „kleine Tatsache

1 „Gefällt mir“

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.

5 „Gefällt mir“

Vielen Dank, dass Sie mich darauf aufmerksam gemacht haben.

Mir ist nun klar, dass einige frühere Diskussionen über SPA, „infinite scroll

1 „Gefällt mir“

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

2 „Gefällt mir“