O Discourse possui muitos recursos de SEO que funcionam imediatamente após a instalação. Usando nossas configurações padrão sensatas, os gerentes de comunidade podem se concentrar em cultivar uma comunidade e não devem se sentir distraídos pela otimização para mecanismos de busca. Dito isso, há algumas coisas que você pode alterar, algumas coisas que você deve saber e algumas dicas e truques gerais abaixo.
Visualização estática para mecanismos de busca
O Discourse possui uma visualização HTML estática sem JavaScript para ajudar os rastreadores da web a indexar seu site mais rapidamente. O conteúdo entre a visualização dinâmica e a estática é idêntico e nada será omitido ou removido quando o site for rastreado pelos mecanismos de busca.
Aqui está uma comparação do que um usuário vê e do que um mecanismo de busca vê:
Lista de tópicos:
Tópico:
Visualização prévia do rastreador
Você pode inspecionar o que o Discourse serve aos rastreadores sem desativar o JavaScript de duas maneiras:
-
Parâmetro de URL
?print— Adicione?printa qualquer URL do Discourse (por exemplo,https://seuforum.com/t/algum-topico/123?print). Isso força o layout do rastreador para qualquer navegador, independentemente do user-agent. É a maneira mais simples de auditar o que os mecanismos de busca veem. -
Cabeçalho de solicitação
Discourse-Render: crawler— Envie este cabeçalho HTTP com qualquer solicitação para forçar o layout do rastreador. Útil para auditoria programática ou teste comcurl:curl -H "Discourse-Render: crawler" https://seuforum.com/t/algum-topico/123
Tags meta
No Discourse, as tags meta genéricas essenciais para SEO são geradas automaticamente com base no conteúdo presente na página. A tag de título, por exemplo, é derivada do título do site ou do tópico, e a descrição é gerada a partir do conteúdo da primeira postagem. No entanto, a personalização em nível de página para metadados é limitada. Para alterar esses valores, você precisa ajustar as configurações ou os campos de conteúdo dos quais eles são gerados.
- As configurações do site Título, Descrição e Descrição curta do site
- Os nomes das categorias
- Os títulos e o conteúdo das postagens
- E assim por diante

Tags meta de redes sociais
O Discourse gera automaticamente tags meta Open Graph e Twitter (X) Card para compartilhamento social rico:
Tags Open Graph
og:site_name,og:type,og:url,og:title,og:descriptionog:image- Configurável via configuraçãoopengraph_imageog:article:section- Trilha de navegação da categoriaog:article:tag- Tags do tópico
Tags de cartão do X (antigo Twitter)
twitter:card- “summary” ou “summary_large_image”twitter:title,twitter:description,twitter:imagetwitter:label1/data1- Estimativa de tempo de leituratwitter:label2/data2- Contagem de curtidas
Configurações
opengraph_image- Imagem OG padrão para compartilhamento socialx_summary_large_image- Imagem de cartão grande do X (antigo Twitter)
Estrutura e codificação de URLs
Caracteres não latinos e URLs
Por padrão, o Discourse remove caracteres não latinos das URLs dos tópicos quando o locale está definido como EN. Para evitar isso, você pode alterar o locale para o idioma principal não latino ou alterar a configuração método de geração de slug de ASCII para encoded.
SEO internacional e tags hreflang
Para comunidades multilíngues, o Discourse suporta tags hreflang, ajudando os mecanismos de busca a fornecer a versão correta do idioma aos usuários. Para habilitar isso, você deve configurar estas três configurações (Admin → Configurações → Localização):
content_localization_enabled: Habilita o sistema de localização de conteúdo.content_localization_supported_locales: Define os códigos de locale suportados (por exemplo,en|es|fr).content_localization_crawler_param: Obrigatório para gerar tags<link rel="alternate" hreflang="...">e reescrever links internos para rastreadores com o parâmetro de localetl(por exemplo,/t/topico-exemplo/123?tl=es).
Com essas configurações habilitadas, o Discourse gera links alternativos para cada idioma suportado, ajudando o Google e outros mecanismos de busca a fornecer a versão correta do idioma aos usuários.
Configuração de subpastas vs. subdomínios
O Discourse tende a preferir subdomínios em vez de subpastas devido à sua simplicidade técnica. O Google realmente não tem preferência entre os dois[1], mas o Discourse recomenda fortemente evitar configurações de subpastas, a menos que você tenha um profundo entendimento técnico.
Se você executar o Discourse em uma subpasta (por exemplo, exemplo.com/forum/), seu robots.txt de nível raiz é gerenciado pelo seu servidor web principal, não pelo Discourse. Para ajudar a configurá-lo corretamente, o Discourse expõe um endpoint JSON em /robots-builder.json que retorna as regras de proibição exatas que o Discourse geraria, escopadas ao caminho da sua subpasta. Você pode usar isso como entrada para um script que escreva seu robots.txt de nível de servidor.
Canonicalização
O Google está ansioso para indexar versões canônicas de páginas. No Discourse, para um tópico com várias respostas, o link canônico (a primeira postagem) é entregue ao Google, que então faz a chamada sobre a indexação. Tópicos com mais de 20 postagens serão paginados, cada página sendo um link canônico contendo até 20 postagens.
Por exemplo, a tag canônica para a última resposta em este tópico será https://meta.discourse.org/t/try-out-the-new-sidebar-and-notification-menus/238821?page=12.
Configuração allow_indexing_non_canonical_urls
A configuração oculta do site allow_indexing_non_canonical_urls (padrão: true) controla se variantes de URL não canônicas recebem um cabeçalho X-Robots-Tag: noindex. Quando definido como false, qualquer solicitação para uma URL que difira da URL canônica (por exemplo, um link direto de postagem como /t/slug/123/45 quando o canônico é /t/slug/123?page=3) será servida com um cabeçalho noindex.
Tópicos incorporados
Quando os tópicos são incorporados em sites externos, você pode usar a configuração embed_set_canonical_url para apontar a URL canônica para a localização original de incorporação. Isso evita problemas de conteúdo duplicado quando o mesmo tópico aparece tanto no seu fórum quanto no site de incorporação.
Marcação Schema
O Discourse usa marcação schema.org extensiva para ajudar os mecanismos de busca a entender seu conteúdo. Cada tipo de conteúdo inclui dados estruturados ricos que aparecem nos resultados de busca e ajudam na descoberta.
Tópicos
Use o esquema DiscussionForumPosting para representar o thread principal de discussão e inclui:
headline- O título do tópicodatePublished- Quando o tópico foi criadoarticleSection- O nome da categoriakeywords- Todas as tags do tópicopublisher- Informações do seu site/organizaçãoauthor- Informações do autor original
Postagens e respostas
Postagens individuais dentro de tópicos usam o esquema Comment, incluindo:
author- Autor da postagem com nome e link do perfiltext- O conteúdo da postagemdatePublishededateModified- Carimbos de data/hora de criação e ediçãointeractionStatistic- Contagens de curtidas usandoInteractionCountercom tipoLikeAction
Trilha de navegação (Breadcrumbs)
A navegação por categorias usa o esquema BreadcrumbList que aparece nos resultados de busca, mostrando o caminho da hierarquia de categorias. Cada item da trilha inclui:
itemListElement- Links individuais de categoriasposition- Ordem na hierarquia- Cores de categoria para distinção visual
Categorias e listas de tópicos
Páginas de categorias e visualizações de lista de tópicos usam o esquema ItemList:
- Ordenado com
ItemListOrderDescendingpara classificação cronológica - Inclui metadados de posição para cada item
- Ajuda os mecanismos de busca a entender a estrutura e hierarquia do conteúdo
Página inicial
A página inicial do site inclui dados estruturados JSON-LD para WebSite com SearchAction, o que permite que a caixa de pesquisa do Google apareça diretamente nos resultados de busca para seu site.
Página Sobre
Sua página Sobre usa o esquema de página About com informações de Organization, ajudando os mecanismos de busca a entender a identidade e o propósito de sua comunidade.
Sitemap
O Discourse incorpora um índice de sitemap localizado em /sitemap.xml, que é habilitado por padrão via a configuração enable sitemap. Isso facilita uma melhor indexação pelos mecanismos de busca. Existem outros sitemaps também:
- Sitemap Recente (
/sitemap_recent.xml) - Tópicos atualizados nos últimos 3 dias (em cache por 1 hora) - Sitemap de Notícias (
/news.xml) - Tópicos atualizados nas últimas 72 horas em formato Google News (em cache por 5 minutos), útil para comunidades orientadas a notícias - Sitemaps Paginados - Catálogo completo de tópicos dividido em páginas (em cache por 24 horas)
Os sitemaps são regenerados automaticamente a cada hora por um trabalho agendado e incluem carimbos de data/hora de última modificação. Você pode configurar o número de tópicos por página de sitemap via a configuração sitemap_page_size (padrão: 10.000).
Rastreadores da web
Rastreadores da web, também conhecidos como robôs ou bots, são essenciais para indexar páginas da web e tornar seu conteúdo descobrível. O Discourse usa detecção sofisticada de rastreadores para servir conteúdo otimizado e gerenciar o tráfego de bots efetivamente.
Detecção de rastreadores
O Discourse detecta e lida automaticamente com vários tipos de rastreadores, incluindo:
- Mecanismos de busca: Googlebot, Bingbot, DuckDuckBot, e outros
- Redes sociais: Facebookbot, Twitterbot, LinkedInBot, Discordbot
- Rastreadores de IA: GPTBot, ClaudeBot, Anthropic-AI, BrightBot
- Serviços de arquivo: Wayback Machine, Archive.org
- Serviços de monitoramento: Lighthouse, Ferramenta de Inspeção do Google
Quando um rastreador é detectado, o Discourse serve conteúdo otimizado e adiciona cabeçalhos de resposta especiais:
X-Discourse-Crawler-View: true- Indica conteúdo otimizado para rastreadores- Cabeçalhos
Last-Modified- Habilita re-rastreamento eficiente
Gerenciamento de tráfego de rastreadores
Alguns rastreadores podem ser excessivamente entusiastas, atingindo seu fórum com muitas solicitações. O Discourse fornece várias configurações para gerenciar o comportamento do rastreador:
blocked_crawler_user_agents- Bloqueia completamente rastreadores específicos (lista de bloqueio padrão inclui: mauibot, semrushbot, ahrefsbot, blexbot, seo spider)slow_down_crawler_user_agents- Limita a taxa de rastreadores em vez de bloqueá-los (padrão inclui rastreadores de IA como GPTBot, ClaudeBot)allowed_crawler_user_agents-
Perigo: definir isso bloqueará TODOS os rastreadores não listados explicitamente, incluindo o Googlebot. Use isso apenas se você pretende restringir o rastreamento a um conjunto específico de bots. Ele tem precedência total sobre blocked_crawler_user_agents. Deixe em branco, a menos que tenha um motivo específico para usá-lo.
Cabeçalhos noindex automáticos
Além da configuração global allow_index_in_robots_txt, o Discourse adiciona automaticamente cabeçalhos de resposta X-Robots-Tag: noindex a vários tipos de página:
- Páginas de busca — sempre noindexed (resultados de busca não são úteis como páginas indexadas)
- Páginas de distintivos — sempre noindexed
- Páginas de grupos — sempre noindexed
- Páginas de perfil de usuário — sempre noindexed
- Páginas de filtro/interseção de tags — noindexed (páginas de índice e exibição de tags são isentas)
- Feeds RSS/Atom — sempre noindexed
Estes são aplicados no nível do controlador e não são configuráveis. Eles garantem que páginas efêmeras, de baixo valor ou de conteúdo duplicado não poluam os índices dos mecanismos de busca.
Análise de rastreadores
Os administradores podem monitorar a atividade dos rastreadores em Admin → Relatórios → Rastreadores da Web para ver quais bots estão acessando seu site e com que frequência.
Recursos adicionais de SEO
Orientação de rastreadores de IA através de llms.txt
O Discourse suporta a convenção llms.txt, que fornece uma maneira padrão de orientar rastreadores baseados em LLM (como aqueles usados por assistentes de IA) sobre o conteúdo e a estrutura do seu site.
Para habilitá-lo:
- Prepare um arquivo
.txtou.md(máximo 512 KB) descrevendo seu site para rastreadores de LLM - Faça o upload via a configuração do site
llms_txt(Admin → Configurações → Segurança) - Ele será servido em
https://seuforum.com/llms.txt
O
llms.txté distinto dorobots.txte é projetado especificamente para orientar rastreadores baseados em LLM. Em vez de fornecer regras de acesso, ele fornece contexto semântico…descrevendo o que é seu site, que conteúdo ele contém e como um assistente de IA deve entender e usá-lo. Pense norobots.txtcomo dizendo aos bots ‘para onde eles podem ir’, e nollms.txtcomo dizendo à IA ‘o que ela está vendo e por que isso importa’.
Integração OpenSearch
O Discourse fornece uma descrição OpenSearch em /opensearch.xml, habilitando a integração de busca do navegador. Os usuários podem adicionar seu fórum diretamente à lista de mecanismos de busca do navegador.
Feeds RSS
Cada tópico tem um feed RSS disponível em /t/{slug}/{id}.rss, que inclui:
- Título e descrição do tópico
- Todas as postagens/respostas com informações do autor
- Datas de publicação e horários de última atualização
- Categorias e tags
Nota: Os caminhos dos feeds RSS (
/t/*/*.rss,/c/*.rss) são proibidos no robots.txt para o agente curinga geral*para evitar a indexação de conteúdo duplicado pela maioria dos rastreadores. O Googlebot é explicitamente isento desta restrição e pode acessar feeds RSS.
Verificação de site do Google
Use a configuração google_site_verification_token para adicionar tags meta de verificação do Google Search Console sem editar modelos de tema.
Aplicativo web progressivo (PWA)
O Discourse gera um Manifesto de Aplicativo Web em /manifest.json para descoberta de aplicativos móveis e prompts de instalação.
Migrações e redirecionamentos de URL
O recurso de permalink é usado para redirecionar URLs antigas, visando preservar o SEO, prevenir erros “Página Não Encontrada” e auxiliar os mecanismos de busca com os metadados corretos para indexação mais fácil.
Se o site da sua comunidade for migrado para o Discourse por nossa equipe, os redirecionamentos de URL estão incluídos, a menos que haja motivos válidos para não o fazer.
Se você estiver usando um dos scripts de importação existentes, você deve garantir que o script lide com isso[2]. Você pode adicionar permalinks manualmente do seu painel de administrador, em Personalizar → Permalinks.
Métodos de desindexação
Para remover páginas do índice do Google, você pode remover o conteúdo ou bloquear o acesso a uma página. Dependendo de suas necessidades, você pode tornar todo o seu site privado[3]. Você pode excluir tópicos ou colocá-los em categorias restritas. Tópicos ocultos não são indexados por padrão, mas podem ser se houver um link público em algum lugar que redirecione para ele.
Para uma remoção permanente, usar a ferramenta de Remoções no Google Search Console é a solução para manter as páginas fora dos resultados de busca. Saiba mais em Remove information on your website from Google - Search Console Help




