webtrajans
es

Robots.txt: cómo escribirlo bien, con ejemplos para WordPress y tiendas

El robots.txt indica a los rastreadores qué partes de tu web pueden visitar. Bien usado ahorra rastreo inútil; mal usado puede sacar tu web entera de Google.

Actualizado: 5 min de lectura

El archivo robots.txt es un archivo de texto plano en la raíz de tu dominio que indica a los rastreadores (Googlebot, Bingbot y otros) qué rutas pueden o no pueden rastrear. Es el primer archivo que consulta un buscador al llegar a tu web. Sirve para evitar que pierdan tiempo en zonas sin valor (carritos, búsquedas internas, filtros infinitos) y para indicar dónde está tu sitemap. Pero también es el origen de algunos de los desastres SEO más comunes: una sola línea mal escrita puede bloquear la web entera. Aquí aprenderás la sintaxis, verás ejemplos reales y sabrás qué no hacer.

Sintaxis básica

Un robots.txt se compone de grupos. Cada grupo empieza por una o varias líneas User-agent y le siguen reglas Disallow (no rastrear) o Allow (sí rastrear):

User-agent: *
Disallow: /admin/
Allow: /admin/publico/

Sitemap: https://ejemplo.com/sitemap.xml
Directiva Función
User-agent A qué rastreador se aplica el grupo (* = todos)
Disallow Ruta que no debe rastrearse
Allow Excepción dentro de una ruta bloqueada
Sitemap URL absoluta del sitemap (puede haber varias)

Reglas importantes:

  • Las rutas distinguen mayúsculas y minúsculas: /Admin/ no es /admin/.
  • * sustituye cualquier secuencia de caracteres y $ marca el final de la URL: Disallow: /*.pdf$ bloquea los PDF.
  • Cuando dos reglas coinciden, Google aplica la más específica (la más larga). Si empatan, gana Allow.
  • Un rastreador sigue solo el grupo más específico que le corresponde. Si existe un grupo User-agent: Googlebot, Googlebot ignora el grupo *.
  • Disallow: vacío significa «todo permitido».
  • Google procesa como máximo los primeros 500 KiB del archivo.

Ejemplo para WordPress

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /search/

Sitemap: https://ejemplo.com/sitemap_index.xml

No bloquees /wp-content/ ni /wp-includes/: ahí están el CSS, el JavaScript y las imágenes que Google necesita para ver la página como un usuario.

Ejemplo para una tienda online

User-agent: *
Disallow: /carrito/
Disallow: /checkout/
Disallow: /mi-cuenta/
Disallow: /*?orderby=
Disallow: /*?filter_
Disallow: /*&add-to-cart=

Sitemap: https://tienda.ejemplo.com/sitemap.xml

En tiendas con filtros (talla, color, precio) las combinaciones de parámetros generan miles de URL casi idénticas. Bloquear los parámetros que no aportan valor ayuda a que Google dedique su rastreo a categorías y productos.

Si no quieres escribirlo a mano, el generador de robots.txt crea el archivo a partir de unas pocas opciones.

Robots.txt frente a noindex

Es la confusión más frecuente:

Necesidad Herramienta
Que Google no rastree una zona (ahorrar rastreo) Disallow en robots.txt
Que una página no aparezca en los resultados <meta name="robots" content="noindex"> o cabecera X-Robots-Tag: noindex
Que nadie pueda acceder Contraseña o autenticación en el servidor

Si bloqueas una URL en robots.txt, Google no puede leer su etiqueta noindex. Si esa URL tiene enlaces, puede aparecer en los resultados igualmente, sin descripción. Para desindexar: permite el rastreo, añade noindex, espera a que Google la procese y, si quieres, bloquéala después.

Y recuerda: robots.txt es público. No lo uses para «esconder» rutas privadas; estás anunciando dónde están.

Bots de IA y otros rastreadores

Puedes dirigirte a rastreadores concretos por su user-agent:

User-agent: GPTBot
Disallow: /

User-agent: Google-Extended
Disallow: /

Google-Extended no afecta a la aparición en la Búsqueda de Google; controla si el contenido se usa para entrenar y mejorar los modelos de IA de Google. Los rastreadores serios respetan estas reglas, pero robots.txt es una convención, no un mecanismo de seguridad.

Errores frecuentes

  • Disallow: / olvidado tras el desarrollo. El entorno de pruebas se bloquea y, al publicar, se copia el robots.txt. Resultado: la web desaparece de Google en días.
  • Bloquear CSS y JS. Google no puede renderizar la página y la evalúa mal.
  • Usar robots.txt para desindexar. Como hemos visto, no funciona; usa noindex.
  • Reglas en el orden equivocado pensando que importa. Google no lee de arriba abajo: aplica la más específica.
  • Archivo devuelto con error 5xx. Si el robots.txt da un error de servidor de forma continuada, Google puede dejar de rastrear el sitio. Un 404 en cambio se interpreta como «sin restricciones».
  • Un robots.txt en /blog/robots.txt. Solo vale el de la raíz del host.

Cómo probar tu robots.txt

  1. Abre https://tudominio.com/robots.txt y comprueba que responde con código 200 y texto plano.
  2. Pega el contenido y una URL en el probador de robots.txt para ver si esa URL está permitida o bloqueada para cada user-agent.
  3. En Search Console, el informe de robots.txt muestra la versión que Google tiene en caché y los errores de análisis.
  4. Tras cualquier cambio importante, revisa el informe de indexación durante las semanas siguientes.

Casos especiales

  • Entorno de pruebas (staging): en lugar de confiar solo en Disallow: /, protégelo con contraseña. Así no se indexa aunque alguien enlace a él, y no hay riesgo de copiar el robots.txt equivocado a producción.
  • Subdominios: blog.ejemplo.com y tienda.ejemplo.com necesitan cada uno su robots.txt; el del dominio principal no se aplica.
  • Webs multilingües en carpetas (/es/, /en/, /mx/): comparten el robots.txt de la raíz. No bloquees carpetas de idioma para «evitar contenido duplicado»: para eso están hreflang y las URL canónicas.
  • Recursos de terceros: no puedes controlar el robots.txt de un CDN externo; si alojas allí imágenes importantes, comprueba que no estén bloqueadas.
  • Migraciones: al cambiar de dominio, el dominio antiguo no debe bloquear el rastreo; Google necesita rastrearlo para ver las redirecciones 301.

Lista de comprobación

  • El archivo está en la raíz y devuelve 200.
  • No hay un Disallow: / accidental.
  • CSS, JS e imágenes no están bloqueados.
  • Se bloquean búsquedas internas, carrito, cuenta y parámetros inútiles.
  • Incluye la línea Sitemap: con URL absoluta.
  • Las páginas que no deben salir en Google usan noindex, no robots.txt.

Para saber qué incluir en el sitemap que enlazas desde robots.txt, consulta la guía del sitemap XML.

Preguntas frecuentes

¿Bloquear una página en robots.txt la quita de Google?

No necesariamente. Si otras webs enlazan a esa URL, Google puede indexarla sin rastrearla y mostrarla sin descripción. Para que no aparezca, permite el rastreo y usa la etiqueta meta robots noindex.

¿Dónde tiene que estar el robots.txt?

En la raíz del host, por ejemplo https://ejemplo.com/robots.txt. Cada subdominio y cada protocolo necesita el suyo; un robots.txt en una subcarpeta no tiene efecto.

¿Google respeta la directiva Crawl-delay?

No. Google ignora Crawl-delay; Bing y otros rastreadores sí la tienen en cuenta. Para Google, la velocidad de rastreo se ajusta sola según la respuesta del servidor.

¿Puedo bloquear a los rastreadores de IA?

Puedes pedírselo en robots.txt con su user-agent (por ejemplo GPTBot o Google-Extended). Los rastreadores serios lo respetan, pero robots.txt es una petición, no una barrera técnica.

Guías relacionadas