seo-drift
SEOの重要な要素(タイトル、メタ情報、構造化データなど)のベースラインを記録し、変更点の差分検出やリグレッションの追跡を行うSEOドリフト監視スキルです。「SEO drift」「ベースライン」「変更の追跡」「何か壊れた?」「SEOリグレッション」「デプロイ確認」などのキーワードをトリガーに、ページ上のSEO要素をGitのように比較・管理します。
description の原文を見る
> SEO drift monitoring: capture baselines of SEO-critical elements, detect changes, and track regressions over time. Git for SEO — baseline, diff, and track changes to your on-page SEO. Use when user says "SEO drift", "baseline", "track changes", "did anything break", "SEO regression", "compare SEO", "before and after", "monitor SEO changes", or "deployment check".
SKILL.md 本文
SEO Drift Monitor (April 2026)
あなたのSEOのためのGit。ベースラインをキャプチャし、リグレッションを検出し、時系列で変更を追跡します。
コマンド
| コマンド | 目的 |
|---|---|
/seo drift baseline <url> | 現在のSEO状態を「既知の良い状態」のスナップショットとしてキャプチャ |
/seo drift compare <url> | 現在のページ状態と保存されたベースラインを比較 |
/seo drift history <url> | 変更履歴と過去の比較を表示 |
キャプチャ対象
すべてのベースラインは、これらのSEO重要要素を記録します:
| 要素 | フィールド | ソース |
|---|---|---|
| Title タグ | title | parse_html.py |
| Meta description | meta_description | parse_html.py |
| Canonical URL | canonical | parse_html.py |
| Robots ディレクティブ | meta_robots | parse_html.py |
| H1 見出し | h1 (配列) | parse_html.py |
| H2 見出し | h2 (配列) | parse_html.py |
| H3 見出し | h3 (配列) | parse_html.py |
| JSON-LD スキーマ | schema (配列) | parse_html.py |
| Open Graph タグ | open_graph (辞書) | parse_html.py |
| Core Web Vitals | cwv (辞書) | pagespeed_check.py |
| HTTP ステータスコード | status_code | fetch_page.py |
| HTML コンテンツ ハッシュ | html_hash (SHA-256) | 計算済み |
| スキーマ コンテンツ ハッシュ | schema_hash (SHA-256) | 計算済み |
比較の仕組み
比較エンジンは3つの重大度レベルにわたって17個のルールを適用します。完全なルールセット、閾値、推奨アクション、およびクロススキルリファレンスについては references/comparison-rules.md をロードしてください。
重大度レベル
| レベル | 意味 | 対応時間 |
|---|---|---|
| CRITICAL | SEO を破壊する変更、トラフィック損失の可能性高い | 直ちに |
| WARNING | 潜在的な影響、調査が必要 | 1週間以内 |
| INFO | 認識目的のみ、意図的な可能性あり | 都合がつき次第確認 |
ストレージ
すべてのデータはSQLiteでローカルに保存されます:
~/.cache/claude-seo/drift/baselines.db
テーブル
- baselines: すべてのSEO要素を含むキャプチャ済みスナップショット
- comparisons: トリガーされたルールと重大度を含む差分結果
URL正規化は一貫性のあるマッチングを保証します: スキーム/ホストを小文字に、デフォルトポート(80/443)を削除、クエリパラメータをソート、UTMパラメータを削除、末尾スラッシュを削除。
コマンド: baseline
ページの現在の状態をキャプチャして保存します。
ステップ:
- URL を検証 (
google_auth.validate_url()経由SSRF保護) scripts/fetch_page.py経由でページをフェッチscripts/parse_html.py経由でHTMLを解析- オプションで
scripts/pagespeed_check.py経由でCWVをフェッチ (--skip-cwvでスキップ可能) - HTMLボディとスキーマコンテンツをハッシュ (SHA-256)
- スナップショットをSQLiteに保存
実行:
python scripts/drift_baseline.py <url>
python scripts/drift_baseline.py <url> --skip-cwv
出力: ベースラインID、タイムスタンプ、URL、およびキャプチャされた要素の概要を含むJSON。
コマンド: compare
現在のページ状態をフェッチして、最新のベースラインに対して差分を取ります。
ステップ:
- URL を検証
- SQLite から最新のベースラインをロード (または特定の
--baseline-id) - 現在のページ状態をフェッチして解析
- すべての17個の比較ルールを実行
- 結果を重大度で分類
- 比較結果を保存
- JSON差分レポートを出力
実行:
python scripts/drift_compare.py <url>
python scripts/drift_compare.py <url> --baseline-id 5
python scripts/drift_compare.py <url> --skip-cwv
出力: トリガーされたすべてのルール、旧値/新値、重大度、およびアクションを含むJSON。
比較後、HTMLレポートを生成するオプションを提供します:
python scripts/drift_report.py <comparison_json_file> --output drift-report.html
コマンド: history
URL に関するすべてのベースラインと比較を表示します。
実行:
python scripts/drift_history.py <url>
python scripts/drift_history.py <url> --limit 10
出力: タイムスタンプと比較サマリーを含むベースラインの JSON配列 (最新が最初)。
クロススキル連携
ドリフトが検出された場合、適切な専門スキルを推奨します:
| 検出結果 | 推奨事項 |
|---|---|
| スキーマが削除または変更された | /seo schema <url> を実行して完全な検証を行う |
| CWV リグレッション | /seo technical <url> を実行してパフォーマンス監査を行う |
| Title または meta description が変更された | /seo page <url> を実行してコンテンツ分析を行う |
| Canonical が変更または削除された | /seo technical <url> を実行してインデックス可能性チェックを行う |
| Noindex が追加された | /seo technical <url> を実行してクローラビリティ監査を行う |
| H1/見出し構造が変更された | /seo content <url> を実行してE-E-A-Tレビューを行う |
| OG タグが削除された | /seo page <url> を実行してソーシャルシェア分析を行う |
| ステータスコードがエラーに変更された | /seo technical <url> を実行して完全な診断を行う |
エラーハンドリング
| シナリオ | アクション |
|---|---|
| URL に到達不可 | fetch_page.py からのエラーを報告。状態を推測しない。ユーザーにURL確認を提案。 |
| URL のベースラインが存在しない | ユーザーに通知し、最初に baseline を実行することを提案。 |
| SSRF ブロック (プライベートIP) | validate_url() 拒否を報告。バイパスしない。 |
| SQLite データベースが見つからない | 初回使用時に自動作成。エラーなし。 |
| CWV フェッチが失敗 (APIキーなし) | CWV フィールドに null を保存。比較時にCWVルールをスキップ。 |
| ページが4xx/5xx を返す | それでもベースラインとしてキャプチャ (ステータスコードは追跡対象フィールド)。 |
| 複数のベースラインが存在 | --baseline-id が指定されない限り、最新のものを使用。 |
セキュリティ
- すべてのURL取得 は
scripts/fetch_page.pyを通じて行われ、SSRF保護を強制 (プライベートIP、ループバック、予約済み範囲、GCPメタデータエンドポイントをブロック) - curl やsubprocess HTTP呼び出しなし -- プロジェクトの検証済みフェッチパイプラインのみ
- すべてのSQLiteクエリ はパラメータ化プレースホルダ (
?) を使用、文字列補間はなし - TLS は常に検証 -- パイプラインのどこにも
verify=Falseはなし
典型的なワークフロー
デプロイ前後のチェック
/seo drift baseline https://example.com # デプロイ前
# ... デプロイが実施される ...
/seo drift compare https://example.com # デプロイ後
継続的なモニタリング
/seo drift baseline https://example.com # 初期キャプチャ
# ... 数週間後 ...
/seo drift compare https://example.com # ドリフトをチェック
/seo drift history https://example.com # すべての変更を確認
トラフィック低下の調査
/seo drift compare https://example.com # 何が変わった?
/seo drift history https://example.com # いつ変わった?
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- agricidaniel
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/agricidaniel/claude-seo / ライセンス: MIT
関連スキル
seo-maps
ローカルSEO向けのマップインテリジェンス機能です。ジオグリッドのランク追跡、APIを通じたGBPプロフィール監査、Google・Tripadvisor・Trustpilotなど複数プラットフォームのレビュー分析、Google・Bing・Apple・OSM間のNAP(名前・住所・電話番号)検証、競合他社の半径マッピング、APIデータからのLocalBusinessスキーマ生成が可能です。3段階の機能レベルで対応でき、無料版(Overpass + Geoapify)、DataForSEO(フル機能)、DataForSEO + Google(最大カバレッジ)から選択できます。「maps」「geo-grid」「rank tracking」「GBP audit」「review velocity」「competitor radius」「maps analysis」「local rank tracking」「Share of Local Voice」「SoLV」などのキーワードで利用できます。
seo-content-brief
セクションごとの文字数、競合スコアリング、キーワード密度ガイダンス、ページタイプテンプレートを含む競争力のあるSEOコンテンツブリーフを生成します。新規ページのブリーフと既存ページの改善ブリーフの両方に対応しています。ユーザーが「コンテンツブリーフ」「ブリーフを作成」「コンテンツアウトライン」「ブログブリーフ」「サービスページブリーフ」「ブリーフ〜」「ライティングブリーフ」「コンテンツプラン」「アウトライン〜」などと言った場合に使用します。
rakuten-seo
楽天市場の商品名・キャッチコピーをSEO最適化するスキル。「楽天SEO」「商品名最適化」「楽天の商品名」「キャッチコピー」「楽天のタイトル」「商品名を直して」「楽天検索対策」など、楽天市場の商品名やキャッチコピーの作成・改善・チェックに関するリクエストで必ずこのスキルを使う。既存の商品名の改善も、ゼロからの作成も対応。あらゆるジャンル(食品・ファッション・化粧品・家電・サプリ・インテリア・ベビー・ペット・業務用など)に対応。 【ALSEL独自スキル】株式会社ALSEL が、19年・5,000社超の EC 支援で得たノウハウをもとに開発したオリジナルスキルです。
amazon-seo-jp
Amazon.co.jp商品ページのSEO分析・最適化・自動採点スキル v2.0。 COSMO/Rufus/A10アルゴリズムに基づく採点。セラーセントラル出品レポート(.xlsm)を入力すると、 商品タイトル・箇条書き・検索キーワード・商品説明文を100点満点で採点し、 4項目すべての改善案を日本語で出力する。 トリガー: 「Amazon SEO」「商品ページ採点」「Amazon最適化」 「リスティング改善」「Amazon商品名」「箇条書き改善」 「COSMO対応」「Rufus最適化」「Amazon タイトル」 【ALSEL独自スキル】株式会社ALSEL が、19年・5,000社超の EC 支援で得たノウハウをもとに開発したオリジナルスキルです。
rakuten-bulk-control-csv
楽天RMSの一括登録/一括除外/一括更新用CSV(コントロールカラム,商品管理番号 の2列フォーマット)を作成するスキル。商品DL CSV・商品管理画面のコピペ・Excel・PDFなどから商品管理番号を抽出し、Shift-JIS+LF改行で出力する。「一括除外リスト作って」「楽天の除外CSV」「コントロールカラムnで」「2800円以下の商品をdで」「在庫0の商品を一括削除」「商品管理番号抜いてshift-jsで」「このフォーマットで」など、楽天RMSの商品一括処理用CSVを作るタスクで必ずこのスキルを使う。コントロールカラム値(n=新規/d=削除/u=更新)と抽出条件(全件・価格・在庫・販売状態など)をユーザー指示に応じて柔軟に切り替える。 【ALSEL独自スキル】株式会社ALSEL が、19年・5,000社超の EC 支援で得たノウハウをもとに開発したオリジナルスキルです。
amazon-a-plus-content-brief
Amazon A+コンテンツの構成・モジュール選定・画像指示・比較表・FAQを設計するスキル。「A+コンテンツ作って」「Aプラス構成」「ブランドストーリー」「比較表つきA+」「A+モジュール選定」「Amazonのページに画像入れたい」「A+のヘッダー画像」「A+コンテンツマネージャー」など、Amazon A+コンテンツの企画・設計・改善のリクエストで必ずこのスキルを使う。ベーシック17モジュール/Premium追加機能/画像サイズ規定/文字数目安/審査リジェクト要因を踏まえて、デザイナーに渡せるブリーフ形式で出力。あらゆるジャンル(家電・コスメ・食品・アパレル・日用品・ベビー・ペット等)に対応。※ブランドストア(マルチページ)の設計は別スキル `amazon-brand-store-planner`、タイトル・bullet改善は `amazon-title-bullet-rewriter-jp`、メイン画像のチェックは `amazon-main-image-checker`。 【ALSEL独自スキル】株式会社ALSEL が、19年・5,000社超の EC 支援で得たノウハウをもとに開発したオリジナルスキルです。