Discourse-indexnow: notifica a Bing y Yandex al instante cuando se crean o editan temas

:information_source: Resumen Envía automáticamente las URLs de temas públicos nuevos y editados al protocolo IndexNow, para que Bing, Yandex y otros motores de búsqueda participantes puedan descubrir tu contenido en minutos en lugar de esperar a una exploración (crawl).
:hammer_and_wrench: Enlace al repositorio github.com/imlotso/discourse-indexnow
:open_book: Guía de instalación Cómo instalar plugins en Discourse

También está disponible una descripción en chino con más contexto en mi foro: sitetalk.net/t/topic/642.


Características

  • Envía automáticamente nuevos temas públicos y vuelve a enviarlos cuando una edición cambia la primera publicación o las propiedades clave del tema.
  • Cuando Content Localization y su parámetro de idioma del explorador están habilitados, las URLs localizadas de los temas se incluyen automáticamente junto con la URL principal — utilizando el parámetro de consulta de idioma real de Discourse (nunca codificado de forma estática).
  • Envía la URL principal y todas las localizaciones existentes juntas en una única solicitud por lotes urlList de IndexNow, en lugar de una solicitud por cada URL.
  • Carga histórica (backfill): filtra temas por categoría y rango de fechas, previsualiza los resultados coincidentes y luego los envía en un solo lote — reutilizando el mismo motor de lotes, que divide automáticamente los envíos según el límite de 10.000 URLs del protocolo.
  • Envío manual: pega una URL por línea para enviar enlaces específicos bajo demanda; las URLs externas o no elegibles se filtran automáticamente.
  • Límites de envío por hora/día, con retroceso automático cuando IndexNow devuelve un 429 (respeta Retry-After cuando está presente).
  • Soporte para rotación de claves — la clave anterior permanece válida durante una ventana de transición de 7 días para que los envíos en curso no se rompan.
  • Verificación de accesibilidad integrada para tu archivo /<key>.txt, mostrada directamente en el panel de administración.
  • Vuelve a enviar (o excluye) automáticamente los temas cuando se mueven entre categorías, o cuando cambia la visibilidad/etiquetas de una categoría.
  • Los registros de envío rastrean el ID del lote, el idioma, una tendencia de éxito/fallo de 7 días y un desglose de las razones de fallo (límite de tasa / error de clave / no coincidencia de dominio / otro).
  • Todos los envíos se ejecutan de forma asíncrona a través de Sidekiq y pasan por los mismos filtros de privacidad que los envíos automáticos — nada evade las reglas de exclusión (mensajes privados, categorías restringidas, temas no listados/eliminados, sitios que requieren inicio de sesión).
  • La interfaz de administración está disponible en inglés y chino simplificado.

Configuración

  1. Instala el plugin (consulta la Guía de instalación anterior) y reconstruye tu contenedor.
  2. Ve a Administración > Plugins > discourse-indexnow.
  3. En la pestaña Configuración, haz clic en Generar clave (o pega una clave hexadecimal de 32 caracteres existente que ya hayas registrado en otro lugar).
  4. Marca la casilla Habilitar envíos de IndexNow.
  5. Confirma que la clave sea accesible públicamente en:
    https://tu-foro.ejemplo.com/<key>.txt
    
    Debe devolver HTTP 200 con la clave como texto plano. El panel de administración también ejecuta esta verificación automáticamente y muestra un estado en caché en verde/rojo junto a “key.txt accesible”.
  6. (Opcional) En la pestaña Registros, usa el panel Carga histórica para enviar temas anteriores — elige una categoría y un rango de fechas, haz clic en Previsualizar para ver cuántos temas coinciden y luego en Enviar.
  7. (Opcional) Usa el campo de envío manual para pegar URLs puntuales, una por línea, para un envío inmediato fuera del flujo automático normal.

La pestaña de Registros también muestra un gráfico de tendencia de éxito/fallo de 7 días y un desglose de las razones de fallo, para que puedas ver de un vistazo si los envíos están siendo limitados por tasa, rechazados por una no coincidencia de clave, o fallando por otra razón.

Ajustes

Nombre Descripción
indexnow_enabled Interruptor principal del plugin. No se puede habilitar mientras login_required esté activado, y se deshabilita automáticamente si login_required se activa después.
indexnow_api_key Clave hexadecimal actual de 32 caracteres utilizada para autenticar los envíos.
indexnow_submit_on_create Enviar automáticamente cuando se crea un nuevo tema público.
indexnow_submit_on_edit Volver a enviar automáticamente cuando cambia la primera publicación o los atributos del tema.
indexnow_excluded_category_ids Categorías adicionales para excluir siempre, incluso si son 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 día.

Limitaciones conocidas

  • IndexNow no tiene notificación de eliminación — las eliminaciones de temas solo se registran con fines de auditoría, no se envían.
  • Google no participa en el protocolo IndexNow.
  • Las URLs localizadas solo se envían cuando el parámetro de idioma del explorador está habilitado y existe una localización para ese tema.

Este es un plugin independiente y no oficial — no es mantenido por el equipo de Discourse. Está en producción en mi propio foro, tiene cobertura de pruebas RSpec con CI en cada empuje/PR, y agradecería cualquier informe de errores o solicitud de características a través de issues de GitHub o respuestas aquí.

1 me gusta