您真正的客户在哪里:用于发货和本地化的国家地理
WordPress 的国家级访客地理——由时区或可选 GeoIP 解析,绝不从存储的原始 IP 解析。诚实的准确度限制、隐私立场,以及付费层在城市粒度上解锁的内容。

Statnive 通过浏览器时区(默认)或可选 GeoIP 解析访客国家——绝不存储原始 IP。打开 Ask me! → 「What countries are my visitors from?」(q72)查看地图和表格。城市粒度在 v1.2 付费层解锁。2026 年最大的注意事项:VPN 采用率持续上升,所以请信任国家层、把城市层视为方向性的。
如果您销售实体商品,您需要知道订单往哪里发。如果您销售数字商品,您需要知道往哪里翻译、要加哪些支付方式。如果您运营内容,您需要知道哪些市场在增长,以便您在竞争对手之前本地化。这三个决策都需要同一个答案:哪些国家真正给您送流量,以及趋势指向哪里。
第一反应是打开 GA4、钻取到 Demographics、读地图。这能用——如果您能容忍同意横幅磨损、小国家的采样以及多步点击路径。本文展示更简单的路径,对准确度设定诚实的预期,并锁定 VPN 采用率上升时会发生什么。
本文回答了什么
- Statnive Ask me! 中的四个国家级问题——q72、q73、q74、q75——以及每个所驱动的决策。
- Statnive 如何在不存储访客原始 IP 地址的情况下解析国家。
- 诚实的准确度限制:国家可靠、城市模糊,2026 年让城市层更差。
- GA4 怎么回答同样的问题,以及它的路径在哪里变脆。
- 把国家数据用于发货、本地化和支付方式工作的决策规则。
四个国家级问题,以及每个驱动的决策
| Q-ID | 问题(原文) | 它驱动的决策 |
|---|---|---|
| q72 | What countries are my visitors from? | 地图。您的站点上到底存在哪些市场。 |
| q73 | Which country sends the most traffic? | 第一市场。先在哪里做本地化。 |
| q74 | Is most of my traffic local or international? | 拆分。您是带国际尾部的国内站点,还是带国内核心的国际站点。 |
| q75 | What language are my visitors using? | 翻译队列。是否要新增第二语言店面。 |
这四个在 v1.1.0 免费层 Live。它们合起来在不离开地理标签页的情况下,回答了完整的国家与语言故事。
接下来两个——q76 和 q77——是诚实的「Coming soon」卡片:
- q76——What cities are my visitors from? 在 v1.2 付费层解锁。
- q77——Which city sends the most traffic? 在 v1.2 付费层解锁。
城市粒度被刻意保留。准确度明显低于国家(见下一节),且在许多司法辖区数据更敏感——两者都是先发布负责任默认值、把更高分辨率层伴随付费承诺一起发布的理由。
为什么国家级地理是诚实的,而 2026 年的城市级不是
2026 年互联网的三个属性让国家 vs 城市的区分举足轻重:
- VPN 采用率正在上升。 隐私意识强的用户、企业 VPN,以及 iOS 原生 VPN 推动相当一部分流量通过一个在地理上偏差数百到数千公里的出口 IP。国家级大多存活下来(出口节点常常停留在用户所在国家)。城市级会崩塌:在柏林阅读的 VPN 用户出现在法兰克福、阿姆斯特丹或斯德哥尔摩。
- 移动和 CGNAT IP 在国家上可靠地共享,在城市上则不太可靠。 运营商 IP 从一个集中运营中心路由出来,这个中心可能距实际手机数百公里。
- AI 工具浏览和应用内浏览器 经由数据中心 IP 路由,这些 IP 解析到 AI 厂商所在地区,而不是用户所在地。国家是错的;城市更错。
在国家级保持准确的:住宅 ISP 流量、带国家锚定 IP 块的移动运营商,以及大多数企业 IP。在城市级退化的:VPN 出口节点、CGNAT 运营商流量,以及云端 IP 浏览。
Statnive 的免费层只浮现国家、语言和本地 vs 国际拆分,因为这些是我们能够诚实捍卫的层。付费 v1.2 发布版加上城市——卡片上印着同样的注意事项。
Statnive 如何在不存储原始 IP 的情况下解析访客国家
Statnive 使用一个分层回退,旨在提取做国家决策所需的最小信号,而不持久化原始 IP。顺序:
- 浏览器时区(默认,首选)。浏览器发送
Intl.DateTimeFormat().resolvedOptions().timeZone——类似Europe/Berlin或America/Los_Angeles。Statnive 把 IANA 时区映射到国家。这条路径完全不读 IP。 - 可选 GeoIP 查询,如果站点管理员启用。IP 在请求时被读取一次,传给配置好的 GeoIP 库(MaxMind GeoLite2、DB-IP Lite,或 CDN header 如 Cloudflare 的
CF-IPCountry),并存储国家代码。原始 IP 绝不 持久化。 - 丢弃。 Statnive 用作访客识别的加盐 IP 哈希是单向 SHA-256,带每日轮换的盐;它无法逆向到 IP,且盐每 24 小时滚动一次,所以同一位访客明天会产生一个不同的哈希。
跨所有路径成立的三个属性:
- 无 Cookie。 无
_ga、无_fbp、无_hjid。识别在服务器端、临时的。 - 无第三方 API 调用。 GeoIP 查询是针对您服务器上 MaxMind 或 DB-IP 文件的本地数据库查询。不会有出站 HTTP 调用到厂商。
- 数据库中没有原始 IP。 IP 在内存中读取、用一次、丢弃。
这就是让 Statnive 可以在没有 Cookie 横幅、也没有针对外部地理位置 API 的数据处理协议(DPA)的情况下运行地理标签页的原因。
GA4 怎么回答「我的访客来自哪些国家?」
熟悉之后是两步半的点击路径:
- Reports → Demographics → Demographic details。
- 选「Country」作为主要维度。 GA4 会在报表顶部提供一个世界地图概览;Demographics 概览路径多一次点击,但落到同一份数据。
- 可选:通过添加次要维度,与 Sessions、Engaged sessions 或 Conversions 做交叉对比。
GA4 路径能用。它也假设访客通过了同意横幅、GA4 标签触发了,并且幕后(Google 的服务器上的)GeoIP 查询返回了国家。这三件事在 2026 年都不保证——仅同意横幅磨损就能在分类运行之前丢掉 30-50% 的欧盟会话。
还有一个单独的代价:每次 Demographics 标签页访问都把查询数据经 Google 的统计管线运回,数据存在 Google 的服务器上。对一个向 GDPR 严格市场销售的站点而言,那次往返并非小事。
在 Statnive 中:打开 Ask me! → 点击「What countries are my visitors from?」 → 完成
这就是一键路径。打开 Statnive 管理标签页,从 Geography 类别中选 q72,AnswerModal 渲染地图和表格。
对相关决策,同一标签页里的三个相邻问题:
- q73——Which country sends the most traffic? 按访问数排序返回 top-N 列表。
- q74——Is most of my traffic local or international? 返回源自您店铺主国(在管理界面可配置)的访问份额,与其他所有地方的对比。
- q75——What language are my visitors using? 返回
Accept-Language分布,在决定是否新增第二语言店面时很有用。
每张卡片都跑着仪表盘地理报表跑的同一份 SQL——没有单独的聚合路径。权衡与 Ask me! 中处处相同:问题文本是硬编码的,答案是您的数据,路径是一次点击。
GeoIP 探测的准确度如何?
诚实的数字,有来源时附来源:
- 国家级:住宅 IP 95-99%。 商业 GeoIP 数据库(MaxMind、DB-IP、IP2Location)发布的准确度报告在这个区间内。错误案例是 CGNAT 运营商路由、终止在与用户不同国家的 VPN 出口节点,以及区域分配的共享企业 IP。
- 城市级:住宅 IP 60-80%。 在移动和 VPN 流量上降到 30-50%。数据库基于 BGP 路由表做最佳猜测;达拉斯郊区的某位用户可能根据数据库厂商不同被解析为「Plano」、「Irving」或「Dallas」。
- 邮编 / 都会区:不可靠。 视为营销话术元数据,而不是真相。
经验法则:国家回答商业决策(往哪里发货、往哪里本地化、加哪种支付方式);城市回答战术决策(用哪个城市试投活动),并需要另一来源佐证。
Statnive 在免费层提供国家,因为国家能在 2026 年的现实里存活。城市落在 v1.2 付费层,并把明确的注意事项印在卡片上。
可以按国家屏蔽流量吗?
Statnive 本身不屏蔽流量。它是一个只读统计插件——它的工作是告诉您受众的形状,而不是闸门它。
国家级屏蔽属于三层:CDN / WAF(Cloudflare 国家规则、AWS WAF geo-match、Sucuri——在 WordPress 之前屏蔽)、插件层(Wordfence Country Blocking、init 上的自定义 WP 过滤器)或 Web 服务器层(nginx geo 模块、Apache mod_geoip)。
Statnive 识别哪些国家在发送流量,您据此决定屏蔽属于哪一层。q73(「Which country sends the most traffic?」)就是该决策的输入层。
WordPress 使用哪些 GeoIP 库?
没有单一标准。常见选择:MaxMind GeoLite2(免费、准确,需账号;本地 .mmdb)、DB-IP Lite(免费、无账号,准确度略低;本地 .mmdb)、CDN 注入的 header(Cloudflare CF-IPCountry、AWS CloudFront——信任 header)、IP2Location(商业、付费许可证)。
Statnive 默认使用浏览器时区(完全不做 GeoIP),并允许主机启用一条可选的 GeoIP 路径,支持 MaxMind、DB-IP 和 CDN header。浏览器时区对大多数站点的国家级决策来说已经足够好。
决策规则:使用国家,本地化前先验证
一句话规则:在为某个国家投资本地化或新增支付方式之前,请用 q73 确认该国家在您按访问量排名的前 5 名内,并且 q74 显示国际尾部是结构性增长,而不是一周的爆点。
如何应用:
- 打开 Ask me! → q73 看按访问量排名的顶部国家。
- 把日期范围设为「Last 90 days」——短窗口对单条 Reddit 帖子或活动爆发会过度反应。
- 选 top 3-5 国家。对每个,用 q74 确认国际份额至少占总流量的 10%;低于此值,本地化结账流程的成本可能超过营收提升。
- 用 q75 交叉对照看实际请求的语言。如果首位国家送 12% 的流量,但他们的
Accept-Language已经是英语,您不需要翻译店面——您需要一个国家专属的支付方式。 - 每月重跑这个循环。国际尾部往往随内容触达增长或萎缩,而不是随机变化。
锚定:在 top 5 国家、占国际份额 10% 以上、维持 90 天,且 Accept-Language 多数为非英语,是一个有力的本地化候选。比这个组合更弱的,都属于观察清单候选。
即将推出:城市和都会区
两张相邻卡片在 v1.1.0 中明确为 Coming-soon:
- q76——What cities are my visitors from? 落在 v1.2 付费层。地理标签页中的 Coming-soon 卡片对此已明示。
- q77——Which city sends the most traffic? 同上——v1.2 付费层。
延迟的理由不是技术能力。是上面解释过的准确度限制:城市级数据在 2026 年比 2024 年退化得更快,我们宁愿把它伴随付费承诺和正确的注意事项一起发布,也不愿把误导性的卡片放在免费层。
接下来怎么做
- 如果您还没装上,从 WordPress.org 安装 Statnive。通过浏览器时区做国家解析开箱即用;无需 GeoIP 设置。
- 打开 Ask me! → q72「What countries are my visitors from?」 把日期范围设为「Last 90 days」并读取地图。
- 搭配 q73「Which country sends the most traffic?」 查看排名后的 top-N 列表。
- 检查 q74「Is most of my traffic local or international?」 锚定本地 vs 国际拆分。
- 用 q75「What language are my visitors using?」 交叉对照,再排队翻译。
- 阅读 哪些国家值得为 WooCommerce 做本地化 了解完整的本地化决策框架。
- 阅读 用地理数据降低运费 了解运费成本视角。
- 阅读 您的流量到底来自哪里? 了解按国家的渠道组合。
这就是工作流。先国家、后语言、再城市——每一步都保持隐私默认完好。
从 WordPress.org 免费安装 Statnive 1.1.0 →
永久免费 · 自托管 · 无需账号 · 2 分钟完成设置 · 无 AI · 无第三方 API · 您的数据永不离开您的服务器。