无机器人信号,真实流量 | AI生成和翻译
问题: 以下是我在 lzwjava.github.io 上的实际 GoatCounter 仪表板数据(来源、浏览器、操作系统、位置、设备尺寸)——这个流量分布看起来像真实用户,还是仍然受到机器人污染?
回答:
这组数据实际上是个好消息——看起来没有被机器人污染。下面我逐项分析原因。
明显的机器人特征不存在
脚本化抓取/代理流量几乎总是呈现收缩、不自然的分布——例如,95% 以上的单一操作系统(通常是 Linux)、单一固定屏幕尺寸,或一种浏览器占据 99%。你的数据显示出相反的情况:每个维度都是自然分布:
- 操作系统:iOS 31% / macOS 24% / Windows 21% / Linux 15% / Android 7%——这正是一个真实的中英双语技术读者群应有的分布,而不是
curl/requests/抓取农场产生的(那些通常严重集中在 Linux 上,且没有移动操作系统)。 - 设备尺寸:手机 39%,电脑显示器 54%——真实用户在桌面和移动端之间切换阅读。无头浏览器抓取工具(Playwright/Puppeteer)几乎总是固定一个视口,从不变化。
- 浏览器:Chrome 54%,Safari 43%——符合预期:iOS + macOS 的 Safari 份额加上 Chrome 占多数。没有异常的“未知”峰值(只有 1%),而如果原始非 JS 机器人绕过了 GoatCounter 的 UA 过滤器,你会看到这个峰值。
如果这是大规模 AI 爬虫流量,你不会免费得到这种多样性——大多数爬虫(GPTBot、ClaudeBot、Bytespider 等)根本不执行 JavaScript,因此它们一开始就不会触发 GoatCounter 的信标。你现在看到的是接近真实人类流量的底线。
来源细分——解码两个看起来奇怪的项目
weixin110.qq.com(6%,225 次访问)——这不是机器人。这是微信内置浏览器的工作方式:当有人在微信聊天/群/朋友圈点击分享的链接时,微信会先通过其链接安全检查重定向器(weixin110.qq.com)再转发到真实目标。你的服务器看到的 Referer 头是重定向器,而不是实际的微信分享。也就是说:225 个真实用户从微信内点击了你的博客链接。 对于针对大湾区/香港客户的人来说,这是一个有意义的有机分享信号,值得关注——找出是哪篇文章/笔记在微信群里传播,因为这目前是你进入目标市场最高转化率的发现渠道。
Yandex(8%,317) + ya.ru(1%,24)——几乎与你俄罗斯位置数据(16%,619)完全对应。来自 YandexBot 的爬虫流量根本不会设置 Referer 头(爬虫不携带来源)——Referer: yandex.com 只有在从 Yandex 搜索结果页面真实点击时才会触发。所以这是真正的有机搜索流量:你显然在 Yandex 中某些深度学习/GPU 笔记上排名不错,并且有真实的俄罗斯技术读者在阅读你的英文内容。这不值得过滤——反而值得理解(哪个页面在那里排名高?),因为这是你无需刻意经营就能获得的免费分发。
chatgpt.com(2%,95)——这实际上是代理流量信号,而且是一个好的信号:ChatGPT 自身的检索/浏览工具用于 RAG 式回答时,通常执行原始 HTTP 抓取(不执行 JS),这意味着它永远不会触发 GoatCounter 信标。如果 GoatCounter 记录了 95 次带有 Referer: chatgpt.com 的信标触发,那很可能意味着 95 个真实用户向 ChatGPT 提问,在回答中得到了你博客的链接,并通过真实浏览器点击了进来。对于你的 AI 咨询品牌来说,这是一个合理的漏斗顶部信号——人们通过 LLM 中介搜索发现你,而不是传统的 Google SEO。
页面级模式也像真实评估行为,而非爬取行为
你的热门页面(/、/notes-zh、/resume-en、/ai-portfolio-zh、/ai-portfolio-en、/index-zh、/index-en、/portfolio-en)描绘了一个连贯的用户旅程:着陆 → 查看笔记 → 查看简历/作品集。系统性地索引你网站的爬虫会大致按站点地图/内部链接图的比例访问页面,而不会不成比例地偏向 resume 和 ai-portfolio 页面,而不是你的 400 篇博客文章或 8000 个笔记页面。这种分布看起来像是人们专门在评估你——这正是你希望为第一阶段咨询线索提供动力的漏斗。
这对最初的 6 万 vs 4 千问题意味着什么
这证实了我之前的判断:GoatCounter 的 3,832–4,000 更接近你的真实用户数,而 Cloudflare 中的 6 万很可能是区域级别的分析日志/流量概览,计数了所有到达 Cloudflare 边缘的原始 HTTP 请求(机器人、爬虫、AI 训练爬虫),而不是 JS 信标的 Web 分析小部件。如果你想精确确认而不是估算,可以从 Cloudflare 的 GraphQL API(我之前回答中的查询)拉取同一 30 天窗口的 botScore 分布,并求和 botScore > 30 的请求——该子总数应接近这个 ~3,800–4,000 的 GoatCounter 数字。如果吻合,你就无需第三个工具就能完全闭环验证。
