?page= a veces redirige a una página con una URL canónica diferente

Uno de nuestros clientes encontró el siguiente problema relacionado con SEO, que puedo reproducir aquí en Meta.

Cuando un rastreador visita Discourse, este inserta enlaces de paginación ?page=XX de la siguiente manera:

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

y

<span itemprop='name'><b><a rel="next" itemprop="url" href="/t/slug/123?page=2">siguiente página </a></b></span>

Cuando se carga dicha página en un navegador, Discourse realiza una redirección mediante JavaScript a una URL /t/slug/123/NN, donde NN es el número de un mensaje.

Así, https://meta.discourse.org/t/post-rate-limit-trigger-for-a-topic-thats-heating-up/98294?page=2 se redirige a https://meta.discourse.org/t/post-rate-limit-trigger-for-a-topic-thats-heating-up/98294/23
y https://meta.discourse.org/t/post-rate-limit-trigger-for-a-topic-thats-heating-up/98294?page=3 se redirige a https://meta.discourse.org/t/post-rate-limit-trigger-for-a-topic-thats-heating-up/98294/45.

Sin embargo, a veces esa página contiene una URL canónica que no corresponde con la página original que se solicitó.

En el ejemplo anterior, ?page=3 se redirige al mensaje 45 y la página del mensaje 45 contiene una URL canónica ?page=2:

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

Cita del informe SEO del cliente:

Esto crea una cadena de etiquetas canónicas y redirecciones, y Google comenzará a no confiar en las etiquetas canónicas implementadas.

No logro averiguar de dónde proviene esto. A veces la URL canónica tiene un número de página mayor, a veces se refiere a una página menor (como en este ejemplo), y a veces es correcta.

Pensé que podría deberse a mensajes eliminados o susurros, pero un tema con muchos mensajes eliminados no muestra este comportamiento en sí mismo (por ejemplo, https://meta.discourse.org/t/topic-list-previews/101646?page=5 va al mensaje 471 (!), que tiene la URL canónica correcta ?page=5). Creo que esto podría ser un error de uno menos (off-by-one).

7 Me gusta

Supongo que puede que tengamos un ligero desajuste en el uso de paréntesis para el contenido canónico. @kris.kotlarek, ¿podrías investigarlo la próxima semana? Tendrás que crear una publicación en local con 44 respuestas y luego ver qué sucede.

6 Me gusta

@kris.kotlarek ya tiene una corrección fusionada.

¡Háganos saber si no funciona correctamente!

3 Me gusta