Sitemap-Plugin - keine ?page=… URLs in der Standard-Sitemap

Das #sitemap-Plugin schließt keine URLs mit ?page=… in Standard-Sitemaps ein, z. B. https://meta.discourse.org/sitemap_4.xml

<url>
  <loc>
    https://meta.discourse.org/t/importing-migrating-from-phpbb3/30810
  </loc>
  <lastmod>2022-02-25T21:55:40Z</lastmod>
</url>

In der aktuellen Sitemap sind die Paginierungs-URLs enthalten – z. B. https://meta.discourse.org/sitemap_recent.xml

<url>
  <loc>
    https://meta.discourse.org/t/importing-migrating-from-phpbb3/30810?page=18
  </loc>
  <lastmod>2022-03-07T12:03:50Z</lastmod>
</url>

Werden per Design keine ?page=…-URLs in Standard-Sitemaps aufgenommen?
Alle diese ?page=…-URLs sind kanonische URLs und sollten daher zur Standard-Sitemap hinzugefügt werden – z. B.

<url>
  <loc>
    https://meta.discourse.org/t/importing-migrating-from-phpbb3/30810
  </loc>
  <lastmod>2022-02-25T21:55:40Z</lastmod>
</url>
<url>
  <loc>
    https://meta.discourse.org/t/importing-migrating-from-phpbb3/30810?page=2
  </loc>
  <lastmod>2022-03-02T19:08:07Z</lastmod>
</url>

[...]

<url>
  <loc>
    https://meta.discourse.org/t/importing-migrating-from-phpbb3/30810?page=18
  </loc>
  <lastmod>2022-03-07T12:03:50Z</lastmod>
</url>

Quellen

2 „Gefällt mir“

Ich glaube nicht, dass das beabsichtigt ist. Können Sie einen PR zur Behebung erstellen?

Danke @rrit, vor ein paar Monaten ist mir das auch aufgefallen, aber ich dachte immer, es sei normal :man_facepalming:t2:

Ich kann eine einfache Lösung implementieren, die nicht sehr spezifisch für das Datum der letzten Bearbeitung ist: z. B. verwenden alle Seiten eines Themas dasselbe Datum des letzten bearbeiteten Beitrags.
Dadurch erhalten alle Seiten eines Themas (mit vielen Beiträgen und vielen Seiten) ein neues Datum der letzten Änderung, wenn ein neuer Beitrag hinzugefügt wird – auch wenn nur die letzte Seite das neue Datum benötigt.

Ist das eine machbare Lösung?


Andernfalls müssen wir alle Beiträge eines Themas in Pakete von 20 Beiträgen (pro Seite) bündeln. Und dann das Datum der letzten Änderung für jedes Paket selbst berechnen.

Ehrlich gesagt, ich habe mir das angesehen und bin unschlüssig, was Änderungen angeht. Das Problem ist nicht, dass Google Schwierigkeiten hat, Inhalte auf Discourse-Foren zu entdecken.

Es ist, dass es Inhalte entdeckt, crawlt und dann aufgrund von „willkürlicher Entscheidungsfindung“ entscheidet, dass Inhalte nicht in den Index gehören.

1 „Gefällt mir“

Impliziert „willkürliche Entscheidungen“ einen der folgenden Punkte:
(Siehe Page indexing report - Search Console Help)


Auf der Pro-Seite des Hinzufügens all dieser ?page=… kanonischen URLs zur Sitemap:
Es gibt Google einen starken Hinweis auf \u003clastmod\u003e für diese URLs. Dadurch hat Google keinen Grund, unveränderte ?page=…-URLs erneut zu crawlen, und könnte sein kostbares Crawl-Budget für wichtigere URLs verwenden.

Wenn ?page=…-URLs in der Sitemap fehlen, findet Google sie trotzdem und führt einige „willkürliche“ Crawls durch – auch wenn dies völlig unnötig ist, da keine neuen Änderungen am Inhalt vorgenommen wurden.

Siehe Build and Submit a Sitemap | Google Search Central  |  Documentation  |  Google for Developers


Google behält den Überblick und unterscheidet, woher es URLs kennt:
„Alle eingereichten Seiten“ (Sitemap) oder „Alle bekannten Seiten“ (Links usw.)
Siehe Google Search Console –\u003e Index –\u003e Berichterstattung zur Abdeckung

  • „Eine Sitemap ist ein wichtiger Weg für Google, URLs auf Ihrer Website zu entdecken.“ siehe
  • „Google wählt die kanonische Seite basierend auf einer Reihe von Faktoren (oder Signalen) aus, wie z. B. […], dem Vorhandensein der URL in einer Sitemap, […].“ siehe
  • „Die Verwendung einer Sitemap garantiert nicht, dass alle Elemente in Ihrer Sitemap gecrawlt und indexiert werden, da die Google-Prozesse auf komplexen Algorithmen zur Planung des Crawlings basieren.“ siehe
1 „Gefällt mir“

Ich hoffe, es wird zusammen mit diesem implementiert :slight_smile:

2 „Gefällt mir“

Das ist sicherlich etwas, das @Roman bei der Integration in den Kern berücksichtigen sollte.

Ich ziehe es vor, zuerst die Sitemap zusammenzuführen, bevor weitere Änderungen vorgenommen werden, aber sobald das erledigt ist … vielleicht können wir mit kanonischen URL-basierten URLs auf _recent beginnen. Wir haben jetzt eine kanonische URL, die in posts.rss verwendet werden kann, mit ausreichender Caching-Funktion kann sie auch in Sitemaps verwendet werden.

3 „Gefällt mir“

Ich habe Probleme mit der Google Search Console, die versucht, URLs wie https://example.com/t/title-slug/1234?page=3 zu indexieren, was Discourse dazu veranlasst, eine 404-Fehlermeldung auszugeben. Wenn der Parameter ?page=x entfernt wird, wird die URL gültig.

Ich gehe davon aus, dass dies eine Art Nebeneffekt davon ist, dass Discourse die Paginierung zu der Version der Website hinzufügt, die es für Crawler bereitstellt:

Seiten-URLs funktionieren einwandfrei, Sie benötigen lediglich mehr als N Beiträge.

Haben Sie zufällig eine Menge gelöschter Beiträge zu diesem Thema?

Hallo Sam, danke für die Antwort. Nachdem ich dies gepostet hatte, fand ich Ihre Erklärung hier:

Aber in meinem Fall, nein, die Themen mit diesem Problem, die ich mir angesehen habe, zeigen keine Änderungen am ursprünglichen Threading. Das Einzige ist, dass sie aus Drupal importiert wurden. Aber ich muss mir weitere Beispiele ansehen, um zu sehen, ob auch Themen, die ursprünglich in Discourse erstellt wurden, betroffen sind, denn leider gibt es unzählige davon, wahrscheinlich Tausende.

1 „Gefällt mir“

Autsch, wurden da viele von Drupal importiert? Ist das der gemeinsame Nenner hier?

Ja, fast 100.000 Themen und ca. 2 Millionen Beiträge. Ich bin mir nicht sicher, ob dieses Problem nur bei importierten Themen auftritt, aber ich werde mich bald wieder hier melden, wenn ich weitere Anomalien entdecke.

1 „Gefällt mir“