Con URLs como /products?sort=price o /search?q=shoes no empezamos con un Disallow general. Primero clasificamos el parámetro: orden, filtro, faceta, tracking, sesión, paginación o búsqueda interna.
Probamos la query string exacta
User-agent: *
Disallow: /*?sort=
Comprobamos esa regla contra URLs permitidas y bloqueadas con el tester. Un wildcard puede ampliar mucho más de lo esperado.
No usamos robots.txt para todo duplicado
Si ?utm_source= genera el mismo contenido, canonical o una arquitectura de enlaces más limpia puede ser suficiente. Si una URL pública no debe indexarse, evaluamos noindex. Si debe desaparecer porque se movió, evaluamos redirect.
Las facetas necesitan selección
En ecommerce algunas combinaciones pueden tener demanda de búsqueda y otras crear millones de URLs. Evitamos Disallow: /*? salvo que sepamos que ninguna query útil necesita rastreo.
Separamos rastreo e indexación
Robots.txt controla acceso del crawler. noindex controla indexación cuando el crawler puede leerlo. Para comparar capas usamos robots.txt vs meta robots.
Verificamos antes y después
Creamos una matriz de URLs esperadas, validamos la sintaxis y repetimos la prueba sobre el archivo en producción con el checker. Nuestro objetivo es reducir expansión de rastreo sin bloquear páginas con valor real.