Qué significa “rastreo” e “indexación” (y por qué se rompen)
Rastreo es el proceso por el que un bot solicita URLs (HTTP requests) para descubrir contenido y enlaces. Indexación es la decisión posterior del buscador de almacenar y servir una URL en resultados. Una URL puede ser rastreada pero no indexada (por calidad, duplicidad, noindex, canonical, soft-404, etc.), o puede estar “descubierta” pero no rastreada (por presupuesto de rastreo, bloqueos, errores, colas).
En SEO técnico, el objetivo es doble: controlar el acceso (qué pueden solicitar los bots) y diagnosticar por qué ciertas URLs no entran o salen del índice.
Control del acceso de bots: robots.txt, meta robots y cabeceras
robots.txt: controla el rastreo (no la indexación)
robots.txt indica a los bots qué rutas no deben rastrear. Importante: si una URL está bloqueada en robots.txt, el buscador puede seguir conociéndola por enlaces externos y potencialmente mostrarla sin contenido (según señales), pero no podrá ver su HTML para evaluar noindex o canonicals.
# https://tudominio.com/robots.txtUser-agent: *Disallow: /admin/Disallow: /cart/Disallow: /search/Allow: /blog/Buenas prácticas:
- Bloquea rutas de baja utilidad (búsquedas internas, filtros infinitos, carritos, parámetros que generan combinaciones sin valor).
- No bloquees recursos críticos si afectan al renderizado (CSS/JS) cuando el bot los necesita para entender la página.
- Evita bloquear URLs que deben desindexarse con
noindex; en esos casos, deja rastrear y usanoindex.
Meta robots y X-Robots-Tag: controla indexación (y a veces rastreo)
Para decidir qué se indexa, usa <meta name="robots"> en HTML o la cabecera X-Robots-Tag (útil para PDFs, imágenes o respuestas no-HTML).
- Escuche el audio con la pantalla apagada.
- Obtenga un certificado al finalizar.
- ¡Más de 5000 cursos para que explores!
Descargar la aplicación
<meta name="robots" content="noindex,follow"># Respuesta HTTPX-Robots-Tag: noindexCuándo usar cada uno:
- Meta robots: páginas HTML.
- X-Robots-Tag: cualquier tipo de recurso (PDF, endpoints, archivos) o cuando no controlas el HTML.
Nota: noindex requiere que el bot pueda rastrear la URL para ver la directiva. Si bloqueas en robots.txt, el bot no verá el noindex.
Autenticación, IP allowlist y entornos
En staging/desarrollo, lo habitual es impedir indexación con autenticación (HTTP Basic) o allowlist de IP. Si el entorno debe ser accesible, usa noindex + restricciones adicionales para evitar filtraciones.
Tipos de respuesta HTTP y su impacto en rastreo e indexación
| Código | Significado | Impacto típico SEO | Uso recomendado |
|---|---|---|---|
| 200 | OK | Indexable si no hay bloqueos/noindex y el contenido es válido | Contenido real y útil |
| 301/308 | Redirección permanente | Consolida señales hacia el destino; el origen suele salir del índice | Cambios definitivos de URL, http→https, www→non-www |
| 302/307 | Redirección temporal | El buscador puede mantener el origen indexado más tiempo | Movimientos temporales, tests limitados |
| 404 | No encontrado | Se desindexa con el tiempo; reduce rastreo futuro de esa URL | Contenido eliminado sin sustituto |
| 410 | Gone | Desindexación más rápida que 404 | Eliminación intencional y definitiva |
| 429 | Too Many Requests | Puede reducir frecuencia de rastreo; riesgo de pérdida de cobertura si persiste | Rate limiting controlado (mejor con cabeceras y ventanas claras) |
| 5xx | Error servidor | Impide rastreo e indexación; si es persistente, puede desindexar | Debe ser excepcional; monitorizar y corregir |
Cadenas y bucles de redirección
Una cadena (A→B→C) consume presupuesto de rastreo y puede degradar señales. Un bucle (A→B→A) bloquea el acceso. Como regla práctica: máximo 1 salto en redirecciones críticas.
Soft-404 y páginas vacías: cómo se generan y cómo tratarlas
Qué es un soft-404
Un soft-404 ocurre cuando el servidor devuelve 200 (o a veces 3xx) pero el contenido indica “no hay nada” (página de error, listado vacío, producto inexistente). Los buscadores pueden tratarla como si fuera 404 y excluirla del índice.
Patrones comunes:
- Producto agotado/eliminado que muestra “no disponible” pero responde 200 sin alternativas.
- Búsqueda interna o categoría con 0 resultados que responde 200 y no ofrece navegación útil.
- Página de error genérica servida con 200 (por ejemplo, “algo salió mal”).
Cómo decidir entre 404/410, 301 o 200 con contenido
- Si no existe y no habrá sustituto: devuelve
404o410. - Si existe un sustituto claro (producto reemplazado, URL antigua):
301al destino más relevante. - Si está temporalmente no disponible pero volverá: mantén
200con contenido útil (alternativas, aviso, enlaces a categorías) y evita páginas “vacías”. - Si es un listado vacío: o bien
404(si no tiene sentido indexarlo) o bien200con contenido editorial y navegación real (si aporta valor).
Checklist para evitar páginas vacías indexables
- ¿Hay texto o información única que justifique la URL?
- ¿Hay enlaces internos útiles (categorías, filtros limitados, productos relacionados)?
- ¿La plantilla muestra el mismo mensaje en cientos de URLs (thin/duplicado)?
- ¿La URL se genera por parámetros infinitos (orden, paginación extrema, filtros combinatorios)?
Enfoque de diagnóstico: de la cobertura a la causa
Un diagnóstico efectivo combina tres fuentes: (1) reportes de cobertura/indexación, (2) comprobación directa de respuestas HTTP y renderizado, (3) logs del servidor para ver el comportamiento real de los bots.
Paso 1: revisar cobertura e indexación (qué está pasando)
Objetivo: clasificar el problema por tipo antes de tocar configuraciones.
- URLs excluidas: por
noindex, duplicadas, canonical a otra, rastreada pero no indexada, descubierta pero no rastreada. - Errores: 404, soft-404, 5xx, redirecciones erróneas.
- Válidas: confirmar que las importantes están dentro.
Acciones prácticas:
- Elige un conjunto de URLs representativas (plantillas clave: home, categorías, fichas, blog, búsqueda, filtros).
- Para cada plantilla, anota: estado esperado (index/noindex), canonical esperado, código HTTP esperado.
Paso 2: comprobar respuestas HTTP con curl (y detectar inconsistencias)
Con curl puedes verificar códigos, redirecciones y cabeceras sin depender del navegador.
# Ver cabeceras y códigoHTTP (sin descargar el body)curl -I https://tudominio.com/url# Seguir redirecciones y ver la cadena completacurl -IL https://tudominio.com/url# Ver cabeceras relevantes (ejemplo)curl -I https://tudominio.com/recurso.pdfQué mirar:
HTTP/1.1 200vs404vs5xx.Locationen 3xx (¿apunta al destino correcto? ¿hay cadenas?).X-Robots-Tag(¿haynoindexaccidental?).- Variaciones por user-agent (si sospechas cloaking o reglas específicas):
curl -I -A "Googlebot" https://tudominio.com/urlcurl -I -A "Mozilla/5.0" https://tudominio.com/urlPaso 3: usar DevTools para ver renderizado, recursos bloqueados y canonicals
En el navegador, revisa:
- Network: códigos HTTP reales, redirecciones, recursos 404/5xx, tiempos.
- Elements: presencia de
<meta name="robots">,<link rel="canonical">, hreflang si aplica. - Application/Storage: si hay redirecciones basadas en cookies/geo que afecten a bots.
Patrones típicos a detectar:
- Canonical apuntando a otra URL por error (por ejemplo, todas las fichas canonizan a la home).
- Plantillas que devuelven 200 con contenido “vacío” (soft-404).
- Recursos críticos bloqueados o fallando (JS/CSS) que impiden renderizar contenido.
Paso 4 (conceptual): analizar logs del servidor (qué hacen realmente los bots)
Los logs permiten validar si el bot rastrea lo que te importa, con qué frecuencia y qué errores encuentra. No necesitas “adivinar”: lo ves.
Qué campos son útiles (según formato): timestamp, método, URL, código, user-agent, IP, referer, bytes, tiempo de respuesta.
Qué buscar:
- Bots: filtra por user-agent (Googlebot, Bingbot) y valida que sean reales si tu sistema lo requiere (a nivel conceptual: reverse DNS/allowlist).
- Frecuencia: qué rutas reciben más rastreo (¿se está desperdiciando en filtros, parámetros, paginación infinita?).
- Códigos: picos de 404/5xx, 429, redirecciones masivas.
- Rutas: endpoints no deseados (búsqueda interna, URLs con parámetros), sitemaps, páginas huérfanas (si nunca aparecen en logs, quizá no están enlazadas).
- Rendimiento: tiempos altos en rutas clave (pueden reducir rastreo efectivo).
Ejemplo de preguntas que los logs responden:
- ¿Googlebot está intentando rastrear URLs con parámetros que queríamos bloquear?
- ¿Hay 5xx intermitentes en fichas de producto durante picos de tráfico?
- ¿Se rastrea el sitemap con regularidad y devuelve 200?
- ¿Qué porcentaje del rastreo termina en 3xx (cadenas) o 404?
Criterios para decidir qué páginas deben indexarse (y cuáles bloquear/noindex)
Regla base: indexa lo que aporte valor único y demanda
Una URL candidata a indexación suele cumplir:
- Intención clara: responde a una búsqueda real (informacional, transaccional, navegacional).
- Contenido único: no es duplicado de otra URL (o tiene canonical bien definido).
- Accesible: 200 estable, sin dependencias frágiles, sin 5xx/soft-404.
- Enlazada internamente: forma parte de la arquitectura (no huérfana).
Cuándo usar noindex
- Páginas necesarias para el usuario pero sin valor en buscadores: carritos, checkout, áreas privadas, resultados de búsqueda interna.
- Variantes duplicadas que deben existir pero no competir: combinaciones de filtros, parámetros de tracking, ordenaciones.
- Páginas de baja calidad inevitable (por ejemplo, perfiles vacíos) mientras no puedas mejorar contenido.
Implementación típica:
<meta name="robots" content="noindex,follow">Cuándo bloquear con robots.txt
- Para reducir rastreo en zonas que generan infinitas URLs o consumen presupuesto (filtros, parámetros, endpoints técnicos).
- Para evitar que bots accedan a rutas que no deben ni solicitarse (por carga o seguridad operativa), siempre que no necesites que se procese
noindexallí.
Ejemplo orientado a parámetros (conceptual; depende de tu routing):
User-agent: *Disallow: /*?sort=Disallow: /*?utm_Cuándo devolver 404/410
- Contenido eliminado sin equivalente.
- URLs generadas por errores (typos, rutas antiguas sin mapeo).
- Listados que no deberían existir (categorías inexistentes) para evitar soft-404 con 200.
Cuándo redirigir (301) en lugar de eliminar
- Reestructuración de URLs (slug changes, migraciones).
- Consolidación de duplicados reales (dos URLs para el mismo contenido) cuando no puedes resolver con canonical por sí solo.
Guía práctica paso a paso: control y diagnóstico en una URL problemática
1) Define el estado esperado
- ¿Debe indexarse? (sí/no)
- ¿Cuál es su canonical esperado?
- ¿Qué código HTTP debe devolver? (200/301/404…)
2) Verifica el código y las cabeceras
curl -IL https://tudominio.com/url- Si ves 3xx: ¿hay más de un salto? ¿el destino final es 200?
- Si ves 200: comprueba si hay
X-Robots-Tag: noindexaccidental. - Si ves 4xx/5xx: prioriza corrección (o mapeo a 301/410 según el caso).
3) Inspecciona el HTML renderizado (DevTools)
- ¿Existe
<meta name="robots" content="noindex">? - ¿El canonical apunta a sí misma o a otra URL?
- ¿El contenido está realmente presente o es una plantilla vacía (soft-404)?
4) Decide la acción correcta
- Indexable pero no indexada: mejora señales (contenido, enlazado interno), elimina noindex/canonical erróneo, corrige soft-404.
- No debería indexarse: aplica
noindex,follow(si quieres que pase autoridad por enlaces) o bloquea rastreo si el objetivo es ahorrar presupuesto y no necesitas que se procese el HTML. - URL inexistente: devuelve 404/410 o 301 a sustituto real.
5) Valida con logs (si tienes acceso)
- Confirma que el bot vuelve a rastrear la URL tras el cambio.
- Comprueba que el código servido al bot es el esperado (200/301/404) y que no hay 5xx intermitentes.
- Verifica que el rastreo se concentra en rutas importantes y no en combinaciones infinitas.