IndexNow: la clave, el primer envío y cómo leer la respuesta en América Latina

IndexNow se configura con tres cosas: una clave, un archivo de texto en tu host y una solicitud por publicación. Esta guía para América Latina da los tres pasos, la tabla de códigos y un script para insertar en tu publicación.

Implementación6 min de lectura2973 visitas
IndexNow: la clave, el primer envío y cómo leer la respuesta en América Latina

IndexNow es un ping de una sola solicitud que avisa a los motores participantes que una URL se agregó, cambió o eliminó. Para configurarlo hacen falta tres cosas: una clave, esa clave alojada como archivo de texto en tu propio host y una solicitud HTTP por publicación. El recorrido es gratuito, toma unos veinte minutos y funciona igual en un sitio estático que en un CMS.

Este capítulo supone que tu página ya es accesible y ya está en el sitemap. Si no lo confirmaste, hazlo antes de enviar nada: un ping para una URL que devuelve 404 se pierde. La rutina de publicación en tres pasos de la checklist de lanzamiento de producto cubre ese terreno, y este capítulo es la versión detallada de su tercer paso.

Qué motores escuchan de verdad

IndexNow es un protocolo compartido: una solicitud llega a todos los participantes. La lista se publica en indexnow.org y es corta.

MotorEn la lista
Microsoft BingSí
YandexSí
NaverSí
Seznam.czSí
YepSí
GoogleNo listado

Bing es el que paga por los demás. Su índice alimenta la búsqueda de ChatGPT y Copilot, así que entrar temprano en Bing es la ruta más corta al conjunto de fuentes de una respuesta de IA. Google tiene su propio camino, y por eso el paso anterior te hace hacer los dos.

Paso 1 — crear una clave y alojarla

La clave le demuestra al motor que el envío viene de alguien que controla el host. Es una cadena que inventas, con reglas estrictas: de 8 a 128 caracteres, solo a-z, A-Z, 0-9 y guiones. Un UUID sin llaves cumple todo y se regenera fácilmente.

KEY=$(uuidgen | tr 'A-Z' 'a-z' | tr -d '{}')
echo -n "$KEY" > public/$KEY.txt
echo "https://example.com/$KEY.txt"

El archivo debe ser UTF-8, llamarse como la clave y contener la clave y nada más. Despliégalo y abre la URL en un navegador. Si no devuelve la clave en texto plano, detente aquí: todos los pasos siguientes fallarán con un 403 que no explicará por qué.

Puedes alojar el archivo fuera de la raíz, pero entonces la clave solo cubre las URL bajo esa carpeta. Una clave en /catalog/key.txt puede enviar /catalog/anything y no puede enviar /help/anything. La raíz evita toda la pregunta.

Un punto que muchos invierten: la clave no es un secreto como un token de API. Debes publicarla en una URL que cualquiera pueda leer, porque ese archivo público es la prueba de control. Guardarla en tu repositorio no es un problema. Lo que importa es que el archivo y el valor enviado sigan sincronizados.

Paso 2 — enviar una URL a mano

Antes de automatizar, demuestra el cableado con un solo GET. Es la forma documentada para una URL cada vez.

curl -s -o /dev/null -w '%{http_code}\n' \
  "https://api.indexnow.org/indexnow?url=https://example.com/your-page&key=$KEY"

Un 200 significa que el archivo de clave se encontró y se leyó. No significa que la página vaya a indexarse. La documentación del protocolo lo dice sin rodeos: 200 solo indica que el motor recibió tu URL.

Paso 3 — pasar al punto de entrada por lotes

Una URL por solicitud sirve para una prueba manual y no sirve para una cadena de publicación. La forma por lotes acepta hasta 10 000 URL en un solo POST, más de lo que la mayoría de los sitios necesitará en un envío.

POST /indexnow HTTP/1.1
Host: api.indexnow.org
Content-Type: application/json; charset=utf-8

{
  "host": "example.com",
  "key": "your-key",
  "keyLocation": "https://example.com/your-key.txt",
  "urlList": [
    "https://example.com/page-a",
    "https://example.com/page-b"
  ]
}

El valor host debe coincidir con el host de cada URL de la lista. Mezclar dos nombres de host en una misma carga es la causa más frecuente de un 422 en un lote que parece correcto.

Leer los códigos de respuesta

Cinco códigos cubren todo lo que devuelve el punto de entrada, y cada uno apunta a un error distinto. Mantén esta tabla abierta mientras construyes.

CódigoSignificadoQué corregir
200RecibidoNada. Recibido, no indexado
400Solicitud inválidaJSON mal formado o codificación de URL incorrecta
403Clave inválidaArchivo ausente, o presente pero con otra clave
422No procesableUna URL no pertenece al host, o la clave no cumple el formato
429Demasiadas solicitudesFrena los envíos; te están leyendo como spam

El 403 es donde cae casi todo primer intento, y tiene dos causas: el archivo no está donde dijiste, o está y la clave de adentro no coincide con la enviada. Recupera el archivo con curl y compáralo con el valor del script antes de cambiar otra cosa. Un 422 en un lote que funcionaba como URL única apunta al campo host, no a la clave.

El entregable: un envío para insertar en tu publicación

Toma este script, cambia dos líneas y ejecútalo al final de lo que publica tu contenido. Lee tu sitemap, envía todo en un lote e imprime el código para que un fallo sea visible en lugar de silencioso.

#!/usr/bin/env bash
set -euo pipefail
HOST="example.com"
KEY="your-key"

URLS=$(curl -s "https://$HOST/sitemap.xml" \
  | grep -o '<loc>[^<]*</loc>' \
  | sed 's/<[^>]*>//g' \
  | python3 -c 'import json,sys; print(json.dumps([l.strip() for l in sys.stdin if l.strip()]))')

curl -s -o /dev/null -w 'indexnow: %{http_code}\n' \
  -X POST "https://api.indexnow.org/indexnow" \
  -H 'Content-Type: application/json; charset=utf-8' \
  -d "{\"host\":\"$HOST\",\"key\":\"$KEY\",\"keyLocation\":\"https://$HOST/$KEY.txt\",\"urlList\":$URLS}"

Dos hábitos mantienen esto en pie con el tiempo. Registra qué enviaste y cuándo, para que un envío repetido se omita en lugar de repetirse. Y envía cuando cambia algo, no según un calendario: un envío nocturno de un sitemap sin cambios es lo que gana un 429.

Tres formas de arruinar la instalación

Las tres devuelven un código visible, y por eso la tabla de respuestas es lo primero que hay que revisar.

  1. El archivo de clave se sirve con un tipo de contenido equivocado o un salto de línea de más. Sigue pareciendo correcto en el navegador. Recupéralo con curl y compáralo byte a byte.
  2. El envío sale antes de que termine el despliegue. El motor llega a una URL que el host todavía no publicó y el ping se gasta en un 404.
  3. Cada compilación envía todo el sitemap. Nada se rompe al principio, luego los envíos devuelven 429 y los pings útiles se pierden en el ruido.

Lo que IndexNow no hará

No hará que una página se indexe. Adelanta el descubrimiento; el motor sigue decidiendo si la página merece conservarse, y una página floja descubierta antes sigue siendo una página floja. No llega a Google, que no está en la lista de participantes, así que nunca reemplaza la parte de Search Console de tu rutina.

Tampoco podemos decirte cuánto tiempo ahorra. Medirlo bien exige un grupo de control de URL no enviadas seguidas durante semanas, y todavía no hicimos esa prueba en nuestros propios sitios. Quien te cite un número concreto de horas debería ser preguntado por su grupo de control.

Lo que sí conviene revisar junto a IndexNow es el resto de la cadena. Si tu sitemap fecha cada URL con la hora de compilación, enviar con más fuerza no corrige la señal; nuestro estudio del lastmod en sitemaps encontró 13 de 24 sitios en ese estado. El flujo de promoción del producto está pensado para revisar toda la cadena, no un solo punto de entrada. La sección de desarrollador de API y MCP muestra cómo conectar el envío a tu propia publicación.

Preguntas frecuentes

¿IndexNow funciona para Google?

Google no figura entre los participantes listados en indexnow.org. No probamos si Google lee estos envíos por otra vía, así que no lo afirmamos en ningún sentido.

¿Con qué frecuencia puedo enviar?

El protocolo no publica un límite por hora, pero el 429 existe justamente por el exceso de envíos. Para contenido generado por usuarios, la orientación oficial es reducir de forma gradual: cada elemento hasta 20, luego uno de cada cinco hasta 100, luego uno de cada diez hasta 1000.

¿Hace falta Bing Webmaster Tools?

No para enviar. Hace falta para verificar: ahí ves si tus URL se recibieron, y es la única confirmación gratuita del protocolo.

¿Se puede cambiar la clave después?

Sí. Aloja el nuevo archivo, cambia el valor en el script y mantén el archivo anterior un tiempo. Los motores releen el archivo de clave en cada envío, así que no hay registro que rehacer.

Forma parte de la guía de QueryWin · Nivel 2

IndexNow: la clave, el primer envío y cómo leer la respuesta en América Latina