Discourse-indexnow — Notifique instantaneamente o Bing e o Yandex quando tópicos forem criados ou editados

:information_source: Resumo Envia automaticamente as URLs de tópicos públicos novos e editados para o protocolo IndexNow, permitindo que o Bing, o Yandex e outros mecanismos de busca participantes descubram seu conteúdo em minutos, em vez de esperar por uma varredura (crawl).
:hammer_and_wrench: Link do Repositório github.com/imlotso/discourse-indexnow
:open_book: Guia de Instalação Como instalar plugins no Discourse

Um artigo em chinês com mais contexto também está disponível no meu fórum: sitetalk.net/t/topic/642.


Recursos

  • Envia automaticamente novos tópicos públicos e reenvia quando uma edição altera a primeira publicação do tópico ou propriedades-chave.
  • Quando a Localização de Conteúdo e seu parâmetro de idioma do crawler estão habilitados, as URLs localizadas dos tópicos são incluídas automaticamente junto com a URL principal — usando o parâmetro de consulta de idioma real do Discourse (nunca codificado em duras).
  • Envia a URL principal e todas as localizações existentes em um único lote de requisição urlList do IndexNow, em vez de uma requisição por URL.
  • Preenchimento histórico (backfill): filtre tópicos por categoria e intervalo de datas, visualize os resultados correspondentes e envie-os em um único lote — reutilizando o mesmo mecanismo de lote, que divide automaticamente os envios conforme o limite de 10.000 URLs do protocolo.
  • Envio manual: cole uma URL por linha para enviar links específicos sob demanda; URLs externas ou inelegíveis são filtradas automaticamente.
  • Limites de envio por hora/dia, com recuo automático (backoff) quando o IndexNow retorna um 429 (respeita Retry-After quando presente).
  • Suporte à rotação de chaves — a chave anterior permanece válida por uma janela de transição de 7 dias para que os envios em andamento não falhem.
  • Verificação de acessibilidade integrada para o seu arquivo /<key>.txt, exibida diretamente no painel administrativo.
  • Reenvia (ou exclui) tópicos automaticamente quando eles são movidos entre categorias ou quando a visibilidade/tags de uma categoria mudam.
  • Os registros de envio rastreiam o ID do lote, o idioma, uma tendência de sucesso/falha de 7 dias e um detalhamento dos motivos de falha (limite de taxa / erro de chave / incompatibilidade de domínio / outro).
  • Todos os envios são executados de forma assíncrona via Sidekiq e passam pelos mesmos filtros de privacidade que os envios automáticos — nada ignora as regras de exclusão (mensagens privadas, categorias restritas, tópicos não listados/excluídos, sites que exigem login).
  • Interface administrativa disponível em inglês e chinês simplificado.

Configuração

  1. Instale o plugin (veja o Guia de Instalação acima) e reconstrua seu contêiner.
  2. Vá para Admin > Plugins > discourse-indexnow.
  3. Na aba Configurações, clique em Gerar chave (ou cole uma chave hexadecimal de 32 caracteres existente que você já tenha registrado em outro lugar).
  4. Marque a caixa Habilitar envios do IndexNow.
  5. Confirme se a chave está publicamente acessível em:
    https://your-forum.example/<key>.txt
    
    Ela deve retornar HTTP 200 com a chave em texto simples. O painel administrativo também executa esta verificação automaticamente e exibe um status verde/vermelho em cache ao lado de “key.txt acessível”.
  6. (Opcional) Na aba Logs, use o painel Backfill para enviar tópicos históricos — escolha uma categoria e um intervalo de datas, clique em Visualizar para ver quantos tópicos correspondem e, em seguida, clique em Enviar.
  7. (Opcional) Use o campo de envio manual para colar URLs pontuais, uma por linha, para envio imediato fora do fluxo automático normal.

A aba Logs também exibe um gráfico de tendência de sucesso/falha de 7 dias e um detalhamento dos motivos de falha, para que você possa verificar de relance se os envios estão sendo limitados por taxa, rejeitados por incompatibilidade de chave ou falhando por outro motivo.

Configurações

Nome Descrição
indexnow_enabled Interruptor principal do plugin. Não pode ser habilitado enquanto login_required estiver ativo e é desabilitado automaticamente se login_required for ativado posteriormente.
indexnow_api_key Chave hexadecimal atual de 32 caracteres usada para autenticar os envios.
indexnow_submit_on_create Envia automaticamente quando um novo tópico público é criado.
indexnow_submit_on_edit Reenvia automaticamente quando a primeira publicação ou os atributos do tópico mudam.
indexnow_excluded_category_ids Categorias adicionais que devem ser sempre excluídas, mesmo que sejam públicas.
indexnow_hourly_limit Número máximo de URLs enviadas por hora.
indexnow_daily_limit Número máximo de URLs enviadas por dia.

Limitações conhecidas

  • O IndexNow não possui notificação de exclusão — as exclusões de tópicos são registradas apenas para fins de auditoria, não enviadas.
  • O Google não participa do protocolo IndexNow.
  • As URLs localizadas são enviadas apenas quando o parâmetro de idioma do crawler está habilitado e existe uma localização para aquele tópico.

Este é um plugin independente e não oficial — não mantido pela equipe do Discourse. Ele está em produção no meu próprio fórum, tem cobertura de testes RSpec com CI em cada push/PR, e agradeceria relatórios de bugs ou solicitações de recursos via issues no GitHub ou respostas aqui.

1 curtida