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.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 メタデータを保持して、出力がレコードコストを明示できるようにします。
ワークフロー
- クエリとロケーションを定義する — 必須。 ビジネスの優先クエリ(例: 「emergency plumber Austin」、「24 hour plumber」)と、チェックするロケーションを取ります — 1 つの店舗、または複数ロケーション運営者のすべての都市/支店。クエリが欠けている場合は尋ねます。キーワード集合を推測しないでください。(
.agents/product-marketing.md/.claude/product-marketing.mdが存在する場合は先に読みます。) - 近接性のベースラインを設定する。 パックは検索者までの距離で再ランク付けされるため、検索する正確な地点が結果を変えます。各ロケーションについて、
local/search/maps/searchに正確なlocationを渡します: 最低でも都市の重心、店舗の場合は住所の座標を優先します。検索地点、language、deviceをすべての順位とともにメモします — 8km 離れて測定した順位は、玄関先で測ったものと同じ知見ではありません。 - 各クエリ × ロケーションのペアについて、location パラメータをループしながら
local/search+maps/searchを介してライブのパックを取得します。1–3 位(利用可能な場合は拡張の「More places」結果も)にランク付けされているのは誰か、およびターゲットのposition— またはその不在 — を記録します。パック内のすべてのビジネスについてplace_id、name、rating、review_count、categoryを取得します。オーガニックブロックをseo/serpでクロスチェックします。 - グリッドがアルファベット順ではなく機会順にソートされるよう、以下のルーブリックで各セルをスコアリングします。
- 各ギャップを帰属させる — 近接性、知名度、関連性のいずれかに(以下参照)。関連性/知名度のギャップについては、勝者の
seo/competitors/relevant-pagesを取得して、順位付けされているローカルページを確認します。 - パターンを見つける。 ビジネスはどこでよく順位付けされ、どこでパックから外れ、(複数ロケーションの場合)同じクエリでどの支店が他より遅れているか。近接性で説明できるギャップを、知名度/関連性のギャップから切り分けます。
セルスコアリングのルーブリック
グリッドが機会順にソートされるよう、すべてのクエリ × ロケーションのセルをスコアリングします:
| Cell state | Score | Meaning |
|---|---|---|
| ターゲットが 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 プラットフォームのいずれかです — プロダクトコード、デバッグ、カスタムエージェントフロー向けに、引き続き表示・呼び出しが可能です。
- 順位グリッド:クエリ × 拠点と、対象のローカルパック順位
- 対象より上位にランクインしているビジネス(評価、レビュー数、カテゴリつき)
- 複数拠点向け:パックから欠落している、または埋もれている拠点
- すべての順位はライブのローカルパック結果に引用根拠を持つ
Local SEO Agentにある、ほかの skills
同じ agent の中でこれらをつなげれば、ある意思決定の成果物から次の成果物へと進めます — それぞれが独自の実行プロンプト、ワークフロー、期待される出力を持っています。