seo-crawl-render について
seo-crawl-render は、Web ページを取得・解析して PageSnapshot v2 を作る Claude Code スキルです。ページのシグナルに応じてレンダリング方法を選び、単一ページと複数ページの処理に対応します。
主な機能
- 01単一ページと複数ページの取得
- 02静的・JavaScript レンダリングの選択
- 03ページ解析とサイト成果物の生成
- 04簡潔な実行サマリーの出力
活用シーン
- 01レスポンスヘッダーとステータスの監査
- 02サンプリングと robots ルールに沿ったクロール
- 03SEO 監査モジュールへのスナップショット提供
MCP 対応
Playwright または Firecrawl MCP で取得したレンダリング済み DOM ファイルを受け取り、外部レンダリング結果をスナップショットに含められます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ hainrixz/ claude-seo-ai --skill seo-crawl-renderインストール後、Claude Code で/seo-crawl-renderを入力して読み込まれたか確認します。
詳細
seo-crawl-render
すべてのモジュールで使用される PageSnapshot(v2)を生成します。スクリプトが取得、解析、レンダリング、保存を行い、このスキルは実行するコマンドを選び、簡潔な標準出力の概要だけを読み取ります。Claude Code の WebFetch が返すのは、ヘッダー、ステータスコード、生の HTML を含まない情報損失のあるモデル要約であり、ホストをまたぐリダイレクトにも追従しません。そのため、取得手段として使用することはありません。
取得
- 単一ページまたはローカルパス:
node "${CLAUDE_PLUGIN_ROOT}/scripts/snapshot.mjs" <url|path> --out "${CLAUDE_PLUGIN_DATA}/runs" [--render auto|static|js] [--ua default|googlebot|bingbot|gptbot|oai-searchbot|claude-searchbot] [--renderer auto|chrome|playwright|none] [--rendered-file <dom.html>] [--max-bytes 5000000] [--json]— デフォルト以外の--uaを指定すると、pages/<slug>.ua-<preset>.jsonが書き込まれます。 - 複数ページ:
node "${CLAUDE_PLUGIN_ROOT}/scripts/crawl.mjs" <url> [--pages 12] [--max 40] [--per-template 2] [--depth 3] --out "${CLAUDE_PLUGIN_DATA}/runs"— ホームページとターゲットは常に含まれ、その後、検出されたテンプレートごとに最大--per-templateページが対象になります。robots のルールに従い、スキップはすべてcrawl.json.samplingに記録されます。--concurrency、--delay、--include/--exclude、--seeds、--sitemap-sample、--link-status、--no-robotsも指定できます。 - 標準出力の概要(実行ディレクトリ、スラッグ、件数、レンダリング判定、警告)だけを読み取ります。HTML を会話に貼り付けないでください。モジュールは
pages/<slug>.jsonをReadし、pages/<slug>.htmlをGrepします。 - ローカルディレクトリはビルド済み HTML として読み込まれます(
status: null、ヘッダーは空)。ビルド済みの出力がないフレームワークのソースは終了コード 2 で終了します。先にビルドするか、デプロイ済みの URL を指定してください。
レンダリングの判定(スクリプト内で実行)
--render auto は、語数が 150 未満の場合、ページが依然として内容の少ない状態でハイドレーションマーカー(__NEXT_DATA__、__NUXT_DATA__、self.__next_f、空の #app/#__next ルート)が見つかった場合、アンカーが 3 個未満で h1 がない場合、または <noscript> の JS に関する通知がある場合に、レンダリングが必要と判定します。--render static はレンダリングせず、--render js は常にレンダリングを試みます。デフォルトは実行方法によって異なります。snapshot.mjs のデフォルトは auto ですが、crawl.mjs と audit.mjs のデフォルトは static です。ヘッドレス実行または複数ページの実行では、明示的に指定しない限りブラウザーは起動しません。
- デフォルトの
--renderer autoは、ヘッドレス Chrome/Chromium/Edge/Brave を自動検出します($CLAUDE_SEO_AI_CHROME→$CHROME_PATH→$PUPPETEER_EXECUTABLE_PATH→ PATH → デフォルトのアプリパス → Playwright キャッシュ)。--renderer playwrightは明示的な指定が必要で、すでにインストールされている場合にのみ使用されます。自動インストールされることはありません。--renderer noneはレンダリングを完全に無効にします。--rendered-file <html>は、Playwright/Firecrawl MCP またはユーザーが取得した DOM を受け付けます。 render.needed && render.used === "none"の場合、スナップショットにはconfidence: reducedとrender.hintが含まれます。M4.render.not_renderedをneeds_api(重要度 3、軸both、fixable: advisory)として出力し、ヒント("install Chrome, or pass--rendered-filefrom a render MCP")を引用してください。レンダリング済みのコンテンツを見たかのように扱ってはいけません。
PageSnapshot v2 — <run_dir>/pages/<slug>.json
{ target: {kind: "url"|"path", value}, request: {ua, accept_language, timeout_ms},
status_chain: [{url, status, location, ms}], redirects: {http_to_https, host_changed, www_normalized, trailing_slash_changed, hops},
headers: {…}, // final response; set-cookie → cookie names only
robots_directives: {header, meta: [], effective},
body: {bytes, truncated, charset, sha256}, timing: {ttfb_ms, download_ms},
raw_html_path, rendered_html_path, // files beside the JSON; rendered is null when not rendered
render: {needed, signals: [], used: "chrome"|"playwright"|"external"|"none", confidence: "high"|"reduced", available: [], hint, delta},
parsed: {…}, parsed_rendered: {…}|null, // parseDocument(): title, metas, robots_meta, canonicals, hreflang, anchors, headings, images, scripts, jsonld, landmarks, markers, word_count, text_sample …
site: {robots: "site/robots.json", sitemaps: "site/sitemaps.json", discovery: "site/discovery.json"},
tier: 0|1|2 }
サイトのアーティファクトは実行ごとに一度だけ構築されます:site/robots.json(解析済み REP とボットごとの判定)、site/sitemaps.json(インデックスの幅優先探索、gzip、lastmod 統計)と site/sitemap-urls.txt、site/discovery.json(/llms.txt、/llms-full.txt、/agents.md、/.well-known/ucp、/.well-known/ai-catalog.json、/sitemap_agentic_discovery.xml、/api/ucp/mcp のプローブ、および http:// → HTTPS の強制)。
ティア
- 0 — スクリプト:実際のステータスチェーン、ヘッダー、生の HTML、解析済みドキュメント、サイトのアーティファクト。このティアにはすべての監査が到達します。レンダリングもフィールドデータもありません。
- 1 — レンダラーおよび/または PSI を追加:自動検出されたヘッドレス Chrome またはオプトインの Playwright(または
--rendered-file)、および/またはフィールド CWV 用の PageSpeed Insights キー。 - 2 — アカウントデータを追加:Search Console/Merchant Center へのアクセスと、手動でエクスポートした Search Console の生成 AI データ。
モジュールは、スナップショットの
tierより高いティアが必要な検出結果をneeds_apiとして示します。暗黙に合格とすることはありません。