mcpField
S
seo-maps

seo-maps

github.com/agricidaniel营销与增长89474 次安装2 周前更新
代码仓库

关于 seo-maps

seo-maps 是面向本地商家的 SEO 技能,用于检查企业在地图平台上的呈现,涵盖免费 API 检查及 DataForSEO、Google Maps Platform 分析。

主要功能

  1. 01跨平台 NAP 信息核验
  2. 02本地竞争对手地图分析
  3. 03地理网格排名追踪
  4. 04GBP 与评论审计
  5. 05生成 LocalBusiness JSON-LD

适用场景

  1. 01比较企业在各地图平台的资料
  2. 02测量不同位置的本地排名变化
  3. 03分析一定半径内的竞争者

MCP 相关

它会检测是否有 DataForSEO MCP 工具,并据此选择分析能力;可使用其商家列表、Maps SERP 和评论数据。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/agricidaniel/codex-seo --skill seo-maps

安装后在 Claude Code 中输入/seo-maps确认已加载。

附带文件LICENSE.txt

详细介绍

地图情报(2026 年 3 月)

共享数据缓存

步骤 0 —— 检查共享数据缓存:

开始收集之前,检查 .seo-cache/ 中是否有相关 SEO 技能的可复用上下文。 参考:../seo/references/shared-data-cache.md,了解架构和依赖关系图。

如果以下缓存文件存在,请检查:

  • .seo-cache/site-meta.json:域名、业务类型、行业和抓取上下文

  • .seo-cache/audit-scores.json:之前完整审计的优先事项

  • .seo-cache/pages/{url-slug}/page-analysis.json:提供 URL 时的页面级上下文

  • 如果找到:解析并使用明确有效的字段(注明“正在使用来自 [date] 的缓存 [X]”)

  • 如果缺失、损坏或不相关:继续收集新证据

  • 如果用户说“refresh”或“re-run”:忽略缓存读取,并在写入时覆盖

面向本地商家的地图平台分析。通过外部 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-LD0+
/seo maps gbp <business> <location>GBP 完整性审计1+

三层能力检测

在进行任何分析之前,检测可用的能力层级:

层级 0(免费)

检测: DataForSEO MCP 工具不可用。 能力: 通过 Overpass API 发现竞争对手、通过 Geoapify 搜索 POI、通过 Nominatim 进行地理编码、静态 GBP 检查清单、架构生成、跨平台 NAP 指引。 加载: references/maps-free-apis.md

层级 1(DataForSEO)

检测: business_data_business_listings_search MCP 工具可用。 能力: 包含层级 0 的全部功能,另加地理网格排名跟踪、实时 GBP 资料审计、评论情报(增长速度、情感、分布)、GBP 帖子活跃度、问答数据、Tripadvisor/Trustpilot 评论。 加载: references/maps-api-endpoints.md

层级 2(DataForSEO + Google Maps Platform)

检测: 层级 1 可用,且环境中有 Google Maps API 密钥。 能力: 包含层级 1 的全部功能,另加 Google Places 详情、实时商家状态、AI 驱动的地点摘要、照片分析。 注意: Google ToS 将存储范围限制为仅 place_id。经纬度最多缓存 30 天。

始终在分析开始时告知用户检测到的层级。


地理网格排名跟踪(层级 1+)

模拟从多个 GPS 坐标执行 Google Maps 搜索,以展示不同地理区域中的排名变化。需要 DataForSEO。

加载: references/maps-geo-grid.md,了解算法、SoLV 公式和热力图格式。 加载: references/maps-api-endpoints.md,了解 Maps SERP 端点详情。

工作流
  1. 对商家地址进行地理编码,获取中心经纬度
  2. 使用 Haversine 偏移公式生成网格点(默认:7x7,半径 5km)
  3. 显示费用估算,并在继续操作前请求确认
  4. 针对每个网格点,使用 location_coordinate 发起 DataForSEO Maps SERP API 调用
  5. 查找目标商家在各点的排名
  6. 计算 SoLV:(top_3_count / total_points) * 100
  7. 在输出中渲染 ASCII 热力图
费用警告(必须)

每次地理网格扫描之前,显示:

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 Business Profile 质量和排名的 25 个字段。

加载: references/maps-gbp-checklist.md,查看完整清单和评分标准。

Tier 1 工作流
  1. 通过 DataForSEO My Business Info API 获取商家资料(使用关键词或 CID)
  2. 将 API 响应字段映射到 25 项字段清单
  3. 为每个字段评分:已填写且已优化 = 2 分,已填写 = 1 分,缺失 = 0 分
  4. 应用行业专属权重系数
  5. 归一化为 0-100 分
Tier 0 工作流
  1. 通过 WebFetch 获取商家网站
  2. 提取可见的 GBP 信号(地图嵌入、地点引用、评价组件)
  3. 根据可检测到的信号应用静态清单
  4. 将无法检测的字段标记为“未知(需要 DataForSEO 提供实时数据)”

评价情报(Tier 1+)

跨平台评价分析:增长速度、情感倾向、评分分布、虚假评价检测。

参考: references/local-seo-signals.md 中的基准(与 seo-local 共用)。

工作流
  1. 通过 DataForSEO Reviews API 获取 Google 评价(按最新发布排序)
  2. 计算评价增长速度:过去 6 个月的月均评价数
  3. 检查 18 天规则(Sterling Sky):任何 3 周间隔都意味着排名风险
  4. 分析评分分布:健康的分布呈钟形,且偏向 5 星
  5. 计算商家回复率:已回复评价数 / 评价总数
  6. 获取 Tripadvisor 和 Trustpilot 评价(如果有)
  7. 制作跨平台对比表
虚假评价检测信号

评价符合以下 2 项或更多模式时,予以标记:

  • 时间统一(多条评价发布于同一天或同一小时)
  • 评价者账号历史记录有限或仅发布过一条评价
  • 地理位置不一致(评价者所在位置与商家位置不符)
  • 只有 5 星评价的增长速度突然飙升(相较于历史基线)
  • 多条评价的文本完全相同或近乎相同
  • 评价数量突然激增,但没有相应的营销活动

竞争对手半径地图(Tier 0+)

识别并分析指定半径范围内的竞争对手。

Tier 0(Overpass API)

加载: references/maps-free-apis.md,查看查询模板。

  1. 对商家地址进行地理编码
  2. 查询 Overpass API,查找半径范围内具有相同 OSM 标签的商家
  3. 解析结果:名称、地址、电话、网站、距中心点的距离
  4. 按距离排序,并以竞争格局表格呈现
Tier 1(DataForSEO)
  1. 使用 Maps SERP API,结合商家关键词和地点
  2. 提取排名前 20 的竞争对手及其完整资料数据
  3. 对比:评分、评价数量、类别、照片、属性
  4. 计算竞争密度分数:每平方公里的竞争对手数量

跨平台 NAP 核验(Tier 0+)

检查商家在 Google、Bing Places、Apple 和 OSM 上的列表信息是否一致。

工作流
  1. 在每个平台上搜索商家名称:
    • Google:根据 GBP 数据或 Maps SERP 结果推断
    • Bing:WebFetch https://www.bing.com/maps?q=BUSINESS+NAME+LOCATION
    • Apple:手动检查(没有公共 API——建议使用 Apple Business Connect,网址为 businessconnect.apple.com)
    • OSM:通过 Overpass 或 Nominatim 搜索
  2. 从每个来源提取 NAP(名称、地址、电话)
  3. 比较一致性:完全匹配、部分匹配、缺失或冲突
  4. 将差异标记为:严重(名称不匹配)、高(地址不匹配)、中(电话不匹配)
  5. 建议认领尚未认领的资料

架构生成(Tier 0+)

根据收集的数据生成 LocalBusiness JSON-LD 标记。

参考: references/local-schema-types.md 中的行业子类型(与 seo-local 共用)。

工作流
  1. 确定最适合该行业的具体架构子类型
  2. 填写必需属性:@type、name、address、image
  3. 添加推荐属性:telephone、url、geo、openingHoursSpecification、priceRange
  4. 为多地点业务添加策略性属性:branchOf、areaServed、sameAs
  5. 如果有评论数据,则添加 aggregateRating
  6. 输出可直接用于实施的有效 JSON-LD 代码块

不要生成自利型评论标记——Google 会忽略商家自身提供的 LocalBusiness 评论标记。仅标记页面上可见的第三方评论。


参考文件

按需加载(不要在启动时全部加载):

  • references/maps-api-endpoints.md:DataForSEO 端点详情、参数、费用
  • references/maps-free-apis.md:Overpass、Geoapify、Nominatim 查询模板
  • references/maps-geo-grid.md:网格算法、SoLV 公式、热力图渲染
  • references/maps-gbp-checklist.md:包含行业权重的 25 项 GBP 审核清单
  • references/local-seo-signals.md:排名因素、评论基准(共享)
  • references/local-schema-types.md:按行业划分的 LocalBusiness 子类型(共享)

输出

生成 MAPS-ANALYSIS-{domain}.md,包含:

  1. 地图健康评分:XX/100,附维度细分表
  2. 检测到的能力等级(Tier 0 或 Tier 1),并说明可用功能
  3. 地理网格热力图(Tier 1):ASCII 网格,包含 SoLV 百分比和平均排名
  4. GBP 资料审核:按字段评分,并采用行业专属权重
  5. 评论情报:增长速度图表、评分分布、回复率、跨平台对比
  6. 竞争对手概况:半径范围内的数量、评分/评论数最高的前 5 名、竞争密度
  7. 跨平台存在情况:Google/Bing/Apple/OSM 商家信息状态
  8. 架构建议:生成 LocalBusiness JSON-LD(如缺失或不完整)
  9. 优先级排序的前 10 项行动(Critical > High > Medium > Low)
  10. 费用报告:分析期间消耗的 DataForSEO 积分(仅 Tier 1)
  11. 限制免责声明:说明当前等级下无法评估的内容

跨技能委派

  • 网站页面内本地信号:建议使用 /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 Maps 中找不到该商家。”
地理编码失败(Nominatim)请用户提供坐标或更具体的地址。
达到 API 速率限制报告该限制。建议稍后重试,或改用标准(排队)方式,而非实时方式。
未找到评论报告评论数为零。建议采用以 18 天为周期目标的评论获取策略。
检测到多个地点询问用户要分析哪个地点,或提供批量模式并估算每个地点的费用。

写入共享数据缓存

完成所有工作后,如果工作流产生了可持久化的发现,则将简洁的 JSON 摘要写入 .seo-cache/。 使用 ../seo/references/shared-data-cache.md 中的架构和命名规则;至少包含 cache_type、analyzed_at、来源 URL/域名、关键发现、问题、建议和工具限制。如果 .gitignore 中没有 .seo-cache/,请将其添加进去。

评论

支持 Markdown