
Generador robots.txt: Crea el archivo correcto para tu sitio en 2 minutos
📷 Prateek Katyal / PexelsGenerador robots.txt: Crea el archivo correcto para tu sitio en 2 minutos
Una guía práctica sobre robots.txt: qué hace, los errores comunes de los desarrolladores y cómo generar el archivo correcto para tu sitio web.
robots.txt es uno de esos archivos que se crea una vez y luego se olvida. Para sitios de contenido pequeños, generalmente está bien. Para sitios con paneles de administración, rutas de staging expuestas, páginas de resultados de búsqueda internos o contenido duplicado, un robots.txt mal configurado (o ausente) puede causar silenciosamente problemas de SEO durante meses.
Esta guía cubre qué hace robots.txt en realidad, qué no hace (fuente común de confusión) y cómo escribir un archivo correcto para tipos comunes de sitios web. Puedes usar el generador de robots.txt para crear el tuyo sin memorizar la sintaxis.
Lo que robots.txt realmente hace
robots.txt es un archivo de texto plano que colocas en la raíz de tu dominio y que indica a los rastreadores web qué URLs deben y no deben rastrear. La palabra clave es "rastrear", no "indexar."
El archivo se encuentra en https://tudominio.com/robots.txt. Cuando Googlebot, Bingbot u otro rastreador visita tu sitio, lo primero que hacen es obtener ese archivo. Basándose en lo que encuentran, deciden qué URLs seguir.
Un robots.txt mínimo se ve así:
User-agent: *
Allow: /
Eso indica a todos los rastreadores que pueden rastrear todo. Funcionalmente idéntico a no tener robots.txt.
Uno restrictivo podría verse así:
User-agent: *
Disallow: /admin/
Disallow: /internal/
Disallow: /api/
Cada directiva es una línea Disallow o Allow, aplicada a uno o más grupos User-agent.
La distinción entre rastreo e indexación (esto importa)
Muchos desarrolladores asumen que bloquear una URL en robots.txt la elimina de los resultados de búsqueda de Google. No es así, y esto causa problemas reales.
Esto es lo que realmente sucede cuando bloqueas una URL:
- Googlebot deja de rastrearla: no seguirá enlaces desde esa página, no leerá su contenido
- Pero si otras páginas indexadas enlazan a esa URL bloqueada, Google aún puede descubrir que la URL existe
- Google puede seguir mostrando esa URL en los resultados de búsqueda con una descripción genérica como "No hay información disponible para esta página"
Entonces, si tienes una página que quieres excluir completamente de los resultados de búsqueda, Disallow solo no es suficiente. Necesitas una directiva noindex, pero aquí está el problema: si la página está bloqueada del rastreo, Googlebot no puede leer la etiqueta noindex para respetarla.
Esto crea una situación frustrante: para usar noindex, tienes que dejar que la página sea rastreada.
La regla general:
- Usa robots.txt
Disallowpara evitar que los rastreadores desperdicien el presupuesto de rastreo en páginas que no importan para el SEO (rutas de staging, APIs internas, páginas de filtros duplicadas) - Usa la etiqueta meta
noindexpara evitar que páginas específicas aparezcan en los resultados de búsqueda - Para páginas verdaderamente sensibles (paneles de administración, contenido privado), usa autenticación real, no robots.txt
User-Agent: apuntando a bots específicos
El campo User-agent te permite apuntar a todos los rastreadores o a específicos.
User-agent: *
El asterisco significa "todo rastreador no especificado de otra manera." La mayoría de los archivos robots.txt usan esto para reglas generales.
También puedes apuntar a bots nombrados:
User-agent: Googlebot
Disallow: /no-google/
User-agent: Bingbot
Disallow: /no-bing/
User-agent: *
Disallow: /admin/
Las reglas se aplican por grupo de user-agent. Googlebot sigue el bloque Googlebot. Si no hay bloque coincidente, recurre al bloque *.
Algunos rastreadores que quizás quieras gestionar específicamente:
Googlebot— el rastreador web principal de GoogleGooglebot-Image— el rastreador de imágenes específico de GoogleBingbot— Microsoft BingGPTBot— el rastreador de entrenamiento de OpenAI (una preocupación más reciente para sitios de contenido)anthropic-ai— el rastreador de entrenamiento de AnthropicAhrefsBot,SemrushBot,MJ12bot— herramientas SEO y de análisis
Si quieres bloquear específicamente los rastreadores de entrenamiento de IA:
User-agent: GPTBot
Disallow: /
User-agent: anthropic-ai
Disallow: /
User-agent: *
Allow: /
Esto es cada vez más común. Si realmente importa para tu sitio es una pregunta aparte, pero la sintaxis es correcta.
Patrones Disallow comunes
Aquí hay patrones correctos para situaciones comunes:
Bloquear un directorio completo
User-agent: *
Disallow: /admin/
La barra final importa. /admin/ bloquea /admin/settings, /admin/users, etc. Sin la barra, /admin también bloquearía una página llamada literalmente /administrator o /admin-login, probablemente no lo que quieres.
Bloquear un archivo específico
User-agent: *
Disallow: /private-page.html
Bloquear parámetros de consulta URL (páginas de filtros)
Los sitios de e-commerce a menudo tienen los mismos productos accesibles a través de muchas combinaciones de filtros: /products?color=red&size=L&sort=price. Esto crea contenido duplicado. Bloquéalos:
User-agent: *
Disallow: /*?
Esto bloquea cualquier URL con una cadena de consulta. Ten cuidado: si tus páginas importantes usan cadenas de consulta (algunas SPAs lo hacen), esto también las bloqueará. Un enfoque más específico:
User-agent: *
Disallow: /products/*?
Esto bloquea URLs con cadenas de consulta solo bajo /products/.
Permitir una ruta específica dentro de un directorio bloqueado
A veces quieres bloquear la mayor parte de un directorio pero permitir una ruta:
User-agent: *
Disallow: /account/
Allow: /account/signup
El orden dentro de un bloque user-agent importa. La mayoría de los rastreadores aplican la regla coincidente más específica.
La directiva Sitemap
Puedes (y deberías) incluir la URL de tu sitemap en robots.txt:
User-agent: *
Disallow: /admin/
Sitemap: https://tudominio.com/sitemap.xml
La directiva Sitemap va al final, fuera de cualquier bloque user-agent. No es solo una cortesía — Google la usa activamente para encontrar y priorizar el rastreo de tus páginas importantes.
Si tienes múltiples sitemaps (común en sitios grandes con sitemaps de imágenes o videos):
Sitemap: https://tudominio.com/sitemap.xml
Sitemap: https://tudominio.com/sitemap-images.xml
También deberías enviar tu sitemap directamente en Google Search Console, pero incluirlo en robots.txt garantiza que cualquier rastreador que lea el archivo lo descubra automáticamente.
Crawl-Delay: usar con precaución
Algunos rastreadores admiten una directiva Crawl-delay:
User-agent: *
Crawl-delay: 10
Esto indica a los bots que esperen 10 segundos entre solicitudes. Originalmente se usaba para evitar que los rastreadores saturaran servidores pequeños.
El problema: Googlebot lo ignora. Google ha dicho explícitamente que no admite Crawl-delay. Si necesitas reducir la tasa de rastreo de Googlebot, hazlo dentro de Google Search Console en la Configuración de velocidad de rastreo.
Otros bots como Bingbot sí admiten Crawl-delay, así que no es completamente inútil, pero para Google específicamente, no tiene efecto. No dependas de él para limitar la velocidad.
Errores comunes que dañan el SEO
Bloquear archivos CSS y JavaScript
Esto solía ser un consejo común: "bloquea los bots para que no rastreen scripts y hojas de estilo para ahorrar ancho de banda." Es una mala práctica. Google necesita renderizar tus páginas para evaluarlas correctamente, y el renderizado requiere CSS y JavaScript. Si bloqueas estos:
# No hagas esto
User-agent: *
Disallow: /wp-content/
Disallow: /assets/
Disallow: /*.css$
Disallow: /*.js$
Google no puede ver cómo se ven realmente tus páginas, lo que puede perjudicar los rankings. Permite que los rastreadores accedan a tus recursos estáticos.
Olvidar los entornos de staging y desarrollo
Si tu entorno de staging es accesible en staging.tudominio.com o tudominio.com/staging/, asegúrate de que esté:
- Detrás de autenticación (preferido)
- Bloqueado en robots.txt
El contenido de staging indexado por Google crea problemas de contenido duplicado. Es un descuido común en sitios que se mueven rápido.
Usar robots.txt para proteger contenido sensible
Esto vale la pena repetirlo. robots.txt no es control de acceso. El archivo es legible públicamente: cualquiera puede visitar tudominio.com/robots.txt y ver exactamente qué rutas has intentado ocultar. Si esas rutas son interesantes, la gente las visitará directamente. Usa autenticación del lado del servidor para cualquier cosa que sea realmente sensible.
Bloquear tu sitemap accidentalmente
# Esto bloquea accidentalmente el sitemap
User-agent: *
Disallow: /
Allow: /public/
Sitemap: https://tudominio.com/sitemap.xml
En este ejemplo, /sitemap.xml está bloqueado por Disallow: / porque no coincide con la excepción Allow: /public/. La directiva sitemap en el archivo no desbloquea automáticamente la URL del sitemap. Necesitarías agregar Allow: /sitemap.xml explícitamente.
Ubicación incorrecta
robots.txt debe estar en la raíz del dominio. tudominio.com/robots.txt funciona. tudominio.com/blog/robots.txt no hace nada: los rastreadores no buscarán allí.
Además, un robots.txt en tudominio.com no afecta a subdomain.tudominio.com. Cada subdominio necesita su propio robots.txt si quieres controlar el rastreo allí.
Ejemplos de robots.txt para tipos comunes de sitios
Sitio de contenido o marketing estándar
User-agent: *
Allow: /
Sitemap: https://tudominio.com/sitemap.xml
Si no hay nada que ocultar y no hay problema de contenido duplicado, mantenlo simple.
Sitio WordPress
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://tudominio.com/sitemap.xml
Allow: /wp-admin/admin-ajax.php es importante: algunos temas y plugins usan este endpoint para funcionalidad del frontend a la que Googlebot necesita acceder para un renderizado correcto.
Sitio de e-commerce con páginas de filtros
User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /account/
Disallow: /search?
Disallow: /products/*?sort=
Disallow: /products/*?page=
Sitemap: https://tudominio.com/sitemap.xml
Las páginas de carrito y pago nunca deben indexarse. Las páginas de cuenta son contenido específico del usuario. Las combinaciones de URLs de filtros/ordenamiento crean contenido duplicado.
Next.js o SPA con rutas de API
User-agent: *
Disallow: /api/
Disallow: /_next/
Allow: /_next/static/
Allow: /_next/image
Sitemap: https://tudominio.com/sitemap.xml
Bloquea las rutas de API. Bloquea las rutas internas de Next.js excepto los recursos estáticos y el endpoint de optimización de imágenes que los renderizadores necesitan.
Probando tu robots.txt
No asumas que tu archivo es correcto: verifícalo.
Google Search Console tiene un probador de robots.txt (Configuración > robots.txt). Ingresas una ruta de URL y te indica si Googlebot está permitido o bloqueado según tu archivo actual. También muestra lo que Google obtuvo como archivo la última vez.
La herramienta de inspección de URLs en Search Console te permite verificar URLs individuales y ver si Google puede accederlas y renderizarlas.
Herramientas de terceros como los comprobadores de robots.txt en varias suites de SEO pueden validar la sintaxis y probar múltiples user-agents. El generador de meta SEO y el generador de imágenes OG son complementos útiles cuando trabajas en la configuración SEO general de tu sitio.
Después de hacer cambios en robots.txt, puedes solicitar a Google que lo vuelva a obtener usando la herramienta de inspección de URLs, aunque los cambios generalmente se propagan en unos días de todas formas.
Generando tu robots.txt
Escribir robots.txt a mano no es complicado, pero es fácil cometer pequeños errores de sintaxis: una barra que falta, una directiva en el lugar equivocado, un bloque user-agent que no cubre lo que pensabas.
El generador de robots.txt te permite seleccionar qué bots configurar, qué rutas bloquear, agregar la URL de tu sitemap y obtener una salida limpia y válida. Es más rápido que buscar la sintaxis y reduce la posibilidad de un error tipográfico que te cueste cobertura de rastreo en páginas que te importan.
Una vez generado, coloca el archivo en la raíz de tu servidor web y verifica que sea accesible en tudominio.com/robots.txt. Para la mayoría de los frameworks:
- Next.js: Agrega
public/robots.txto usa la rutarobots.tsen el App Router - Gatsby: Coloca en
static/robots.txt - Hugo: Coloca en
static/robots.txt - Sitios HTML simples: Coloca en el directorio raíz servido por tu servidor web
Para usuarios de Next.js App Router, también puedes generarlo programáticamente:
// app/robots.ts
import { MetadataRoute } from 'next'
export default function robots(): MetadataRoute.Robots {
return {
rules: {
userAgent: '*',
allow: '/',
disallow: ['/admin/', '/api/'],
},
sitemap: 'https://tudominio.com/sitemap.xml',
}
}
Este enfoque es preferible para sitios donde las reglas pueden depender de variables de entorno (por ejemplo, bloquear todos los rastreadores en staging).
robots.txt es simple, pero los conceptos erróneos a su alrededor, especialmente la distinción entre rastreo e indexación, causan problemas SEO reales, a veces difíciles de depurar. Configura el archivo correctamente una vez, pruébalo en Search Console, y luego realmente puedes olvidarlo.