mcpField
S
seo-firecrawl

seo-firecrawl

github.com/serankingデータ・データベース19172 回インストール18 週間前に更新
リポジトリ

seo-firecrawl について

seo-firecrawlは、SEO担当者向けにFirecrawlを操作するワークフロースキルです。ページ取得、URLマップ、クロール、ドメイン内検索を行い、ページ情報やメタデータなどを整理します。

主な機能

  1. 01ページ本文とメタデータの取得
  2. 02ドメイン内URLのマッピング
  3. 03範囲を指定したページクロール
  4. 04ドメイン内検索
  5. 05結果のファイル整理

活用シーン

  1. 01ページのHTMLやJSON-LDの確認
  2. 02クロール前のURL一覧作成
  3. 03クロールしたページのメタデータ監査
  4. 04サイト内の関連ページ検索

MCP 対応

firecrawl-mcp MCP サーバーへの接続が必要です。選択したモードに応じて、スクレイプ、マップ、クロール、検索ツールを呼び出します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/seranking/seo-skills --skill seo-firecrawl

インストール後、Claude Code で/seo-firecrawlを入力して読み込まれたか確認します。

同梱ファイルreferences/preflight.md

詳細

出力例:examples/seo-firecrawl-stripe-com-20260514/scrape/FIRECRAWL.md

Firecrawl オーケストレーター

データ駆動型の SE Ranking スキルでは対応できないタスク向けの、Firecrawl MCP への直接インターフェースです。次の場合に使用します。

  • WebFetch の Markdown 変換で削除される、生の HTML、<head> メタデータ、JSON-LD、または JavaScript 実行後の DOM が必要な場合。
  • ドメイン上のすべての URL の一覧が必要で、各ページを取得する必要はない場合。
  • サイトをクロールして、各ページのメタデータを監査する必要がある場合。
  • 既知のドメイン内を検索する必要がある場合。
  • 上位のスキル(seo-page、seo-schema、seo-content-audit など)からサブステップとして呼び出された場合。

前提条件

  • 必須: firecrawl-mcp MCP サーバー。mcp__firecrawl-mcp__firecrawl_scrape が利用できない場合は、インストールコマンド(このプラグインのリポジトリで bash extensions/firecrawl/install.sh)と firecrawl.dev の登録 URL(無料プランは月 500 クレジット)を提示して中止します。フォールバックは試みないでください。このスキルは、WebFetch で対応できないケースのためにあります。
  • ユーザーからの入力:対象の URL またはドメインに加え、任意でモード(scrape / map / crawl / search)。モードが指定されていない場合は、入力形式から推定します(単一 URL → scrape、単一ドメイン → map)。

プロセス

  1. 事前確認。 firecrawl-mcp が接続されていることを確認します。接続されていない場合は、インストールコマンドを提示して中止します。
  2. モードの選択。 ユーザーの意図に応じて、次のいずれかに決定します。
    • scrape — 単一 URL の全データ(ユーザーが URL を 1 つ指定した場合のデフォルト)。
    • map — 単一ドメインの URL 一覧のみ(低コストの概況調査)。
    • crawl — 単一ドメインで、検出した各ページを取得(高コスト。明示的な確認が必要)。
    • search — ドメイン内のクエリ検索。
  3. コストの見積もりと確認。
    • scrape(1 クレジット)、map(検出 URL 1 件あたり約 0.5 クレジット — 範囲が不明な場合は、まず map を使用して見積もります)、crawl(クロールしたページ 1 件あたり 1 クレジット)、search(返された結果 1 件あたり 1 クレジット)。
    • crawl の場合、および 50 件を超える URL が予想される map の場合は、見積もりを提示し、実行前に明示的な許可を得ます。
    • Firecrawl の応答メタデータ(metadata 内の creditsUsed / creditsRemaining)から、常に残りのクレジットを確認します。
  4. 実行。 該当する mcp__firecrawl-mcp__firecrawl_* ツールを呼び出します。
    • scrape:デフォルトで formats: ["markdown", "html"] を渡します(本文用に Markdown、<head> と JSON-LD 用に HTML)。成果物でスクリーンショットを実際に使用する場合に限り、formats: ["screenshot"] を追加します。SPA の場合は waitFor: 2000(または CSS セレクター)を渡して、JavaScript によってレンダリングされた DOM を取得します。ナビゲーションやフッターのノイズを除外するため、デフォルトでは onlyMainContent: true とし、明示的な依頼がある場合のみ変更します。
    • map:デフォルトの limit: 500(上限)を使用します。妥当なデフォルトとして excludePaths: ["/admin/*", "/api/*", "/wp-admin/*", "/feed/*"] を渡します。
    • crawl:デフォルトの limit: 50(標準上限)を使用し、limit: 200 を絶対上限とします。除外対象を絞るため、必ず excludePaths を渡します。ジョブが非同期で返された場合は、firecrawl_check_crawl_status をポーリングします。
    • search:デフォルトで limit: 20 を使用します。
  5. 解析して出力を構成。 生の API 応答をそのまま出力しないでください。モードごとの出力:
    • scrape → RAW.md(Markdown 本文)、META.md(og / twitter / canonical / robots / headers と、ハッシュ付きで解析した JSON-LD の @type 一覧)、links.csv、任意で screenshot.png。
    • map → パターン別に分類した一覧(例:/blog/* — 128 (37%)、/products/* — 84 (24%))を含む URLS.md と、urls.csv。
    • crawl → pages/{slugified-url}/ にページごとのフォルダーを作成し、各フォルダーに RAW.md と META.md を格納します。さらに、すべてのページを要約するトップレベルの INDEX.md(URL、ステータス、主要シグナル)を作成します。
    • search → 関連度順に並べたヒット箇所の抜粋と URL を含む MATCHES.md。
  6. ルートに FIRECRAWL.md をまとめます。対象、モード、使用クレジット、主な調査結果(最大 5 項目)、未解決事項、推奨する次のスキルを記載します。

出力形式

フォルダー seo-firecrawl-{slug}-{YYYYMMDD}/:

モード = scrape
seo-firecrawl-{slug}-{YYYYMMDD}/
├── RAW.md            (markdown body)
├── META.md           (og / twitter / canonical / robots / headers + parsed JSON-LD)
├── links.csv         (every <a href> on the page)
├── screenshot.png    (optional; only if requested)
└── FIRECRAWL.md      (synthesis + handoff payload)
モード = map
seo-firecrawl-{slug}-{YYYYMMDD}/
├── URLS.md           (pattern-grouped URL list)
├── urls.csv          (every URL with discovery depth, if available)
└── FIRECRAWL.md
モード = crawl
seo-firecrawl-{slug}-{YYYYMMDD}/
├── INDEX.md          (every page + status code + key signals)
├── pages/
│   ├── {slug-1}/RAW.md
│   ├── {slug-1}/META.md
│   ├── {slug-2}/RAW.md
│   └── ...
└── FIRECRAWL.md
モード = search
seo-firecrawl-{slug}-{YYYYMMDD}/
├── MATCHES.md        (hit excerpts + URLs ranked by relevance)
└── FIRECRAWL.md

FIRECRAWL.md は次の形式に従います。

# Firecrawl: {target}

> Run dated {YYYY-MM-DD} · Mode: {scrape | map | crawl | search} · Credits used: {n}

## Summary

{One-paragraph what-came-back. Example: "Scraped https://example.com/article. og:title and og:image present, JSON-LD Article schema with author + datePublished. 12 outbound links. Page is server-rendered (no JS-render divergence). Robots: index,follow."}

## Key findings

1. {Finding anchored in concrete data}
2. ...
5. ...

## Open loops

- {What this run did NOT answer}
- ...

## Recommended next step

{One of: `seo-page` (when a single URL was scraped and now wants performance analysis) | `seo-schema` (when JSON-LD audit needs follow-up generation) | `seo-technical-audit` (when crawl revealed broken pages) | `seo-content-audit` (when crawl produced a corpus to audit) | `seo-drift baseline` (when the user wants to track this URL over time) | "this completes the user's ask".}

## Handoff payload

- **Produced by:** seo-firecrawl
- **Target:** {url or domain}
- **Mode:** {scrape | map | crawl | search}
- **Credits used:** {n}
- **Key findings:** {5 bullets — e.g., "twitter:card present (summary_large_image)", "JSON-LD types: Article + Organization + BreadcrumbList", "robots: index,follow", "canonical self-referencing", "404s: 0 of 50 pages crawled"}
- **Open loops:** {what this didn't answer}
- **Recommended next skill:** {seo-page | seo-schema | seo-technical-audit | seo-content-audit | …} — {one-line why}

ヒント

  • 無料プランは月500クレジットです。 map はURLごとに0.5クレジット、scrape は1回ごとに1クレジット、crawl はページごとに1クレジットです。費用は事前に提示し、1回の実行で100クレジットを超える場合は警告してください。
  • scrape ではデフォルトで onlyMainContent: true を設定し、ナビゲーションやフッターのノイズを除去してください。ユーザーがページ全体のDOMを明示的に求めた場合にのみ、上書きしてください。
  • コンテンツを遅延読み込みするSPAでは waitFor(CSSセレクターまたはミリ秒)を使用してください。デフォルトは2000msが妥当ですが、時間指定よりセレクターのほうが確実です。
  • クロール範囲が不明確な場合は、firecrawl_crawl の前に firecrawl_map を実行してください。まず検出し、クロールする対象を決めてからクロールします。クレジットを節約できます。
  • includePaths / excludePaths を使うと、クロール費用を大幅に削減できます。デフォルトで必ず excludePaths: ["/admin/*", "/api/*", "/wp-admin/*", "/feed/*"] を渡してください。
  • 成果物に目に見える形で使用されない限り、formats: ["screenshot"] はリクエストしないでください。 ページごとの費用が2倍になります。
  • firecrawl_extract や firecrawl_deep_research は使用しないでください。 どちらも独自のLLM分析と機能が重複します。firecrawl_extract は無料プランでの料金体系が不透明であり、どちらも seo-skills の対象外であることが明示されています。
  • Cloudflare/ボット対策: 一部のサイト(特にECサイトや銀行)は、Firecrawlのスクレイパーをブロックします。エラーは適切に提示してください。このスキルの目的はWAFの回避ではありません。
  • サブステップとしての使用: 別のスキル(seo-page、seo-schema など)から呼び出された場合は、FIRECRAWL.md の要約を省略してください。呼び出し元が必要としているのは、生の META.md / RAW.md です。呼び出し元が生の urls.csv を必要としている場合は、モード2の URLS.md の要約も省略してください。
  • 生のHTMLが必要で、より具体的なスキルが思い当たらない場合のエントリーポイントです。該当するスキルがある場合は、代わりにそちらを使用してください。1つのURLのキーワード/トラフィックに関する判定には seo-page、JSON-LDの作業には seo-schema、サイト全体のクロールに関する問題には seo-technical-audit を使います。これらのスキルはFirecrawlとSE Rankingのデータを自動的に連携させます。

相性のよいスキル

  • 前段のスキル: なし(エントリーポイント)、または別のスキルからサブステップとして呼び出されます。
  • 後続のスキル:
    • seo-page — 1つのURLをスクレイピングし、キーワード/トラフィックに関する判定が必要な場合。
    • seo-schema — JSON-LD監査で、生成が必要な不足項目が見つかった場合。
    • seo-technical-audit — クロールにより、壊れたページや大規模なnoindexの問題が見つかった場合。
    • seo-content-audit — クロールで、E-E-A-T監査が必要なコンテンツ群が作成された場合。
    • seo-drift baseline — このURLまたはドメインを継続的に追跡したい場合。

コメント