Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 50/100

seo-cluster

SERPの重複データをもとにキーワードを意味的にクラスタリングし、コンテンツ設計を支援するスキルです。テキストの類似性ではなく実際のGoogle SERPの重複に基づいてキーワードをグループ化し、内部リンクマトリクスを含むハブ&スポーク型コンテンツクラスターを設計、インタラクティブな可視化を生成します。「トピッククラスター」「ピラーページ」「コンテンツ設計」「キーワードグルーピング」などのキーワードが含まれる場合に使用してください。

description の原文を見る

> SERP-based semantic topic clustering for content architecture planning. Groups keywords by actual Google SERP overlap (not text similarity), designs hub-and-spoke content clusters with internal link matrices, and generates interactive visualizations. Optionally executes content creation if claude-blog is installed. Use when user says "topic cluster", "content cluster", "semantic clustering", "pillar page", "hub and spoke", "content architecture", "keyword grouping", or "cluster plan".

SKILL.md 本文

セマンティック・トピック・クラスタリング (v1.9.0)

SERP重複をベースにしたキーワードクラスタリングでコンテンツアーキテクチャを実現します。テキスト類似度ではなく、Googleが実際にランク付けする方法(トップ10結果の重複)でキーワードをグループ化。ハブ・スポーク型のコンテンツクラスタを設計し、内部リンク行列を作成し、インタラクティブなクラスターマップ可視化を生成します。

スクリプト: プラグインルートの scripts/ ディレクトリに位置します。


クイックリファレンス

コマンド機能
/seo cluster plan <seed-keyword>完全な計画ワークフロー:拡張、クラスタリング、アーキテクチャ、可視化
/seo cluster plan --from strategy既存の /seo plan 出力からインポート
/seo cluster execute計画の実行:claude-blogでコンテンツを作成、またはブリーフを出力
/seo cluster mapインタラクティブなクラスター可視化を再生成

計画ワークフロー

ステップ 1:シード キーワード拡張

WebSearchを使用してシードキーワードを30~50のバリエーションに拡張します:

  1. 関連検索 — シードを検索し、「関連検索」と「関連検索キーワード」を抽出
  2. People Also Ask(PAA) — SERP結果からすべてのPAAのクエスチョンを抽出
  3. ロングテール修飾子 — 一般的な修飾子を追加:「best」「how to」「vs」「for beginners」「tools」「examples」「guide」「template」「mistakes」「checklist」
  4. クエスチョンマイニング — who/what/when/where/why/howのバリエーションを生成
  5. インテント修飾子 — 商業的修飾子を追加:「pricing」「review」「alternative」「comparison」「free」「top」

重複排除: バリエーションを正規化(小文字、冠詞削除)し、完全に重複したものを削除。 目標:30~50個のユニークなキーワードバリエーション。30未満の場合、トップPAAのクエスチョンをシードとして、2番目の拡張パスを実行します。

ステップ 2:SERP重複クラスタリング

これはコア的な差別化要素です。references/serp-overlap-methodology.md を読み込み、完全なアルゴリズムを確認してください。

プロセス:

  1. キーワードを初期インテント予測でグループ化(ペアワイズ比較を削減)
  2. グループ内の各候補ペアについて、両方のキーワードをWebSearchで検索
  3. トップ10のオーガニック結果で共有URLをカウント(広告、フィーチャースニペット、PAA除外)
  4. しきい値を適用:
共有結果数関係アクション
7-10同一ポスト単一のターゲットページにマージ
4-6同一クラスタ同じスポーククラスタの下にグループ化
2-3相互リンク隣接するクラスタに配置、クロスリンクを追加
0-1分離異なるクラスタに割り当てるか除外

最適化: 40キーワードの場合、完全なペアワイズ = 780比較。その代わり:

  • インテント別に事前グループ化(4グループ × 約10 = 4 x 45 = 180比較)
  • グループ境界キーワードのみを相互確認
  • 両方が同じヘッドタームのロングテールバリエーションであるペアをスキップ(同一クラスタと仮定)

DataForSEO統合: DataForSEO MCPが利用可能な場合、WebSearchの代わりに serp_organic_live_advanced をSERPデータに使用。各バッチの前に python scripts/dataforseo_costs.py check serp_organic_live_advanced --count N を実行します。"status": "needs_approval" の場合、コスト推定を表示してユーザーに確認。"status": "blocked" の場合、WebSearchにフォールバック。

ステップ 3:インテント分類

各キーワードを4つのインテントカテゴリのいずれかに分類します:

インテントシグナルクラスタに含める?
情報提供how、what、why、guide、tutorial、learnはい
商業best、top、review、comparison、vs、alternativeはい
取引buy、price、discount、coupon、order、sign upはい
ナビゲーショナルブランド名、特定製品名、ログインいいえ(除外)

ナビゲーショナルキーワードをクラスタリングから削除。境界線上のケースは手動確認用にフラグを立てます。キーワードは混合インテントを持つ場合があります(例:「best CRM software」は商業と情報提供の両方) -- 支配的インテントで分類します。

ステップ 4:ハブ・スポーク・アーキテクチャ

references/hub-spoke-architecture.md で完全な仕様を読み込みます。

クラスター構造を設計:

  1. ピラーキーワードを選択 — 最高ボリューム、最も幅広いインテント、他のキーワードとの最も多いSERP重複
  2. スポークをクラスタにグループ化 — 各クラスタはサブトピック領域(ピラーあたり2~5クラスタ)
  3. ポストをクラスタに割り当て — 各クラスタは2~4個のスポークポストを取得
  4. ポストごとにテンプレートを選択 — インテント分類に基づく:
インテントパターンテンプレート選択肢
情報提供(広い)ultimate-guide
情報提供(how)how-to
情報提供(リスト)listicle
情報提供(コンセプト)explainer
商業(比較)comparison
商業(評価)review
商業(ランク)best-of
取引landing-page
  1. 字数目標を設定:

    • ピラーページ:2500~4000語
    • スポークポスト:1200~1800語
  2. 共食い確認 — 2つのポストが同じプライマリキーワードを共有しません。SERP重複が7以上の場合、これらのキーワードを1つのポストにマージして両方をターゲットに。

ステップ 5:内部リンク行列

双方向リンク構造を設計:

リンク種別方向要件
スポークからピラースポーク → ピラー必須(すべてのスポーク)
ピラーからスポークピラー → スポーク必須(すべてのスポーク)
クラスタ内スポークからスポークスポーク ↔ スポークポストあたり2~3リンク
クロスクラスタスポーク → スポーク(他のクラスタ)ポストあたり0~1リンク

ルール:

  • すべてのポストは最少3つの受信内部リンクを必須
  • 孤立ページなし(すべてのポストはピラーから2クリック以内で到達可能)
  • アンカーテキストはターゲットキーワードまたは近いバリエーションを使用(「click here」は不可)
  • リンク配置:ナビゲーション/サイドバーではなく、ボディコンテンツ内

リンク行列をJSON隣接リストとして生成:

{
  "links": [
    { "from": "pillar", "to": "cluster-0-post-0", "type": "mandatory", "anchor": "keyword" },
    { "from": "cluster-0-post-0", "to": "pillar", "type": "mandatory", "anchor": "keyword" }
  ]
}

ステップ 6:インタラクティブ・クラスターマップ

templates/cluster-map.html のテンプレートを使用して cluster-map.html を生成します。

  1. テンプレートファイルを読み込む
  2. クラスター計画から CLUSTER_DATA JSONオブジェクトを構築:
    {
      pillar: { title, keyword, volume, template, wordCount, url },
      clusters: [{ name, color, posts: [{ title, keyword, volume, template, wordCount, url, status }] }],
      links: [{ from, to, type }],
      meta: { totalPosts, totalClusters, totalLinks, estimatedWords }
    }
    
  3. テンプレートの CLUSTER_DATA プレースホルダーを実際のJSONで置換
  4. 完成したHTMLファイルを出力ディレクトリに書き込む
  5. ユーザーに通知:「ブラウザで cluster-map.html を開いて、インタラクティブなクラスターマップを探索してください。」

戦略インポート

--from strategy で呼び出された場合:

  1. 現在のディレクトリで最新の /seo plan 出力を探す(*SEO*Plan**strategy**content-strategy* にマッチするファイルを検索)
  2. マークダウンテーブルをパース:キーワード、ページタイプ、コンテンツピラー、URL構造
  3. 抽出されたデータを検証:重複をチェック、キーワード不足、不完全なエントリ
  4. SERPデータで拡張:抽出されたキーワードでSERP重複分析を実行
  5. インポートされたキーワードをスタートセットとして、クラスター計画を構築(ステップ1をスキップ)

戦略ファイルが見つからない場合、ユーザーに通知:「現在のディレクトリで既存のSEO計画が見つかりません。最初に /seo plan を実行するか、新しいクラスタリング用のシードキーワードを提供してください。」


実行ワークフロー

/seo cluster execute が呼び出された場合:

claude-blogをチェック

テスト:~/.claude/skills/blog/SKILL.md は存在しますか?

claude-blog がインストール済みの場合:

  1. references/execution-workflow.md を読み込み、完全なアルゴリズムを確認
  2. 現在のディレクトリから cluster-plan.json を読み込む
  3. 再開状態をチェック:出力ディレクトリをスキャンして、既に書き込まれたポストを確認
  4. 優先順で実行:ピラー優先、次にスポークをボリューム順(最高優先)
  5. 各ポストについて、クラスタコンテキストで blog-write スキルを呼び出す:
    • クラスタロール(ピラーまたはスポーク)
    • クラスタ内の位置(クラスタインデックス、ポストインデックス)
    • ターゲットキーワードとセカンダリキーワード
    • テンプレートタイプと字数目標
    • 含めるべき内部リンク(アンカー付き)
    • 将来のポストから受け取るリンク(プレースホルダーマーカー)
  6. 各ポストが書き込まれた後、前のポストをスキャンして逆向きリンクプレースホルダーを確認し、新しいポストのURLを注入
  7. すべてのポストが書き込まれた後、クラスタースコアカードを生成

claude-blog がインストール済みでない場合:

  1. クラスター計画の各ポストについて詳細なコンテンツブリーフを生成
  2. 各ブリーフには以下を含む:
    • タイトルとメタディスクリプション
    • プライマリキーワードとセカンダリキーワード
    • テンプレートタイプと提案される構造(H2/H3アウトライン)
    • 字数目標
    • 含めるべき内部リンク(アンカーテキスト付き)
    • カバーすべきキーポイント
    • 差別化する競合ページ
  3. ブリーフを cluster-briefs/ ディレクトリに個別のマークダウンファイルとして書き込む
  4. ユーザーに通知:「claude-blog をインストールして自動コンテンツ作成を実現。ブリーフは cluster-briefs/ に保存。」

クラスタースコアカード

実行後の品質レポート。/seo cluster execute の後に自動実行、または出力ディレクトリの分析時にオンデマンドで実行。

メトリクス目標測定方法
カバレッジ100%書き込まれたポスト / 計画されたポスト
リンク密度ポストあたり3以上ポストあたりの内部リンク数
孤立ページ0受信リンク < 1のポスト
共食い0競合重複プライマリキーワードをチェック
画像数ポストあたり1以上最少1つの画像を含むポスト
ピラーリンク100%すべてのスポークがピラーとリンク(相互)
クロスリンク80%以上実装された推奨スポーク・ツー・スポークリンク
コンテンツギャップ0スキップまたは不完全な計画済みポスト

マップ再生成

/seo cluster map が呼び出された場合:

  1. 現在のディレクトリから cluster-plan.json を読み込む
  2. 出力ディレクトリをスキャンしてポストステータスを更新(計画済み vs 書き込み済み)
  3. 更新されたステータスで cluster-map.html を再生成
  4. 報告:書き込まれたポスト数 vs 計画されたポスト数、リンク完了率

出力ファイル

すべての出力は現在の作業ディレクトリに書き込まれます:

ファイル説明
cluster-plan.jsonマシンリーダブルなクラスター計画(完全データ)
cluster-plan.mdヒューマンリーダブルなクラスター計画サマリー
cluster-map.htmlインタラクティブSVG可視化
cluster-briefs/コンテンツブリーフ(claude-blogなし場合)
cluster-scorecard.md実行後の品質レポート

クロススキル統合

スキル関係
seo-planインポートソース:戦略インポートはseo-plan出力を読む
seo-content品質確認:生成されたコンテンツのE-E-A-T検証
seo-schemaスキーママークアップ:クラスタページ用Article、BreadcrumbList、ItemList
seo-dataforseoデータソース:DataForSEO MCP利用可能時のSERPデータ
seo-googleレポート:クラスター計画とスコアカードのPDFレポート生成

クラスター計画または実行が完了後、提案: 「PDFレポートを生成しますか? /seo google report を使用」


エラーハンドリング

エラー原因解決
「シードキーワードが指定されていません」引数が不足ユーザーにシードキーワードまたはURLを促す
「キーワードバリエーションが不十分」拡張が15未満を生成PAA質問で2番目の拡張パスを実行
「SERPデータが利用不可」WebSearchとDataForSEO両方が失敗30秒後に再試行;継続的に失敗の場合、インテントのみでクラスタリング(警告付き)使用
「戦略ファイルが見つかりません」--from strategy だがプランが存在しないユーザーに /seo plan を実行するよう促す
「cluster-plan.json が見つかりません」計画なしで実行/seo cluster plan を実行するようユーザーに促す
「claude-blogがインストールされていません」ブログスキルなしで実行試行コンテンツブリーフを生成;インストールを提案
「DataForSEO予算を超過」コストチェックが「blocked」を返すWebSearchにフォールバック;ユーザーに通知
「プライマリキーワードが重複」共食い検出影響を受けたポストをマージするか、キーワード再割り当て
「孤立ページが検出」ポストに受信リンク不足最も近いクラスタシブリングからリンクを追加
「再開状態が破損」計画と出力間の不一致出力ディレクトリスキャンから状態を再構築

セキュリティ

  • すべてのURL取得は python scripts/fetch_page.py 経由(validate_url() でSSRF保護)
  • 認証情報が保存または送信されない
  • 出力ファイルにはPIやAPIキーを含まない
  • DataForSEOコストチェックはすべてのAPI呼び出し前に実行

FLOW フレームワーク統合

プロンプトガイド付きキーワード調査とギャップ分析の場合、/seo flow find [url|topic] を使用 — FLOWの5つのfindステージプロンプトがSERP重複クラスタリング手法を構造化発見プロンプトで補完します。

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
agricidaniel
リポジトリ
agricidaniel/claude-seo
ライセンス
MIT
最終更新
不明

Source: https://github.com/agricidaniel/claude-seo / ライセンス: MIT

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: agricidaniel · agricidaniel/claude-seo · ライセンス: MIT