El archivo robots.txt es un archivo de texto plano que se coloca en la raíz de tu web (https://example.com/robots.txt) e indica a los rastreadores de los buscadores qué páginas o secciones de tu sitio deben o no deben visitar. Existe desde 1994 y es uno de los estándares más antiguos de la web. Todos los buscadores serios lo respetan, aunque es importante entender qué puede y qué no puede hacer.
Cómo funciona la sintaxis de robots.txt
El archivo utiliza una sintaxis sencilla, basada en líneas. Cada bloque empieza con una línea User-agent que indica a qué rastreador se aplican las reglas, seguida de una o varias directivas Disallow o Allow. Aquí tienes un desglose completo de todas las directivas admitidas:
User-agent: identifica el rastreador. Usa*para apuntar a todos los rastreadores, o especifica un bot concreto comoGooglebot,BingbotoGPTBot.Disallow: indica al rastreador que no acceda a la ruta especificada.Disallow: /private/bloquea todo lo que haya bajo el directorio /private/. UnDisallow:vacío significa que no se bloquea nada.Allow: anula una regla Disallow para una ruta concreta. Útil cuando quieres bloquear un directorio pero permitir el acceso a ciertos archivos dentro de él.Sitemap: indica la URL de tu sitemap XML. Técnicamente no forma parte del estándar original de robots.txt, pero todos los buscadores principales lo soportan.Crawl-delay: indica al rastreador que espere un número determinado de segundos entre peticiones. Google ignora esta directiva (en su lugar puedes ajustar la velocidad de rastreo en Search Console), pero Bing y otros rastreadores la respetan.
Un robots.txt típico para WordPress
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-includes/
Disallow: /readme.html
Disallow: /xmlrpc.php
Disallow: /?s=
Disallow: /search/
Sitemap: https://example.com/sitemap_index.xmlVeamos qué hace cada línea:
Disallow: /wp-admin/: impide que los rastreadores accedan a la zona de administración de WordPress. No hay motivo para que los buscadores rastreen tu panel.Allow: /wp-admin/admin-ajax.php: esta excepción es importante porque muchas plantillas y plugins usan admin-ajax.php para funcionalidades del frontend. Bloquearlo puede romper funciones en tus páginas públicas.Disallow: /wp-includes/: bloquea el directorio includes del núcleo de WordPress, que contiene archivos del sistema que no deberían indexarse.Disallow: /readme.html: oculta el archivo readme de WordPress, que revela la versión de WordPress.Disallow: /xmlrpc.php: bloquea el acceso al endpoint XML-RPC, que suele ser objetivo de ataques de fuerza bruta.Disallow: /?s=yDisallow: /search/: evitan la indexación de páginas de resultados de búsqueda interna, que tienen poco valor y pueden generar contenido duplicado.
robots.txt vs. la metaetiqueta noindex
Esta es una de las distinciones que más se malinterpretan en SEO. Muchos propietarios de sitios creen que bloquear una página en robots.txt impide que aparezca en los resultados de búsqueda. No es así.
robots.txt controla el rastreo: indica a los buscadores que no visiten una URL concreta. Pero si otras webs enlazan a esa URL, Google podría indexarla igualmente, mostrando la URL en los resultados con un mensaje del tipo "No hay información disponible para esta página".
La metaetiqueta noindex controla la indexación: le dice a los buscadores "puedes rastrear esta página, pero no la incluyas en tus resultados de búsqueda". Lo crucial es que Google necesita rastrear realmente la página para ver la directiva noindex. Si bloqueas una página en robots.txt Y añades una etiqueta noindex, Google no puede rastrear la página para descubrir la etiqueta noindex, así que puede acabar indexando la URL basándose en señales externas.
La regla práctica: usa robots.txt para gestionar el presupuesto de rastreo y mantener a los rastreadores fuera de áreas del lado del servidor. Usa noindex cuando quieras que una página se elimine por completo de los resultados de búsqueda.
Cómo gestiona Googlebot el robots.txt
Google revisa tu archivo robots.txt regularmente y suele cachearlo hasta 24 horas. Si Google no puede obtener el archivo (por ejemplo, tu servidor devuelve un error 500), detendrá temporalmente el rastreo de tu sitio por seguridad. Una respuesta 404, en cambio, se interpreta como "sin restricciones", lo que significa que Google rastreará todo.
Google también admite coincidencia de patrones en las rutas de robots.txt. Puedes usar * como comodín y $ para indicar el final de una URL:
Disallow: /*.pdf$
Disallow: /category/*/page/La primera regla bloquea todos los archivos PDF de todo el sitio. La segunda bloquea las páginas de paginación dentro de los archivos de categoría.
Probar tu robots.txt con Google Search Console
Google Search Console incluye un comprobador de robots.txt que te permite verificar si una URL concreta está bloqueada. Es muy útil tras hacer cambios en tu robots.txt, ya que una pequeña errata puede bloquear accidentalmente páginas importantes. Introduce la URL que quieres probar y la herramienta te dice si está permitida o bloqueada y qué regla es la responsable.
Deberías probar tu robots.txt tras cada cambio, especialmente después de actualizaciones grandes del sitio, cambios de plantilla o migraciones. Tarda solo unos segundos y puede evitarte desindexar partes de tu sitio sin querer.
Errores comunes en el robots.txt de WordPress
Hay algunos errores que aparecen una y otra vez en sitios WordPress:
- Bloquear archivos CSS y JavaScript: algunas plantillas antiguas de robots.txt bloquean
/wp-content/o/wp-includes/de forma amplia. Esto impide que Google acceda a los archivos CSS y JS que necesita para renderizar tus páginas. Si Googlebot no puede renderizar tu página correctamente, no puede evaluarla bien para el ranking. Permite siempre el acceso a archivos CSS y JavaScript. - Bloquear el sitio entero durante el desarrollo: los desarrolladores suelen añadir
Disallow: /durante el staging y se olvidan de quitarlo antes del lanzamiento. WordPress tiene un ajuste "Disuadir a los motores de búsqueda" que hace algo parecido, y se queda activado más a menudo de lo que cabría esperar. - Usar robots.txt como medida de seguridad: el archivo es de acceso público. Cualquiera puede leer tu robots.txt y ver exactamente qué rutas estás intentando ocultar. Si tienes contenido sensible, usa autenticación adecuada o controles de acceso del lado del servidor.
- Reglas en conflicto: cuando tienes varios bloques User-agent con reglas que se solapan, el comportamiento puede ser impredecible. Google usa la regla coincidente más específica, pero otros rastreadores podrían gestionar los conflictos de otra forma. Mantén tu robots.txt sencillo y evita bloques redundantes.
El robots.txt autogenerado de WordPress y cómo personalizarlo
Si no existe ningún archivo robots.txt físico en el directorio raíz de tu WordPress, WordPress genera uno virtual automáticamente. Este archivo por defecto es mínimo y normalmente solo contiene la regla de disallow para /wp-admin/ con la excepción de admin-ajax.php.
Tienes tres opciones para personalizarlo:
- Crear un archivo físico: sube un archivo
robots.txtal directorio raíz de tu WordPress vía FTP o desde el gestor de archivos de tu hosting. Esto sustituye por completo a la versión virtual. - Usar un plugin SEO: tanto Yoast SEO como Rank Math ofrecen un editor de robots.txt en el panel de administración de WordPress, así que puedes hacer cambios sin acceso FTP.
- Usar un hook de filtro: los desarrolladores pueden modificar la salida del robots.txt virtual usando el filtro
robots_txtde WordPress. Este enfoque mantiene la personalización en el código, lo que facilita el seguimiento en el control de versiones.
Qué comprueba InspectWP
InspectWP comprueba si tu sitio WordPress tiene un archivo robots.txt, analiza las reglas que contiene y verifica si incluye una referencia al sitemap. Señala problemas comunes como la falta de directivas de sitemap, reglas disallow demasiado amplias que podrían bloquear contenido importante, y reglas que podrían impedir que Google renderice correctamente tus páginas.