Eliminando los enlaces /2, /3, /4, etc., de cada respuesta dentro de una URL de tema

Me pregunto si hay alguna forma de eliminar por completo los enlaces canónicos de un foro de Discourse.

Me refiero a las extensiones /2, /3, /4, etc., que aparecen para la URL de cada tema a medida que un usuario se desplaza por la página. Me gustaría que cada respuesta dentro de un tema se refiriera simplemente a la URL original (sin redirigir a los visitantes a la URL original, sino eliminando esas rutas por completo, de modo que no existan).

Originalmente, pensé que esta era una característica genial de Discourse, pero como he estado ejecutando un foro similar en mi sitio durante el último año con NodeBB (que utiliza la misma característica de enlace canónico para cada respuesta), hemos descubierto que esta funcionalidad puede ser catastrófica para el SEO de un foro público.

¿Por qué? Porque aunque estas URL /2, /3, /4 son enlaces canónicos, Google eventualmente rastreará e indexará todas ellas. Esto significa que cada nueva respuesta dentro de un tema puede aparecer en los resultados de búsqueda de Google, y dado que son básicamente versiones duplicadas de la URL del tema original, estas páginas indexadas adicionales rara vez reciben visitas y, cuando lo hacen, los visitantes no permanecen en el sitio por más de un par de segundos.

Cuando Google indexa una gran cantidad de páginas adicionales y estas páginas no reciben mucha actividad, le dice a Google que el dominio en su conjunto tiene muchas URL de baja calidad y perjudica la salud del dominio en general (como sucedió en nuestro caso). Perdimos alrededor del 40% de nuestro tráfico desde el lanzamiento de nuestro foro público, y un factor importante que contribuyó a esto fueron estas URL adicionales (más de 30.000 URL de baja calidad se agregaron a nuestro sitemap en el transcurso de 12 meses, simplemente debido a las respuestas que se dejaron en cada tema).

Ahora, si está ejecutando un foro privado, nada de esto importa, porque un foro privado no se beneficia de ningún tipo de SEO, ya que todo el foro está oculto de Internet de todos modos. Pero si está intentando ejecutar un foro público y su objetivo es captar tráfico de búsqueda orgánica, estas cadenas de URL adicionales pueden tener un enorme impacto perjudicial en la salud general de su sitio.

Entonces, me pregunto, ¿hay alguna forma concebible de modificar la configuración o crear un plugin que le diga a un foro de Discourse que NO cree estas URL adicionales para cada respuesta dentro de un tema?

Estoy considerando migrar nuestro foro de NodeBB a Discourse, pero esto solo tendrá sentido si hay una manera de hacer que nuestro foro de Discourse no cree estas URL adicionales.

3 Me gusta

Esto ha surgido un poco antes: Google indexing same page multiple times: Issue with canonicals

¿cómo pudiste determinar que este era un contribuyente significativo? ¡muchas publicaciones de SEO hechas aquí han sido bastante especulativas, por lo que alguna evidencia ayuda mucho!

No tengo experiencia con este plugin y no puedo dar fe de él personalmente, pero alguien ha intentado deshabilitar los enlaces canónicos por completo con un plugin antes: Remove Canonical Link Plugin

7 Me gusta

Esto ha surgido un poco antes: Google indexa la misma página varias veces: Problema con los canónicos

Si sigo esta conversación correctamente, parece que se refiere a un problema ligeramente diferente al que estoy hablando arriba. No es un problema crear varias URL canónicas para un tema si se agrupan de 20 respuestas a la vez y tienen meta descripciones únicas (página=2, página=3, etc.). El problema es cuando se crea una nueva URL para cada respuesta individual dentro de un tema (/2, /3, /4, etc.).

Para un tema con 100 respuestas, lo primero resultaría en 5 URL por tema (100 respuestas agrupadas en múltiplos de 20). Lo segundo resultaría en 100 URL por tema (una URL nueva e individual para cada respuesta), lo que crea un gran problema de SEO.

¿cómo pudiste determinar que esto era un contribuyente significativo? muchas publicaciones de SEO hechas aquí han sido bastante especulativas, ¡así que algo de evidencia ayuda mucho!

Con herramientas como Google Search Console, SEMrush y Ahrefs. Todas ellas destacaron advertencias y errores resultantes de la gran cantidad de URL en nuestro sitio que se estaban creando por estas respuestas de temas del foro, todas las cuales estaban siendo indexadas por Google sin proporcionar contenido nuevo sustancial. Las puntuaciones de salud estaban en los 30 y 40 cuando nuestro foro era público. Una vez que cerramos todo nuestro foro e lo hicimos privado (para que Google no pudiera verlo) y volvimos a ejecutar las pruebas, nuestra puntuación de salud subió a los 80 solo por este cambio.

No tengo experiencia con este plugin y no puedo dar fe de él personalmente, pero alguien ha intentado deshabilitar los enlaces canónicos por completo con un plugin antes: Plugin de eliminación de enlaces canónicos

Encontré esto también. Desafortunadamente, este plugin en realidad empeora la situación, porque simplemente elimina las etiquetas canónicas por completo mientras mantiene las páginas /2, /3, etc., por lo que estas URL adicionales todavía se ven como contenido duplicado de baja calidad.

3 Me gusta

Cabe señalar que está en nuestra hoja de ruta agregar una cabecera X-Robots-Tag: noindex a la carga útil de respuesta de esas páginas.

10 Me gusta

Es bueno saberlo. Suena como un gran paso en la dirección correcta.

Por si sirve de algo, hemos visto algunas instancias en nuestro foro actual (cuando aún era público) en las que habíamos añadido el archivo robots.txt a ciertas subcarpetas de nuestro foro, y Google las estaba rastreando de todos modos. Creo que esto es muy irregular… pero descubrimos que hay algunos casos en los que Google no sigue esta directiva. La única forma de estar 100% seguro de que una página no se indexe es que la página esté oculta tras una pantalla de inicio de sesión o que la página no exista en absoluto.

Desde la perspectiva de un observador externo, parece que debería ser fácil decirle a Discourse que no haga el esfuerzo adicional de crear estas URL adicionales para cada respuesta. El software haría menos trabajo y crearía menos complejidad de esta manera, ¿no?

Sería bueno tener una función en la configuración de administración para simplemente desactivar estas URL adicionales por completo.

1 me gusta

Sí, de esa manera usaremos la etiqueta de encabezado en lugar de ponerlas en el archivo robots.txt.

3 Me gusta

No estoy seguro de entender lo que está pasando aquí.

Porque Discourse está haciendo lo primero: crea etiquetas meta de URL canónicas ?page=X para grupos de 20 respuestas. Y como puedes ver aquí, los números de publicación nunca se añaden a las URL del sitemap, solo se añaden las URL ?page=X.

Así que iba a decirte que no hay ningún problema.

Pero luego hice una búsqueda en Google de un tema con muchas respuestas y aunque la página 2 de esos resultados de búsqueda está llena de enlaces ?page=X, algunos de los mejores resultados en realidad enlazan a esas respuestas numeradas.

Pero, ¿por qué está sucediendo esto? Esa página tiene una URL canónica correcta.

rgj@labgate:~$ wget -q -O - "https://meta.discourse.org/t/babble-a-chat-plugin/87297/418"|grep -e "<title" -e canonical
<title>Babble - A Chat Plugin - #418 by HAWK - broken-plugin - Discourse Meta</title>
<link rel="canonical" href="https://meta.discourse.org/t/babble-a-chat-plugin/87297?page=20" />

3 Me gusta

No lo sé.

Mi suposición es que esos enlaces aparecen en otros lugares y, por lo tanto, son esos los que se indexan.

1 me gusta

Canonical está ahí para evitar que eso suceda. Al menos, en teoría.

4 Me gusta

Tuve una larga discusión sobre esto con una comunidad centrada en blogs aquí en Brasil que usa Discourse, y eso me impulsó a probar este nuevo enfoque enviando la cabecera noindex para esas páginas específicas de las publicaciones. Debería poder limpiar y fusionar la PR para eso la próxima semana y podremos empezar a experimentar con ella.

7 Me gusta

Pero, ¿por qué está sucediendo esto? Esa página tiene una URL canónica correcta.

Exactamente. No debería estar sucediendo (en teoría), pero sucede, y como experimentamos con nuestro sitio, realmente daña la puntuación de salud de un dominio, lo que eventualmente puede tener un gran impacto negativo en las clasificaciones de búsqueda de todo el dominio.

Con respecto a lo que dijo @pfaffman,

Mi suposición salvaje es que esos enlaces aparecen en otros lugares en la web, ¿así que esos son los que se indexan?

Este también habría sido mi pensamiento… pero vimos que decenas de miles de estas respuestas individuales en nuestro sitio estaban siendo indexadas por Google, a pesar de que absolutamente nada enlazaba a ellas. Es bastante extraño y no puedo pretender entender por qué/cómo está sucediendo, pero subraya la necesidad de que un administrador del foro simplemente tenga la capacidad de desactivar estas URL /2, /3, /4, etc. para cada respuesta si así lo desean.

Tengo curiosidad, ¿es difícil darle esta capacidad a Discourse? Desde mi perspectiva de no programador, parece que esto debería ser fácil, ya que solo se trata de decirle al software que no haga tanto trabajo… ¿pero tal vez hay algo más que no entiendo?

2 Me gusta

No estoy seguro, pero hacer noindex en esos podría ser perjudicial. Discourse ya lo está manejando correctamente utilizando URL canónicas.

Si los noindex, existe la posibilidad de que indexe toda la página (porque todas son la misma URL canónica), lo que sería desastroso. No sé con certeza qué sucederá, pero sería extremadamente cuidadoso, ya que Google a menudo maneja casos extremos de manera impredecible y cómo los maneja puede cambiar con las actualizaciones. He visto cosas raras suceder con las etiquetas canónicas.

Se desconoce exactamente cómo funciona el algoritmo de clasificación y cambia con el tiempo, pero otra cosa a considerar es que las clasificaciones son el resultado de enlaces entrantes. Si un sitio externo enlaza a una URL /number y esa URL devuelve la cabecera noindex, es concebible que Google no transfiera el “jugo de enlaces” entrante a la URL canónica, lo que podría ser perjudicial para las clasificaciones de búsqueda de los sitios de Discourse.

Creo que sería mucho más seguro contactar a alguien en Google Search e informarles que la etiqueta canónica no está funcionando para un CMS de uso generalizado que intentar encontrar una solución alternativa que podría no manejarse de la misma manera a medida que Google realiza más actualizaciones.

6 Me gusta

No, subraya la necesidad de arreglar las cosas. Como ingeniero de software, me resulta muy difícil eliminar la funcionalidad porque no está funcionando al 100% correctamente. Veamos si podemos ayudar y llegar al fondo de esto en su lugar.

¿Está seguro de esto? Nunca he visto un número de publicación en un mapa del sitio.

3 Me gusta

Por eso estará bajo una configuración del sitio.

5 Me gusta

Gracias por cuestionar esto. Probablemente “mapa del sitio” fue la palabra incorrecta para usar. Lo que quise decir es que estas publicaciones numeradas estaban siendo rastreadas e indexadas por Google y aparecían como páginas individuales en Google Analytics y Search Console, lo que resultaba en una GRAN cantidad de páginas de baja calidad en nuestro dominio.

Si estos números simplemente no se agregaran a cada respuesta, Google solo podría ver la URL de la publicación original.

2 Me gusta

Sí, y si Google respetara esas etiquetas meta rel="canonical" (¡que ellos inventaron!) que se colocaron allí específicamente para evitar que Google hiciera esto, no sería un problema y aún podríamos enlazar a una publicación específica al mismo tiempo.

7 Me gusta

Suena bien. Sería ideal si estuviera desactivado por defecto, porque no es inconcebible que pueda hacer que las páginas de temas desaparezcan de Google u otros motores de búsqueda.

No estoy seguro si ya se mencionó, pero otra forma de solucionarlo sin noindex podría ser usar fragmentos de URL para las publicaciones, ya que esos no deberían contarse como páginas separadas.

/t/slug/id#13
5 Me gusta

Gracias por la sugerencia. Me gustaría pensar que eso funcionaría… pero dado que el método “correcto” original ni siquiera está funcionando, me hace dudar de que algo resuelva el problema aparte de eliminar por completo las respuestas numeradas.

Por supuesto, no digo que TODOS los usuarios de Discourse deban dejar de usarlos. De hecho, si no fuera por la estupidez de Google (y/o si tuviéramos la intención de que nuestro foro fuera privado y no público), estaría totalmente a favor… pero solo tener la opción de desactivar la numeración automática de las respuestas sería de gran ayuda para quienes administran foros públicos y se preocupan por la salud SEO general de su dominio.

1 me gusta

Eso eliminaría la capacidad de enlazar a publicaciones específicas. No habría forma de enlazar a la publicación n.º 789 en un tema de 1000 publicaciones, y sería molesto para los usuarios tener que desplazarse tanto.

Es extraño. Busqué en Google para ver si las URL de ID de publicación se indexaban en mis foros, y solo las URL canónicas aparecen en todos los temas que revisé.

Sin embargo, lo veo en otro sitio grande de Discourse. También aparece en este tema. [Consulta de Google]

Ejecuté una diferencia en las dos respuestas de esta manera:

curl -s https://meta.discourse.org/t/removing-the-2-3-4-etc-links-for-each-reply-within-a-topic-url/209648 > 1.html
curl -s https://meta.discourse.org/t/removing-the-2-3-4-etc-links-for-each-reply-within-a-topic-url/209648/8 > 2.html
nvim -d 1.html 2.html

Una diferencia que destaca es que article:published_time es diferente, aunque probablemente deberían ser iguales, porque las páginas son casi idénticas. Me pregunto si esa metaetiqueta podría hacer que Google anule la URL canónica. Un empleado de Google dice que las URL canónicas pueden ser ignoradas en ciertos casos aquí.

<meta property="article:published_time" content="2021-11-19T15:57:21+00:00" />
<meta property="article:published_time" content="2021-11-20T06:48:06+00:00" />

Además, ¿la etiqueta ignore_canonical es exclusiva de Discourse o existe la posibilidad de que Google la siga? La vi en el HTML.

<meta property="og:ignore_canonical" content="true" />
3 Me gusta

Podría ser un poco más molesto, pero si las URL page=2, page=3, etc. siguen funcionando (lo que realmente no crea un problema de SEO como lo hacen las respuestas numeradas), al menos podrías enlazar a una persona a la página correcta dentro de una conversación. Esto los acercaría la mayor parte del camino, siempre que estén dispuestos a desplazarse un poco.

Un foro que funciona de esta manera es BiggerPockets. Sus respuestas no tienen URL numeradas individualmente, pero los temas tienen páginas numeradas, como esta: Kids throwing rocks at windows nearly everyday. Won't stop. (toma nota de la URL mientras te desplazas por cada tema y página).

Su foro siempre ha sido un componente importante de lo que hace que el sitio sea tan especial y exitoso desde el punto de vista del SEO, por lo que es un buen ejemplo de lo que funciona.

Interesante. No tengo idea de si eso está causando el problema o no, pero puedo ver cómo la inconsistencia podría confundir a Google y hacer que ignore la URL canónica.

Aun así, dada la naturaleza de cómo funcionan los foros, a menos que quisieras eliminar por completo las fechas y los plazos de cada tema, no podrías eliminar esto, ¿verdad? Tener en cuenta las fechas y horas de cada publicación y respuesta es una parte integral de cómo funcionan los foros.

1 me gusta