Um scraping bem-sucedido informa o que a página retornou. Ele não comprova que o estado representado pela página ainda é válido. Essas são duas questões distintas.
- Atualidade → Este conteúdo é recente ou uma cópia reutilizada do cache do Firecrawl? Controlada por
maxAge. - Disponibilidade → O item subjacente ainda existe e está ativo? Sua aplicação determina isso com base nas evidências disponíveis.
Este guia explica a diferença, aborda o trade-off de maxAge e apresenta uma checklist e um exemplo prático para ações sensíveis à atualidade.
Comparação rápida#
| Atualidade | disponibilidade | |
|---|---|---|
| Pergunta | Este conteúdo é recente ou foi reutilizado do cache? | O objeto descrito pela página ainda está ativo? |
| Você controla isso com | O parâmetro de request maxAge | Sua própria lógica de domínio |
| O Firecrawl informa | metadata.cacheState ("hit" ou "miss") e metadata.cachedAt em caso de acerto | Nada diretamente — apenas evidências da página |
| Evidências disponíveis | Se a response veio do cache | Conteúdo da página, metadata.statusCode e metadata.url em comparação com metadata.sourceURL |
| Um HTTP 200 com conteúdo resolve isso? | Não — um 200 não diz nada sobre a atualidade do conteúdo | Não — um 200 descreve apenas a response da página |
O equilíbrio entre atualidade e desempenho (maxAge)#
O Firecrawl armazena em cache páginas extraídas anteriormente e retorna uma cópia recente quando disponível, reduzindo a latência. maxAge é a idade máxima, em milissegundos, de uma cópia em cache que o Firecrawl pode retornar em vez de recuperar a página novamente.
- Omita
maxAge: o Firecrawl pode retornar conteúdo armazenado em cache recentemente. A janela padrão é de 2 dias; o Firecrawl pode usar uma janela diferente para alguns sites. - Defina
maxAge: 0: o Firecrawl ignora o cache para essa solicitação e recupera a página. Isso troca latência e confiabilidade por uma recuperação mais atualizada.
Mantenha o cache ativado por padrão. Pague o custo de latência de maxAge: 0 apenas nas leituras em que conteúdo desatualizado poderia levar a uma decisão incorreta ou custosa — isso não altera o custo da página em créditos.
metadata.cacheState é retornado quando o Firecrawl considera o cache para a solicitação, portanto é útil para verificação enquanto você ajusta maxAge. Ele não faz parte de uma resposta com maxAge: 0, porque essa solicitação ignora o cache por completo.
Para detalhes sobre o funcionamento do cache, valores comuns de maxAge, regras de correspondência para acertos de cache e as opções de solicitação que ignoram o cache automaticamente, consulte Scraping mais rápido.
Onde maxAge se aplica#
| Endpoint | Comportamento |
|---|---|
/scrape | maxAge é considerado no corpo da solicitação |
/crawl, /batch/scrape | maxAge é considerado em scrapeOptions |
/search | A busca aplica sua própria janela de atualização às páginas das quais faz scraping, portanto maxAge em scrapeOptions não tem efeito |
/parse | /parse sempre processa o arquivo fornecido e nunca retorna nem armazena conteúdo em cache, portanto maxAge e storeInCache não têm efeito |
Se precisar obter uma versão atualizada de uma página encontrada por meio de /search, faça scraping desse URL novamente com /scrape e maxAge: 0.
Atualidade não é disponibilidade#
Mesmo com maxAge: 0, o resultado informa apenas o que a página retornou naquela consulta. Uma página pode retornar HTTP 200 com conteúdo, mas ainda assim representar um estado desatualizado, indisponível ou alterado de alguma outra forma.
Portanto, nem o código de status nem a presença de conteúdo determinam a disponibilidade. A disponibilidade é uma conclusão que sua aplicação tira com base em evidências específicas da fonte.
Checklist de Ações Sensíveis à Atualidade#
Antes de realizar uma ação que dependa do estado atual, trate o resultado do scraping como evidência, não prova:
- Use
maxAge: 0na recuperação final para que a resposta não seja servida do cache. - Não considere HTTP 200 ou conteúdo não vazio como prova de atividade.
- Inspecione o conteúdo renderizado e as evidências de redirecionamento.
metadata.sourceURLé a URL solicitada;metadata.urlé a URL que o mecanismo informa para a resposta. Quando elas diferem, isso pode indicar um redirecionamento para outro recurso. Valores idênticos não comprovam que não houve redirecionamento. - Prefira APIs ou identificadores específicos da fonte quando disponíveis — eles geralmente expõem um status explícito que uma página renderizada oculta.
- Trate evidências inconclusivas como
unknowne interrompa antes da etapa cara ou irreversível, em vez de presumir que está ativo.
Exemplo Prático: Coleta de Evidências da Página Atual#
Ignore o cache e colete o conteúdo renderizado e os metadados da resposta para aplicar as regras de validação da sua aplicação. O scraping fornece evidências; não determina o estado específico do domínio.
O ponto-chave é o que acontece após a coleta: o Firecrawl fornece evidências da página; sua aplicação interpreta essas evidências com regras específicas da fonte. Se essas regras forem inconclusivas, mantenha o estado como unknown.
Recomendações por cenário#
| Cenário | Abordagem recomendada |
|---|---|
| Ler descrições de produtos, documentação ou conteúdo de referência | Omita maxAge e use a janela de cache padrão |
| Painel ou relatório atualizado conforme um agendamento | Use um maxAge diferente de zero, ajustado ao seu intervalo de atualização |
| Verificação final antes de uma ação que depende do estado atual | Use maxAge: 0 para ignorar o cache + a lista de verificação acima |
| Confirmar que um objeto continua realmente ativo | Prefira a API ou o campo de status da fonte; trate o scraping apenas como evidência |
| Página renderizada ambígua (200, mas sem sinal positivo) | Classifique como unknown; interrompa antes da etapa irreversível |
Principais conclusões#
-
Atualidade e disponibilidade são questões distintas.
maxAgecontrola a atualidade; a disponibilidade é uma decisão que você toma com base em evidências. -
Um HTTP 200 com conteúdo não comprova que o estado representado é atual.
-
Para ações sensíveis à atualidade, use
maxAge: 0e siga a lista de verificação. Inspecione o conteúdo renderizado, comparemetadata.urlcommetadata.sourceURLem busca de possíveis evidências de redirecionamento e prefira APIs específicas da fonte. -
Trate evidências inconclusivas como
unknown. Um scraping, por si só, nunca deve classificar um objeto comoactive; interrompa antes de etapas caras ou irreversíveis. -
O Firecrawl não tem um campo de disponibilidade. Sua aplicação faz essa determinação nos termos do próprio domínio.

