# ?page= leitet manchmal zu einer Seite mit einer anderen kanonischen URL um

**URL:** https://meta.discourse.org/t/page-sometimes-redirects-to-a-page-with-a-different-canonical-url/167305
**Category:** Bug
**Created:** [15. Oktober 2020 um 17:38 UTC](https://meta.discourse.org/t/page-sometimes-redirects-to-a-page-with-a-different-canonical-url/167305 "2020-10-15T17:38:41Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [15. Oktober 2020 um 17:38 UTC](https://meta.discourse.org/t/page-sometimes-redirects-to-a-page-with-a-different-canonical-url/167305/1 "2020-10-15T17:38:41Z")

</div>

Einer unserer Kunden hat das folgende SEO-bezogene Problem festgestellt, das ich hier auf Meta nachstellen kann.

Wenn Discourse von einem Crawler besucht wird, fügt Discourse Paginierungslinks `?page=XX` wie folgt ein:

```plaintext
<link rel="next" href="/t/slug/123?page=2">

```

und

```plaintext
<span itemprop='name'><b><a rel="next" itemprop="url" href="/t/slug/123?page=2">next page â</a></b></span>

```

Wenn eine solche Seite im Browser geladen wird, führt Discourse eine JavaScript-Weiterleitung zu einer URL im Format `/t/slug/123/NN` durch, wobei NN eine Beitragsnummer ist.

Somit wird `https://meta.discourse.org/t/post-rate-limit-trigger-for-a-topic-thats-heating-up/98294?page=2` zu `https://meta.discourse.org/t/post-rate-limit-trigger-for-a-topic-thats-heating-up/98294/23` weitergeleitet

und `https://meta.discourse.org/t/post-rate-limit-trigger-for-a-topic-thats-heating-up/98294?page=3` wird zu `https://meta.discourse.org/t/post-rate-limit-trigger-for-a-topic-thats-heating-up/98294/45` weitergeleitet.

Allerdings **enthält diese Seite manchmal eine Canonical-URL, die nicht mit der ursprünglich angeforderten Seite übereinstimmt**.

Im obigen Beispiel wird `?page=3` zu Beitrag 45 weitergeleitet, und die Seite für Beitrag 45 enthält eine Canonical-URL `?page=2`:

```plaintext
<link rel="canonical" href="https://meta.discourse.org/t/post-rate-limit-trigger-for-a-topic-thats-heating-up/98294?page=2" />

```

Zitat aus dem SEO-Bericht des Kunden:

> Dies erzeugt eine Kette von Canonical-Tags und Weiterleitungen, und Google beginnt, die eingesetzten Canonical-Tags nicht mehr zu vertrauen.

Ich kann nicht herausfinden, woher das kommt. Manchmal hat die Canonical-URL eine höhere Seitenzahl, manchmal bezieht sie sich auf eine niedrigere Seitenzahl (wie in diesem Beispiel), und manchmal ist sie korrekt.

Ich dachte, es könnte mit gelöschten Beiträgen oder „Whispers“ zu tun haben, aber ein Thema mit vielen entfernten Beiträgen zeigt dieses Verhalten nicht per se (wie bei `https://meta.discourse.org/t/topic-list-previews/101646?page=5`, das zu Beitrag 471 (!) führt, der die korrekte Canonical-URL `?page=5` enthält). Ich denke, es könnte sich um einen Off-by-One-Fehler handeln.

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [16. Oktober 2020 um 06:51 UTC](https://meta.discourse.org/t/page-sometimes-redirects-to-a-page-with-a-different-canonical-url/167305/2 "2020-10-16T06:51:29Z")

</div>

Ich vermute, wir haben hier beim kanonischen Element die Klammern leicht falsch gesetzt. @kris.kotlarek, könntest du das nächste Woche untersuchen? Du musst einen Beitrag auf Local mit 44 Antworten erstellen und dann schauen, was passiert.

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [19. Oktober 2020 um 06:12 UTC](https://meta.discourse.org/t/page-sometimes-redirects-to-a-page-with-a-different-canonical-url/167305/4 "2020-10-19T06:12:37Z")

</div>

@kris.kotlarek hat jetzt einen Fix zusammengeführt!

> <https://github.com/discourse/discourse/pull/10953>
>
> Currently, when page param is not given to TopicView we calculate page for canon…ical\_path, however, it is skipped for next\_path.
> 
> We should use the same calculation to define page, so next page URL will be accurate. Currently if you view source of meta post - view-source:https://meta.discourse.org/t/post-rate-limit-trigger-for-a-topic-thats-heating-up/98294/46 you will see:
> 
> \`\`\`
> \<link rel="canonical" href="https://meta.discourse.org/t/post-rate-limit-trigger-for-a-topic-thats-heating-up/98294?page=3" /\>
> \<link rel="next" href="/t/post-rate-limit-trigger-for-a-topic-thats-heating-up/98294?page=2"\>
> \`\`\`
> 
> https://meta.discourse.org/t/page-sometimes-redirects-to-a-page-with-a-different-canonical-url/167305

Lass uns wissen, falls es nicht richtig funktioniert!

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [19. Oktober 2020 um 06:12 UTC](https://meta.discourse.org/t/page-sometimes-redirects-to-a-page-with-a-different-canonical-url/167305/5 "2020-10-19T06:12:41Z")

</div>


