robots.txt controla qué URLs puede rastrear un buscador; noindex controla qué URLs puede indexar (mostrar en resultados). Son dos cosas distintas y la confusión entre ambas produce el error más clásico del SEO técnico: una página bloqueada en robots.txt puede seguir apareciendo en Google, y una página con noindex solo deja de aparecer si Google puede rastrearla para leer la etiqueta.
Este artículo explica qué hace cada mecanismo, cómo combinarlos y qué usar para los casos habituales: búsquedas internas, filtros, páginas de administración y contenido en pruebas.
Qué hace robots.txt
Es un archivo de texto en la raíz del dominio (https://ejemplo.com/robots.txt) con reglas por agente de usuario que indican qué rutas no deben solicitarse:
User-agent: *
Allow: /
Disallow: /buscar/
Disallow: /*?q=
Sitemap: https://ejemplo.com/sitemap.xml
Puntos clave de la documentación de Google:
- Sirve para gestionar el rastreo: evitar que el bot gaste tiempo en páginas sin valor o sobrecargue el servidor.
- No impide la indexación. Si otras páginas enlazan a una URL bloqueada, Google puede indexarla sin visitarla, mostrando solo la URL y un texto del tipo “no hay información disponible para esta página”.
- Es público: cualquiera puede leerlo. No pongas en él rutas que quieras mantener en secreto.
- Desde septiembre de 2019 Google no admite
noindexdentro de robots.txt; esa regla se ignora. - La línea
Sitemap:es la forma más sencilla de declarar el sitemap y puede incluirse aunque también lo envíes por Search Console.
Qué hace noindex
noindex indica al buscador que no incluya la página en sus resultados. Se declara de dos formas:
<!-- En el <head> de una página HTML -->
<meta name="robots" content="noindex, follow" />
# Como cabecera HTTP, para cualquier tipo de archivo (PDF, imágenes, JSON...)
X-Robots-Tag: noindex
Dos matices importantes:
- Para que funcione, el bot tiene que poder rastrear la página y leer la etiqueta. Si además la bloqueas en robots.txt, nunca verá el
noindex. follow(el valor por defecto) permite que los enlaces de la página sigan transmitiendo señales.noindex, nofollowcorta también eso; úsalo solo cuando no quieras que se sigan los enlaces.
Con el tiempo, Google trata un noindex prolongado como una señal para dejar de rastrear esa URL con frecuencia, pero eso es consecuencia, no el objetivo.
La combinación equivocada
| Configuración | Resultado |
|---|---|
| Bloqueada en robots.txt, sin noindex | Puede aparecer en resultados (solo la URL), porque Google no puede leer la página pero sabe que existe por los enlaces. |
| Bloqueada en robots.txt y con noindex | Igual que la anterior: el noindex no se llega a leer. |
| Rastreable, con noindex | Desaparece de los resultados en cuanto Google la vuelve a rastrear. Correcto para desindexar. |
| Rastreable, sin noindex | Se indexa con normalidad. |
Conclusión práctica: si quieres que una URL no aparezca en Google, usa noindex y déjala rastreable. Solo después de que haya desaparecido tiene sentido, si quieres ahorrar rastreo, bloquearla en robots.txt.
Qué usar en cada caso
| Caso | Recomendación |
|---|---|
Resultados de búsqueda interna (/buscar/?q=...) |
noindex en la página. Opcionalmente Disallow en robots.txt una vez desindexadas, para no gastar rastreo en combinaciones infinitas. |
Filtros y ordenaciones con parámetros (?orden=precio) |
rel="canonical" hacia la URL sin parámetros; si generan muchas combinaciones, noindex. |
| Página de administración o login | noindex + protección real con autenticación. robots.txt no es una medida de seguridad. |
| Páginas vacías o en construcción | noindex mientras no tengan contenido; retíralo al publicar. |
| Archivos que no quieres en resultados (PDF internos, JSON) | Cabecera X-Robots-Tag: noindex. |
| Recursos que el bot no necesita (scripts de un panel interno) | Disallow en robots.txt. Nunca bloquees el CSS y JS que la página pública necesita para renderizarse. |
| Entorno de pruebas (staging) | Autenticación HTTP. Si no es posible, noindex en todas las páginas; no confíes solo en robots.txt. |
Errores habituales
- Bloquear CSS o JavaScript en robots.txt. Google renderiza las páginas; si no puede cargar sus recursos, las evaluará como rotas.
- Olvidar quitar el
noindexal pasar a producción. Es la causa más frecuente de “mi web nueva no aparece”. Revisa la plantilla y las cabeceras del servidor. - Usar robots.txt para “borrar” páginas de Google. No funciona; usa
noindexo, si la página ya no existe, devuelve 404 o 410. - Bloquear el sitemap o la página de inicio por un
Disallow: /olvidado de la fase de desarrollo. - Poner
noindexen páginas importantes (categorías, autor, portada) por aplicar reglas genéricas de un plugin.
Cómo comprobarlo
- Inspección de URL en Search Console: indica si la URL está bloqueada por robots.txt, si tiene
noindexy si está indexada. - Informe de páginas (Indexación): agrupa las URLs excluidas por motivo (“Bloqueada por robots.txt”, “Excluida por la etiqueta noindex”, “Indexada, aunque bloqueada por robots.txt”). Esta última categoría es exactamente el síntoma de la combinación equivocada.
- Informe de robots.txt en Search Console: muestra qué versión del archivo tiene Google y si contiene errores de sintaxis.
Conclusión
robots.txt dice “no entres aquí”; noindex dice “no me muestres”. Para que algo no aparezca en Google, necesita ser rastreable y llevar noindex. Reserva robots.txt para ahorrar rastreo en zonas sin valor y para declarar el sitemap, y revisa en Search Console que no haya páginas “indexadas aunque bloqueadas”: es la señal de que los dos mecanismos se están pisando.