Suchmaschinen dürfen keine nicht-kanonischen Seiten mehr indexieren

\u003e :warning: Wichtig
\u003e
\u003e Nach weiteren Untersuchungen haben wir beschlossen, die nicht-kanonische Indizierung aktiviert zu lassen. Weitere Details finden Sie unter: Search engines now blocked from indexing non-canonical pages - #30 by sam

ursprüngliche Ankündigung

Discourse wird nun mit einem X-Robots-Tag: noindex-Header antworten, wenn die angeforderte Seite nicht die kanonische Seite für eine Ressource ist.

Während Discourse ein automatisches Scroll-Design sowohl für Themenlisten als auch für Themen verwendet, ist dies nicht das, was wir Suchmaschinen-Crawlern wie GoogleBot zeigen. Suchmaschinen sehen paginierte Themen mit jeweils 20 Beiträgen. Da Benutzer jedoch auf bestimmte Beiträge in ihren eigenen Beiträgen verlinken und dies mit dem URL-Format /t/title/topic_id/post_id tun werden, werden diese von den Crawlern erfasst und duplizierte Inhalte in Ihren Website-Suchergebnissen hinzufügen und das wertvolle und begrenzte Crawl-Budget Ihres Domains verschwenden.

Um dieses Problem zu lösen, schlug unsere Community von Benutzern vor, den X-Robots-Tag: noindex zu URLs wie post-spezifischen URLs hinzuzufügen, was wir auf alle nicht-kanonischen URLs in Discourse ausdehnen konnten. Dies wurde vor 3 Monaten als versteckte Website-Einstellung veröffentlicht und standardmäßig deaktiviert, während der wir experimentierten, diesen Header sowohl auf Community-Websites als auch auf meta.discourse.org zu aktivieren.

Da die Ergebnisse dieser Periode bisher gut aussehen, haben wir diese Einstellung gerade standardmäßig aktiviert.

Wenn Sie aus irgendeinem Grund dieses Verhalten auf Ihrer Instanz nicht wünschen, können Sie die Indizierung von nicht-kanonischen Seiten immer noch aktivieren, indem Sie auf Ihrem Server docker exec -i app rails runner \"SiteSetting.allow_indexing_non_canonical_urls = true\" ausführen.

Erwarten Sie keine drastischen Änderungen beim Crawling und den Suchergebnissen über Nacht, aber in den nächsten Monaten sollten Sie eine Abnahme der Crawls und Suchergebnisse auf post-spezifischen Seiten feststellen, was zu mehr Crawl-Zeit für neue Themen Ihrer Website und für Inhalte führt, die aufgrund von Crawl-Budget-Beschränkungen auf Ihrer Domain noch nicht indiziert wurden.

32 „Gefällt mir“

TL;DR: Blockieren Sie keine nicht-kanonischen Seiten – verweisen Sie sie einfach mit \u003clink rel=\"canonical\" … \u003e auf eine korrekte URL – dafür ist sie da.


Dieses Feature könnte dem SEO-Linkaufbau auf lange Sicht schaden:
Alle Deep-Links zu Antworten innerhalb von Themen befinden sich jetzt auf noindex-Seiten! Mag Google das?

Eigentlich sollte ein canonical-Tag, der immer auf die Themen-URL verweist – auch für Seiten, die auf eine Antwort verlinken – perfekt funktionieren – ohne X-Robots-Tag: noindex hinzuzufügen:
Beim ersten Crawling einer verlinkten Antwortseite erkennt Google, dass die Seiten-URL (Antwort innerhalb des Themas) nicht zur kanonischen URL passt, und beschließt dann, nur die kanonische URL (Thema) zu crawlen.


Können wir \u003ca rel=\"nofollow\" … \u003e zu allen Links hinzufügen, die dieses Topic-Answer-Deep-Linking durchführen? Bearbeitung: nein, siehe Search engines now blocked from indexing non-canonical pages - #9 by j127
Dadurch könnten wir noch mehr von diesem wertvollen und begrenzten Crawl-Budget von Suchmaschinen einsparen:
Die Suchmaschine würde den Link weder zuerst extrahieren noch die URL aufrufen. Das Aufrufen der URL führt zu einer Antwort mit einem X-Robots-Tag: noindex HTTP-Header, wodurch die Antwort durch Hinzufügen der URL zur internen ‘noindex’-Liste der Suchmaschinen ‘gelöscht’ wird.

Weitere Einsparungen beim Crawl-Budget durch Hinzufügen von nofollow zu RSS-Feed-URLs:

5 „Gefällt mir“

Ich stimme den Vorschlägen von @rrit vollkommen zu.

Es wäre besser, Unterseiten/Beiträge innerhalb des Themas auf ihr ursprüngliches kanonisches Verzeichnis zu verweisen, anstatt sie zu blockieren.

Anstatt noindex hinzuzufügen, können wir jedem einzelnen Beitrag unter dem Thema ein nofollow-Tag hinzufügen?

1 „Gefällt mir“

Genau so funktioniert es bereits, daher bin ich mir nicht sicher, ob ich folgen kann.

Sie schlagen also vor, dass wir die URL hier aktualisieren müssen

um eine kanonische URL mit der Seitenzahl und einem Beitragsanker zu verwenden?

Diese sind bereits über die robots.txt blockiert, aber das ist eine gute Idee!

Das klingt auch nach einer guten Idee!

4 „Gefällt mir“

Sie haben Recht, meine Entschuldigung. Ich verliere mich manchmal in meinen eigenen Gedanken. :slight_smile:

Schnelle Frage, ich nehme an, diese Funktion ist bereits standardmäßig verfügbar, solange wir Discourse auf v2.9 aktualisieren?

4 „Gefällt mir“

Ich finde, dass die Funktion nicht standardmäßig aktiviert sein sollte. Sie ist aus verkehrstechnischer Sicht gefährlich, selbst wenn sie nur für kurze Zeit eingeschaltet ist, sodass jeder, der jetzt ein Update durchführt, eine unerwünschte Überraschung erleben könnte.

Der canonical-Tag ist der Weg, den Google empfiehlt, um dieses Problem zu lösen, und er scheint bereits zu funktionieren. Seltsame Dinge mit Canonical-Tags können zu seltsamen Problemen mit Google führen, und ein noindex-Fehler könnte schwer zu beheben sein.

2 „Gefällt mir“

Ich stimme dem ersten Teil Ihres Beitrags zu, aber ich glaube nicht, dass internes nofollow ideal ist. Interne Links helfen Suchmaschinen zu erkennen, welche Seiten auf der Website wichtig sind. Google wird nicht jedem Link folgen, den es sieht, weil es weiß, dass es ihn schon einmal gesehen hat. Wenn sie eine URL wie example.com/t/1234/5 sehen, sie aber bereits gecrawlt haben und wissen, dass die kanonische URL example.com/t/1234 ist, werden sie wahrscheinlich nicht ihre Computerressourcen verschwenden, indem sie die nicht-kanonische Version mehrmals besuchen.

3 „Gefällt mir“

‘noindex’ für URLs entfernen, auf die von externen Websites verlinkt wird

Entschuldigung, mit “Antworten” meine ich “Posts” in einem Thema:
Alle Deep-Links von externen Domains zu Posts (z. B. forum.example.com/t/example-topic/5/11) haben jetzt einen http-Header X-Robots-Tag: noindex! Ich schlage vor, diesen http-Header wieder zu entfernen.

Ich schlage vor, für <link rel="canonical" … > niemals eine URL mit einem Post-Anker (die letzte Zahl in …/t/example-topic/1234/5) zu verwenden. Kanonische URLs sollten immer auf die Topic-URL selbst verweisen (…/t/example-topic/1234). Ich denke, das ist bereits so implementiert.


Links für Suchmaschinen umschreiben, wenn die Ziel-URL durch <link rel="canonical" … > “weitergeleitet” wird

Sehr guter Punkt, besser kein rel="nofollow" hier hinzufügen.

Discourse hat eine spezielle Ansicht für Crawler. Neuer Vorschlag nur für die Crawler-Ansicht:
Konvertiere alle internen Links, die auf eine Post-URL (example.com/t/1234/5) zeigen, so, dass sie stattdessen auf die entsprechende Topic-URL (example.com/t/1234) zeigen.
Absicht: Suchmaschinen keine zusätzlichen URLs ankündigen, wenn diese zusätzlichen URLs sowieso durch <link rel="canonical" … > “weitergeleitet” werden.

Fundorte solcher Links zu Posts:

  • manuell hinzugefügte Links in Benutzerinhalten
  • automatisch generierte Links in
    • Zitaten
    • erster Post eines Themas: “eingehende verfolgte Links” von anderen Themen
    • erster Post eines Themas: “ausgewählte Antwort”
    • erster Post eines Themas - Themenübersicht geöffnet: “Themenlinks”/“gelikte Links”

Exkurs: Wo findet Google all diese URLs?


“Eingehende verfolgte Links” für Suchmaschinen

Genau aus diesem Grund sollten die automatisch generierten “eingehenden verfolgten Links von anderen Themen” im ersten Post eines Themas auch für Suchmaschinen sichtbar sein.
Derzeit fehlen diese “eingehenden verfolgten Links” in der Crawler-Ansicht. Bearbeitung: Sie sind bereits in der Crawler-Ansicht vorhanden.

Aber sie zeigen auf die Post-URL anstelle der Topic-URL (siehe HTML-Quelle)
<div class="crawler-linkback-list" itemscope="" itemtype="http://schema.org/ItemList">
      <div itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem">
        <a href="https://meta.discourse.org/t/removing-the-2-3-4-etc-links-for-each-reply-within-a-topic-url/209648/26" itemscope="" itemtype="http://schema.org/DiscussionForumPosting" itemprop="item">
          <meta itemprop="url" content="https://meta.discourse.org/t/removing-the-2-3-4-etc-links-for-each-reply-within-a-topic-url/209648/26">
          <span itemprop="name">Removing the /2, /3, /4, etc links for each reply within a topic URL</span>
        </a>
        <meta itemprop="position" content="2">
      </div>
</div>
3 „Gefällt mir“

Dies ist ein entscheidender Punkt. Es ist eine Sache, alle Seiten indiziert zu bekommen, und eine andere, ein relevantes Ranking für sie zu erzielen. Meiner Erfahrung nach (mit großen Verlagsseiten) ist intelligentes internes Verlinken der Schlüssel, um dies zu erreichen.

1 „Gefällt mir“

Ich habe gerade heute Morgen ein Update durchgeführt. Empfehlen Sie, die Indizierung von nicht-kanonischen Seiten damit zu aktivieren?

Ich möchte meine Indexierung nicht noch schlechter machen.

1 „Gefällt mir“

Für alle, die ihre Website seit dem Datum des ursprünglichen Beitrags aktualisieren.

Wir haben Daten, die zeigen, dass der neue Header die Crawl-Zeit auf diesen Seiten reduziert und die kanonische URL immer gesetzt war.

Aber diese Seiten sind ohnehin nicht zum Crawlen gedacht. Die Metadaten mit der URL werden auf Topic-Ebene gesetzt, wir möchten nicht, dass Google die Beitragsebene crawlt, da dies doppelte Inhalte sind.

Super, hier muss also nichts geändert werden.

Dies zur Laufzeit zu tun, könnte zu teuer für die CPU sein, und das Speichern von zwei Versionen jedes Beitrags wäre zu teuer für den Speicherplatz.

Unsere Standardeinstellungen sind immer das, was wir empfehlen. Wir pflegen und kündigen jedoch Site-Einstellungen an, damit die Leute sich auch anders entscheiden können, wenn sie der Meinung sind, dass eine Standardeinstellung für ihre Website nicht ideal ist.

5 „Gefällt mir“

Perfekt, dann lasse ich es wie empfohlen.
Danke

2 „Gefällt mir“

Letzte Sache und dann störe ich nicht mehr :sweat_smile:

Könnte es also Probleme mit sitemap_recent.xml geben, die solche Links enthält?
https://meta.discourse.org/t/category-moderator-improvements/158628?page=2

1 „Gefällt mir“

Dieses Beispiel ist eine kanonische Seite, daher wird sie in keiner Weise von den im OP beschriebenen Änderungen beeinflusst.

2 „Gefällt mir“

Ich sehe einen großen Unterschied, wenn es einen externen Link zu einer Beitrags-URL gibt.

# A:
Externe Domain
|
|--(Link-Juice)---> Beitrags-URL
                   |
                   |__/ Crawling:      \---> Beitrags-URL nicht indiziert und
                      \ Header noindex /     Link-Juice größtenteils verloren

# B:
Externe Domain
|
|--(Link-Juice)---> Beitrags-URL
                   |
                   |__/ Crawling:        \__|---> Beitrags-URL nicht indiziert
                      \ Antwort-Canonical /  |---> Topic-URL indiziert (sowieso)
                                                 mit Link-Juice-Übertragung

Wir sollten das hier ansprechen:

1 „Gefällt mir“

Bedeutet dies für SEO-Neulinge wie mich, dass es sich um eine SEO-Verbesserung handelt, die potenziell zu einer leichten Steigerung/einem Vorteil in den Google-Suchergebnissen führen könnte?

3 „Gefällt mir“

Ja, das ist das Ziel!

Wir haben die Änderung über mehrere Monate in einer Tech-News-Community getestet und einen großen Anstieg der anonymen Seitenaufrufe von Spitze zu Spitze festgestellt. Unser Endziel ist es immer, alle Discourse-Communities in jeder Hinsicht gesünder zu machen.

6 „Gefällt mir“

Ist dieser Effekt im Bericht der Google Search Console unter ‘Einstellungen’ → ‘Crawling’ → ‘Crawl-Statistiken’ sichtbar?

1 „Gefällt mir“

Unter Berücksichtigung von …

A. Verringern von Crawls

B. Keine zwei Versionen von Inhalten

C. Verwenden des canonical-Tags

D. Kein nofollow

E. Kein noindex

… und interne Links an …

… schlage ich die folgende Implementierung vor, um den besten Kompromiss zu erzielen:

  1. Fügen Sie keinen http-Header X-Robots-Tag: noindex hinzu.
    – unter Berücksichtigung von [E] –
  2. Behalten Sie canonical-Tags immer auf die Themen-URL gerichtet.
    – Verringerung der Crawls [A] und Berücksichtigung von [C] –
  3. Nur für die Crawler-Ansicht: Konvertieren Sie automatisch generierte Links so, dass sie immer auf die Themen-URL und nicht auf die Beitrags-URL verlinken – für alle Links im ersten Beitrag eines Themas „eingehende nachverfolgte Links von anderen Themen“ und „Themenkarte geöffnet: Themenlink/gelikte Links“.
    – Verringerung der Crawls [A] und Berücksichtigung von [D], aber bewusste Missachtung von [B] –
    Zu [B]: CPU-Kosten fallen nur für Crawler-Besuche an und bestehen darin, einen Regex-Ersatz durchzuführen, um die letzte Zahl von internen URLs zu entfernen, die auf zwei Zahlen enden, z. B. …/t/example-topic/1234/5…/t/example-topic/1234 im begrenzten Rahmen des ersten Beitrags eines Themas „eingehende nachverfolgte Links von anderen Themen“ und „Themenkarte geöffnet“ nur.
  4. Für alle Ansichten: Fügen Sie interne nofollow-Tags zu Zitaten und manuell hinzugefügten Links in Benutzerinhalten hinzu.
    – Verringerung der Crawls [A] und Berücksichtigung von [B], aber leichte Missachtung von [D] –
    Zu [D]: Wichtige Links werden bereits automatisch in das erste Thema im Abschnitt „Themenkarte geöffnet: Themenlink/gelikte Links“ dupliziert [siehe 3.] und die meisten Zitate bleiben ohnehin innerhalb des Themas selbst.

Einige Ideen zu internen Links

Google sagt How to Specify a Canonical with rel="canonical" and Other Methods | Google Search Central  |  Documentation  |  Google for Developers

Und Google sagt SEO Link Best Practices for Google | Google Search Central  |  Documentation  |  Google for Developers

Daher könnte Discourse interne Links wie folgt setzen:

<a href="/t/example-topic/1234" routerLink="/t/example-topic/1234/5">…</a>

Für Google geht der Link direkt zur kanonischen Themen-URL …/1234 – und Google erfährt über diese Link-Syntax nichts von der Beitrags-URL …/1234/5.

Für die Benutzerfreundlichkeit wird zusätzliche JavaScript im Ember-App die Aufgabe erledigen:
z. B. href durch routerLink ersetzen.

2 „Gefällt mir“

Sieht nach einer großartigen Verbesserung aus! Danke, dass Sie das möglich gemacht haben, @Falco und das Discourse-Team!

3 „Gefällt mir“