Crawl Budget: Cómo calcularlo correctamente usando logs de servidor

Tabla de Contenidos

Mi web tiene 50.000 páginas pero Google solo rastrea 500 al día. ¿Es poco o es mucho? Esta pregunta me la hacen cada semana, y la respuesta siempre es la misma: depende. ¿De qué depende? 🎶 Lo veremos ahora 🙂

El crawl budget no es una cifra mágica que Google te comunica por email. Es un concepto que tienes que calcular, entender y optimizar basándote en datos reales. Y la única fuente confiable para hacerlo son los logs de tu servidor, sí también puedes ver algunos datos en GSC, pero no tan exactos:

En VisibilidadOn hemos calculado crawl budgets desde webs de 100 páginas hasta monstruos de varios millones de URLs. La diferencia entre hacerlo bien y hacerlo mal puede significar que tu contenido nuevo tarde días en indexarse o meses.

Hoy te enseño la metodología exacta que usamos para calcular crawl budget, interpretarlo correctamente, y usarlo para tomar decisiones SEO inteligentes.

Qué es realmente el crawl budget (más allá de la teoría)

Google define crawl budget como «el número de URLs que Googlebot puede y quiere rastrear«. Pero esa definición no te sirve para nada práctico.

La definición que sí importa: es la cantidad máxima de páginas que Google está dispuesto a visitar en tu web durante un período específico, influenciado por la velocidad de tu servidor, la frecuencia de tus actualizaciones, y la autoridad de tu dominio.

Por qué necesitas calcularlo:

  • Para saber si Google puede indexar todo tu contenido importante
  • Para detectar si estás malgastando presupuesto en páginas inútiles
  • Para predecir cuánto tardará en indexarse contenido nuevo
  • Para justificar inversiones técnicas en velocidad o arquitectura

La metodología de cálculo: 4 métricas que importan

1. Crawl rate (páginas por día)

Qué mides: Cuántas páginas únicas rastrea Google cada 24 horas.

Cómo calcularlo desde logs:

# Extrae solo peticiones de Googlebot
grep "Googlebot" access.log > googlebot.log

# Cuenta URLs únicas por día
grep "2025-01-15" googlebot.log | awk '{print $7}' | sort | uniq | wc -l

Ejemplo real: Si Google visitó 1.247 URLs únicas el martes, tu crawl rate ese día fue 1.247 páginas.

2. Crawl frequency (frecuencia de revisitas)

Qué mides: Con qué frecuencia Google vuelve a las mismas páginas.

Por qué importa: Una página rastreada 10 veces en un día consume 10 veces más presupuesto que una rastreada una vez.

Cálculo:

# Total de peticiones de Googlebot en un día
grep "2025-01-15" googlebot.log | wc -l

# URLs únicas ese día
grep "2025-01-15" googlebot.log | awk '{print $7}' | sort | uniq | wc -l

# Frecuencia = Total peticiones / URLs únicas

Interpretación:

  • Frecuencia 1.0 = Google rastrea cada página una vez (eficiente)
  • Frecuencia 2.5 = Google rastrea páginas 2.5 veces promedio (despilfarrando)
  • Frecuencia >3.0 = Problema serio de eficiencia

3. Crawl depth (profundidad efectiva)

Qué mides: Qué tan «profundo» llega Google en tu arquitectura de contenido.

Un caso revelador: Un cliente tenía artículos importantes enterrados a 7 clics de la home. Su crawl rate era alto (3.000 páginas/día) pero Google solo llegaba hasta profundidad 4. Resultado: contenido valioso sin indexar.

Cómo medirlo: Analiza las URLs rastreadas y clasifícalas por «distancia» desde la home:

  • Profundidad 1: Home, páginas principales del menú
  • Profundidad 2: Categorías, secciones
  • Profundidad 3: Artículos individuales, productos
  • Profundidad 4+: Contenido «enterrado»

4. Crawl efficiency (eficiencia del presupuesto)

La métrica que lo cambia todo: Porcentaje del crawl budget que va a contenido realmente importante vs. basura.

Aquí es importante recordar la importancia de una técnica muy conocida y usada en SEO, «la poda», es decir, acabar con aquellos contenidos que no aportan valor, que no están centrados en la temática en la que tenemos autoridad y que no están traccionando tráfico (o si).

Fórmula:

Eficiencia = (Páginas importantes rastreadas / Total páginas rastreadas) × 100

Clasificación de páginas:

  • Importantes: Artículos, productos, servicios, landing pages comerciales
  • Medio importantes: Categorías, archivos, páginas informativas
  • Basura: Páginas de búsqueda, parámetros UTM, archivos técnicos, paginación profunda

Benchmarks:

  • 80% = Excelente eficiencia
  • 60-80% = Buena eficiencia
  • 40-60% = Mejorable
  • <40% = Crisis, tu crawl budget se está malgastando

Calculando tu crawl budget: paso a paso

Paso 1: Recopila datos (1 semana mínimo)

Necesitas logs de al menos 7 días para tener datos representativos. Días sueltos pueden tener anomalías.

# Extrae actividad de Googlebot de una semana
for day in {01..07}; do
    grep "2025-01-$day.*Googlebot" access.log >> googlebot_week.log
done

Paso 2: Calcula métricas básicas

Crawl rate diario:

# Para cada día
for day in {01..07}; do
    echo "Día $day:"
    grep "2025-01-$day" googlebot_week.log | awk '{print $7}' | sort | uniq | wc -l
done

Crawl rate promedio: Suma los 7 días y divide entre 7.

Paso 3: Analiza distribución de contenido

Clasifica las URLs rastreadas:

URLs importantes (busca patrones como):

  • /articulo/, /producto/, /servicio/
  • Páginas con pocas profundidad de clic
  • Contenido actualizado recientemente

URLs problemáticas (busca patrones como):

  • ?page=, ?sort=, ?utm_
  • /buscar/, /archivo/2018/
  • Archivos técnicos: .css, .js, /wp-content/

Paso 4: Calcula la eficiencia

Ejemplo:
- Total URLs rastreadas en 7 días: 8.400
- URLs importantes rastreadas: 5.040
- Eficiencia: (5.040 / 8.400) × 100 = 60%

Herramientas para automatizar el cálculo

Script básico en Python

import re
from collections import Counter
from datetime import datetime

def calculate_crawl_budget(log_file):
    urls_per_day = {}
    total_requests = {}
    
    with open(log_file, 'r') as f:
        for line in f:
            if 'Googlebot' in line:
                # Extraer fecha y URL
                parts = line.split()
                date = parts[3][1:12]  # Formato [dd/MMM/yyyy
                url = parts[6]
                
                if date not in urls_per_day:
                    urls_per_day[date] = set()
                    total_requests[date] = 0
                
                urls_per_day[date].add(url)
                total_requests[date] += 1
    
    # Calcular métricas
    for date in urls_per_day:
        unique_urls = len(urls_per_day[date])
        total_reqs = total_requests[date]
        frequency = total_reqs / unique_urls if unique_urls > 0 else 0
        
        print(f"{date}: {unique_urls} URLs únicas, frecuencia {frequency:.2f}")

# Uso
calculate_crawl_budget('googlebot.log')

Herramientas profesionales

Para webs pequeñas:

Para webs grandes:

  • Botify (análisis completo pero caro)
  • OnCrawl (buen balance precio/características)

Optimizando según tu crawl budget

Si tu crawl budget es limitado (<500 páginas/día)

Prioridades:

  1. Maximizar eficiencia (>75%)
  2. Enfocar presupuesto en contenido comercial
  3. Bloquear agresivamente contenido técnico
  4. Limitar paginación profunda

Si tu crawl budget es abundante (>5000 páginas/día)

Oportunidades:

  1. Crear más contenido de calidad
  2. Experimentar con arquitecturas más complejas
  3. Permitir mayor profundidad de rastreo
  4. Optimizar para freshness (contenido fresco)

¿Qué te ha parecido este artículo?

¡Haz clic en las estrellas para valorarlo! 👇
1 estrella2 estrellas3 estrellas4 estrellas5 estrellas

Sé el primero en valorar este contenido ⭐

Cargando... 

Suscríbete a la Newsletter

Curso de link building