スクレイピングが成功しても、そのページが返した内容がわかるだけです。ページが示す状態が最新であることまでは保証されません。これらは別の問題です。
- 鮮度 → このコンテンツは最新のものですか?それとも Firecrawl のキャッシュから再利用されたコピーですか?
maxAgeで制御します。 - 稼働性 → 対象となるものは現在も存在し、有効ですか?利用可能な証拠に基づいて、アプリケーション側で判断します。
このガイドでは、その違いと maxAge のトレードオフを説明し、鮮度が重要なアクションのためのチェックリストと具体例を紹介します。
簡単な比較#
| 鮮度 | 稼働性 | |
|---|---|---|
| 確認すること | このコンテンツは新しいか、それともキャッシュから再利用されたものか? | ページで説明されている対象は現在も有効か? |
| 制御方法 | maxAge リクエストパラメータ | 独自のドメインロジック |
| Firecrawlが報告する情報 | metadata.cacheState ("hit" または "miss") と、ヒット時の metadata.cachedAt | 直接的には何もなし — ページ上の情報のみ |
| 得られる根拠 | レスポンスがキャッシュから返されたかどうか | ページコンテンツ、metadata.statusCode、および metadata.url と metadata.sourceURL の比較 |
| コンテンツを含むHTTP 200で判断できるか? | いいえ — 200はコンテンツの鮮度を示すものではない | いいえ — 200が示すのはページレスポンスのみ |
鮮度とレイテンシのトレードオフ (maxAge)#
Firecrawl は、以前にスクレイピングしたページをキャッシュし、利用可能な場合は新しいコピーを返すことでレイテンシを削減します。maxAge は、Firecrawl がページを再取得せずに返せるキャッシュ済みコピーの最大経過時間 (ミリ秒) です。
maxAgeを省略: Firecrawl は最近キャッシュされたコンテンツを返す場合があります。デフォルトの期間は 2 日間ですが、一部のサイトでは異なる期間が使用される場合があります。maxAge: 0を設定: Firecrawl はそのリクエストではキャッシュを使用せず、ページを取得します。より新しい取得結果を得る代わりに、レイテンシと信頼性が犠牲になります。
キャッシュはデフォルトで有効にしておくことを推奨します。古いデータによって誤った判断やコストの高い判断につながる読み取りに限り、maxAge: 0 によるレイテンシコストを負担してください。ページあたりに消費されるクレジット数は変わりません。
metadata.cacheState は、Firecrawl がリクエストに対してキャッシュを検討した場合に返されるため、maxAge の調整時に役立つ確認項目です。maxAge: 0 のレスポンスには含まれません。このリクエストではキャッシュが完全にスキップされるためです。
キャッシュの仕組み、一般的な maxAge の値、キャッシュヒットの照合ルール、キャッシュを自動的にバイパスするリクエストオプションについては、高速スクレイピングを参照してください。
maxAge が適用される箇所#
| エンドポイント | 動作 |
|---|---|
/scrape | リクエストボディ内の maxAge が適用されます |
/crawl, /batch/scrape | scrapeOptions 内の maxAge が適用されます |
/search | Search はスクレイピング対象のページに独自の鮮度期間を適用するため、scrapeOptions 内の maxAge は反映されません |
/parse | /parse は指定したファイルを常に処理し、キャッシュされたコンテンツの提供や保存は行わないため、maxAge と storeInCache は効果がありません |
/search で見つけたページを最新の状態で取得する必要がある場合は、その URL を /scrape で maxAge: 0 を指定して再度スクレイピングしてください。
鮮度は稼働性を意味しない#
maxAge: 0 を指定しても、結果が示すのは、その取得時にページが返した内容だけです。ページがコンテンツを含む HTTP 200 を返していても、古い状態、利用不能な状態、または何らかの変更が加えられた状態を示している場合があります。
したがって、ステータスコードもコンテンツの有無も、稼働性を判断する決め手にはなりません。稼働性は、ソース固有の根拠に基づいてアプリケーションが導き出す結論です。
鮮度が重要なアクションのチェックリスト#
現在の状態に依存するアクションを実行する前には、スクレイピングの出力を証拠であって、確証ではないものとして扱ってください。
- 最終取得には
maxAge: 0を使用し、レスポンスがキャッシュから返されないようにします。 - HTTP 200 や空でないコンテンツを、稼働中である確証と見なさないでください。
- レンダリングされたコンテンツとリダイレクトの兆候を確認します。
metadata.sourceURLはリクエストした URL、metadata.urlはエンジンがレスポンスの URL として報告するものです。両者が異なる場合、別のリソースへのリダイレクトを示している可能性があります。値が一致していても、リダイレクトが発生していない証拠にはなりません。 - 利用可能な場合は、ソース固有の API や識別子を優先してください。レンダリングされたページでは見えない明示的なステータスが提供されていることがよくあります。
- 判断不能な証拠は
unknownとして扱い、アクティブだと仮定せず、高コストまたは不可逆なステップに進む前に停止してください。
実践例: 現在のページの情報を収集する#
キャッシュをスキップし、アプリケーション独自の検証ルールに使用するレンダリングされたコンテンツとレスポンスメタデータを収集します。スクレイピングは判断材料を提供しますが、ドメイン固有の状態を判定するものではありません。
重要なのは、収集後の処理です。Firecrawl はページの判断材料を提供し、アプリケーションはソース固有のルールに基づいてそれを解釈します。ルールで判定できない場合は、状態を unknown のままにします。
シナリオ別の推奨事項#
| シナリオ | 推奨アプローチ |
|---|---|
| 製品説明、ドキュメント、または参照コンテンツを読む | maxAge を省略し、デフォルトのキャッシュ期間を使用する |
| 定期的に更新されるダッシュボードまたはレポート | 更新間隔に合わせてゼロ以外の maxAge を設定する |
| 現在の状態に依存するアクションの直前に行う最終確認 | maxAge: 0 でキャッシュをスキップし、上記のチェックリストを使用する |
| オブジェクトが実際にまだ有効であることを確認する | ソースの API またはステータスフィールドを優先し、スクレイピングは証拠としてのみ扱う |
| 曖昧なレンダリング済みページ (200 だが肯定的なシグナルがない) | unknown に分類し、不可逆なステップの前に停止する |
要点#
-
鮮度と稼働性は別の問題です。
maxAgeは鮮度を制御します。稼働性は、得られた証拠に基づいて判断します。 -
HTTP 200 とコンテンツがあっても、その状態が最新であることの証明にはなりません。
-
鮮度が重要なアクションでは、
maxAge: 0を使用し、チェックリストに従ってください。 レンダリングされたコンテンツを確認し、リダイレクトの可能性を示す証拠としてmetadata.urlとmetadata.sourceURLを比較し、ソース固有の API を優先してください。 -
判断に足る証拠がない場合は、
unknownとして扱います。 スクレイピングだけでオブジェクトをactiveにしてはなりません。コストが高い、または元に戻せない手順の前に停止してください。 -
Firecrawl には稼働性を示すフィールドはありません。 その判定は、アプリケーション側で独自のドメイン用語に基づいて行います。

