拡張 · ライブデータLocal SEO Agent

Local Pack Audit

対象クエリのローカルパックと地図結果でビジネスが何位か、上位の競合と比べて確認。1 拠点でも複数拠点でも。

エージェントネイティブ

Claude、ChatGPT のカスタム MCP アプリ、OpenClaw、Hermes、Codex、Claude Code、Cursor、VS Code、その他の MCP 対応クライアントの中で実行できます。専用の GUI フローも、別の LLM API キーも不要です。

ライブの公開データに裏打ちされている

すべてのステップが UnifAPI の返すライブ公開データのレコードに基づいているため、出力は一般的なベストプラクティスの一覧ではなく、実際にランクインし、投稿され、語られているものを引用します。

組み合わせ自由でオープンソース

Skills は互いを参照し合い、MIT 形式の公開リポジトリに置かれています。GitHub で SKILL.md の全文を読むも、フォークするも、agent の中でそのまま実行するも自由です。

実行プロンプト

これを Codex または Claude Code に貼り付けてください

プロンプトは意図的に編集できるようになっています。ハンドル、市場、予算、キャンペーン目標を置き換えたら、ライブの公開データが必要になったときに agent に UnifAPI MCP を呼び出させましょう。

Audit local-pack rank for "coffee shop" near downtown Austin, TX: show where my business sits in the map results, who ranks above it, and their rating, review count, and category.
skill の仕組み

SKILL.md からレンダリングされた、skill の全文

あなたはローカル検索アナリストです。ローカルパック — 「near me」検索の最上部に表示される 3 件のビジネスのマップブロック — は、ローカルクリックの大半が向かう場所です。このスキルは、あるビジネスのターゲットクエリに対するライブのローカルパック / マップ結果を取得し、その上位にいるビジネスに対してどこに順位付けされているかを正確に報告します: 1 つのロケーションについて、または複数のロケーション全体で同じクエリについて。

これは強化スキルです。UnifAPI を通じてライブの公開データを読み取ります。

ライブの根拠には UnifAPI を使う

ローカルの順位はパーソナライズされ、近接性で重み付けされます — 記憶から推論することはできず、実際の検索地点で、実際のクエリに対する、実際のパックを取得しなければなりません。unifapi スキルを使って接続し(OAuth MCP)、その後、以下を呼び出します:

  • ローカルパックの順位 — local/search、maps/search — 各クエリ × ロケーションについて、パックを占めるビジネスとその position。location パラメータをループしてグリッドを構築します: 各都市 / 支店 / 近接地点から同じクエリを再実行します。各結果には name、place_id、rating、review_count、category、address、phone、website、hours が付き — ターゲットの上位にいるのが誰かをプロファイルするのに必要なすべてがあります。ターゲットは名前ではなく place_id に結び付けます。
  • ブレンドされたローカル SERP — seo/serp — 同じクエリで オーガニックの ローカル結果に順位付けされているのは誰か。あるビジネスがオーガニックのブルーリンクを保持しつつ、パックには不在ということがあり得ます(不可視ではなく、適格性/カテゴリのギャップ)— この 2 つは区別して保ちます。また、マップエンドポイントが返すパックがライブの SERP ブロックと一致するかを確認します。
  • 競合のローカルランディングページ — seo/competitors/relevant-pages — ターゲットを上回るライバルについて、その上位オーガニックページから、パックの枠の背後で関連性の働きをしているローカルランディングページ(都市/サービスページ)が明らかになります。

UnifAPI は公開データのみを読み取ります — ビジネスの Google Business Profile に触れることは決してありません。billing メタデータを保持して、出力がレコードコストを明示できるようにします。

ワークフロー

  1. クエリとロケーションを定義する — 必須。 ビジネスの優先クエリ(例: 「emergency plumber Austin」、「24 hour plumber」)と、チェックするロケーションを取ります — 1 つの店舗、または複数ロケーション運営者のすべての都市/支店。クエリが欠けている場合は尋ねます。キーワード集合を推測しないでください。(.agents/product-marketing.md / .claude/product-marketing.md が存在する場合は先に読みます。)
  2. 近接性のベースラインを設定する。 パックは検索者までの距離で再ランク付けされるため、検索する正確な地点が結果を変えます。各ロケーションについて、local/search / maps/search に正確な location を渡します: 最低でも都市の重心、店舗の場合は住所の座標を優先します。検索地点、language、device をすべての順位とともにメモします — 8km 離れて測定した順位は、玄関先で測ったものと同じ知見ではありません。
  3. 各クエリ × ロケーションのペアについて、location パラメータをループしながら local/search + maps/search を介してライブのパックを取得します。1–3 位(利用可能な場合は拡張の「More places」結果も)にランク付けされているのは誰か、およびターゲットの position — またはその不在 — を記録します。パック内のすべてのビジネスについて place_id、name、rating、review_count、category を取得します。オーガニックブロックを seo/serp でクロスチェックします。
  4. グリッドがアルファベット順ではなく機会順にソートされるよう、以下のルーブリックで各セルをスコアリングします。
  5. 各ギャップを帰属させる — 近接性、知名度、関連性のいずれかに(以下参照)。関連性/知名度のギャップについては、勝者の seo/competitors/relevant-pages を取得して、順位付けされているローカルページを確認します。
  6. パターンを見つける。 ビジネスはどこでよく順位付けされ、どこでパックから外れ、(複数ロケーションの場合)同じクエリでどの支店が他より遅れているか。近接性で説明できるギャップを、知名度/関連性のギャップから切り分けます。

セルスコアリングのルーブリック

グリッドが機会順にソートされるよう、すべてのクエリ × ロケーションのセルをスコアリングします:

Cell stateScoreMeaning
ターゲットが 1 位5防御
ターゲットが 2–3 位4維持 / 1 位へ押し上げ
ターゲットが拡張の「More places」(4–10)2あと一歩の射程内
ターゲットは不在だがオーガニックで順位あり1不可視ではなく、パック適格性のギャップ
ターゲットが完全に不在0カテゴリ/近接性/関連性を調査

Opportunity = (5 − score) × クエリ優先度の重み。 セルを機会の降順でランク付けします。そのリストの上位が、作業で成果が出る場所です。

3 つのランキング要因を読む

ターゲットがパフォーマンス不足のとき、ギャップを Google の 3 つのローカル要因のいずれかに帰属させ、オペレーターが 何を 直すべきかを把握できるようにします:

  • 近接性 — 検索地点が住所に近づくにつれて順位は改善するか、勝者は単に近いだけか。であればそのセルは近接性に縛られています。単一店舗はより近いライバルを上回れませんが、サービスエリアやカテゴリの幅が半径を広げられます。
  • 知名度 — ターゲットの上位にいるビジネスは、著しく高い review_count / rating を持つか。知名度のギャップは最もアクション可能です: レビューの速度と引用情報。
  • 関連性 — 勝者の主要な category または name がクエリにより正確に一致するか、あるいはその seo/competitors/relevant-pages が専用のローカルランディングページを示すか。関連性のギャップは、カテゴリ/リスティング/コンテンツの修正を指し示します(listing-accuracy-audit に引き継ぎます)。

完全な手法、エッジケース、複数ロケーションのパターン読みは references/methodology.md にあります。

出力: ランクグリッド + 知見

# Local Pack Audit — <business> — <date>

Search params: location(s) <…> · language <…> · device <…>

## Rank grid (one row per query × location)

| Query             | Location (search point)       | Target position | Cell score | Above target (name · rating · reviews · category) | Likely factor |
| ----------------- | ----------------------------- | --------------- | ---------- | ------------------------------------------------- | ------------- |
| emergency plumber | Austin TX (downtown centroid) | 2               | 4          | Joe's Plumbing · 4.8 · 412 · Plumber              | Prominence    |
| 24 hour plumber   | Austin TX (centroid)          | not in pack     | 0          | A1 Drain · 4.6 · 290 · Emergency plumber service  | Relevance     |

## Findings

- Top opportunities, ranked by opportunity score (highest-impact cells first).
- Multi-location: a location × query matrix flagging which branches are missing from or buried in the pack on the same query.
- Each competitor above the target annotated with rating, review count, category, and the factor that explains the gap.
- Record cost consumed (or best estimate if billing metadata is unavailable).

計算済みの例

ブリーフ: 2 ロケーションの HVAC 会社、クエリ「ac repair」と「furnace repair」、ロケーション Austin + Round Rock。

  • 「ac repair」× Austin → ターゲットは 2 位(スコア 4); 勝者 Cool Air は 4.9 / 680 レビュー、対してターゲットは 4.7 / 210 → 知名度のギャップ、レビュー速度。
  • 「ac repair」× Round Rock → ターゲットは 1 位(スコア 5)→ 防御。
  • 「furnace repair」× Austin → ターゲットは不在(スコア 0)だが seo/serp でオーガニック #4 に順位付け(スコア 1、0 ではない); 勝者はすべて主要 category として「Furnace repair service」を持ち、その seo/competitors/relevant-pages は専用の furnace ページを示す → 関連性のギャップ、listing-accuracy-audit に引き継ぐ。

判定: Austin の furnace セルが最も機会の高い単一の修正(カテゴリ + ランディングページ)、Austin の AC はレビュー量の勝負、Round Rock は健全。読み取り: 8 件の local/maps + 4 件の SERP + 2 件の relevant-pages。

ガードレール

  • 読み取り専用(「手ではなく目」)。 公開データのみ。順位を報告します。Google Business Profile を編集したり、投稿したり、何かを送信したりすることは決してありません。リスティングやコンテンツの変更はオペレーター自身のチームが行います。
  • 確定 vs 推定。 各順位が測定された正確な検索地点、言語、デバイス、タイムスタンプを報告します。パックから読み取った順位は確定とラベルし、近接性/知名度/関連性の帰属は推定とラベルします。データが帰属を支持しない場合は、推測する代わりにセルを「未帰属」とラベルします。
  • 日付付きスナップショット、再実行可能。 順位はパーソナライズされ、時間に敏感です — 各取得を保証ではなくスナップショットとして扱います。クエリ × ロケーションのウォッチリストを保持して、グリッドをトレンドのために再実行できるようにします。
  • パックのメンバーシップ ≠ オーガニック順位。 あるビジネスがオーガニックで順位付けされつつパックには不在(カテゴリ/適格性)、またはその逆ということがあり得ます — 2 つの測定は区別して保ちます。

リファレンス

  • references/methodology.md — 完全なグリッド手法、近接性サンプリング、3 要因の帰属チェックリスト、複数ロケーションのパターン読み。

関連スキル

  • listing-accuracy-audit(Local SEO): ビジネス自身のリスティング詳細が正確かつ完全かをチェックします — 通常、関連性のギャップの背後にある修正です。
  • local-competitor-scan(Local SEO): これらのローカルパックの枠を勝ち取っている競合をプロファイルします。
  • unifapi: 共有データスキル — MCP を接続し、上記の操作を発見します。

ソース: GitHub 上の local-pack-audit/SKILL.md — 改善するにはそちらで PR を開いてください。

公開データツール

この skill が呼び出すライブ API

この skill が指定するすべてのオペレーションは、これらの UnifAPI プラットフォームのいずれかです — プロダクトコード、デバッグ、カスタムエージェントフロー向けに、引き続き表示・呼び出しが可能です。

  • 順位グリッド:クエリ × 拠点と、対象のローカルパック順位
  • 対象より上位にランクインしているビジネス(評価、レビュー数、カテゴリつき)
  • 複数拠点向け:パックから欠落している、または埋もれている拠点
  • すべての順位はライブのローカルパック結果に引用根拠を持つ
関連する skills

Local SEO Agentにある、ほかの skills

同じ agent の中でこれらをつなげれば、ある意思決定の成果物から次の成果物へと進めます — それぞれが独自の実行プロンプト、ワークフロー、期待される出力を持っています。

掲載情報の正確性

ビジネスの公開マップ/ローカル掲載情報を読み取り、詳細が不整合・不完全・誤りである箇所を指摘します。

掲載情報の正確性 を開く

ローカル競合スキャン

ローカルパックで自社より上位の競合をマッピングし、自社に欠けていて競合が持つものを具体的な数値で浮き彫りにします。

ローカル競合スキャン を開く
Local SEO Agentのすべての skill を見る