Cómo los sitios de Discourse público son indexados por motores de búsqueda como Google

:bookmark: Esta referencia explica cómo funcionan los sitios públicos de Discourse con motores de búsqueda como Google y cómo la plataforma garantiza que el contenido se indexe correctamente incluso siendo una aplicación JavaScript.

:person_raising_hand: Nivel de usuario requerido: Todos los usuarios

Indexación de sitios de Discourse por motores de búsqueda

Discourse está construido como una aplicación JavaScript, pero está diseñado específicamente para garantizar que los motores de búsqueda puedan rastrear e indexar correctamente todo el contenido de los sitios públicos.

Cómo admite Discourse a los rastreadores de motores de búsqueda

Si bien Discourse utiliza JavaScript moderno para sus funciones interactivas, implementa varias técnicas para garantizar que los motores de búsqueda puedan indexar correctamente todo el contenido:

Diseño de rastreador dedicado

Discourse detecta automáticamente los bots de los motores de búsqueda por su agente de usuario utilizando el módulo CrawlerDetection. Cuando se detecta un rastreador, Discourse sirve un diseño HTML completamente separado renderizado en el servidor (crawler.html.erb) en lugar de la aplicación JavaScript normal. Este diseño para rastreadores incluye:

  1. Contenido de temas y listas de temas completamente renderizados en HTML: no se requiere JavaScript
  2. Etiquetado de datos estructurados de Schema.org (por ejemplo, DiscussionForumPosting, ItemList, BreadcrumbList) para ayudar a los motores de búsqueda a comprender su contenido
  3. Paginación adecuada con enlaces rel="prev" y rel="next" para permitir un rastreo completo
  4. Encabezados Last-Modified en las páginas de temas para indicar la actualidad del contenido

Respaldo sin JavaScript

Para los navegadores normales que tienen JavaScript deshabilitado, Discourse también incluye una etiqueta \u003cnoscript\u003e en el diseño de la aplicación estándar. Esto contiene listas de temas y contenido de temas renderizados, lo que garantiza que el sitio siga siendo accesible incluso sin JavaScript.

Robots.txt y controles de indexación

Discourse proporciona varias configuraciones para controlar cómo interactúan los motores de búsqueda con su sitio:

allow_index_in_robots_txt

Esta configuración del sitio (habilitada por defecto) controla si el robots.txt de su sitio permite el rastreo. Cuando está deshabilitada, el robots.txt denegará el acceso a todos los rastreadores y se añadirá una cabecera X-Robots-Tag: noindex a todas las respuestas.

Lista de permitidos y lista de bloqueados de rastreadores

Puede controlar qué rastreadores tienen permitido acceder a su sitio usando:

  • allowed_crawler_user_agents — cuando se establece, solo se permiten los rastreadores enumerados; todos los demás son bloqueados a través de robots.txt
  • blocked_crawler_user_agents — cuando se establece, los rastreadores enumerados son bloqueados mientras que todos los demás están permitidos

Robots.txt personalizado

Los administradores pueden personalizar completamente el archivo robots.txt en /admin/customize/robots. Un robots.txt personalizado anula por completo el generado por defecto.

Rutas desautorizadas por defecto

Por defecto, Discourse bloquea a los rastreadores de rutas que no son útiles para la indexación, como /admin/, /auth/, /email/, /session, /search, y otras. Googlebot obtiene una configuración más permisiva, bloqueando solo las rutas principales de administración/autenticación.

Visualización de la versión del rastreador

Puede ver cómo los motores de búsqueda ven su sitio de Discourse haciendo lo siguiente:

  • Instalando un complemento de navegador que deshabilita JavaScript en Chrome o Firefox
  • Usando las Herramientas para desarrolladores de Chrome para deshabilitar JavaScript (instrucciones de Google)
  • Cambiando la cadena de agente de usuario de su navegador a un rastreador conocido (por ejemplo, Googlebot) para ver el diseño dedicado para rastreadores
13 Me gusta