mcpField
S
seo-technical

seo-technical

github.com/infrasity-labsマーケティング・グロース15090 回インストール18 週間前に更新
リポジトリ

seo-technical について

seo-technicalは、クロールやインデックス、セキュリティ、パフォーマンスなどを確認するテクニカルSEO監査スキルです。Agent-UXスキャンでは、アクセシビリティツリーとHTMLの所見も報告します。

主な機能

  1. 01クロールとインデックスの監査
  2. 02セキュリティとURL構造の確認
  3. 03モバイル対応とCore Web Vitalsの確認
  4. 04構造化データとJavaScript SEOの検査
  5. 05PlaywrightによるAgent-UXスキャン
  6. 06所見を優先度別に整理

活用シーン

  1. 01公開前のサイト監査
  2. 02インデックスやクロール問題の調査
  3. 03エージェント向けアクセシビリティ信号の確認

インストール

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

$npx skills add https://github.com/infrasity-labs/dev-gtm-claude-skills --skill seo-technical

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

同梱ファイルreferences/agent-friendly-pages.md

詳細

テクニカル SEO 監査

カテゴリ

1. クロール可能性
  • robots.txt:存在し、有効で、重要なリソースをブロックしていないこと
  • XML サイトマップ:存在し、robots.txt で参照され、有効な形式であること
  • Noindex タグ:意図的なものか、誤って設定されたものかを確認
  • クロール深度:重要なページがホームページから 3 クリック以内にあること
  • JavaScript のレンダリング:重要なコンテンツの表示に JS の実行が必要かを確認
  • クロールバジェット:大規模サイト(10k ページ超)では効率が重要です
AI クローラーの管理

2025〜2026 年現在、AI 企業はモデルのトレーニングや AI 検索の提供を目的に、積極的にウェブをクロールしています。robots.txt でこれらのクローラーを管理することは、テクニカル SEO における重要な検討事項です。

既知の AI クローラー:

クローラー企業robots.txt のトークン用途
GPTBotOpenAIGPTBotモデルのトレーニング
ChatGPT-UserOpenAIChatGPT-Userリアルタイムのブラウジング
ClaudeBotAnthropicClaudeBotモデルのトレーニング
PerplexityBotPerplexityPerplexityBot検索インデックス+トレーニング
BytespiderByteDanceBytespiderモデルのトレーニング
Google-ExtendedGoogleGoogle-ExtendedGemini のトレーニング(検索には使用されません)
CCBotCommon CrawlCCBotオープンデータセット

重要な違い:

  • Google-Extended をブロックすると、Gemini のトレーニングへの利用は防げますが、Google 検索のインデックス登録や AI Overviews には影響しません(これらは Googlebot を使用します)
  • GPTBot をブロックすると、OpenAI のトレーニングへの利用は防げますが、ブラウジングを介して ChatGPT がコンテンツを引用することは防げません(ChatGPT-User を使用します)
  • 現在、約 3〜5% のウェブサイトが AI 専用の robots.txt ルールを使用しています

例:AI クローラーを選択的にブロックする場合:

# Allow search indexing, block AI training crawlers
User-agent: GPTBot
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: Bytespider
Disallow: /

# Allow all other crawlers (including Googlebot for search)
User-agent: *
Allow: /

**推奨事項:**ブロックする前に、AI 上での可視性戦略を検討してください。AI システムに引用されることで、ブランド認知度や参照トラフィックの向上につながります。AI 上での可視性を最適化する方法については、seo-geo スキルも参照してください。

2. インデックス登録可能性
  • Canonical タグ:自己参照になっており、noindex と競合していないこと
  • 重複コンテンツ:類似ページ、パラメーター付き URL、www 版と非 www 版を確認
  • 内容の薄いコンテンツ:種類ごとの最低語数を下回るページを確認
  • ページネーション:rel=next/prev または「さらに読み込む」パターン
  • Hreflang:多言語・多地域サイトで正しく設定されていること
  • インデックスの肥大化:クロールバジェットを消費する不要なページ
3. セキュリティ
  • HTTPS:強制され、有効な SSL 証明書があり、混在コンテンツがないこと
  • セキュリティヘッダー:
    • Content-Security-Policy(CSP)
    • Strict-Transport-Security(HSTS)
    • X-Frame-Options
    • X-Content-Type-Options
    • Referrer-Policy
  • HSTS プリロード:セキュリティ要件の高いサイトでは、プリロードリストに含まれているかを確認
4. URL 構造
  • クリーンな URL:内容がわかる表現で、ハイフンを使い、コンテンツ用 URL にクエリパラメーターを使わないこと
  • 階層構造:サイトのアーキテクチャを反映した論理的なフォルダー構成
  • リダイレクト:チェーンがなく(最大 1 ホップ)、恒久的な移転には 301 を使用
  • URL の長さ:100 文字を超えるものを検出
  • 末尾のスラッシュ:一貫して使用
5. モバイル最適化
  • レスポンシブデザイン:viewport メタタグとレスポンシブ CSS
  • タップ対象:最低 48x48px、8px の間隔を確保
  • フォントサイズ:基本サイズを最低 16px にする
  • 水平方向のスクロールがないこと
  • モバイルファーストインデックス:Google はモバイル版をインデックスに登録します。**モバイルファーストインデックスは 2024 年 7 月 5 日に完全に導入されました。**現在、Google はすべてのウェブサイトをモバイル版 Googlebot のユーザーエージェントのみでクロールし、インデックスに登録しています。
6. Core Web Vitals
  • LCP(Largest Contentful Paint):目標値 <2.5s
  • INP(Interaction to Next Paint):目標値 <200ms
    • INP は 2024 年 3 月 12 日に FID に取って代わりました。FID は 2024 年 9 月 9 日にすべての Chrome ツール(CrUX API、PageSpeed Insights、Lighthouse)から完全に削除されました。FID には一切言及しないでください。
  • CLS(Cumulative Layout Shift):目標値 <0.1
  • 評価には実ユーザーデータの 75 パーセンタイル値を使用します
  • MCP が利用できる場合は、PageSpeed Insights API または CrUX データを使用してください
7. 構造化データ
  • 検出対象:JSON-LD(推奨)、Microdata、RDFa
  • Google がサポートするタイプに照らして検証
  • 詳細な分析については、seo-schema スキルを参照してください
8. JavaScript レンダリング
  • 初期 HTML でコンテンツが表示されるか、JavaScript が必要かを確認します
  • クライアントサイドレンダリング(CSR)かサーバーサイドレンダリング(SSR)かを特定します
  • インデックス登録に問題を引き起こす可能性のある SPA フレームワーク(React、Vue、Angular)に注意します
  • 該当する場合は、ダイナミックレンダリングの設定を確認します
JavaScript SEO:正規 URL とインデックス登録に関するガイダンス(2025 年 12 月)

Google は 2025 年 12 月に JavaScript SEO のドキュメントを更新し、重要な点を明確にしました。

  1. 正規 URL の競合: raw HTML 内の canonical タグと JavaScript によって挿入された canonical タグが異なる場合、Google はどちらか一方を使用する可能性があります。サーバーでレンダリングされた HTML と JS でレンダリングされた出力の間で、canonical タグが同一になるようにしてください。
  2. JavaScript と noindex: raw HTML に <meta name="robots" content="noindex"> が含まれていて、JavaScript がそれを削除した場合でも、Google は raw HTML の noindex を尊重する可能性があります。初期 HTML レスポンスで正しい robots ディレクティブを配信してください。
  3. 200 以外のステータスコード: Google は、200 以外の HTTP ステータスコードを返すページでは JavaScript をレンダリングしません。エラーページで JS によって挿入されたコンテンツやメタタグは、Googlebot から見えません。
  4. JavaScript 内の構造化データ: JS によって挿入された Product、Article、その他の構造化データは、処理が遅れる可能性があります。時間的制約のある構造化データ(特に E コマースの Product マークアップ)は、初期のサーバー側レンダリング HTML に含めてください。

ベストプラクティス: JavaScript による挿入に頼るのではなく、重要な SEO 要素(canonical、meta robots、構造化データ、title、meta description)を初期のサーバー側レンダリング HTML で配信してください。

9. IndexNow プロトコル
  • Bing、Yandex、Naver 向けに、サイトが IndexNow に対応しているか確認します
  • Google 以外の検索エンジンがサポートしています
  • Google 以外の検索エンジンでより速くインデックス登録するため、実装を推奨します

エージェントに適したページ(今後に向けて)

AI エージェント(AI 要約ツールだけではありません)は、スクリーンショットを用いる 視覚モデル、raw HTML/DOM、そして最も明確なシグナルである アクセシビリティツリーの 3 つの経路で、サイトを読むことが増えています。監査基準 — セマンティック HTML(<div onclick> ではなく、実際の <button> と <a>)、ラベルの関連付け、インタラクティブなターゲットのサイズ、 テンプレート間でのレイアウトの安定性、cursor: pointer の適切な使用 — は references/agent-friendly-pages.md に記載されています。

監査コマンド
# Render with Playwright + capture accessibility tree, then score
python scripts/agent_ux_check.py https://example.com --json

スキャナーは Agent-UX スコア(0~100)と項目別の問題を出力します。

  • HTML の検出結果:実際のボタン/アンカー、<div onclick> ウィジェット、セマンティックなランドマーク、<label for> のない入力欄、ARIA ラベルのない入力欄
  • アクセシビリティツリーの検出結果:ノードの総数、インタラクティブなノード数、名前のないインタラクティブ要素、role="generic" の割合

アクセシビリティツリーのスナップショットには、 page.accessibility.snapshot(interesting_only=False) を使用します。採点せずにツリーを 取得するには、python scripts/render_page.py <url> --a11y-tree --json を使用します。

検出結果は失敗ではなく、改善の機会として提示してください。基準(WebMCP、 エージェント UX のヒューリスティック)はまだ初期段階です。スコアが 100 未満だからといって監査を不合格にしないでください。

出力

技術スコア:XX/100
カテゴリ別の内訳
カテゴリステータススコア
クロール可能性合格/警告/失敗XX/100
インデックス登録可能性合格/警告/失敗XX/100
セキュリティ合格/警告/失敗XX/100
URL 構造合格/警告/失敗XX/100
モバイル合格/警告/失敗XX/100
Core Web Vitals合格/警告/失敗XX/100
構造化データ合格/警告/失敗XX/100
JS レンダリング合格/警告/失敗XX/100
IndexNow合格/警告/失敗XX/100
重大な問題(直ちに修正)
優先度:高(1 週間以内に修正)
優先度:中(1 か月以内に修正)
優先度:低(バックログ)

DataForSEO との統合(任意)

DataForSEO MCP ツールを利用できる場合は、実際のページ分析(ステータスコード、ページ表示時間、リンク切れ、ページ上のチェック)に on_page_instant_pages を、Lighthouse 監査(パフォーマンス、アクセシビリティ、SEO スコア)に on_page_lighthouse を、テクノロジースタックの検出に domain_analytics_technologies_domain_technologies を使用してください。

Google API 連携(オプション)

Google API の認証情報が設定されている場合は、python scripts/pagespeed_check.py <url> --json を使用すると、実際の PSI と CrUX のフィールドデータを取得できます(ラボデータのみの CWV 推定値を置き換えます)。python scripts/crux_history.py <url> --json を使用すると、25 週間分の CWV の推移を取得できます。また、python scripts/gsc_inspect.py <url> --json を使用すると、URL ごとの実際のインデックス登録状況を取得できます。

エラー処理

シナリオ対応
URL にアクセスできないステータスコードとともに接続エラーを報告します。URL の確認、DNS 解決のチェック、サイトが一般公開されていることの確認を提案します。
robots.txt が見つからないルートドメインで robots.txt が検出されなかったことを記載します。適切なディレクティブを設定したファイルの作成を推奨します。残りのカテゴリの監査は続行します。
HTTPS が設定されていない重大な問題として指摘します。リダイレクトなしで HTTP が提供されているか、混在コンテンツが存在するか、SSL 証明書がないか期限切れかを報告します。
Core Web Vitals のデータを利用できないCrUX データを利用できないこと(トラフィックの少ないサイトではよくあります)を記載します。代替として Lighthouse のラボデータを使用し、再テストの前にトラフィックを増やすことを推奨します。

コメント