Discourse cuenta con muchas características de SEO que funcionan directamente desde el primer momento. Al utilizar nuestros valores predeterminados sensatos, los gestores de la comunidad pueden centrarse en cultivar una comunidad y no deberían sentirse distraídos por optimizar para los motores de búsqueda. Dicho esto, hay algunas cosas que puedes cambiar, algunas cosas que debes saber y algunos consejos y trucos generales a continuación.
Vista estática para motores de búsqueda
Discourse tiene una vista HTML estática sin JavaScript para ayudar a los rastreadores web a indexar tu sitio más rápido. El contenido entre la vista dinámica y la estática es idéntico y nada se omitirá ni eliminará cuando el sitio sea rastreado por los motores de búsqueda.
Aquí hay una comparación de lo que ve un usuario y lo que ve un motor de búsqueda:
Lista de temas:
Tema:
Vista previa de la vista del rastreador
Puedes inspeccionar lo que Discourse sirve a los rastreadores sin deshabilitar JavaScript de dos maneras:
-
Parámetro de URL
?print— Agrega?printa cualquier URL de Discourse (por ejemplo,https://yourforum.com/t/some-topic/123?print). Esto fuerza la disposición del rastreador para cualquier navegador, independientemente del agente de usuario. Es la forma más sencilla de auditar lo que ven los motores de búsqueda. -
Encabezado de solicitud
Discourse-Render: crawler— Envía este encabezado HTTP con cualquier solicitud para forzar la disposición del rastreador. Útil para auditorías programáticas o pruebas concurl:curl -H "Discourse-Render: crawler" https://yourforum.com/t/some-topic/123
Etiquetas meta
En Discourse, las etiquetas meta genéricas esenciales para el SEO se generan automáticamente según el contenido presente en la página. La etiqueta de título, por ejemplo, se deriva del título del sitio o del tema, y la descripción se genera a partir del contenido de la primera publicación. Sin embargo, la personalización a nivel de página para los metadatos es limitada. Para alterar estos valores, debes ajustar la configuración o los campos de contenido de los que se generan.
- La configuración del sitio Título, Descripción y Descripción corta del sitio
- Los nombres de las categorías
- Los títulos y contenidos de las publicaciones
- Y así sucesivamente

Etiquetas meta para redes sociales
Discourse genera automáticamente etiquetas meta Open Graph y Twitter (X) Card para un intercambio social enriquecido:
Etiquetas Open Graph
og:site_name,og:type,og:url,og:title,og:descriptionog:image- Configurable mediante la configuraciónopengraph_imageog:article:section- Migas de pan de la categoríaog:article:tag- Etiquetas del tema
Etiquetas de tarjeta de X (antes Twitter)
twitter:card- “summary” o “summary_large_image”twitter:title,twitter:description,twitter:imagetwitter:label1/data1- Estimación del tiempo de lecturatwitter:label2/data2- Conteo de “Me gusta”
Configuraciones
opengraph_image- Imagen OG predeterminada para el intercambio socialx_summary_large_image- Imagen de tarjeta grande de X (antes Twitter)
Estructura y codificación de URLs
Caracteres no latinos y URLs
Por defecto, Discourse elimina los caracteres no latinos de las URLs de los temas cuando la configuración regional está establecida en EN. Para evitar esto, puedes cambiar la configuración regional al idioma no latino principal o cambiar la configuración método de generación de slug de ASCII a encoded.
SEO internacional y etiquetas hreflang
Para comunidades multilingües, Discourse soporta etiquetas hreflang, ayudando a los motores de búsqueda a ofrecer la versión correcta del idioma a los usuarios. Para habilitar esto, debes configurar estas tres opciones (Admin → Configuración → Localización):
content_localization_enabled: Habilita el sistema de localización de contenido.content_localization_supported_locales: Define los códigos de configuración regional admitidos (por ejemplo,en|es|fr).content_localization_crawler_param: Requerido para generar etiquetas<link rel="alternate" hreflang="...">y reescribir enlaces internos para rastreadores con el parámetro de configuración regionaltl(por ejemplo,/t/example-topic/123?tl=es).
Con estas configuraciones habilitadas, Discourse genera enlaces alternativos para cada idioma admitido, ayudando a Google y otros motores de búsqueda a ofrecer la versión correcta del idioma a los usuarios.
Configuración de subcarpetas vs. subdominios
Discourse se inclina hacia los subdominios sobre las subcarpetas debido a su simplicidad técnica. Google realmente no tiene preferencia entre los dos[1], pero Discourse recomienda encarecidamente evitar configuraciones de subcarpetas a menos que tengas un profundo conocimiento técnico.
Si ejecutas Discourse en una subcarpeta (por ejemplo, example.com/forum/), tu robots.txt de nivel raíz es gestionado por tu servidor web principal, no por Discourse. Para ayudar a configurarlo correctamente, Discourse expone un punto final JSON en /robots-builder.json que devuelve las reglas exactas de prohibición que generaría Discourse, limitadas a tu ruta de subcarpeta. Puedes usar esto como entrada para un script que escriba tu robots.txt a nivel de servidor.
Canonicalización
Google está ansioso por indexar versiones canónicas de páginas. En Discourse, para un tema con múltiples respuestas, el enlace canónico (la primera publicación) se entrega a Google, que luego decide sobre la indexación. Los temas con más de 20 publicaciones se paginarán, cada página siendo un enlace canónico que contiene hasta 20 publicaciones.
Por ejemplo, la etiqueta canónica para la última respuesta en este tema será https://meta.discourse.org/t/try-out-the-new-sidebar-and-notification-menus/238821?page=12.
Configuración allow_indexing_non_canonical_urls
La configuración oculta del sitio allow_indexing_non_canonical_urls (predeterminado: true) controla si las variantes de URL no canónicas reciben un encabezado X-Robots-Tag: noindex. Cuando se establece en false, cualquier solicitud a una URL que difiera de la URL canónica (por ejemplo, un enlace directo a una publicación como /t/slug/123/45 cuando la canónica es /t/slug/123?page=3) se servirá con un encabezado noindex.
Temas incrustados
Cuando los temas se incrustan en sitios web externos, puedes usar la configuración embed_set_canonical_url para dirigir la URL canónica a la ubicación original de la incrustación. Esto evita problemas de contenido duplicado cuando el mismo tema aparece tanto en tu foro como en el sitio de incrustación.
Marcado de esquema
Discourse utiliza un marcado extenso de schema.org para ayudar a los motores de búsqueda a comprender tu contenido. Cada tipo de contenido incluye datos estructurados ricos que aparecen en los resultados de búsqueda y ayudan con la descubribilidad.
Temas
Usa el esquema DiscussionForumPosting para representar el hilo principal de discusión e incluye:
headline- El título del temadatePublished- Cuando se creó el temaarticleSection- El nombre de la categoríakeywords- Todas las etiquetas del temapublisher- Información de tu sitio/organizaciónauthor- Información del autor original
Publicaciones y respuestas
Las publicaciones individuales dentro de los temas usan el esquema Comment, incluyendo:
author- Autor de la publicación con nombre y enlace de perfiltext- El contenido de la publicacióndatePublishedydateModified- Marcas de tiempo de creación y edicióninteractionStatistic- Conteo de “Me gusta” usandoInteractionCountercon tipoLikeAction
Migas de pan
La navegación de categorías usa el esquema BreadcrumbList que aparece en los resultados de búsqueda, mostrando la ruta de la jerarquía de categorías. Cada miga de pan incluye:
itemListElement- Enlaces individuales de categoríasposition- Orden en la jerarquía- Colores de categoría para distinción visual
Categorías y listas de temas
Las páginas de categorías y las vistas de listas de temas usan el esquema ItemList:
- Ordenado con
ItemListOrderDescendingpara clasificación cronológica - Incluye metadatos de posición para cada elemento
- Ayuda a los motores de búsqueda a comprender la estructura y jerarquía del contenido
Página de inicio
La página de inicio del sitio incluye datos estructurados JSON-LD para WebSite con SearchAction, lo que permite que la caja de búsqueda de Google aparezca directamente en los resultados de búsqueda para tu sitio.
Página Acerca de
Tu página Acerca de usa el esquema de página About con información de Organization, ayudando a los motores de búsqueda a comprender la identidad y propósito de tu comunidad.
Mapa del sitio
Discourse incorpora un índice de mapas del sitio ubicado en /sitemap.xml que está habilitado por defecto mediante la configuración enable sitemap. Esto facilita una mejor indexación por parte de los motores de búsqueda. También hay otros mapas del sitio:
- Mapa del sitio reciente (
/sitemap_recent.xml) - Temas movidos en los últimos 3 días (cacheado por 1 hora) - Mapa del sitio de noticias (
/news.xml) - Temas movidos en las últimas 72 horas en formato Google News (cacheado por 5 minutos), útil para comunidades orientadas a noticias - Mapas del sitio paginados - Catálogo completo de temas dividido en páginas (cacheado por 24 horas)
Los mapas del sitio se regeneran automáticamente cada hora mediante un trabajo programado e incluyen marcas de tiempo de última modificación. Puedes configurar el número de temas por página del mapa del sitio mediante la configuración sitemap_page_size (predeterminado: 10,000).
Rastreadores web
Los rastreadores web, también conocidos como robots o bots, son esenciales para indexar páginas web y hacer que tu contenido sea descubrible. Discourse utiliza una detección sofisticada de rastreadores para servir contenido optimizado y gestionar el tráfico de bots de manera efectiva.
Detección de rastreadores
Discourse detecta y maneja automáticamente varios tipos de rastreadores, incluyendo:
- Motores de búsqueda: Googlebot, Bingbot, DuckDuckBot y otros
- Redes sociales: Facebookbot, Twitterbot, LinkedInBot, Discordbot
- Rastreadores de IA: GPTBot, ClaudeBot, Anthropic-AI, BrightBot
- Servicios de archivo: Wayback Machine, Archive.org
- Servicios de monitoreo: Lighthouse, Herramienta de inspección de Google
Cuando se detecta un rastreador, Discourse sirve contenido optimizado y agrega encabezados de respuesta especiales:
X-Discourse-Crawler-View: true- Indica contenido optimizado para rastreadores- Encabezados
Last-Modified- Habilita el re-rastreo eficiente
Gestión del tráfico de rastreadores
Algunos rastreadores pueden ser excesivamente entusiastas, golpeando tu foro con muchas solicitudes. Discourse proporciona varias configuraciones para gestionar el comportamiento de los rastreadores:
blocked_crawler_user_agents- Bloquea completamente rastreadores específicos (la lista de bloqueo predeterminada incluye: mauibot, semrushbot, ahrefsbot, blexbot, seo spider)slow_down_crawler_user_agents- Limita la velocidad de los rastreadores en lugar de bloquearlos (por defecto incluye rastreadores de IA como GPTBot, ClaudeBot)allowed_crawler_user_agents-
Peligro: establecer esto bloqueará TODOS los rastreadores que no estén explícitamente listados, incluido Googlebot. Solo usa esto si tienes la intención de restringir el rastreo a un conjunto específico de bots. Tiene precedencia total sobre blocked_crawler_user_agents. Déjalo en blanco a menos que tengas una razón específica para usarlo.
Encabezados noindex automáticos
Además de la configuración global allow_index_in_robots_txt, Discourse agrega automáticamente encabezados de respuesta X-Robots-Tag: noindex a varios tipos de página:
- Páginas de búsqueda — siempre noindexadas (los resultados de búsqueda no son útiles como páginas indexadas)
- Páginas de insignias — siempre noindexadas
- Páginas de grupos — siempre noindexadas
- Páginas de perfil de usuario — siempre noindexadas
- Páginas de filtro/intersección de etiquetas — noindexadas (las páginas de índice y mostrar de etiquetas están exentas)
- Fuentes RSS/Atom — siempre noindexadas
Estas se aplican a nivel de controlador y no son configurables. Aseguran que las páginas efímeras, de bajo valor o de contenido duplicado no contaminen los índices de los motores de búsqueda.
Analítica de rastreadores
Los administradores pueden monitorear la actividad de los rastreadores en Admin → Informes → Rastreadores web para ver qué bots están accediendo a tu sitio y con qué frecuencia.
Características adicionales de SEO
Orientación de rastreadores de IA a través de llms.txt
Discourse soporta la convención llms.txt, que proporciona una forma estándar de orientar a los rastreadores basados en LLM (como los utilizados por asistentes de IA) sobre el contenido y la estructura de tu sitio.
Para habilitarlo:
- Prepara un archivo
.txto.md(máximo 512 KB) describiendo tu sitio para rastreadores LLM - Súbelo mediante la configuración del sitio
llms_txt(Admin → Configuración → Seguridad) - Se servirá en
https://yourforum.com/llms.txt
El
llms.txtes distinto derobots.txty está diseñado específicamente para orientar a los rastreadores basados en LLM. En lugar de proporcionar reglas de acceso, proporciona contexto semántico…describiendo qué es tu sitio, qué contenido contiene y cómo un asistente de IA debería entenderlo y usarlo. Piensa enrobots.txtcomo diciéndoles a los bots ‘dónde pueden ir’, y enllms.txtcomo diciéndole a la IA ‘qué está viendo y por qué importa’.
Integración OpenSearch
Discourse proporciona una descripción OpenSearch en /opensearch.xml, habilitando la integración de búsqueda del navegador. Los usuarios pueden agregar tu foro directamente a la lista de motores de búsqueda de su navegador.
Fuentes RSS
Cada tema tiene una fuente RSS disponible en /t/{slug}/{id}.rss, que incluye:
- Título y descripción del tema
- Todas las publicaciones/respuestas con información del autor
- Fechas de publicación y última actualización
- Categorías y etiquetas
Nota: Las rutas de fuentes RSS (
/t/*/*.rss,/c/*.rss) están prohibidas en robots.txt para el agente comodín general*para evitar la indexación de contenido duplicado por la mayoría de los rastreadores. Googlebot está explícitamente exento de esta restricción y puede acceder a las fuentes RSS.
Verificación de sitio de Google
Usa la configuración google_site_verification_token para agregar etiquetas meta de verificación de Google Search Console sin editar plantillas de temas.
Aplicación web progresiva (PWA)
Discourse genera un Manifiesto de Aplicación Web en /manifest.json para la descubribilidad e instalación de aplicaciones móviles.
Migraciones y redirecciones de URL
La función de enlace permanente se utiliza para redirigir URLs antiguas, con el objetivo de preservar el SEO, prevenir errores “Página no encontrada” y ayudar a los motores de búsqueda con los metadatos correctos para una indexación más fácil.
Si el sitio de tu comunidad es migrado a Discourse por nuestro equipo, las redirecciones de URL están incluidas a menos que haya razones válidas para no hacerlo.
Si estás utilizando uno de los scripts de importación existentes, debes asegurarte de que el script maneje esto[2]. Puedes agregar enlaces permanentes manualmente desde tu panel de administración, en Personalizar → Enlaces permanentes.
Métodos de desindexación
Para sacar páginas del índice de Google, puedes eliminar contenido o bloquear el acceso a una página. Dependiendo de tus necesidades, puedes hacer que todo tu sitio sea privado[3]. Puedes excluir temas eliminándolos o colocándolos en categorías restringidas. Los temas ocultos no se indexan por defecto, pero pueden hacerlo si hay un enlace público en algún lugar que redirija a ellos.
Para una eliminación permanente, usar la herramienta de Eliminaciones en la Consola de Búsqueda de Google es la solución para mantener las páginas fuera de los resultados de búsqueda. Aprende más en Remove information on your website from Google - Search Console Help




