返回博客
2025年10月16日Sergei Solod6 分钟阅读

我的第一个 SEO 实验月:632 位自然访客,以及一次可疑的机器人流量检查

为了给工作中的大型 SEO 项目做准备,我把个人 side project 当成实验环境。一个月后有了 632 位自然访客,但某天 83 位访客的峰值让我意识到:可疑流量和分析工具的重放偏差,很容易被误读成真实增长。

SEO网站分析机器人流量Yandex MetricaSEO 实验

把个人 side project 当作 SEO 实验场一个月后,我拿到了632 位自然访客。这个数字当然令人振奋,但真正有价值的教训来自另一个数字:10 月 15 日,网站的单日访客达到83 人,创下当时的最高值,而其中一部分流量看起来并不像真人。

当时我正在为工作中的一项大型SEO 项目做准备。我需要的是实际操作经验,而不是再读一轮理论。个人项目给了我一个可以改动、观察数据、甚至犯错的环境,不需要把每个观察结果立刻变成生产环境的决策。

这个区别很快就变得重要。一个指标在某次改动之后发生变化,并不能证明这个改动就是原因。流量峰值在拆分来源之前可能看起来像增长。Session Replay 也可能展示出异常,却无法单凭画面解释异常为何发生。

632 位自然访客真正说明了什么

第一个月获得了632 位自然访客,这是我能够确认的结果。但仅凭这个数字,我不能声称自己找到了可重复的 SEO 公式,也不能证明每一次修改都提升了排名,更不能保证这种趋势会继续。

对一个学习项目来说,真正的价值在于终于有了足够的真实搜索流量可以观察。我可以做一次改动,看看哪些数据发生变化,再提出更精确的问题。这比把 SEO 当成一张 checklist 更有用——后者很容易让人以为完成每个“best practice”就应该自动换来排名提升。

字体大小让我重新理解“相关”和“因果”

让我意外的一点,是字体大小调整与性能指标之间出现了相关性。很容易把它写成一句漂亮的话:“很小的 UX 细节也会影响排名。”但我的数据并不足以支持这么强的结论。

我真正观察到的是:我调整了字体大小,随后一些相关指标发生了变化。我没有做一个把字体大小从所有其他改动中隔离出来的对照实验,也没有证据证明搜索引擎因为这条具体 CSS 规则而调整了排名。字体大小确实可能改变换行、布局和元素位置,从而影响某些渲染或 UX 指标。但在我的案例中,具体机制并没有得到证明。

对这类 SEO 实验,更稳妥的规则是:先记录观察,再解释原因。“改动 Y 之后指标 X 发生变化”是数据。“Y 导致了 X”在证据充分之前只是一个假设。

83 位访客的那一天,在打开 Webvisor 之前看起来更漂亮

10 月 15 日,网站达到当时最高的单日总量:83 位访客。这并不意味着 83 位都是自然访客;它只是我当时分析的全天流量峰值。按来源拆分后,我发现其中相当一部分来自中国,并被归类为直接流量

“Direct”很容易被理解成“有人直接输入了我的 URL”。但在 Yandex Metrica 中,如果 referrer 没有被传递,访问也可能进入这个类别,除此之外还有其他情况。Yandex 在流量来源官方文档中明确说明了这一点。因此,仅靠来源标签无法判断访问者是谁,也无法确定他们究竟是怎么发现页面的。

随后我用 Yandex Webvisor查看了这些可疑会话。在重放画面里,页面看起来像是在CSS 被禁用的情况下打开的。根据我看到的模式,我估计这些“用户”中大约有20 个可能是机器人。

没有 CSS 是线索,不是证据

这个数字至今仍然只是估计。至少有两类解释都说得通。

  • 这些请求真的可能是自动化的。 Scraper 完全可能只抓 HTML,而忽略不需要的 stylesheet、图片或其他资源。为了节省带宽是一个合理猜测,但我没有证实这就是它们的动机。
  • Replay 也可能没有完整还原原始会话。 Session replay 系统是根据记录的数据重建页面。Yandex 自己也记录过这种情况:当 stylesheet 发生变化时,回放页面可能与访问者当时真正看到的页面不同,包括与 CSS 相关的回放问题

所以,“Webvisor 显示页面没有 CSS”是观察。“访问者故意关闭了 CSS”是解释。“因此它一定是机器人”则是更进一步的推断。这个模式让我认为机器人流量很有可能,但仅凭 replay 的一个特征还不足以做出确定分类。

我接下来会在日志里验证什么

遇到这种异常,我会比视觉 replay 更信任服务器日志。我会比较 User-Agent、IP 或网络段、请求间隔和重复性、实际请求了哪些资源、URL path、HTTP 状态码和 referrer。我还会检查客户端是否只取了 HTML,还是也加载了 CSS、JavaScript 和图片,并对照 analytics 中的浏览器、JavaScript 支持、地区、会话时长和 landing page 等维度。

任何一个信号单独拿出来都不完美。但把它们放在一起,比“重放画面看起来很奇怪”更能支持或削弱机器人假设。

最大的收获其实是测量,而不是排名

我做这个 side project,是为了在工作中的大型 SEO 项目之前获得真实经验。一个月之后,有价值的结果并不只有632 位自然访客。更重要的是,我看到了人有多容易围绕不完整的数据快速建立一个听起来很合理的故事。

我本可以把 83 位访客的峰值直接称为增长。也可以把字体调整后的变化称为“ranking factor”。还可以把所有看起来没有 CSS 的会话都叫作机器人。这三种说法都更简单,但没有一种有足够证据。

如果以后继续做类似实验,更稳妥的流程应该是:分开看流量来源,记录每次改动,做前后对比但不自动假设因果关系,把异常深入到 HTTP request 层面,并把 analytics 工具看作有自身测量局限的系统。

到目前为止,这才是整个实验里对我最有价值的部分。SEO 给了我可以研究的流量;更难的能力,是判断数据究竟证明了什么。

我还在继续分析日志,尤其是来自中国的直接流量。如果能找到可重复的请求模式,我就能更有把握地回答最初的问题:那大约 20 次访问到底是不是机器人,以及不加载 CSS 是否确实是它们行为的一部分。