Presupuesto de rastreo: guía práctica para plataformas grandes
Cómo diagnosticar el presupuesto de rastreo en un sitio grande con logs, Search Console y patrones de URL, y después reducir el desperdicio sin bloquear las páginas importantes.
El presupuesto de rastreo (crawl budget) es el número de páginas que Googlebot está dispuesto a rastrear en tu sitio durante un periodo determinado. En sitios pequeños es prácticamente ilimitado. En plataformas con millones de URL se convierte en un recurso estratégico: el bot lo gasta en filtros, paginación, plantillas vacías y páginas de staging en lugar de rastrear el contenido prioritario. El resultado son retrasos en la indexación de productos nuevos, una cobertura débil del catálogo y pérdida de posiciones.
Exceso de rastreo
Proporción típica entre URL rastreadas y páginas realmente valiosas en un e-commerce sin optimizar
Perdido en duplicados
Parte del presupuesto que consumen las URL con parámetros y la paginación cuando no hay ninguna medida aplicada
Retraso de indexación
Retraso típico hasta que un SKU nuevo aparece en el índice cuando el presupuesto está saturado
Umbral de problema
Las plataformas con más de 50 000 URL ya notan los efectos de las limitaciones del presupuesto de rastreo
Paso 1: recopilar y analizar los logs del rastreador
Los logs del servidor web son la fuente principal de verdad sobre lo que Googlebot rastrea de verdad. El análisis de logs muestra la frecuencia real de las peticiones, qué secciones ignora el bot o en cuáles se atasca, y qué respuestas HTTP devuelve el servidor. Sin logs, cualquier optimización es una suposición.
Cómo extraer las peticiones de Googlebot de Nginx o Apache
# Filter only Googlebot requests from the last 7 days
grep 'Googlebot' /var/log/nginx/access.log \
| awk '{print $7}' \
| sort | uniq -c | sort -rn \
| head -50
# HTTP status codes seen by Googlebot
grep 'Googlebot' /var/log/nginx/access.log \
| awk '{print $9}' \
| sort | uniq -c | sort -rn
# Top URLs returning 404 to Googlebot
grep 'Googlebot' /var/log/nginx/access.log \
| awk '$9 == "404" {print $7}' \
| sort | uniq -c | sort -rn | head -30Para analizar en detalle grandes volúmenes de logs, usa herramientas especializadas: Screaming Frog Log File Analyser, Semrush Log Analyser o una pila ELK (Elasticsearch + Kibana). Agrupan las URL por patrón de forma automática y dibujan la frecuencia de rastreo a lo largo del tiempo.
| Métrica | Qué muestra | Rango objetivo |
|---|---|---|
| Frecuencia de rastreo (peticiones/día) | Intensidad de rastreo: cuántas páginas pide Googlebot al día | Depende de la plataforma; vigila la tendencia |
| Páginas rastreadas al día | URL únicas rastreadas al día: el KPI principal del presupuesto | Debería subir tras la optimización |
| Proporción de 200 / (301+302) / 404 / 500 | Peso de cada tipo de respuesta HTTP entre todas las peticiones del bot | 200 > 90 %; 404 < 5 %; 500 ≈ 0 % |
| % de URL duplicadas en el rastreo | Proporción de URL con parámetros y duplicadas en el log | Menos del 15 % tras la optimización |
| Páginas nuevas / total rastreado | Relación entre los primeros rastreos y las visitas repetidas | Busca aumentar la proporción de páginas nuevas |
Paso 2: Google Search Console y análisis de las respuestas del servidor
Google Search Console ofrece datos de rastreo agregados sin necesidad de acceso a los logs del servidor. El informe Estadísticas de rastreo (Crawl Stats) es el punto de partida. Muestra el número medio de peticiones diarias, la velocidad de carga de las páginas según la percibe Googlebot y la distribución de los códigos de respuesta.
- GSC → Configuración → Estadísticas de rastreo: gráfico de peticiones de rastreo, desglose por tipo de archivo y código de respuesta. Busca picos de 404 o 500 y caídas después de los despliegues.
- GSC → Indexación → Páginas: número de URL indexadas frente a los motivos de no indexación. «Detectada, actualmente sin indexar» es una señal directa de presupuesto de rastreo escaso.
- GSC → Inspección de URL: comprobación manual del estado de una página concreta: cuándo se rastreó por última vez y qué vio Googlebot.
- GSC → Configuración → Frecuencia de rastreo: puedes limitar la frecuencia si el bot sobrecarga el servidor. Normalmente no hace falta; limítala solo si tienes problemas de rendimiento medibles.
Fuentes de desperdicio del presupuesto de rastreo
En una plataforma grande el bot pierde presupuesto por seis fuentes típicas. Identifica cada una en tus logs y estima su volumen: así sabrás en qué orden optimizar.
URL con parámetros
?sort=price&filter=red&page=3 genera un número exponencial de URL únicas con contenido idéntico o casi idéntico.
Paginación infinita
/catalog?page=N: miles de URL con valor decreciente. El bot puede rastrear sin fin las páginas antiguas del catálogo.
Contenido duplicado
Páginas idénticas en URL distintas: /category/ y /category?utm_source=email, HTTP y HTTPS, www y sin www.
Páginas temporales
Landings de webinars, maquetas de demo, ?preview=1 y borradores: aparecen y desaparecen, pero el bot sigue gastando presupuesto en ellos.
Plantillas vacías
Categorías sin productos, perfiles sin contenido, páginas de etiquetas generadas automáticamente: contenido de baja calidad producido por miles.
Parámetros de sesión
?sessionid=abc123, ?token=xyz: URL únicas por sesión. Para el bot, cada una es una «página nueva».
Parámetros de URL y duplicados: cómo corregirlos
Las URL con parámetros son la mayor fuente de desperdicio en plataformas de e-commerce. No hay una solución única: la correcta depende de la naturaleza del parámetro.
| Tipo de parámetro | Ejemplo | Acción recomendada |
|---|---|---|
| Ordenación | ?sort=price_asc | Disallow en robots.txt o canonical a la página sin parámetro |
| Filtros sin contenido único | ?color=red&size=XL | Canonical a la página de categoría limpia + noindex mediante meta robots |
| Paginación | ?page=5 | Canonical de las páginas 2 y siguientes a la página 1 (o Disallow para paginación profunda) |
| Seguimiento / UTM | ?utm_source=email | Canonical a la URL sin UTM en cada página, o gestión de parámetros en GSC |
| Sesiones / tokens | ?sessionid=abc | Disallow: /*?sessionid= en robots.txt; corregir la generación de URL en el código |
| Vista previa / borrador | ?preview=1&draft=true | Disallow: /*?preview= y /*?draft= en robots.txt |
# robots.txt — blocking parametric URLs
User-agent: *
# Sort and filter parameters
Disallow: /*?sort=
Disallow: /*?order=
Disallow: /*?filter=
Disallow: /*?color=
Disallow: /*?size=
# Pagination deeper than page 3 (Allow/Disallow approach)
Disallow: /*?page=
Allow: /*?page=1
Allow: /*?page=2
Allow: /*?page=3
# Session and tracking parameters
Disallow: /*?sessionid=
Disallow: /*?token=
Disallow: /*?ref=
Disallow: /*?utm_
# Preview and drafts
Disallow: /*?preview=
Disallow: /*?draft=Filtros, facetas y paginación
La navegación por facetas es el caso más complejo. Genera una explosión combinatoria de URL: 10 filtros con 5 valores cada uno pueden dar más de un millón de combinaciones. El objetivo es conservar las facetas valiosas (marca + categoría) y bloquear las combinaciones inútiles.
- Identifica las facetas valiosas: páginas con mucho tráfico orgánico o contenido SEO propio (por ejemplo, /catalog/nike/ con texto específico de la marca). Mantenlas en el índice con un canonical que apunte a sí misma.
- Añade noindex + follow a las combinaciones de poco valor: la página se renderiza (sus enlaces se siguen), pero no entra en el índice. Usa
<meta name="robots" content="noindex, follow">en la plantilla cuando haya más de una faceta activa. - Bloquea con Disallow los parámetros puramente técnicos: ordenación, color y talla. Si no aportan valor SEO, bloquéalos en robots.txt.
- Facetas cargadas por AJAX: si las facetas se cargan con JavaScript sin reflejarse en la URL, el bot no ve URL adicionales. Así se resuelve el problema a nivel de arquitectura.
Paginación: canonical frente a Disallow
La estrategia de paginación óptima depende de la escala: hasta 10 páginas, permite el rastreo y añade un canonical que apunte a la página 1 en las páginas 2 y siguientes. Con cientos de páginas de paginación, usa Disallow a partir de la página 3–5. El scroll infinito sin parámetros en la URL lo trata el bot como una sola página, y eso es bueno para el presupuesto.
Páginas temporales: webinars, maquetas y demos
Las páginas temporales son una fuga oculta de presupuesto en plataformas con equipos de marketing activos. Landings de webinars, maquetas de demo, páginas de vista previa para clientes y variantes de tests A/B aparecen rápido y a menudo se quedan para siempre, gastando presupuesto de rastreo sin que nadie lo note.
- meta robots noindex: añade
<meta name="robots" content="noindex, nofollow">a la plantilla de todas las páginas temporales. El bot la visita, lee la directiva y excluye la URL del índice. Es el método más sencillo si tienes acceso a la plantilla. - Cabecera HTTP X-Robots-Tag: si las páginas temporales no tienen plantilla HTML propia (por ejemplo, PDF o archivos generados), usa la cabecera de respuesta HTTP:
X-Robots-Tag: noindex, nofollow. - Disallow por prefijo de ruta: si las páginas temporales viven en prefijos de ruta previsibles, bloquéalas en robots.txt. No garantiza que salgan del índice si la URL ya está indexada, pero las URL nuevas dejarán de rastrearse.
- Autenticación HTTP: en páginas de staging y de vista previa, es el único método fiable de aislamiento total. Googlebot no tiene credenciales y no rastreará la página.
noindex en la etiqueta y en la cabecera HTTP:# robots.txt — patterns for temporary pages
User-agent: *
# Webinars and events
Disallow: /webinars/
Disallow: /events/draft-
Disallow: /landing/test-
# Mockups and previews
Disallow: /_preview/
Disallow: /mockups/
Disallow: /demo/
# A/B tests and experiments
Disallow: /*?variant=
Disallow: /*?experiment=
Disallow: /*?ab_test=
# Template preview parameters
Disallow: /*?preview=
Disallow: /*?draft=
Disallow: /*?revision=Índice de sitemaps a gran escala
Con millones de URL, un único sitemap XML no es práctico: está limitado a 50 000 URL y 50 MB. Un Sitemap Index es un archivo de índice que apunta a sitemaps hijos. Permite estructurar prioridades y dirigir el presupuesto allí donde más hace falta.
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<!-- Priority sections — crawled first -->
<sitemap>
<loc>https://example.com/sitemap-products.xml</loc>
<lastmod>2026-05-15</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-categories.xml</loc>
<lastmod>2026-05-15</lastmod>
</sitemap>
<!-- Lower-priority sections -->
<sitemap>
<loc>https://example.com/sitemap-blog.xml</loc>
<lastmod>2026-05-10</lastmod>
</sitemap>
<!-- Do NOT include noindex pages or duplicates! -->
</sitemapindex>- Separa los sitemaps por tipo de contenido: productos, categorías, blog y páginas estáticas, cada uno en su archivo. Así puedes ver en GSC las estadísticas de cada sección por separado.
- Mantén honesto el lastmod: lastmod indica al bot lo reciente que es el contenido. Pon la fecha del último cambio real, no la de hoy; si no, el bot dejará de fiarse de esa señal.
- Excluye las URL bloqueadas: las páginas con noindex o Disallow no deben aparecer en el sitemap, porque mandan señales contradictorias al bot.
- Límite de cada sitemap hijo: cada archivo hijo admite como máximo 50 000 URL o 50 MB (comprimido). Si lo superas, divídelo en partes: sitemap-products-1.xml, sitemap-products-2.xml.
Configuración del servidor y limitación de tasa (rate limiting)
El servidor afecta al presupuesto de rastreo en ambos sentidos: las respuestas lentas obligan a Googlebot a reducir la intensidad de rastreo, y los errores 5xx hacen que el bot espere y malgaste tiempo en reintentos. Optimizar el servidor mejora directamente la eficiencia del rastreo.
| Código HTTP | Cómo lo interpreta Googlebot | Acción recomendada |
|---|---|---|
| 200 OK | La página existe; el bot la rastrea e indexa | Lo normal en las páginas públicas |
| 301/302 | Redirección: el bot la sigue y gasta presupuesto en ambas URL | Minimiza las cadenas de redirecciones; corrige los enlaces rotos |
| 404 Not Found | La página no existe; el bot deja de rastrear esa URL | Aceptable en páginas eliminadas; más del 5 % de 404 en los logs de Googlebot es un problema |
| 429 Too Many Requests | Limitación temporal: el bot reduce la frecuencia de rastreo | Úsalo solo con carga real del servidor; Googlebot respeta el 429 |
| 503 Service Unavailable | No disponibilidad temporal: el bot volverá más tarde | Respuesta correcta durante el mantenimiento; no abuses de ella |
| 500 Server Error | Error del servidor: el bot reintenta y gasta presupuesto | Elimina las causas de los 500; cada 5xx es presupuesto perdido |
# Nginx: return 429 when any crawler sends too many requests
limit_req_zone $http_user_agent zone=crawlers:10m rate=10r/s;
location / {
limit_req zone=crawlers burst=20 nodelay;
limit_req_status 429;
# ... other settings
}KPI y monitorización
El presupuesto de rastreo requiere monitorización continua: cualquier despliegue puede abrir por accidente miles de URL nuevas con parámetros. Configura un panel semanal y una revisión mensual de estas métricas.
- Semanal: compara las peticiones de rastreo en GSC de esta semana y de la anterior. Un pico repentino indica duplicados nuevos introducidos por un despliegue reciente.
- Mensual: revisa en GSC → Páginas el estado «Detectada, actualmente sin indexar». Si crece sin que cambie el tamaño del sitio, hay un problema de presupuesto de rastreo.
- Tras cada despliegue importante: rastrea el sitio con Screaming Frog y comprueba el número de URL únicas. Compáralo con la captura anterior.
- Trimestral: análisis completo de logs de 30 días. Busca nuevos patrones de URL con parámetros que genere el código actualizado.
- Alertas: configura una notificación si las respuestas 5xx superan el 1 % de todas las peticiones de Googlebot en un mismo día.
Mejoras rápidas y hoja de ruta
Optimizar el presupuesto de rastreo no es una tarea puntual, es un proceso. Divide el trabajo en mejoras rápidas (efecto en 1–2 semanas) y cambios sistémicos (de 1 a 3 meses).
Añade noindex a las plantillas de webinars, maquetas y demos. Añade Disallow para ?preview= y ?draft= en robots.txt.
?utm_, ?sessionid= y ?ref= a robots.txt. Canonical para las versiones con UTM en todas las plantillas.
Divide en sitemaps temáticos. Quita del sitemap las páginas con noindex. Añade un lastmod honesto.
Identifica las combinaciones de facetas valiosas y las inútiles. Aplica noindex + follow a las combinaciones de poco valor.
Elimina las cadenas de redirecciones. Reduce los 404 según los logs. Optimiza el TTFB de las secciones rastreadas.
Panel de GSC, alertas de 5xx y análisis trimestral de logs. Revisa tras cada despliegue importante.
Lista de mejoras rápidas
- noindex añadido a todas las plantillas de páginas temporales (webinars, maquetas, demos)
- Disallow para ?preview=, ?draft=, ?sessionid=, ?utm_ en robots.txt
- Canonical a URL limpias en todas las páginas con parámetros (ordenación, paginación desde la página 2)
- Páginas con noindex y Disallow eliminadas del sitemap
- Índice de sitemaps dividido por sección, con lastmod correcto
- Cadenas de redirecciones reducidas a un único salto
- 404 en los logs de Googlebot por debajo del 5 %: enlaces muertos eliminados
- Panel de monitorización semanal configurado en GSC
Preguntas frecuentes
¿A partir de qué tamaño de sitio empieza a importar el presupuesto de rastreo?
¿Qué pesa más para el rastreo: el sitemap o los enlaces internos?
¿Ayuda un CDN al presupuesto de rastreo?
¿Cómo afecta canonical al presupuesto de rastreo?
¿Puedo acelerar la indexación de páginas nuevas después de optimizar el presupuesto?
Check it with SpiderHead
Free and local: run the audit on your own machine.



