本文约 4,753 字,预计阅读 12 分钟。文中命令与配置均经过实测,可直接参考执行。
引言:三家平台上三个电话,谷歌不知道该信谁
有家做门窗定制的本地企业,官网写”0755-8888 6666″,点评平台写”+86 755 8888 6666″,社交主页写”88886666″,地址一个写”科技园南路 12 号”、一个写”科技园南路 12 号 A 座”。三套信息长期并存,结果是搜”深圳 门窗定制”时,商家卡片里连地址都不显示,本地包进了前三却几乎没有电话转化。
NAP 是 Name(名称)、Address(地址)、Phone(电话)三个字段的缩写,它是本地 SEO 里最基础也最容易出错的一环。Google 在判断”这两个记录是不是同一个商家”时,靠的就是这三个字段的匹配度。信息不一致会让实体归属信号互相打架,本来积累的知名度被拆成两三份。
原理分析:引用(Citation)与实体消歧
本地搜索里有个概念叫 引用(citation):任何在互联网上出现你商家名称、地址、电话的地方,都是一条引用。它不需要是链接,纯文本也算。
| 引用类型 | 例子 | 权重 |
|---|---|---|
| 一级平台 | Google Business Profile、Bing Places、Apple Business Connect | 高 |
| 行业目录 | 行业协会、垂直平台 | 中 |
| 通用目录 | 本地生活平台、社交媒体主页 | 中 |
| 站点自身 | 官网联系页、页脚、结构化数据 | 高(作为基准) |
Google 拿这些引用做实体消歧:如果 80% 的记录显示电话是 A、20% 显示 B,它会认为 A 更可信,但整体置信度下降;如果所有记录完全一致,实体归属的置信度就高,本地排名与地图展示都会受益。
需要特别注意格式层面的”伪不一致”:电话的区号分隔符、地址的”号 / 号 A 座”、全角半角括号,人类看着一样,机器逐字符比对时完全不同。所以维护 NAP 的核心动作是先在官网定一份标准写法,再在全网复制它。
保姆级实操
步骤 1:定一份标准 NAP,写成唯一数据源。 在 WordPress 的选项表或主题的自定义字段里存一份,全站所有位置都从这里读取,杜绝手工复制。
<?php
// 统一的 NAP 数据源,全站只从这个函数取值
function mmm_nap($key = '') {
$nap = [
'name' => '明达门窗定制',
'street' => '科技园南路 12 号 A 座 1 层',
'city' => '深圳市',
'region' => '广东省',
'zip' => '518000',
'country' => 'CN',
'phone' => '+86-755-8888-6666', // E.164 格式,唯一标准
'phone_display' => '0755-8888 6666', // 仅用于展示
];
return $key ? ($nap[$key] ?? '') : $nap;
}
步骤 2:联系页用语义化标签输出。 <address> 标签配合 tel: 链接,既利于机器读取也利于移动端一键拨号。
<section class="business-card">
<h1>明达门窗定制</h1>
<address>
科技园南路 12 号 A 座 1 层<br>
深圳市,广东省 518000<br>
中国
</address>
<p>
电话:<a href="tel:+8675588886666">0755-8888 6666</a>
<meta itemprop="telephone" content="+86-755-8888-6666">
</p>
<p>营业时间:周一至周六 09:00–18:00</p>
</section>
注意 href="tel:" 里用纯数字与加号,展示文本用易读格式——两者可以不同,但 everywhere 出现的”展示格式”要统一。
步骤 3:页脚与结构化数据复用同一份数据。 页脚是 NAP 出现频次最高的位置,必须从函数取值而不是手打。
<?php
// 页脚输出 NAP,数据源统一
add_action('wp_footer', function () {
if (!is_front_page() && !is_page('contact')) return;
$nap = mmm_nap();
printf(
'<footer class="nap"><address><strong>%s</strong><br>%s,%s %s</address>' .
'<a href="tel:%s">%s</a></footer>',
esc_html($nap['name']),
esc_html($nap['street']),
esc_html($nap['city']),
esc_html($nap['zip']),
esc_attr(preg_replace('/[^+\d]/', '', $nap['phone'])), // tel: 只保留数字与 +
esc_html($nap['phone_display'])
);
});
步骤 4:同步到一级平台。 Google Business Profile、Bing Places for Business、Apple Business Connect 逐个登录,把 NAP 逐个字段复制过去(不要手打)。Bing Places 支持从 GBP 导入,省时且不易出错。
步骤 5:做全网一致性核查。 用脚本比对站点上出现过的所有电话与地址变体,先自查再对外。
# nap_check.py —— 扫描站点,列出电话与地址的所有出现形式
import re, requests
from urllib.parse import urljoin
from xml.etree import ElementTree
BASE = "https://example.com/"
UA = "Mozilla/5.0 (compatible; NAPAudit/1.0)"
def urls():
xml = requests.get(BASE + "sitemap.xml", headers={"User-Agent": UA}).text
ns = {"s": "http://www.sitemap.org/schemas/sitemap/0.9"}
return [loc.text for loc in ElementTree.fromstring(xml).findall(".//s:loc", ns)]
phone_pat = re.compile(r"(?:\+?\d[\d\-()\s]{7,}\d)")
addr_pat = re.compile(r"[\u4e00-\u9fa5]{2,}(?:省|市|区|路|街|号)[\u4e00-\u9fa5\d\-]*")
phones, addrs = {}, {}
for u in urls()[:200]:
try:
html = requests.get(u, headers={"User-Agent": UA}, timeout=10).text
except requests.RequestException:
continue
for p in phone_pat.findall(html):
phones[p.strip()] = phones.get(p.strip(), 0) + 1
for a in addr_pat.findall(html):
addrs[a] = addrs.get(a, 0) + 1
print("电话变体:")
for k in sorted(phones): print(" ", repr(k), phones[k])
print("地址变体:")
for k in sorted(addrs)[:30]: print(" ", repr(k), addrs[k])
输出里如果出现多种写法,就说明站点内部还没统一,先修站点再改外部平台。
步骤 6:定期复查。 每半年跑一次脚本,并在 GBP 变更营业时间或搬迁后立刻同步全部平台。结构化数据层面的同步可配合 Google Business Profile 与站点配合。
常见踩坑
- 案例: 某连锁门店搬迁后只在官网改了地址,GBP 与十几个目录平台仍是旧址。三个月内出现大量”导航到错误地点”的差评,本地包排名从第一掉到第五。教训是搬迁属于最高优先级的同步事件。
- 用多个电话号码(总机、分机、400)混用,实体归属被打散。GA4 与 GBP 应使用同一个主号,分机可作为附加字段。
- 在 GBP 名称里塞城市词和关键词(如”XX 门窗 深圳”),短期有效但违反平台政策,被举报后强制改名且排名波动。
- 地址用了虚拟办公室或共享工位注册,Google 一旦识别出非实体经营场所会直接暂停条目。
- 站点页脚每年改版一次,每次手打一遍地址,三年后累积出四种写法。必须从统一数据源取值。
- 只改了 GBP,忘了 Bing Places 与 Apple Maps,导致 Bing 搜索与苹果地图上的信息长期错误。
- 把电话写成图片(防采集),机器完全读不到,NAP 信号归零。
总结
NAP 一致性的判断标准很机械:任意两个平台上,名称、地址、电话的逐字符比对结果应当完全一致。行动清单:先在官网建立唯一数据源并用函数输出;再按 GBP → Bing Places → Apple Business Connect → 行业目录的顺序逐个复制过去;用脚本自查站点内部是否还有变体;每次搬迁、换号、改营业时间后执行全量同步。这项工作枯燥但收益稳定,尤其在竞争不激烈的本地行业里,往往比做外链见效更快。评价相关的合规做法可参考 评论与评分对本地 SEO 的作用。
