seo-programmatic について
構造化データから大量生成するページを計画・監査する、SEO担当者向けのスキルです。データやテンプレートの検査に加え、薄いコンテンツやインデックス肥大化を防ぐ品質基準を扱います。
主な機能
- 01データの完全性と鮮度の評価
- 02動的ページテンプレートの計画
- 03URLと内部リンク戦略の策定
- 04薄いコンテンツや重複の検出
- 05canonicalとサイトマップの管理
- 06公開前の品質基準の適用
活用シーン
- 01データ生成ページのソース監査
- 02地域別・製品別ページの計画
- 03公開前の薄いコンテンツリスクの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ agricidaniel/ claude-seo --skill seo-programmaticインストール後、Claude Code で/seo-programmaticを入力して読み込まれたか確認します。
同梱ファイルLICENSE.txt
詳細
プログラマティック SEO の分析と計画
構造化データソースから大規模に生成される SEO ページを構築し、監査します。 低品質なコンテンツによるペナルティやインデックスの肥大化を防ぐため、品質ゲートを適用します。
データソースの評価
プログラマティックページを支えるデータを評価します。
- CSV/JSON ファイル:行数、列の一意性、欠損値
- API エンドポイント:レスポンス構造、データの鮮度、レート制限
- データベースクエリ:レコード数、フィールドの完全性、更新頻度
- データ品質チェック:
- 個別のコンテンツを生成するのに十分な固有属性を、各レコードが備えている必要があります
- 重複または重複に近いレコード(フィールドの重複が80%超)にフラグを付けます
- データの鮮度を確認します。古いデータからは古いページが生成されます
テンプレートエンジンの計画
独自性と価値のあるページを生成するテンプレートを設計します。
- 変数の挿入箇所:タイトル、H1、本文セクション、メタディスクリプション、スキーマ
- コンテンツブロック:静的(ページ間で共通)と動的(ページごとに固有)
- 条件ロジック:データの有無に基づいてセクションを表示/非表示にします
- 補足コンテンツ:関連項目、状況に応じたヒント、ユーザー生成コンテンツ
- テンプレートのレビューチェックリスト:
- 各ページが、それ単体で価値のあるリソースとして読める必要があります
- 「マッドリブ」形式(同一の文章で都市名や製品名だけを差し替えるパターン)は避けます
- 動的セクションでは、キーワードの言い換えだけでなく、真に有益な情報を追加する必要があります
URL パターン戦略
一般的なパターン
/tools/[tool-name]:ツール/製品のディレクトリページ/[city]/[service]:地域+サービスのページ/integrations/[platform]:連携機能のランディングページ/glossary/[term]:定義/リファレンスページ/templates/[template-name]:ダウンロード可能なテンプレートページ
URL のルール
- データから生成した、小文字でハイフン区切りのスラッグを使用します
- サイトのアーキテクチャを反映した論理的な階層にします
- 重複するスラッグを作らず、生成時に一意性を強制します
- URL は100文字未満にします
- 主要なコンテンツ URL にクエリパラメーターを使用しません
- 末尾のスラッシュの有無を統一します(既存のサイトパターンに合わせます)
内部リンクの自動化
- ハブ&スポークモデル:カテゴリのハブページから個々のプログラマティックページにリンクします
- 関連項目:データ属性に基づいて、関連ページを3~5件自動的にリンクします
- パンくずリスト:URL 階層から BreadcrumbList スキーマを生成します
- 相互リンク:属性(同じカテゴリ、同じ都市、同じ機能)を共有するプログラマティックページ間をリンクします
- アンカーテキスト:説明的で多様なアンカーテキストを使います。完全一致キーワードの繰り返しは避けます
- リンク密度:1000語あたり3~5件の内部リンク(seo-content のガイドラインに合わせます)
低品質コンテンツの防止策
品質ゲート
| 指標 | しきい値 | 対応 |
|---|---|---|
| コンテンツレビューを受けていないページ | 100+ | ⚠️ 警告:公開前にコンテンツ監査が必要です |
| 正当性の説明がないページ | 500+ | 🛑 強制停止:ユーザーによる明示的な承認と低品質コンテンツの監査が必要です |
| ページごとの独自コンテンツ | <40% | ❌ 低品質コンテンツとしてフラグを付けます(ペナルティのリスクが高い可能性があります) |
| ページごとの単語数 | <300 | ⚠️ レビュー対象としてフラグを付けます(価値が十分でない可能性があります) |
スケールされたコンテンツの不正使用:対策の背景(2025-2026)
Google の「スケールされたコンテンツの不正使用」ポリシー(2024年3月導入)では、2025年に対策が大幅に強化されました。
- 2025年6月: AI 生成コンテンツを大規模に公開しているサイトに対し、手動による対策が相次いだとの第三者報告がありました(Google からの発表はありません)
- 2025年8月: AI 生成のリンクスキームやコンテンツファームに対する SpamBrain の検出が強化されたとの第三者および SEO コミュニティからの報告がありました
- 結果: 2024年3月以降の対策により、検索結果の低品質で独自性のないコンテンツが45%減少したと Google が報告しました
プログラム生成ページに対する品質基準の強化:
- コンテンツの差別化: プログラム生成されたページ同士では、コンテンツの30~40%以上が実質的に独自である必要があります(都市名やキーワードを置き換えるだけでは不十分です)
- 人によるレビュー: 生成したページの最低5~10%を、公開前にサンプルレビューします
- 段階的な公開: 50~100ページずつ公開します。拡大する前に、2~4週間にわたりインデックス登録とランキングを監視します。明示的な品質レビューなしに、500ページを超えるプログラム生成ページを一度に公開してはいけません。
- 単独価値テスト: 各ページについて、「ほかに似たページが一つもなくても、このページを公開する価値はあるか?」という問いに合格する必要があります。
- サイト評価の不正使用: Google は2024-11-19にサイト評価の不正使用に関する表現を明確化しました。第三者がホストするプログラム生成コンテンツは、ポリシー上のリスクとして扱ってください。2026-08-30以降(2026-08-28発表)、対策は検索ユーザーによって異なります。EEA 外では手動による対策が適用される一方、EEA のユーザー向けでは、第三者セクションがメインドメインとは別に分類される場合があります。どちらのユーザー層についてもリスクを報告してください。
推奨事項:
<40% unique contentで WARNING ゲートを適用するのは、引き続き妥当です。スケールされたコンテンツの不正使用リスクを防ぐため、独自コンテンツが<30%の場合は HARD STOP を検討してください。
安全なプログラム生成ページ(大規模公開が可能)
✅ 統合ページ(実際のセットアップドキュメント、API の詳細、スクリーンショットを含む) ✅ テンプレート/ツールのページ(ダウンロード可能なコンテンツ、使用手順を含む) ✅ 用語集ページ(例や関連用語を含む、200語以上の定義) ✅ 製品ページ(独自の仕様、レビュー、比較データ) ✅ データ駆動型のページ(各レコードに固有の統計、グラフ、分析)
ペナルティのリスク(大規模公開を避ける)
❌ 同一テキストの都市名だけを置き換えた地域ページ ❌ 業界固有の価値を提供しない「[業界]向けの最適な[ツール]」 ❌ 実際の比較データがない「[競合他社]の代替」 ❌ 人によるレビューや独自の付加価値のない AI 生成ページ ❌ コンテンツの60%を超える部分が共通のテンプレート文面であるページ
独自性の計算方法
独自コンテンツの割合 =(このページ固有の単語数)/(ページ全体の単語数)× 100
プログラム生成ページのセット内にあるすべてのページと比較して測定します。共通のヘッダー、フッター、ナビゲーションは計算から除外します。テンプレートの定型文は計算に含めます。
メタデータは別途評価されます。 この計算の対象は本文のみなので、計算に合格したセットでも、すべての URL に同じ形式で生成されたタイトル/説明文が付いている場合があります。セット全体に対して "${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run metadata_template.py --pairs-file <file> --json(ヒューリスティックによる決定論的な文字列比較)を実行し、本文の独自性にかかわらず、site_risk が high の場合はゲート不合格として扱ってください。
正規 URL 戦略
- すべてのプログラム生成ページには、自身を参照する canonical タグを設定する必要があります
- 重複しているか価値の低いパラメーターのバリエーション(並べ替え、フィルター)は、ベース URL を canonical にします
- ページ分割されたシリーズでは、コンテンツが異なる場合はページごとに自身を canonical にし、クロール可能なリンクを維持します
- プログラム生成ページと手動作成ページの内容が重複する場合は、手動作成ページを canonical にします
- 意図的なクロスドメイン設定でない限り、別ドメインを canonical に指定しないでください
サイトマップの統合
- すべてのプログラム生成ページのサイトマップエントリを自動生成します
- サイトマップファイルごとに、URL が 50,000 件または圧縮されていない状態で 50 MB のどちらか先に達した時点で分割します(プロトコル上の上限)
- 複数のサイトマップファイルが必要な場合は、サイトマップインデックスを使用します
<lastmod>は生成時刻ではなく、実際のデータ更新タイムスタンプを反映します- noindex のプログラム生成ページはサイトマップから除外します
- robots.txt にサイトマップを登録します
- データソースに新しいレコードが追加されたら、サイトマップを動的に更新します
インデックスの肥大化防止
- 価値の低いページを noindex にする:品質基準を満たさないページ
- ページネーション:真の重複ページや価値の低いフィルタービューに限り、noindex や canonical による統合を行います
- ファセットナビゲーション:真の重複ページや価値の低いフィルタービューに限り、noindex またはベースカテゴリへの canonical を設定します
- クロールバジェット:プログラム生成ページが 10,000 件を超えるサイトでは、Search Console でクロール統計を監視します
- 内容の薄いページの統合:データが不十分なレコードを統合ページにまとめます
- 定期監査:インデックス登録ページ数と想定ページ数を毎月確認します
出力
プログラム生成 SEO スコア:XX/100
評価の概要
| カテゴリ | 状態 | スコア |
|---|---|---|
| データ品質 | ✅/⚠️/❌ | XX/100 |
| テンプレートの独自性 | ✅/⚠️/❌ | XX/100 |
| URL 構造 | ✅/⚠️/❌ | XX/100 |
| 内部リンク | ✅/⚠️/❌ | XX/100 |
| 内容の薄いページのリスク | ✅/⚠️/❌ | XX/100 |
| インデックス管理 | ✅/⚠️/❌ | XX/100 |
重大な問題(直ちに修正)
優先度:高(1 週間以内に修正)
優先度:中(1 か月以内に修正)
優先度:低(バックログ)
推奨事項
- データソースの改善
- テンプレートの変更
- URL パターンの調整
- 品質基準への準拠に向けた対応
エラー処理
| シナリオ | 対応 |
|---|---|
| URL にアクセスできない | ステータスコードとともに接続エラーを報告します。URL にアクセスできるか確認し、認証が必要かどうかを確認するよう提案します。 |
| プログラム生成ページが検出されない | テンプレート生成型またはデータ駆動型のページパターンが見つからなかったことをユーザーに通知します。ページがクライアントサイドレンダリングを使用しているか、URL が正しいセクションを指しているか確認するよう提案します。 |
| 内容の薄さのしきい値を超過 | 品質基準の警告を発します。独自コンテンツの割合を報告し、独自性が 40% 未満のページにフラグを付けます。続行する前にユーザーの了承を求めます。 |
| 品質基準への違反 | HARD STOP のしきい値(正当な理由のないページが 500 件以上、または独自コンテンツが 30% 未満)で分析を停止します。調査結果を提示し、続行する前にユーザーの明示的な承認を求めます。 |