seo-drift について
seo-driftは、2時点のSEOデータを比較するデジタルマーケティング向けスキルです。変化を分類し、増加・減少項目や診断パターンを示して、優先アクション案を作成します。
主な機能
- 01基準と最新スナップショットの比較
- 02成長・減少・再編の分類
- 03指標の増加項目と減少項目の順位付け
- 04品質スコアカードによる入力検証
- 05優先アクション案の作成
活用シーン
- 01月次SEOパフォーマンスの確認
- 02コアアップデート前後の変化評価
- 03コンテンツ更新後の効果測定
- 04サイト移行前後のデータ比較
MCP 対応
aeo-auditの結果など、他のスキルが生成したスナップショットを分析できます。入力にはMCPの直接利用について記載されていません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ indranilbanerjee/ digital-marketing-pro --skill seo-driftインストール後、Claude Code で/seo-driftを入力して読み込まれたか確認します。
詳細
/digital-marketing-pro:seo-drift
スクリプトの場所。 ホストが
${CLAUDE_PLUGIN_ROOT}を設定しない場合、スクリプトはこのプラグインのskills/と同じ階層にあるscripts/フォルダー内にあります。Python 3.10 以降で実行してください。pythonが見つからない場合は、pythonの代わりにpython3を使用してください(macOS、多くの Linux システム)。
目的
SEO パフォーマンスデータのスナップショットを 2 つ用意し、数週間、コアアップデート、コンテンツの更新、またはアルゴリズム変更を挟んで比較し、構造化された変動レポートを作成します。レポートには、上昇項目、下降項目、分類(成長/減少/順位変動/安定/新規/消失)、診断パターンが含まれます。従来の GSC、新しい GSC AI Performance Report、順位トラッカーのエクスポート、aeo-audit のプローブ結果に対応しています。
コンテキストの効率化
負荷の高いスキルです。参照するファイルはすべて、Read の前に Grep を実行し、一致した範囲のみを offset + limit で Read してください。ファイルを開く前に ${CLAUDE_PLUGIN_DATA}/<brand>/ の内容を一覧表示してください。セッション中に再度呼び出す場合は、すでにコンテキストにあるファイルをスキップしてください。
使用する場面
- 月次パフォーマンスレビュー — 先月とその前の月を比較します
- コアアップデートのトリアージ — アップデート前とアップデート後+安定化期間を比較します(ロールアウト完了から 14 日以上経過してから使用してください)
- AI Mode の引用状況の追跡 — 四半期ごとの
aeo-audit出力を比較し、AI Mode の引用を獲得または失ったクエリを確認します(Google AI Mode の引用の差分は、オーガニック検索の減少を示す先行指標です) - コンテンツ更新の効果測定 — 計画したコンテンツ更新の前後を比較し、上昇分が更新によるものか、他の要因によるものかを判断します
- GSC AI Performance Report — 新しい(2026 年 6 月 3 日)AI Overviews と AI Mode を統合したレポートの前月比を確認します
- サイト移行の監査 — 移行前のベースラインと移行後の安定化期間を比較します
ある時点の分析には使用しないでください。 その場合は、ソーススキル(seo-audit、aeo-audit、gsc-ai-performance)を使用してください。
ブランドコンテキスト(自動適用)
~/.claude-marketing/brands/_active-brand.jsonでアクティブなスラッグを確認し、~/.claude-marketing/brands/{slug}/profile.jsonを読み込みます- ブランドが存在しない場合は、「先にブランドを設定しますか(/digital-marketing-pro:brand-setup)?」と尋ねるか、デフォルト設定で進めます
- 業界固有のノイズしきい値には
skills/context-engine/industry-profiles.mdを適用します(YMYL 業界では、Quality Rater Guidelines による通常の変動を除外するため、より高い--noiseを使用してください)
入力
| 入力 | ソース | 必須? |
|---|---|---|
| ベースライン CSV | 古いスナップショット | はい |
| 現在の CSV | 新しいスナップショット | はい |
| 結合キー | 自動検出(query、keyword、page、url)または --join-on フラグ | いいえ |
| ノイズしきい値 | --noise(デフォルトは 5%)— これを下回る変動率の指標は「安定」とします。YMYL 業界では、Quality Rater Guidelines による変動を除外するため、10% を使用してください | いいえ |
| 上位 N 件 | --top(デフォルトは 20)— 指標ごとの上昇項目/下降項目の件数 | いいえ |
どちらのスナップショットも、同じソースから取得する必要があります。 GSC のエクスポートと Ahrefs のエクスポートを混在させると、異なるソースでは集計対象が異なるため、意味のない結果になります。
処理(10 ステップ、番号付きファイルへの出力)
すべての出力先は ${CLAUDE_PLUGIN_DATA}/{brand}/seo/seo-drift/{YYYY-MM-DD}/ です。
00-input.md— 基準期間、現在の期間、データソース(GSC / GSC AI / rank-tracker / aeo-audit)、ブランドのコンテキストを記録します01-baseline.csv— 基準データのエクスポートをここにコピーします(数か月後でも差分実行を再現できるようにします)02-current.csv— 現在のデータのエクスポートをここにコピーします03-drift-run.json— スクリプトを実行します:python "${CLAUDE_PLUGIN_ROOT}/scripts/seo_drift.py" \ --baseline "${CLAUDE_PLUGIN_DATA}/{brand}/seo/seo-drift/{date}/01-baseline.csv" \ --current "${CLAUDE_PLUGIN_DATA}/{brand}/seo/seo-drift/{date}/02-current.csv" \ --top 30 --noise 5 \ --out "${CLAUDE_PLUGIN_DATA}/{brand}/seo/seo-drift/{date}/03-drift-run.json"04-quality-scorecard.md—03-drift-run.jsonからquality_scorecardを読み取ります。status: needs_reviewの場合は、次のように原因を特定します:date_range_distinct: warn→ スクリプトで自動検証できませんでした。基準期間と現在の期間が重複していないことを00-input.mdで手動確認します。sample_size: fail→ いずれかの入力データが 50 行未満です。行数制限を設けずに再エクスポートします。metric_compatibility: fail→ どちらの入力データにも数値指標がありません。列名が一致していないため、同じソースから再エクスポートします。no_lookup_collisions: fail→ いずれかの入力データにキーの重複があります(例:同じクエリ × ページの行が 2 回ある)。重複を削除して再エクスポートするか、--join-onを使って識別用の列を追加します。
05-biggest-gainers.md— 表示回数/クリック数/掲載順位で上位 10 件の上昇について説明します。それぞれについて、原因の仮説(新しいコンテンツ? 獲得した被リンク? Core Update による E-E-A-T の評価上昇? 強調スニペットの入れ替わり?)を示します。拡散候補を/digital-marketing-pro:content-engineに引き継ぎます。05-biggest-losers.md— 上位 10 件の下落について説明します。それぞれに、トリアージマトリックスis_yMYL × had_recent_change × Core_Update_windowを適用して、アクション(コンテンツの更新/元に戻された変更の復元/次のアルゴリズム更新まで待機/受け入れてリソースを再配分)を決定します。06-ai-mode-shift.md(入力ソースが GSC AI Performance Report の場合のみ) — AI モードの表示回数が減少したクエリは、先行指標です。/digital-marketing-pro:aeo-auditと照合し、模擬プローブで引用が失われたことを確認します。07-classification-distribution.md— 件数の表:- growth / decline / reshuffle / stable / new / lost
- decline が 40% を超える場合:Core Update または競合他社の追い上げが原因と考えられます。診断には
/digital-marketing-pro:seo-auditを実行します。 - reshuffle が 20% を超える場合:検索意図の変化(AI モードの重み付け変更)が原因と考えられます。新たな検索意図のパターンに合わせるには
/digital-marketing-pro:aeo-geoを実行します。 - growth が 30% を超える場合:拡散の機会を見つけます。追加施策を企画するには
/digital-marketing-pro:content-engineを実行します。 - new が 15% を超える場合:新たな SERP の掲載状況を追跡し、検索意図との適合性を検証します。
PLAN.md— 1 ページの概要:統計情報とスコアカードに加え、インパクト × 工数で順位付けした上位 5 件のアクションと、担当者の提案(SEO リード/コンテンツリード/開発チーム)を記載します。
出力形式
${CLAUDE_PLUGIN_DATA}/{brand}/seo/seo-drift/2026-06-04/
├── 00-input.md
├── 01-baseline.csv
├── 02-current.csv
├── 03-drift-run.json
├── 04-quality-scorecard.md
├── 05-biggest-gainers.md
├── 05-biggest-losers.md
├── 06-ai-mode-shift.md (only when input is GSC AI Performance Report)
├── 07-classification-distribution.md
└── PLAN.md
品質スコアカード(4 つのゲート)
| ゲート | 確認内容 | 重要な理由 |
|---|---|---|
| date_range_distinct | 基準期間と現在の期間が重複していないこと | 期間が重複すると、両方に同じデータが含まれ、誤検出の差分が生じます |
| sample_size | 各入力データが 50 行以上であること | これを下回ると、差分はノイズになります |
| metric_compatibility | 両方の入力データに数値指標が 1 つ以上あること | 列が異なる場合(例:Ahrefs と GSC)、比較できるものがありません |
| no_lookup_collisions | 入力データ内に重複キーがないこと | 重複があると、差分の計算が曖昧になります |
status: ready となるには、サンプル数、指標の互換性、重複なしのゲートを通過する必要があります(期間の重複なしは warn であり fail ではありません。スクリプトでは日付を常に自動検出できるとは限らないためです)。
分類ルール
レポートの各行は、次のいずれかに分類されます。
| 分類 | 条件 | 解釈 |
|---|---|---|
| growth | 2 つ以上の指標がノイズ%を超えて上昇し、10%を超えて低下した指標がない | 明確な成果 — 拡大策を検討します |
| decline | 2 つ以上の指標がノイズ%を超えて低下し、10%を超えて上昇した指標がない | 明確な損失 — YMYL × Core Update 期間に基づいて優先度を判断します |
| reshuffle | 反対方向への大幅な変動(例:表示回数は増加、掲載順位は低下) | AI Mode の特徴 — コンテンツがより広く表示される一方、対象となる検索意図がやや異なっています |
| stable | どの指標もノイズ%を超えて変動していない | 対応不要 |
| new | ベースラインにはなく、現在のデータに存在する | 新しいコンテンツ、または新しい SERP での表示範囲 — 推移を追跡します |
| lost | ベースラインには存在するが、現在のデータには存在しない | コンテンツが削除された、インデックスから除外された、または追跡期間から外れた |
掲載順位は例外です:掲載順位は、数値が小さいほど良いことを意味します。このスクリプトは、増減のランキングで掲載順位の差分の方向を自動的に反転します。掲載順位が最も上昇したページとして -85.9% と表示される場合、そのページは掲載順位 12 位から 2 位に上がっています。
スキル間の引き継ぎ
このスキルは通常、データを受け取り、診断する役割を担います。
/digital-marketing-pro:gsc-ai-performance、seo-audit、またはaeo-audit— スナップショットを生成します/digital-marketing-pro:seo-drift— このスキル- 調査結果に応じて分岐します:
- 大幅な低下 → 技術面の確認には
/digital-marketing-pro:seo-audit、コンテンツ面の確認には/digital-marketing-pro:content-decay-scan - 大幅な変動 → 検索意図の再調整には
/digital-marketing-pro:aeo-geo - 大幅な成長 → 拡大施策のブリーフ作成には
/digital-marketing-pro:content-engine
- 大幅な低下 → 技術面の確認には
ヒントと注意事項
- Core Update の展開中は実行しないでください。 Google が「展開完了」と発表してから、変動が落ち着くまで 7~14 日待ちます。展開中の差分は信頼できません。
- 掲載順位の差分は、表示回数やクリック数の差分よりノイズが多くなります — 掲載順位 8 位と 12 位の間で変動するページでは、意味のない ±30% の掲載順位差分が生じます。診断では、表示回数やクリック数の変動をより重視してください。
- GSC のデータには約 3 日の遅延があります。 「今月」のデータを取得するときは、昨日ではなく、3 日前を終了日とする期間を指定してください。
- GSC AI Performance Report(2026 年 6 月 3 日)にはクリックデータがありません。 AI レポートのドリフトは、表示回数のみのドリフトです。そこから CTR のドリフトを計算しようとしないでください。
- Core Update の影響を判断するには、ドリフト分析を 2 回実行します:アップデート前と展開完了翌日(「直後」)の比較、およびアップデート前と 14 日後(「安定後の状態」)の比較です。この 2 つの結果は食い違うことが多く、重要なのは 14 日後のデータです。
- reshuffle 分類は先行指標です — reshuffle の件数が急増した場合、検索意図の重み付けが変化しています。翌四半期のドリフトでは、通常、成長や低下がより明確に表れます。すぐに対応しないでください。
使用するエージェント
analytics-analyst(主担当)— 解釈と原因の仮説seo-specialist— 低下の技術的原因に関する仮説competitive-intel— 低下が競合の成果と相関している場合market-intelligence— アルゴリズム更新の状況(期間中に Core Update があったかどうか)
関連項目
/digital-marketing-pro:gsc-ai-performance— GSC AI Performance Report を取得します(入力元)/digital-marketing-pro:seo-audit— 低下の原因を診断します/digital-marketing-pro:aeo-audit— AI Mode での引用減少を診断します/digital-marketing-pro:content-decay-scan— コンテンツ面の低下を優先度順に確認します/digital-marketing-pro:content-engine— 成果が上がったページを拡大しますscripts/seo_drift.py— 基盤となるドリフトエンジン