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.
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:
- Contenido de temas y listas de temas completamente renderizados en HTML: no se requiere JavaScript
- Etiquetado de datos estructurados de Schema.org (por ejemplo,
DiscussionForumPosting,ItemList,BreadcrumbList) para ayudar a los motores de búsqueda a comprender su contenido - Paginación adecuada con enlaces
rel="prev"yrel="next"para permitir un rastreo completo - Encabezados
Last-Modifieden 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 derobots.txtblocked_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