> ## 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.

# スクレイピングを高速化

> maxAge（キャッシュ）パラメータでスクレイプを最大5倍高速化

<div id="how-it-works">
  ## 仕組み
</div>

Firecrawl は過去にスクレイプしたページをキャッシュし、デフォルトでは利用可能な場合に新しいコピーを返します。

* **デフォルトの鮮度**: `maxAge = 172800000` ms（2日）。キャッシュのコピーがこの期間内に更新されていれば即時に返し、そうでなければ Firecrawl が新規にスクレイプしてキャッシュを更新します。
* **常に最新を取得**: 常にスクレイプするには `maxAge: 0` を設定します。この設定ではキャッシュを完全にバイパスするため、すべてのリクエストがフルのスクレイピングパイプラインを通過し、その結果、完了までに時間がかかりやすくなり、失敗する可能性も高くなります。すべてのリクエストでリアルタイムなコンテンツが不要な場合は、0 以外の `maxAge` を使用してください。
* **キャッシュを保存しない**: リクエスト結果を保存したくない場合は `storeInCache: false` を設定します。

絶対に最新である必要がない場合、結果を**最大 500% 高速**に取得できます。鮮度は `maxAge` で制御します:

1. ページの新しいバージョンがある場合は**即時に返す**
2. 指定した期間より古い場合にのみ**新規にスクレイプ**
3. **時間を節約** — 結果が秒ではなくミリ秒で返る

<div id="when-to-use-this">
  ## これを使うべきタイミング
</div>

**適している用途:**

* ドキュメント、記事、製品ページ
* バッチ処理ジョブ
* 開発・テスト
* ナレッジベースの構築

**見送るべき用途:**

* リアルタイムデータ（株価、ライブスコア、速報）
* 更新頻度の高いコンテンツ
* 時間にシビアなアプリケーション

<div id="usage">
  ## 使い方
</div>

スクレイプリクエストに `maxAge`（ミリ秒）を追加します（例：`3600000` は 1 時間）。

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

  firecrawl = Firecrawl(
    # 開始にAPI keyは不要です — より高いrate limitsには追加してください:
    # api_key="fc-YOUR_API_KEY",
  )

  # Use cached data if it's less than 1 hour old (3600000 ms)
  # This can be 500% faster than a fresh scrape!
  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({
    // 開始にAPI keyは不要です。より高いRate Limitsが必要な場合は追加してください：
    // apiKey: "fc-YOUR_API_KEY",
  });

  // Use cached data if it's less than 1 hour old (3600000 ms)
  // This can be 500% faster than a fresh scrape!
  const scrapeResult = await firecrawl.scrape('https://firecrawl.dev', {
    formats: ['markdown'],
    maxAge: 3600000 // 1 hour in milliseconds
  });

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

<div id="common-maxage-values">
  ## よく使われる maxAge の値
</div>

参考になる目安は次のとおりです:

* **5分**: `300000` - 半動的なコンテンツ向け
* **1時間**: `3600000` - 毎時更新されるコンテンツ向け
* **1日**: `86400000` - 日次更新のコンテンツ向け
* **1週間**: `604800000` - 比較的静的なコンテンツ向け

<div id="performance-impact">
  ## パフォーマンスへの影響
</div>

`maxAge` が有効な場合:

* 直近のコンテンツで**応答が最大5倍高速**
* 新規スクレイプを待たずに**結果を即時に返す**

<div id="important-notes">
  ## 重要な注意事項
</div>

* **デフォルト**: `maxAge` は `172800000`（2日）
* **必要時に最新化**: データが `maxAge` より古い場合は、自動で新しくスクレイピングします
* **古いデータなし**: 指定した `maxAge` より古いデータは返されません
* **クレジット**: キャッシュされた結果も 1 ページあたり 1 クレジットを消費します。キャッシュは速度とレイテンシを改善しますが、クレジットの消費量は変わりません。

<div id="when-caching-is-bypassed">
  ### キャッシュが使用されない場合
</div>

リクエストに次のいずれかが含まれている場合、キャッシュは自動的にスキップされます。

* カスタム `headers`
* `actions` (ブラウザ自動化のステップ)
* ブラウザ `profile`
* `changeTracking` 形式
* カスタム `screenshot` のビューポート設定または画質設定

<div id="cache-hit-matching">
  ### キャッシュヒットの一致条件
</div>

キャッシュヒットにするには、元のリクエストと後続のリクエストで、次のパラメータが完全に一致している必要があります: `url`、`mobile`、`location`、`waitFor`、`blockAds`、`screenshot` (有効/無効、およびフルページかどうか) 、およびステルスプロキシモード。

キャッシュの挙動は、レスポンス内の `metadata.cacheState` を確認することで検証できます。値は `"hit"` または `"miss"` になります。

<div id="faster-crawling">
  ## より高速なクロール
</div>

複数のページをクロールする場合にも、同じ速度向上のメリットが適用されます。最近確認されたページのキャッシュされた結果を取得するには、`scrapeOptions` 内で `maxAge` を使用してください。

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

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

  # キャッシュを活用したスクレイピングによるクロール — 最近取得済みのページは最大5倍高速
  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" });

  // キャッシュを活用したスクレイピングでクロール — 最近取得したページは最大5倍高速
  const crawlResult = await firecrawl.crawl('https://firecrawl.dev', {
    limit: 100,
    scrapeOptions: {
      formats: ['markdown'],
      maxAge: 3600000 // 1時間以内のキャッシュがあればそれを使用
    }
  });

  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-YOUR_API_KEY' \
    -d '{
      "url": "https://firecrawl.dev",
      "limit": 100,
      "scrapeOptions": {
        "formats": ["markdown"],
        "maxAge": 3600000
      }
    }'
  ```
</CodeGroup>

`maxAge` を使用してクロールすると、そのページの最近のキャッシュデータがある場合、クロール内の各ページで 500% の速度向上の恩恵を受けられます。

今すぐ `maxAge` を使用して、スクレイピングとクロールを劇的に高速化しましょう！

> Firecrawl API キーが必要な AI agent ですか？ 自動オンボーディング手順については、[firecrawl.dev/agent-onboarding/SKILL.md](https://www.firecrawl.dev/agent-onboarding/SKILL.md) を参照してください。
