> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firecrawl.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Scraping más rápido

> Acelera tus scrapes un 500% con el parámetro maxAge

<div id="how-it-works">
  ## Cómo funciona
</div>

Firecrawl guarda en caché las páginas previamente extraídas y, de forma predeterminada, devuelve una copia reciente cuando está disponible.

* **Frescura predeterminada**: `maxAge = 172800000` ms (2 días). Si la copia en caché es más reciente que ese valor, se devuelve al instante; de lo contrario, Firecrawl vuelve a extraer y actualiza la caché.
* **Forzar datos frescos**: configura `maxAge: 0` para extraer siempre. Ten en cuenta que esto omite por completo la caché, por lo que cada solicitud pasa por todo el pipeline de scraping; esto hará que tarde más en completarse y tenga más probabilidades de fallar. Usa un `maxAge` distinto de cero si no necesitas contenido en tiempo real en cada solicitud.
* **Omitir caché**: configura `storeInCache: false` si no quieres almacenar los resultados de una solicitud.

Obtén tus resultados **hasta un 500% más rápido** cuando no necesites los datos más recientes. Controla la frescura con `maxAge`:

1. **Devuelve al instante** si tenemos una versión reciente de la página
2. **Extrae de nuevo** solo si nuestra versión es más antigua que la edad que especifiques
3. **Ahorra tiempo**: los resultados llegan en milisegundos en lugar de segundos

<div id="when-to-use-this">
  ## Cuándo usarlo
</div>

**Ideal para:**

* Documentación, artículos, páginas de producto
* Procesamiento por lotes
* Desarrollo y pruebas
* Creación de bases de conocimiento

**Evitar en:**

* Datos en tiempo real (precios de acciones, resultados en vivo, noticias de última hora)
* Contenido que se actualiza con frecuencia
* Aplicaciones sensibles al tiempo

<div id="usage">
  ## Uso
</div>

Añade `maxAge` a tu solicitud de scraping. Los valores se expresan en milisegundos (p. ej., `3600000` = 1 hora).

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl

  firecrawl = Firecrawl(
    # No se necesita API key para comenzar — añade una para límites de tasa más altos:
    # api_key="fc-YOUR_API_KEY",
  )

  # Usa datos en caché si tienen menos de 1 hora (3600000 ms)
  # ¡Esto puede ser hasta un 500% más rápido que hacer un scrape desde cero!
  scrape_result = firecrawl.scrape(
      'https://firecrawl.dev',
      formats=['markdown'],
      max_age=3600000  # 1 hour in milliseconds
  )

  print(scrape_result.markdown)
  ```

  ```javascript JavaScript theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({
    // No se necesita API key para empezar — añade una para límites de tasa más altos:
    // apiKey: "fc-YOUR_API_KEY",
  });

  // Usa los datos en caché si tienen menos de 1 hora (3600000 ms)
  // ¡Esto puede ser hasta un 500% más rápido que un scrape nuevo!
  const scrapeResult = await firecrawl.scrape('https://firecrawl.dev', {
    formats: ['markdown'],
    maxAge: 3600000 // 1 hora en milisegundos
  });

  console.log(scrapeResult.markdown);
  ```
</CodeGroup>

<div id="common-maxage-values">
  ## Valores comunes de maxAge
</div>

Aquí tienes algunos valores de referencia útiles:

* **5 minutos**: `300000` - Para contenido semidinámico
* **1 hora**: `3600000` - Para contenido que se actualiza cada hora
* **1 día**: `86400000` - Para contenido que se actualiza a diario
* **1 semana**: `604800000` - Para contenido relativamente estático

<div id="performance-impact">
  ## Impacto en el rendimiento
</div>

Con `maxAge` habilitado:

* **Respuestas hasta 5 veces más rápidas** para contenido reciente
* **Resultados instantáneos** en lugar de esperar a nuevas extracciones

<div id="important-notes">
  ## Notas importantes
</div>

* **Predeterminado**: `maxAge` es `172800000` (2 días)
* **Actual cuando haga falta**: Si nuestros datos son más antiguos que `maxAge`, hacemos un scraping nuevo automáticamente
* **Sin datos obsoletos**: Nunca recibirás datos más antiguos que el `maxAge` que especifiques
* **Créditos**: Los resultados almacenados en caché siguen costando 1 crédito por página. La caché mejora la velocidad y la latencia, no el consumo de créditos.

<div id="when-caching-is-bypassed">
  ### Cuando se omite la caché
</div>

La caché se omite automáticamente cuando tu solicitud incluye cualquiera de los siguientes elementos:

* `headers` personalizados
* `actions` (pasos de automatización del navegador)
* Un `profile` del navegador
* Formato `seguimientoDeCambios`
* Configuración personalizada de viewport o calidad de `screenshot`

<div id="cache-hit-matching">
  ### Coincidencia para un acierto de caché
</div>

Para que se produzca un acierto de caché, estos parámetros deben coincidir exactamente entre la solicitud original y las posteriores: `url`, `mobile`, `location`, `waitFor`, `blockAds`, `screenshot` (habilitado/deshabilitado y de página completa) y el modo stealth del proxy.

Puedes verificar el comportamiento de la caché consultando `metadata.cacheState` en la respuesta: será `"hit"` o `"miss"`.

<div id="faster-crawling">
  ## Rastreo más rápido
</div>

Los mismos beneficios de velocidad se aplican al rastrear varias páginas. Usa `maxAge` dentro de `scrapeOptions` para obtener resultados en caché de páginas que hemos visto recientemente.

<CodeGroup>
  ```python Python theme={null}
  from firecrawl import Firecrawl
  from firecrawl.v2.types import ScrapeOptions

  firecrawl = Firecrawl(api_key="fc-YOUR_API_KEY")

  # Rastreo con scraping en caché: hasta 500% más rápido para páginas vistas recientemente
  crawl_result = firecrawl.crawl(
      'https://firecrawl.dev',
      limit=100,
      scrape_options=ScrapeOptions(
          formats=['markdown'],
          max_age=3600000  # Use cached data if less than 1 hour old
      )
  )

  for page in crawl_result.data:
      print(f"URL: {page.metadata.source_url}")
      print(f"Content: {page.markdown[:200]}...")
  ```

  ```javascript JavaScript theme={null}
  import { Firecrawl } from 'firecrawl';

  const firecrawl = new Firecrawl({ apiKey: "fc-YOUR_API_KEY" });

  // Rastreo con scraping en caché: hasta 500% más rápido en páginas vistas recientemente
  const crawlResult = await firecrawl.crawl('https://firecrawl.dev', {
    limit: 100,
    scrapeOptions: {
      formats: ['markdown'],
      maxAge: 3600000 // Usar datos en caché si tienen menos de 1 hora de antigüedad
    }
  });

  crawlResult.data.forEach(page => {
    console.log(`URL: ${page.metadata.sourceURL}`);
    console.log(`Content: ${page.markdown.substring(0, 200)}...`);
  });
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.firecrawl.dev/v2/crawl \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer fc-TU_API_KEY' \
    -d '{
      "url": "https://firecrawl.dev",
      "limit": 100,
      "scrapeOptions": {
        "formats": ["markdown"],
        "maxAge": 3600000
      }
    }'
  ```
</CodeGroup>

Al rastrear con `maxAge`, cada página de tu rastreo se beneficiará de una mejora de velocidad del 500% si tenemos datos recientes en caché para esa página.

¡Empieza a usar `maxAge` hoy para obtener scrapes y rastreos muchísimo más rápidos!

> ¿Eres un agente de IA que necesita una clave de API de Firecrawl? Consulta [firecrawl.dev/agent-onboarding/SKILL.md](https://www.firecrawl.dev/agent-onboarding/SKILL.md) para ver las instrucciones de incorporación automatizada.
