Un scraping exitoso indica lo que devolvió la página. No demuestra que el estado representado por la página siga vigente. Son dos preguntas distintas.
- Actualidad → ¿Este contenido es reciente o es una copia reutilizada de la caché de Firecrawl? Se controla mediante
maxAge. - Vigencia → ¿Lo subyacente sigue existiendo y está activo? Tu aplicación lo determina a partir de la evidencia disponible.
Esta guía explica la diferencia, analiza la disyuntiva de maxAge y ofrece una lista de verificación y un ejemplo práctico para acciones sensibles a la actualidad.
Comparación rápida#
| Actualidad | Vigencia | |
|---|---|---|
| Pregunta | ¿Este contenido es reciente o proviene de la caché? | ¿El objeto que describe la página sigue activo? |
| Lo controlas con | El parámetro de solicitud maxAge | Tu propia lógica de dominio |
| Firecrawl informa | metadata.cacheState ("hit" o "miss") y metadata.cachedAt en caso de acierto | Nada directamente; solo indicios en la página |
| Información disponible | Si la respuesta proviene de la caché | Contenido de la página, metadata.statusCode y metadata.url frente a metadata.sourceURL |
| ¿Un HTTP 200 con contenido lo confirma? | No — un 200 no indica la antigüedad del contenido | No — un 200 solo describe la respuesta de la página |
El equilibrio entre actualidad y rendimiento (maxAge)#
Firecrawl almacena en caché páginas extraídas previamente y devuelve una copia reciente cuando hay una disponible, lo que reduce la latencia. maxAge es la antigüedad máxima, en milisegundos, de una copia en caché que Firecrawl puede devolver en lugar de recuperar la página de nuevo.
- Omita
maxAge: Firecrawl puede devolver contenido almacenado recientemente en caché. El período predeterminado es de 2 días; Firecrawl puede usar un período diferente para algunos sitios. - Establezca
maxAge: 0: Firecrawl omite la caché para esa solicitud y recupera la página. Esto sacrifica latencia y fiabilidad a cambio de una recuperación más reciente.
Mantenga la caché activada de forma predeterminada. Asuma el costo de latencia de maxAge: 0 solo para las lecturas en las que contenido desactualizado podría provocar una decisión incorrecta o costosa; no cambia el costo de la página en créditos.
metadata.cacheState se devuelve cuando Firecrawl considera su caché para la solicitud, por lo que resulta útil para comprobarlo mientras ajusta maxAge. No forma parte de una respuesta con maxAge: 0, porque esa solicitud omite la caché por completo.
Para conocer el funcionamiento de la caché, los valores habituales de maxAge, las reglas de coincidencia para aciertos de caché y las opciones de solicitud que omiten la caché automáticamente, consulte Scraping más rápido.
Dónde se aplica maxAge#
| Endpoint | Comportamiento |
|---|---|
/scrape | maxAge se respeta en el cuerpo de la solicitud |
/crawl, /batch/scrape | maxAge se respeta dentro de scrapeOptions |
/search | Search aplica su propia ventana de actualización a las páginas que scrapea, por lo que maxAge en scrapeOptions no surte efecto |
/parse | /parse siempre procesa el archivo que proporcionas y nunca devuelve ni almacena contenido en caché, por lo que maxAge y storeInCache no surten efecto |
Si necesitas obtener una versión actualizada de una página que encontraste mediante /search, vuelve a hacer scraping de esa URL con /scrape y maxAge: 0.
La actualidad no implica vigencia#
Incluso con maxAge: 0, el resultado solo indica lo que devolvió la página en esa consulta. Una página puede devolver HTTP 200 con contenido y, aun así, reflejar un estado desactualizado, no disponible o que ha cambiado.
Por tanto, ni el código de estado ni la presencia de contenido determinan la vigencia. La vigencia es una conclusión a la que llega tu aplicación a partir de evidencia específica de la fuente.
Lista de verificación para acciones sensibles a la actualidad#
Antes de realizar una acción que dependa del estado actual, considere la salida del scraping como evidencia, no como prueba:
- Use
maxAge: 0para la recuperación final para que la respuesta no se sirva desde la caché. - No considere que un HTTP 200 o contenido no vacío prueban la vigencia del recurso.
- Inspeccione el contenido renderizado y la evidencia de redirecciones.
metadata.sourceURLes la URL solicitada;metadata.urles la URL que el motor indica para la respuesta. Si difieren, puede indicar una redirección a otro recurso. Que coincidan no prueba que no se haya producido ninguna redirección. - Prefiera API o identificadores específicos de la fuente cuando estén disponibles, ya que suelen exponer un estado explícito que una página renderizada oculta.
- Considere la evidencia no concluyente como
unknowny deténgase antes de realizar el paso costoso o irreversible, en lugar de asumir que el recurso está activo.
Ejemplo práctico: Recopilar evidencia de la página actual#
Omite la caché y recopila el contenido renderizado y los metadatos de la respuesta para aplicar las reglas de validación de tu aplicación. El scraping aporta evidencia; no determina el estado específico del dominio.
La separación clave está después de la recopilación: Firecrawl aporta evidencia de la página; tu aplicación la interpreta mediante reglas específicas de la fuente. Si esas reglas no son concluyentes, mantén el estado como unknown.
Recomendaciones por escenario#
| Escenario | Enfoque recomendado |
|---|---|
| Leer textos de productos, documentación o contenido de referencia | Omite maxAge y usa la ventana de caché predeterminada |
| Dashboard o informe actualizado según una programación | Usa un maxAge distinto de cero, ajustado al intervalo de actualización |
| Comprobación final antes de una acción que depende del estado actual | Usa maxAge: 0 para omitir la caché + la lista de verificación anterior |
| Confirmar que un objeto sigue realmente activo | Prioriza la API o el campo de estado de la fuente; considera el scraping únicamente como evidencia |
| Página renderizada ambigua (200, pero sin señal positiva) | Clasifícala como unknown; detente antes del paso irreversible |
Conclusiones clave#
-
La actualidad y la vigencia son conceptos distintos.
maxAgecontrola la actualidad; la vigencia se determina a partir de la evidencia. -
Una respuesta HTTP 200 con contenido no demuestra que el estado representado esté actualizado.
-
Para acciones sensibles a la actualidad, usa
maxAge: 0y sigue la lista de verificación. Inspecciona el contenido renderizado, comparametadata.urlconmetadata.sourceURLpara detectar posibles redirecciones y prioriza las API específicas de la fuente. -
Considera la evidencia no concluyente como
unknown. Un scraping por sí solo nunca debe cambiar el estado de un objeto aactive; detente antes de realizar pasos costosos o irreversibles. -
Firecrawl no tiene un campo de vigencia. Tu aplicación realiza esa determinación según los términos de su propio dominio.

