Community研究&データ分析github.com

Firecrawl SEO拡張(クロール・スクレイピング・サイトマッピング)

Firecrawl MCPを使用した全サイトクロール、スクレイピング、サイトマッピング機能。ユーザーが「サイトをクロール」「サイトマップ」「全ページ検索」「リンク切れ」「サイト構造」「ページ発見」「JSレンダリング」などと要求した場合に使用します。

Firecrawl SEO拡張(クロール・スクレイピング・サイトマッピング) とは?

このスキルは、Firecrawl MCPサーバーを活用してウェブサイトのSEO分析を強力に支援します。主な機能として、全サイトクロール(crawl)、サイト構造の発見(map)、単一ページの深掘りスクレイピング(scrape)、サイト内検索(search)の4つを提供します。特にSPAやJSレンダリングが必要なサイトでも正確にコンテンツを取得でき、SEO監査、リンク切れ検出、コンテンツ棚卸し、スキーマ抽出など、さまざまな分析ワークフローに統合可能です。対応プラットフォームはClaude Code、Cursor、CodexなどのAIエージェント環境で、Firecrawl拡張がインストールされている必要があります。このスキルを使うことで、手動では困難な大規模なサイト分析をAIエージェントが自動で実行できるようになります。クレジット消費量の事前表示やエラーハンドリングも充実しており、Firecrawlが利用できない場合の代替手段も提示します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clanker25/claude-seo/tree/HEAD/extensions/firecrawl/skills/seo-firecrawl

Installed? Explore more 研究&データ分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Firecrawl SEO拡張(Claude向け)

このスキルを使用するには、Firecrawl拡張をインストールする必要があります:

./extensions/firecrawl/install.sh

利用可能性の確認: Firecrawlツールを使用する前に、firecrawl_scrape またはその他のFirecrawlツールが利用可能かを確認してください。ツールが利用できない場合は、ユーザーに拡張がインストールされていないことを伝え、インストール手順を提供してください。

クイックリファレンス

コマンド目的
/seo firecrawl crawl <url>コンテンツ抽出付き全サイトクロール
/seo firecrawl map <url>サイト構造の検出(URLのみ、高速)
/seo firecrawl scrape <url>JSレンダリング付き単一ページスクレイピング
/seo firecrawl search <query> <url>クロール済みサイト内検索

コマンド

crawl -- 全サイトクロール

指定されたURLから開始してウェブサイト全体をクロールします。発見されたすべてのページのコンテンツ、メタデータ、リンクを返します。

MCPツール: firecrawl_crawl

パラメータ:

  • url(必須):クロールを開始するURL
  • limit:クロールする最大ページ数(デフォルト:100、最大:500)
  • maxDepth:開始URLからの最大リンク深度(デフォルト:3)
  • includePaths:含めるグロブパターンの配列(例:["/blog/*"])
  • excludePaths:除外するグロブパターンの配列(例:["/admin/*", "/api/*"])
  • scrapeOptions.formats:出力形式 -- ["markdown", "html", "links"]

SEO使用パターン:

  1. 包括的監査クロール:サイト全体をクロールし、サブエージェント分析用に全ページを抽出
  2. セクション限定クロール:includePaths を使用して /blog/* や /products/* のみを監査
  3. リンク切れ検出:["links"] 形式でクロールし、すべてのhrefが404を返さないか確認
  4. コンテンツ棚卸し:全ページのタイトル、メタディスクリプション、H1を大規模に抽出
  5. SPA/JSレンダリングサイト:FirecrawlがJavaScriptをレンダリングするため、Issue #11の問題を解決

/seo audit でのオーケストレーション例:

1. firecrawl_map(url) -> 全URLを取得(高速、コンテンツなし)
2. 最も重要な50ページ(ホームページ、主要セクション)にフィルタリング
3. firecrawl_crawl(url, limit=50) -> 完全なコンテンツを取得
4. コンテンツをseo-technical、seo-content、seo-schemaエージェントに渡す

コスト意識:

  • 無料枠:月500クレジット
  • 1クレジット = 1ページのクロールまたはスクレイピング
  • マップ操作はより安価(発見されたURLあたり0.5クレジット)
  • 大規模クロールの前に、推定クレジット使用量を必ずユーザーに伝えること

map -- サイト構造発見

コンテンツを取得せずにウェブサイト上のすべてのURLを発見します。高速でクレジット効率の良い操作です。

MCPツール: firecrawl_map

パラメータ:

  • url(必須):マップするウェブサイトのURL
  • limit:発見する最大URL数(デフォルト:5000)
  • search:URLをフィルタリングするオプションの検索語

SEO使用パターン:

  1. サイトマップ比較:サイトをマップし、発見されたURLとXMLサイトマップを比較
  2. 孤立ページ検出:サイトマップにあるがどのページからもリンクされていないURL
  3. クロール予算分析:インデックス可能な総ページ数 vs ホームページからリンクされているページ数
  4. URLパターン分析:URL構造パターン、重複、パラメータ肥大化を特定
  5. 事前監査発見:最初にマップを実行し、その後主要セクションにターゲットクロールを実行

出力: URLの配列。以下のように提示:

サイト: example.com
発見されたページ数: 342

URLパターン内訳:
  /blog/*          - 128ページ (37%)
  /products/*      - 89ページ (26%)
  /category/*      - 45ページ (13%)
  /pages/*         - 32ページ (9%)
  / (ルートページ) - 48ページ (14%)

scrape -- 単一ページ深掘りスクレイピング

完全なJavaScriptレンダリングで単一ページをスクレイピングします。fetch_page.py よりも詳細にコンテンツを取得し、JSを実行して動的コンテンツを待機します。

MCPツール: firecrawl_scrape

パラメータ:

  • url(必須):スクレイピングするページのURL
  • formats:出力形式 -- ["markdown", "html", "links", "screenshot"]
  • onlyMainContent:ナビ/フッター/サイドバーを除去(デフォルト:true)
  • waitFor:コンテンツを待機するCSSセレクタまたはミリ秒
  • timeout:リクエストタイムアウト(ミリ秒)(デフォルト:30000)
  • actions:スクレイピング前のブラウザアクション(クリック、スクロール、待機)

SEO使用パターン:

  1. SPAコンテンツ抽出:JSレンダリングされたReact/Vue/Angularページをスクレイピング
  2. 動的コンテンツ監査:画面外に遅延読み込みコンテンツがあるページ
  3. ペイウォール/ログイン検出:認証壁の背後にあるコンテンツを特定
  4. メインコンテンツ抽出:onlyMainContent を使用してクリーンなE-E-A-T分析用データを取得
  5. スクリーンショット取得:screenshot 形式を使用して視覚分析

scrape vs fetch_page.pyの使い分け:

シナリオ使用
静的HTMLページfetch_page.py(APIコストなし)
JSレンダリングSPAfirecrawl_scrape(JSをレンダリング)
レスポンスヘッダーが必要fetch_page.py(ヘッダーを返す)
クリーンなマークダウンが必要firecrawl_scrape(抽出が優れている)
レート制限/ブロックfirecrawl_scrape(アンチボット対策対応)

search -- サイト内検索

特定のコンテンツをウェブサイト内で検索します。すべてをクロールせずに特定のトピックに関連するページを見つけるのに便利です。

MCPツール: firecrawl_search

パラメータ:

  • query(必須):検索クエリ
  • url(必須):検索対象のウェブサイト
  • limit:最大結果数(デフォルト:10)
  • scrapeOptions.formats:一致したページの出力形式

SEO使用パターン:

  1. コンテンツギャップ検証:サイト上で特定のキーワードを検索し、コンテンツが存在するか確認
  2. 内部リンク機会:相互にリンクできるトピックに言及しているページを発見
  3. 重複コンテンツ検出:キーフレーズを検索してほぼ重複したページを発見
  4. 競合コンテンツ調査:競合サイトで特定のトピックを検索

スキル間統合

seo-audit(フル監査)との連携

/seo audit でFirecrawlが利用可能な場合:

  1. firecrawl_map を使用してすべてのサイトURLを発見
  2. XMLサイトマップ(seo-sitemap)と比較して孤立ページや不足ページを発見
  3. 深堀分析のためのトップページを選択
  4. クロールしたコンテンツをすべてのサブエージェント(技術、コンテンツ、スキーマ、地理)に提供
  5. クロール可能な総ページ数、URLパターン、クロール深度を報告

seo-technicalとの連携

  • リンク切れ検出:すべての内部リンクをクロールし、404をチェック
  • リダイレクトチェーンマッピング:すべてのリダイレクトを追跡し、2ホップ以上のチェーンをフラグ
  • 混在コンテンツ検出:HTTPSページ上のHTTPリソースをチェック
  • 正規URL検証:正規URLと実際のURLを比較

seo-sitemapとの連携

  • サイトマップカバレッジ:クロールされたページの中でサイトマップに存在する割合
  • 孤立ページ:クロールで発見されたがサイトマップにないページ
  • 古いサイトマップエントリ:404/410を返すサイトマップ内のURL

seo-contentとの連携

  • コンテンツ抽出:クリーンなマークダウンをE-E-A-T分析に提供
  • 薄いコンテンツ検出:300語未満のページを大規模に特定
  • 重複コンテンツ:ページ間のコンテンツを比較してほぼ重複を検出

seo-schemaとの連携

  • スキーマ抽出:すべてのクロールページからJSON-LDを抽出
  • スキーマカバレッジ:構造化データを持つページの割合
  • スキーマ検証:抽出されたスキーマをバッチ検証

エラーハンドリング

エラー原因解決策
FIRECRAWL_API_KEY not setMCPが設定されていない./extensions/firecrawl/install.sh を実行
402 Payment Requiredクレジット不足firecrawl.dev/app で使用量を確認し、プランをアップグレード
429 Too Many Requestsレート制限60秒待機、クロール同時実行数を減らす
408 Timeoutページが遅すぎてレンダリングできないtimeout を増やす、JSレンダリングなしで試す
403 Forbiddenサイトがクロールをブロックrobots.txtを確認、このサイトをスキップする必要があるかも

グレースフルフォールバック: Firecrawlが利用できない場合は、ユーザーに通知し以下を提案:

  1. 単一ページ分析には fetch_page.py を使用(APIコストなし)
  2. 基本的なHTML取得には WebFetch ツールを使用
  3. Firecrawlのインストール:./extensions/firecrawl/install.sh

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

関連スキル