| Resumen | Envía automáticamente las URLs de temas públicos al protocolo IndexNow al crear, editar, eliminar o responder temas, para que Bing, Yandex y otros motores de búsqueda compatibles puedan descubrir o desindexar tu contenido en minutos, sin esperar a los rastreadores. | |
| Repositorio | github.com/imlotso/discourse-indexnow | |
| Guía de instalación | Cómo instalar plugins en Discourse |
También está disponible una descripción en chino con más antecedentes en mi foro: sitetalk.net/t/topic/642
Funciones
- Envía automáticamente nuevos temas públicos; vuelve a enviarlos cuando cambia la primera publicación o atributos críticos del tema.
- Enviar en respuesta: Envía automáticamente la URL paginada (p. ej.,
?page=3) cuando se publican nuevas respuestas, con un tiempo de espera configurable por URL para evitar el envío excesivo. - Envía automáticamente las URLs de los temas al eliminarlos para ayudar a los motores a detectar 404/410 y desindexarlos rápidamente.
- Agrupa automáticamente las URLs de temas localizados cuando Content Localization y los parámetros de consulta de idioma del rastreador están activos. Utiliza el parámetro de idioma configurado realmente, no uno codificado.
- Agrupa las URLs canónicas y localizadas en solicitudes por lotes de
urlListde IndexNow en lugar de enviarlas una por una. - Relleno histórico: Filtra por categoría y rango de fechas, previsualiza el número de coincidencias y envía en lote. División automática para lotes que excedan el límite de 10.000 del protocolo. Los trabajos activos pueden cancelarse desde la pestaña Registros.
- Envío manual: Envía URLs personalizadas bajo demanda línea por línea; los enlaces externos o no elegibles se filtran automáticamente.
- Limitación de tasa inteligente: Aplica límites horarios y diarios utilizando un algoritmo de ventana deslizante de grano fino. Se retrasa automáticamente ante un
429(respetandoRetry-After). La interfaz de administración presenta Barras de Cuota visuales que muestran el uso actual y la hora exacta hasta que se libere capacidad. - Excluye categorías específicas y etiquetas como reglas de la capa de negocio además de los filtros de privacidad automatizados.
- Rotación de claves con un cuadro de diálogo de confirmación de sobrescritura accidental; las claves anteriores se invalidan inmediatamente.
- Verificación de administrador para la accesibilidad pública de
/<key>.txt. - Los movimientos de temas, los cambios de visibilidad de categorías y las actualizaciones de etiquetas desencadenan un reenvío o exclusión asíncrona en trabajos de fondo para evitar bloqueos de la interfaz.
- Entradas de registro detalladas con IDs de lote, idioma, razones de activación, gráficos de tendencia de éxito/fallo de 7 días y razones de fallo categorizadas (Límite de tasa, Error de clave, Desajuste de dominio).
- Envíos totalmente asíncronos que respetan los límites de privacidad: los mensajes privados, las categorías restringidas, los temas no listados/eliminados y los sitios que requieren inicio de sesión nunca se envían.
- Disponible en inglés y chino simplificado.
Pasos de configuración
- Instala el plugin siguiendo la guía anterior y reconstruye tu contenedor.
- Ve a Administración > Plugins > discourse-indexnow.
- En Configuración, haz clic en Generar clave (o pega una clave hexadecimal de 32 caracteres existente).
- Marca Habilitar envíos de IndexNow.
- Verifica la accesibilidad pública de la clave:
https://tu-dominio-foro.com/<key>.txt
Debe devolver HTTP 200 con la cadena de la clave. El panel de administración también muestra un indicador verde/rojo en caché.
6. (Opcional) En la pestaña Registros, usa el panel “Relleno”: selecciona los criterios, haz clic en Previsualizar y luego en Enviar.
7. (Opcional) Usa el cuadro de envío manual para enviar URLs individuales fuera del flujo automatizado.
La página de Registros también presenta barras de uso de cuota, un gráfico de tendencia de 7 días y métricas de desglose de fallos para diagnosticar fácilmente los problemas de envío.
Configuración de ajustes
| Ajuste | Descripción |
|---|---|
indexnow_enabled |
Interruptor principal. Se deshabilita automáticamente si login_required está habilitado. |
indexnow_api_key |
La clave hexadecimal de 32 caracteres para la verificación del envío. |
indexnow_submit_on_create |
Envío automático cuando se crea un nuevo tema público. |
indexnow_submit_on_edit |
Reenvío automático cuando cambia la primera publicación o los atributos del tema. |
indexnow_submit_on_reply |
Envío automático de la URL paginada específica cuando se publican nuevas respuestas. |
indexnow_url_cooldown_minutes |
Período de espera por URL (en minutos) para evitar envíos duplicados. |
indexnow_excluded_category_ids |
Categorías a excluir aunque sean públicas. |
indexnow_excluded_tag_names |
Etiquetas a excluir aunque la categoría del tema sea elegible. |
indexnow_hourly_limit |
Número máximo de URLs a enviar por hora (ventana deslizante). |
indexnow_daily_limit |
Número máximo de URLs a enviar por día (ventana deslizante). |
Limitaciones conocidas
- Google no participa actualmente en el protocolo IndexNow.
- Las URLs localizadas solo se envían cuando los parámetros de idioma del rastreador están activos y existe contenido localizado.
- Actualmente, se admiten las ediciones de la primera publicación y la paginación de nuevas respuestas, pero las ediciones de respuestas intermedias no desencadenan envíos de forma independiente.
Este es un plugin independiente y no oficial; no es mantenido por el equipo de Discourse. Está funcionando 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 función a través de issues de GitHub o respuestas aquí.
