Cómo funciona esta comprobación
Scanaris descarga tu /robots.txt y comprueba primero que es un robots de verdad: responde 200, no es HTML y contiene al menos una directiva (User-agent, Disallow, Allow o Sitemap). Luego recorre cada línea Disallow: y mira si la ruta contiene alguno de estos indicadores: wp-admin, phpmyadmin, /admin, backup, .git, .env, /private, /secret, dump, .sql, password o credential. Si alguna coincide, abre un hallazgo de severidad baja con las rutas encontradas. La lista es deliberadamente corta: palabras como test, old, tmp o logs aparecen en robots perfectamente legítimos y daban falsos positivos.
Por qué importa
robots.txt es público por definición: cualquiera puede leerlo, y de hecho es de los primeros archivos que mira una herramienta de reconocimiento. Cuando escribes Disallow: /backups/ o Disallow: /admin-antiguo/ no estás escondiendo esas rutas; se las estás apuntando a quien las busca, con la garantía añadida de que te importan. Google no las rastreará, pero un atacante no lee robots para obedecerlo, sino para saber adónde ir. Es un hallazgo de severidad baja porque listar una ruta no la hace accesible; el problema aparece cuando la ruta listada, además, no está protegida.
Cómo arreglarlo
- Quita de robots.txt las rutas que no quieras anunciar. Si no quieres que Google indexe una zona privada, lo correcto es que esa zona pida login; lo que está detrás de una autenticación no se indexa de todos modos.
- Si necesitas que una página accesible no salga en buscadores sin anunciarla, usa la cabecera
X-Robots-Tag: noindexo la metarobotsen esa página. Los buscadores la respetan y no queda escrita en un archivo público. - Protege la ruta de verdad. Un panel en
/adminnecesita autenticación, no una línea en robots. Una carpeta/backups/no debería estar en el directorio público en absoluto; las comprobaciones de archivos sensibles y listado de directorios cubren esos casos. - WordPress: el robots virtual que genera incluye
Disallow: /wp-admin/por defecto. No es grave, porquewp-adminya exige login y además envíanoindex; puedes dejarlo o sustituir robots por uno propio sin esa línea. Lo importante es que el login tenga contraseñas fuertes, límite de intentos y, si puedes, doble factor.
Un robots.txt sano suele ser corto: un User-agent: *, quizá un par de Disallow para rutas de búsqueda interna o parámetros, y la línea Sitemap:. Si el tuyo tiene veinte líneas de rutas "privadas", está haciendo el trabajo de un sistema de permisos, y mal.
Comprueba que está arreglado
curl -s https://tudominio.com/robots.txt | grep -iE "^disallow:.*(admin|phpmyadmin|backup|\.git|\.env|private|secret|dump|\.sql|password|credential)"
No debería salir nada. Y para cada ruta que hayas quitado, comprueba que de verdad pide autenticación o devuelve 404:
curl -s -o /dev/null -w "%{http_code}\n" https://tudominio.com/admin/
Preguntas frecuentes
Si quito /admin de robots.txt, ¿Google lo va a indexar?
Si /admin pide login, Google solo ve la pantalla de acceso, y lo normal es que esa pantalla lleve noindex. Si no pide login, el problema no es la indexación, es que tu panel está abierto.
¿Puedo bloquear todo y listar solo lo público?
Para una web que quiere tráfico orgánico, no: bloquear todo con Disallow: / la saca de los buscadores. Si lo que quieres es controlar el rastreo, la comprobación de robots y sitemap mira que no te estés bloqueando a ti mismo.
¿Y los bots de IA?
Bloquear o permitir GPTBot, ClaudeBot y compañía es una decisión de negocio distinta y va en el mismo archivo. No tiene relación con esta comprobación, que solo mira rutas sensibles.