seo-maps について
外部APIを使い、Google Maps、Bing Places、Apple Maps、OpenStreetMapでの掲載状況を評価する、地域ビジネス向けのスキルです。機能階層に応じて、競合調査、地域別順位、レビュー、NAP整合性、ビジネスプロフィールを分析します。
主な機能
- 01地図プラットフォームの掲載状況を評価
- 02地域グリッドで順位を調査
- 03レビューの増加率と感情を分析
- 04範囲内の競合をマッピング
- 05各プラットフォームの名称・住所・電話を照合
- 06LocalBusiness JSON-LDを生成
活用シーン
- 01地図間で掲載情報の整合性を確認
- 02地域ごとのマップ順位を比較
- 03Google Business Profileとレビューを監査
- 04地域ビジネスの構造化データを生成
MCP 対応
DataForSEO MCPツールの有無を検出し、それに応じて利用可能な機能階層を選びます。DataForSEOにより、地域別順位、ビジネスプロフィール監査、レビュー分析を利用できます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ agricidaniel/ claude-seo --skill seo-mapsインストール後、Claude Code で/seo-mapsを入力して読み込まれたか確認します。
同梱ファイルLICENSE.txt
詳細
マップインテリジェンス(2026年3月)
ローカルビジネス向けのマッププラットフォーム分析です。外部 API を使用して、Google Maps、Bing Places、Apple Maps、OpenStreetMap 上でビジネスがどのように表示されるかを評価します。
seo-local との境界: このスキルでは、API 経由でマッププラットフォーム上のビジネスを分析します。seo-local では、HTML を取得してウェブサイト上のローカル SEO シグナルを分析します。seo-local のページ内分析を重複して行わないでください。ウェブサイトレベルのチェックには /seo local <url> を推奨してください。
クイックリファレンス
| コマンド | 内容 | ティア |
|---|---|---|
/seo maps <url> | マップ掲載状況の完全監査(ティアを自動選択) | 0+ |
/seo maps grid <keyword> <location> | ジオグリッド順位スキャン(7x7、デフォルトでキーワード1件) | 1+ |
/seo maps reviews <business> <location> | 複数プラットフォームのレビューインテリジェンス | 1+ |
/seo maps competitors <keyword> <location> | 競合の範囲マッピング | 0+ |
/seo maps nap <business-name> | 複数プラットフォームの NAP 確認 | 0+ |
/seo maps schema <business-name> | データから LocalBusiness JSON-LD を生成 | 0+ |
/seo maps gbp <business> <location> | GBP 完全性監査 | 1+ |
3 段階の機能検出
分析を始める前に、利用可能な機能ティアを検出してください。
ティア 0(無料)
検出条件: DataForSEO MCP ツールが利用できません。
機能: Overpass API による競合の検出、Geoapify による POI 検索、Nominatim によるジオコーディング、静的 GBP チェックリスト、スキーマ生成、複数プラットフォームの NAP ガイダンス。
読み込み: ../seo/references/maps-free-apis.md
ティア 1(DataForSEO)
検出条件: business_data_business_listings_search MCP ツールが利用可能です。
機能: ティア 0 のすべての機能に加え、ジオグリッド順位追跡、GBP プロフィールのライブ監査、レビューインテリジェンス(投稿頻度、感情、分布)、GBP 投稿のアクティビティ、Q&A データ、Tripadvisor/Trustpilot のレビュー。
読み込み: ../seo/references/maps-api-endpoints.md
ティア 2(DataForSEO + Google Maps Platform)
検出条件: ティア 1 が利用可能で、環境に Google Maps API キーがあります。
機能: ティア 1 のすべての機能に加え、Google Places の詳細情報、ビジネスのリアルタイムステータス、AI による場所の概要、写真分析。
注: Google の利用規約では、保存できるのは place_id のみです。緯度/経度のキャッシュ期間は最長 30 日です。
分析の開始時に、検出されたティアを必ずユーザーに伝えてください。
ジオグリッド順位追跡(ティア 1+)
複数の GPS 座標から Google Maps 検索をシミュレートし、地理的エリア全体での順位の変動を表示します。DataForSEO が必要です。
読み込み: アルゴリズム、SoLV の計算式、ヒートマップ形式については ../seo/references/maps-geo-grid.md を参照してください。
読み込み: Maps SERP エンドポイントの詳細については ../seo/references/maps-api-endpoints.md を参照してください。
ワークフロー
- ビジネスの住所をジオコーディングして、中心の緯度/経度を取得する
- Haversine オフセット計算式を使ってグリッドポイントを生成する(デフォルト:7x7、半径 5km)
- 費用の見積もりを表示し、続行前に確認を求める
- 各グリッドポイントに
location_coordinateを指定して、DataForSEO Maps SERP API 呼び出しを実行する - 各ポイントで対象ビジネスの順位を特定する
- SoLV を計算する:
(top_3_count / total_points) * 100 - 出力に ASCII ヒートマップを描画する
- 後で比較できるように、また seo-cockpit の Maps ビューで使用できるように、グリッドを次のパスに保存する:
{business-slug}-maps/geo-grid-{keyword-slug}-{YYYY-MM-DD}.json。内容は{"business", "keyword", "location", "date", "size", "radius_km", "solv", "ranks": [[...], ...]}とする。ranksは北西から南東への行優先順で、 各セルにはそのポイントでのビジネスの順位(整数)を格納する。 検索結果に含まれない場合はnullとする。
費用に関する警告(必須)
ジオグリッドをスキャンする前に、必ず次を表示してください:
Geo-Grid Scan: [keyword] at [location]
Grid: 7x7 (49 points) | Keywords: [N] | Est. cost: $[amount]
DataForSEO credits will be consumed. Proceed?
GBP プロフィール監査(Tier 1 を推奨、Tier 0 は手動)
Google ビジネス プロフィールの品質とランキングに影響する 25 項目を監査します。
読み込み先: 完全なチェックリストと採点基準については、../seo/references/maps-gbp-checklist.md を参照してください。
AI と 2026 年の状況(サードパーティの報道に基づく): AP News の報道によると、Ask Maps は Gemini の会話型 Maps 機能として 2026-03-12 に公開されました(iOS/Android、米国+インド)。Google が I/O 2026 で発表したAI Mode(月間ユーザー数 10 億人以上)では、サードパーティの用語でいうローカル AI インターフェースが次第に 1~2 件表示されるようになっており、ローカルサービス(住宅修理、美容、ペットケア)向けのエージェント型予約・電話も、2026 年夏に米国で展開すると I/O 2026 で発表されました(Google がユーザーに代わって事業者に電話できます)。提供状況を確認してから案内してください。 2026 年に新たに追加された GBP API 機能:クチコミのメディア URL、ローカル投稿の繰り返しスケジュール設定、クチコミへの返信状態/モデレーション、招待用 Place ID。出典: blog.google/products-and-platforms/products/search/search-io-2026/ · developers.google.com/my-business/content/latest-updates
Tier 1 ワークフロー
- DataForSEO My Business Info API でビジネスプロフィールを取得します(キーワードまたは CID)
- API のレスポンスフィールドを 25 項目のチェックリストに対応付けます
- 各項目を採点します:入力済み+最適化済み = 2 点、入力済み = 1 点、未入力 = 0 点
- 業種ごとの重み係数を適用します
- 0~100 のスケールに正規化します
Tier 0 ワークフロー
- WebFetch でビジネスのウェブサイトを取得します
- 表示されている GBP の兆候(Maps の埋め込み、場所への言及、クチコミウィジェット)を抽出します
- 検出可能な兆候に基づいて静的チェックリストを適用します
- 検出できない項目には「不明(ライブデータには DataForSEO が必要)」と記載します
クチコミインテリジェンス(Tier 1+)
プラットフォームを横断したクチコミ分析:投稿頻度、センチメント、評価の分布、偽クチコミの検出。
参考: ベンチマークについては ../seo/references/local-seo-signals.md を参照してください(seo-local と共有)。
ワークフロー
- DataForSEO Reviews API で Google のクチコミを取得します(新しい順に並べ替え)
- 過去 6 か月間の月あたりのクチコミ数を計算します
- クチコミの空白期間を確認します。長い空白期間はランキング上のリスクになります(Sterling Sky の 2025 年の事例では、クチコミが 18 日間なかった後に順位が下がりました。これは固定の基準値ではありません)
- 評価の分布を分析します。健全な分布は、5 つ星に偏った釣鐘型です
- オーナーの返信率を計算します:返信数 / クチコミ総数
- Tripadvisor と Trustpilot のクチコミを取得します(利用可能な場合)
- プラットフォーム横断の比較表を作成します
偽クチコミの検出シグナル
次のパターンのうち 2 つ以上に当てはまるクチコミにフラグを立てます:
- 投稿時期が一様(複数のクチコミが同じ日/時間に投稿されている)
- 投稿者アカウントの履歴が少ない、またはクチコミが 1 件のみ
- 地理的な不整合(投稿者の所在地とビジネスの所在地が一致しない)
- 過去の基準値と比べて、5 つ星の投稿頻度だけが急増している
- 複数のクチコミで文章が同一、またはほぼ同一
- 対応するマーケティング活動がないにもかかわらず、投稿数が急増している
競合半径マッピング(Tier 0+)
指定した半径内の競合を特定して分析します。
Tier 0(Overpass API)
読み込み先: クエリテンプレートについては ../seo/references/maps-free-apis.md を参照してください。
- ビジネスの住所をジオコーディングします
- Overpass API にクエリを送信し、指定した半径内で同じ OSM タグが付いたビジネスを検索します
- 結果を解析し、名称、住所、電話番号、ウェブサイト、中心地点からの距離を取得します
- 距離順に並べ替え、競合の状況を表にまとめます
Tier 1(DataForSEO)
- ビジネスのキーワード+所在地を使って Maps SERP API を使用します
- プロフィールの全データとともに上位 20 件の競合を抽出します
- 評価、クチコミ数、カテゴリ、写真、属性を比較します
- 競合密度スコアを計算します:競合数 / km^2
プラットフォーム横断の NAP 検証(Tier 0+)
Google、Bing Places、Apple、OSM におけるビジネス掲載情報の一貫性を確認します。
ワークフロー
- 各プラットフォームでビジネス名を検索します:
- Google:GBP データまたは Maps の SERP 結果から判断します
- Bing:
WebFetch https://www.bing.com/maps?q=BUSINESS+NAME+LOCATION - Apple:手動で確認します(公開 API はありません。Apple のビジネスリスティングの掲載状況を確認して申請してください。Apple Business の開始または名称変更に関する主張は、Apple の一次情報で確認されるまでは TechRadar を情報源とするものとして扱ってください)
- OSM:Overpass または Nominatim で検索します
- 各情報源から NAP(名称、住所、電話番号)を抽出します
- 一貫性を比較します:完全一致、一部一致、情報なし、または不一致
- 相違点に重要度を付けます:重大(名称の不一致)、高(住所の不一致)、中(電話番号の不一致)
- 未申請のプロフィールの申請を推奨します
スキーマの生成(Tier 0+)
収集したデータから LocalBusiness JSON-LD マークアップを生成します。
参考: 業種別のサブタイプについては ../seo/references/local-schema-types.md を参照してください(seo-local と共有)。
ワークフロー
- 業種に最も適した具体的なスキーマサブタイプを特定します
- 必須プロパティを入力します:
@type、name、address、image - 推奨プロパティを追加します:
telephone、url、geo、openingHoursSpecification、priceRange - 複数拠点の場合は、戦略的なプロパティを追加します:
branchOf、areaServed、sameAs - レビューデータがある場合は
aggregateRatingを追加します - 実装に使える有効な JSON-LD ブロックを出力します
自社に有利なレビューのマークアップは生成しないでください。Google は、ビジネス自身による LocalBusiness のレビューのマークアップを無視します。ページに表示されているサードパーティのレビューのみをマークアップしてください。
参考ファイル
必要に応じてオンデマンドで読み込んでください(起動時にすべて読み込まないでください):
../seo/references/maps-api-endpoints.md:DataForSEO エンドポイントの詳細、パラメーター、料金../seo/references/maps-free-apis.md:Overpass、Geoapify、Nominatim のクエリテンプレート../seo/references/maps-geo-grid.md:グリッドアルゴリズム、SoLV の計算式、ヒートマップの描画../seo/references/maps-gbp-checklist.md:業種別の重み付けを含む GBP 監査の25項目../seo/references/local-seo-signals.md:ランキング要因、レビューのベンチマーク(共有)../seo/references/local-schema-types.md:業種別の LocalBusiness サブタイプ(共有)../seo/references/local-schema-multilocation.md:複数拠点向けスキーマパターン(共有)
出力
次の内容を含む MAPS-ANALYSIS-{domain}.md を生成します:
- Maps 健全性スコア:XX/100 とディメンション別の内訳表
- 検出された機能ティア(Tier 0 または Tier 1)と、利用可能な機能の説明
- 地域グリッドのヒートマップ(Tier 1):SoLV の割合と平均順位を示す ASCII グリッド
- GBP プロフィール監査:業種別の重み付けによる項目ごとのスコア
- レビュー分析:推移チャート、評価分布、返信率、プラットフォーム間の比較
- 競合状況:半径内の件数、評価/レビュー数による上位5件、競合密度
- プラットフォーム間の掲載状況:Google/Bing/Apple/OSM の掲載ステータス
- スキーマの推奨事項:LocalBusiness JSON-LD の生成(不足または不完全な場合)
- 優先順位を付けた上位10件のアクション(重大 > 高 > 中 > 低)
- 費用レポート:分析中に消費した DataForSEO クレジット(Tier 1 のみ)
- 制限事項に関する免責事項:現在のティアでは評価できなかった内容
スキル間の委任
- ウェブサイトのページ内ローカルシグナル:
/seo local <url>を推奨します - AI 検索での可視性の総合分析:
/seo geo <url>を推奨します - スキーマの検証と修正:
/seo schema <url>を推奨します - ライブ SERP とキーワードデータ:
/seo dataforseo [command]を推奨します
エラー処理
| シナリオ | アクション |
|---|---|
| DataForSEO MCP が利用できない | Tier 0 に切り替えます。ユーザーに「DataForSEO が検出されませんでした。無料枠の分析を実行しています。地域グリッド追跡とレビュー分析を利用するには、DataForSEO 拡張機能をインストールしてください。」と伝えます。 |
| Maps SERP でビジネスが見つからない | キーワードを指定して My Business Info を試します。それでも見つからない場合は、「この地域の Google マップでビジネスが見つかりませんでした。」と報告します。 |
| ジオコーディングに失敗する(Nominatim) | 座標またはより具体的な住所をユーザーに尋ねます。 |
| API のレート制限に達した | 制限について報告します。ライブ方式ではなく、待機するか標準(キュー処理)方式を使うよう提案します。 |
| レビューが見つからない | レビューが 0 件の状態を報告します。一定の頻度でレビューを獲得する戦略を推奨します(約 2〜3 週間を超える空白期間を作らないようにします)。 |
| 複数の拠点が検出された | 分析する拠点をユーザーに尋ねるか、拠点ごとの費用見積もりを提示して一括処理モードを提案します。 |