El archivo robots.txt es uno de esos elementos de SEO técnico que parecen simples hasta que te equivocas con una regla y bloqueas media web sin darte cuenta. Y lo peor es que muchas veces el problema no se ve a simple vista: la página carga, el diseño parece correcto, el contenido sigue ahí… pero Google puede estar teniendo problemas para rastrear o renderizar partes importantes del sitio.
Dicho rápido: el robots.txt es un archivo que le dice a los robots de crawleo qué partes de una web pueden rastrear y cuáles no. Es decir, sirve para controlar el acceso de bots como Googlebot, Bingbot u otros rastreadores a determinadas URLs, carpetas o recursos.
Ahora bien, hay una idea que conviene dejar clara desde el principio: el robots.txt no sirve para desindexar páginas. Esta es, probablemente, una de las confusiones más comunes cuando alguien empieza con SEO técnico.
En mi caso, siempre lo explico así: el robots.txt puede impedir que un crawler entre a una URL, pero no le está diciendo necesariamente a Google “borra esta página del índice”. Si una página ya estaba indexada y la bloqueas en robots.txt, puede seguir apareciendo en Google. Y si una URL nueva está bloqueada, tampoco tienes una garantía absoluta de que nunca se indexe, porque Google podría descubrirla mediante enlaces externos, sitemaps, anchor text u otros métodos.
Por eso, antes de tocar un robots.txt, hay que tener muy clara la diferencia entre rastrear, indexar y desindexar. El robots.txt juega sobre todo en el terreno del rastreo. Para desindexar, la herramienta adecuada suele ser una etiqueta noindex, no una regla Disallow.
Si quieres que llevemos tu SEO y te actualicemos correctamente el Robots.txt echa un ojo a nuestro servicio SEO.
¿Dónde se coloca el archivo robots.txt?
El archivo robots.txt es un documento de texto plano que se coloca en el directorio raíz de una web y que contiene instrucciones para los rastreadores. Su función es indicar qué partes del sitio pueden visitar y qué partes deberían evitar.
Por ejemplo, en una web como:
https://ejemplo.com/
El archivo debería estar disponible en:
https://ejemplo.com/robots.txt
Es un archivo público. Cualquiera puede verlo escribiendo esa ruta en el navegador. Esto es importante porque a veces se comete el error de usar el robots.txt como si fuera una capa de privacidad o seguridad. No lo es. Si bloqueas una carpeta sensible en robots.txt, en realidad estás diciendo públicamente que esa carpeta existe.
Para qué sirve el archivo robots.txt en SEO
El robots.txt sirve principalmente para controlar el rastreo. Es decir, para orientar a los bots sobre qué URLs tienen permiso para visitar y cuáles deberían ignorar.
En SEO, esto tiene varias aplicaciones prácticas.
La primera es ahorrar presupuesto de rastreo, también conocido como crawl budget. Google no rastrea infinitamente todas las URLs de una web todo el tiempo. En sitios pequeños esto no suele ser un drama, pero en webs grandes, ecommerce, marketplaces, medios o proyectos con muchas URLs generadas automáticamente, el crawl budget puede ser importante.
En mi caso, una de las formas más útiles de entender el robots.txt es verlo como una herramienta para decirle al spider: “no pierdas tiempo aquí, céntrate en lo que realmente aporta valor”. Por ejemplo, puede tener sentido bloquear:
- URLs con filtros sin valor SEO.
- Parámetros extraños.
- Resultados de búsqueda interna.
- Páginas duplicadas generadas por facetas.
- Zonas administrativas.
- Rutas técnicas que no deben rastrearse.
- Combinaciones infinitas de parámetros en ecommerce.
Por ejemplo:
User-agent: *
Disallow: /buscar/
Disallow: /*?orden=
Disallow: /*?color=
Disallow: /*?precio=
Esto podría utilizarse para evitar que los crawlers gasten recursos en URLs generadas por filtros o parámetros. Pero hay que ir con cuidado: no todas las URLs con filtros son inútiles. En algunos ecommerce, ciertas categorías filtradas sí pueden tener búsquedas y valor SEO.
El robots.txt también sirve para indicar la ubicación del sitemap:
Sitemap: https://ejemplo.com/sitemap.xml
Aunque muchos creen que esta línea debe ir necesariamente al final del archivo, en realidad puede funcionar en otras posiciones. Yo suelo colocarla arriba o abajo según cómo quiera organizar el documento, pero lo importante es que la URL del sitemap sea correcta y accesible.
Robots.txt no desindexa
Este punto merece una sección propia porque es donde más errores se cometen.
¿Qué hace el Robots.txt?
Puede sonar repetitivo, pero es una de esas frases que conviene grabarse. Si tienes una URL indexada en Google y la bloqueas en robots.txt, lo que consigues es impedir que Googlebot vuelva a rastrear su contenido. Pero eso no significa automáticamente que Google elimine la URL de sus resultados.
De hecho, puede ocurrir algo bastante incómodo: Google mantiene la URL indexada, pero como no puede rastrearla, no puede leer bien su contenido actualizado. En algunos casos, incluso puede mostrar la URL en resultados sin una descripción normal.
La diferencia clave es esta:
| Acción | Qué controla | ¿Sirve para desindexar? |
|---|---|---|
| robots.txt | Rastreo | No |
| noindex | Indexación | Sí |
| Contraseña o bloqueo servidor | Acceso | Sí, si Google no puede acceder |
| Eliminación de URL | Disponibilidad | Puede ayudar si devuelve 404/410 |
| Canonical | Consolidación | No es una orden de desindexación |
Si quieres que una página desaparezca del índice, normalmente necesitas que Google pueda rastrearla y ver una etiqueta como:
<meta name="robots" content="noindex">
O una cabecera HTTP equivalente con X-Robots-Tag.
El matiz importante es este: si bloqueas la página por robots.txt, Google no puede entrar a verla. Y si no puede entrar, tampoco puede leer el noindex. Por eso, si deseas desindexar una URL, nunca deberías pensar primero en robots.txt, sino en una estrategia de noindex, eliminación, canonicalización o bloqueo real según el caso.
También hay otra duda frecuente: “si creo una página nueva y la bloqueo en robots.txt, ¿no se va a indexar?”. La respuesta honesta es: no siempre. Si Google descubre esa URL mediante enlaces externos, sitemaps, anchor text u otros métodos, podría llegar a indexarla aunque no pueda rastrear su contenido.
Cómo funciona un archivo robots.txt
Un archivo robots.txt funciona con directivas. Las más habituales son User-agent, Disallow, Allow y Sitemap.
La estructura básica suele ser esta:
User-agent: *
Disallow: /ruta-bloqueada/
Allow: /ruta-permitida/
Sitemap: https://ejemplo.com/sitemap.xml
Qué significa User-agent
User-agent indica a qué robot van dirigidas las reglas.
Si escribimos:
User-agent: *
Estamos diciendo que las reglas se aplican a todos los bots que respeten el robots.txt.
Si queremos dirigirnos a un bot concreto, podemos usar su nombre:
User-agent: Googlebot
Disallow: /zona-privada/
También podríamos crear bloques distintos para diferentes bots:
User-agent: Googlebot
Disallow: /pruebas/
User-agent: Bingbot
Disallow: /beta/
Qué significa Disallow
Disallow indica qué rutas no deberían rastrear los bots.
Ejemplo:
User-agent: *
Disallow: /privado/
Esto le dice a todos los bots que no rastreen URLs que empiecen por /privado/.
Por ejemplo:
https://ejemplo.com/privado/
https://ejemplo.com/privado/documento/
https://ejemplo.com/privado/archivo.pdf
Qué significa Allow
Allow sirve para permitir una URL o recurso dentro de una ruta que está bloqueada.
Ejemplo típico en WordPress:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Aquí bloqueamos /wp-admin/, pero permitimos el acceso a admin-ajax.php, que puede ser necesario para ciertas funcionalidades.
Para qué sirven los comentarios con “#”
Todo lo que escribas después de un # será ignorado por los crawlers. Se usa para comentar y ordenar el archivo.
Ejemplo:
# Bloqueo de URLs internas de búsqueda
User-agent: *
Disallow: /buscar/
Esto no afecta al rastreo. Simplemente ayuda a que el archivo sea más legible.
Dónde colocar la línea Sitemap
La línea Sitemap indica la ubicación del sitemap XML:
Sitemap: https://ejemplo.com/sitemap.xml
Puede colocarse al final, que es lo más habitual, pero no tiene por qué estar dentro de un bloque User-agent. Lo importante es que la ruta sea exacta y que el sitemap sea accesible.
Qué pasa si hay reglas contradictorias en robots.txt
A veces un archivo robots.txt puede tener reglas que parecen contradecirse. Por ejemplo, una regla bloquea una carpeta, pero otra permite una URL concreta dentro de esa misma carpeta.
En esos casos, normalmente gana la regla más específica, es decir, la que coincide con más caracteres de la URL.
Ejemplo:
Disallow: /blog/
Allow: /blog/articulo-importante/
Con esta configuración, el resultado sería:
/blog/ → bloqueado
/blog/post-1/ → bloqueado
/blog/articulo-importante/ → permitido
¿Por qué ocurre esto? Porque esta regla:
Allow: /blog/articulo-importante/
Es más específica que esta otra:
Disallow: /blog/
Es decir, aunque /blog/ esté bloqueado de forma general, estamos creando una excepción más concreta para permitir el rastreo de /blog/articulo-importante/.
Otro ejemplo:
User-agent: *
Allow: /blog/
Disallow: /blog/tag/
En este caso, el resultado sería:
/blog/ → permitido
/blog/post-1/ → permitido
/blog/tag/seo/ → bloqueado
Aquí gana:
Disallow: /blog/tag/
Porque es más específica que:
Allow: /blog/
Este tipo de reglas puede ser útil cuando queremos permitir una zona amplia de la web, pero bloquear una subsección concreta. Por ejemplo, permitir el blog completo, pero bloquear páginas de etiquetas si no tienen valor SEO.
Ahora bien, cuando dos reglas son igual de específicas, la cosa se vuelve más delicada.
Ejemplo:
User-agent: *
Allow: /blog/
Disallow: /blog/
Aquí las dos reglas coinciden exactamente con la misma ruta. En Google, normalmente gana Allow, porque en caso de empate se queda con la opción menos restrictiva.
Pero mi recomendación es no llegar a este punto. Aunque Google pueda resolver el empate, este tipo de configuración ensucia el archivo y puede generar dudas al revisarlo más adelante.
Lo mejor es escribir reglas claras, evitar contradicciones innecesarias y dejar el robots.txt lo más fácil de entender posible.
Si quieres que llevemos tu SEO y te actualicemos correctamente el Robots.txt echa un ojo a nuestro servicio SEO.
Qué significan los símbolos * y $ en robots.txt
Dos símbolos muy útiles en robots.txt son el asterisco * y el dólar $.
El asterisco como comodín
El símbolo * significa “cualquier cosa”. Es un comodín que representa cualquier texto dentro de una URL.
Ejemplo:
User-agent: *
Disallow: /*.pdf
Esto significa que se bloquea cualquier URL que contenga .pdf.
Podría afectar a URLs como:
/catalogo.pdf
/documentos/guia.pdf
/descargas/manual.pdf
El asterisco sustituye todo lo que haya antes de .pdf.
Otro ejemplo:
Disallow: /*?color=
Esto bloquearía URLs que contengan el parámetro ?color=, como:
/camisetas/?color=azul
/zapatillas/?color=negro
El dólar como final exacto de URL
El símbolo $ indica que la URL termina exactamente ahí.
Ejemplo:
Disallow: /*.pdf$
Esto significa que se bloquean URLs que terminen exactamente en .pdf.
Bloquearía:
/catalogo.pdf
/manual.pdf
/documentos/guia.pdf
Pero no necesariamente:
/catalogo.pdf?utm_source=google
/catalogo.pdf/extra
Porque esas URLs no terminan exactamente en .pdf.
La diferencia entre estos dos ejemplos es importante:
Disallow: /*.pdf
Bloquea cualquier URL que contenga .pdf.
Mientras que:
Disallow: /*.pdf$
Bloquea solo las URLs que terminan exactamente en .pdf.
Este tipo de detalle puede parecer pequeño, pero en SEO técnico no lo es. Una regla demasiado amplia puede bloquear más URLs de las que querías. Una regla demasiado específica puede no bloquear lo suficiente.
Qué no deberías bloquear nunca en robots.txt
Aquí hay que ir con muchísimo cuidado. Una mala regla en robots.txt puede impedir que Google acceda a recursos necesarios para entender y renderizar correctamente una página.
En mi caso, hay una serie de reglas que revisaría con lupa y que, como norma general, evitaría incluir sin una razón muy clara:
Disallow: /css/
Disallow: /js/
Disallow: /assets/
Disallow: /static/
Disallow: /dist/
Disallow: /build/
Disallow: /scripts/
Disallow: /styles/
¿Por qué? Porque muchas veces esas carpetas contienen archivos que Google necesita para renderizar la página: hojas de estilo, JavaScript, recursos visuales, scripts o elementos de maquetación.
Si bloqueas esos recursos, Google puede ver una versión incompleta de la página. Y si no puede renderizarla bien, puede interpretar peor su contenido, su estructura, sus enlaces internos o incluso elementos importantes para la experiencia de usuario.
El problema no siempre está en una regla directa. A veces el bloqueo es indirecto. Por ejemplo:
Disallow: /assets/
Puede parecer una regla inocente, pero si ahí dentro están tus CSS, tus JS o imágenes necesarias para la plantilla, puedes estar complicando el rastreo y renderizado.
También conviene tener cuidado con reglas demasiado amplias como:
Disallow: /wp-content/
En WordPress, esto puede bloquear recursos importantes de temas, plugins, imágenes o scripts. Durante años se han visto robots.txt heredados con reglas antiguas que ya no tienen sentido y que pueden perjudicar más que ayudar.
Mi consejo sería: antes de bloquear una carpeta técnica, revisa qué contiene. Y después de cambiar el robots.txt, comprueba cómo interpreta Google la página.
Pero si hay una regla que merece una alerta enorme, es esta:
Siempre existe el típico proyecto que se rompe la cabeza intentando entender por qué una web no se posiciona, no aparece en Google o directamente parece invisible para los buscadores… y al revisar el archivo robots.txt aparece esta regla:
Disallow: /
Esta directiva es especialmente delicada porque bloquea el rastreo de absolutamente toda la web. Es decir, le estás diciendo a los crawlers que no entren en ninguna URL del sitio.
Y claro, si Googlebot no puede rastrear nada, el proyecto puede tener buen contenido, buena arquitectura, buenos enlaces internos y una estrategia SEO correcta sobre el papel, pero seguir teniendo un problema enorme en la base: Google no puede acceder a la web.
Por eso, antes de buscar explicaciones más complejas, siempre conviene revisar lo básico. Y el robots.txt está entre esas comprobaciones que parecen pequeñas, pero pueden explicar por qué una web no despega o por qué directamente no aparece como debería en Google.
Limitaciones del robots.txt
El robots.txt es útil, pero tiene límites. Y entender esos límites evita muchos problemas.
Primero: no todos los bots tienen por qué respetarlo. Los bots legítimos, como Googlebot o Bingbot, suelen respetar las directivas. Pero un bot malicioso, un scraper agresivo o una herramienta que no siga el estándar puede ignorarlo por completo.
Segundo: no protege contenido privado. Si tienes una URL sensible, no deberías confiar en robots.txt. Una URL bloqueada en robots.txt sigue siendo pública si alguien conoce la dirección. Para proteger contenido privado necesitas autenticación, restricciones de servidor, contraseña o sistemas reales de control de acceso.
Tercero: no elimina URLs de Google automáticamente. Como hemos visto, una página bloqueada puede seguir indexada si Google la conocía antes o si la descubre por otros medios.
Cuarto: no sustituye una estrategia SEO completa. El robots.txt puede ayudar a gestionar el rastreo, pero no arregla por sí solo problemas de arquitectura, duplicidad, thin content, canonicalización o enlazado interno.
Quinto: puede generar falsos positivos de control. A veces alguien ve que una URL está en Disallow y piensa: “perfecto, Google ya no la tendrá en cuenta”. Pero la realidad puede ser más compleja. Si esa URL recibe enlaces, aparece en un sitemap o ya estaba indexada, puede seguir generando señales o apareciendo en resultados.
Por eso, cuando me preguntan “para qué sirve robots txt”, suelo responder: sirve para gestionar el rastreo, no para controlar absolutamente todo lo que ocurre con una URL.
Buenas prácticas para crear un robots.txt correcto
La primera buena práctica es sencilla: no compliques el archivo si no hace falta.
Un robots.txt lleno de reglas largas, comodines, excepciones y patrones difíciles de leer puede convertirse en una fuente de errores. Es mejor tener pocas reglas, claras y justificadas.
Segunda buena práctica: no uses robots.txt para desindexar. Si quieres sacar una página de Google, valora noindex, eliminación de URL, códigos 404/410, canonicalización o bloqueo con contraseña, según el caso.
Tercera: no bloquees recursos importantes. Evita bloquear carpetas como /css/, /js/, /assets/, /static/, /scripts/ o similares sin revisar qué contienen.
Cuarta: incluye el sitemap. No es obligatorio, pero es recomendable:
Sitemap: https://ejemplo.com/sitemap.xml
Quinta: usa comentarios para ordenar el archivo.
Ejemplo:
# Administración
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
# Búsqueda interna
Disallow: /buscar/
# Parámetros sin valor SEO
Disallow: /*?utm_
Disallow: /*?orden=
Sexta: revisa los patrones con * y $ antes de subirlos. Un comodín mal usado puede bloquear miles de URLs no previstas.
Séptima: adapta el archivo al tipo de web. No necesita lo mismo un blog pequeño que un ecommerce con miles de filtros. Tampoco necesita lo mismo una web corporativa que un marketplace.
Octava: comprueba el resultado después de modificarlo. No basta con escribir reglas. Hay que validar que los bots pueden acceder a lo importante y que se bloquea solo lo que realmente querías bloquear.
Novena: comprueba que no estás bloqueando toda la web sin querer.
Una de las reglas más peligrosas es esta:
Disallow: /
En algunos entornos de desarrollo o staging se utiliza para evitar que Google rastree una versión de prueba. El problema viene cuando esa regla pasa a producción y nadie la revisa. Resultado: una web publicada, aparentemente correcta para los usuarios, pero cerrada para los bots.
Por eso, cada vez que se lanza una web nueva, se migra un proyecto o se cambia el robots.txt, merece la pena comprobar manualmente que no exista un Disallow: / aplicado a todos los bots.
Una configuración abierta básica sería:
Disallow:
En este caso, Disallow: vacío significa que no estás bloqueando ninguna ruta.
Como usar robots.txt
El archivo robots.txt sirve para decir a los robots de crawleo qué páginas, carpetas o recursos pueden rastrear y cuáles no. En SEO, su principal utilidad está en gestionar el rastreo, ahorrar crawl budget y evitar que los bots pierdan tiempo en URLs sin valor para el negocio o para el posicionamiento.
Pero también es un archivo delicado. No deberías usarlo para desindexar páginas, porque robots.txt no funciona así. Si quieres eliminar una URL del índice, normalmente necesitas noindex, una estrategia de eliminación, una respuesta 404/410, una canonical bien planteada o una restricción real de acceso.
También hay que tener mucho cuidado con bloquear recursos como CSS, JavaScript, assets, scripts o carpetas técnicas. Google necesita acceder a muchos de esos archivos para renderizar correctamente una página.
Bien usado, el robots.txt es una herramienta muy útil. Mal usado, puede convertirse en una trampa silenciosa. Por eso mi enfoque es simple: reglas claras, pocas florituras, nada de bloquear por bloquear y siempre diferenciar entre rastreo e indexación.
Si quieres que llevemos tu SEO contactanos.