返回博客
2025年11月16日Sergei Solod5 分钟阅读

我买了一个 25 年历史的域名:死链每天收到 1,000+ 次请求

在一个最早注册于 2000 年的域名上上线新站后,我看到旧 URL 每天收到 1,000 多次请求,Yandex Webmaster 还在一夜之间出现 900 多个错误。本文区分我真正能确认的事实和无法证明的因果关系,并解释为什么我用了定向 410,以及现在会如何审计老域名。

SEOHTTPDevOps域名网页抓取

我买下了一个最早注册于 2000 年的域名。单看历史,这似乎更像一种优势。可新站上线后,服务器日志开始被各种请求填满,而它们指向的页面我从来没有创建过。

新项目里根本不存在的 URL,每天收到超过 1,000 次请求。在 analytics 中,这表现为一波很大的 direct traffic,但 engagement 几乎为零。同时,Yandex crawler 也在重新访问旧 path,拿到 404 Not Found,Yandex Webmaster 在一夜之间积累了超过 900 个错误

我最初的解释很简单:老 bot 不断撞击死 URL,Yandex 看到了这些活动,所以也持续 crawl。站在我的视角,时间顺序确实像是这样。但我的数据不足以证明这个因果关系。

我真正能够确认的事情

实际上有三个彼此独立的观察。第一,服务器确实收到大量来自域名旧历史的 URL 请求。第二,这些 traffic 几乎没有带来真正的用户 engagement。第三,Yandex crawler 也请求了旧 path,而 Webmaster 面板在一夜之间记录了 900 多个错误。

从运维角度看,这已经足够构成问题:日志噪音、无意义请求,以及需要清理的 webmaster report。但这些事实不能证明第三方 bot 导致了 Yandex 的 crawl,也不能证明这些错误直接影响了 ranking 或 organic traffic。Crawling 不等于 indexing,indexing 不等于 ranking,错误报告也不是 penalty 的证据。

我之前把 404 和 410 想得过于简单

以前我的理解大概是:404 表示“现在可能暂时没有”,410 表示“永久消失”。作为直觉模型很好理解,但从 HTTP 语义看并不准确。

404 Not Found表示服务器无法提供目标 resource 当前的 representation;这个状态码本身并不说明情况是临时还是永久。410 Gone更具体:当服务器知道该 resource 已经不再可用,并且这种状态预计是永久的时,它更合适。

谈 SEO 时也需要保持这种精确度。搜索引擎可以从搜索结果中移除返回 404 或 410 的 URL。因此我现在不会再把 410 描述成某种“比 404 更强的 SEO 状态码”,也不会说所有被删除的页面返回 404 都是错的。

为什么我的案例里定向 410 仍然合理

这些旧 path 不是临时故障。它们属于域名过去的内容,在新项目中没有对应页面。我明确知道这些特定 URL 已经永久消失。因此 410 Gone准确表达了它们的实际状态。

所以我没有把所有未知 URL 都改成 410,而是只对已知的 legacy path 定向返回 410。这个改动之后,围绕旧 path 的 crawl 和 reporting noise 下降了,webmaster tools 中的情况也干净了很多。

不过,我对因果关系仍然保持谨慎。我可以说“改善发生在定向 410 之后”,也可以说“410 正确表达了这些 URL 的状态”。但我无法证明仅靠 410 就让所有 bot 都停了。任意第三方 bot 完全可以忽略 HTTP status 的含义,继续无限请求同一个 path。

我现在使用的判断规则

真正有用的问题不是“410 是否比 404 更好”,而是“这个 URL 实际发生了什么”。

  • 有明确替代页面:使用 301 等 permanent redirect,指向真正等价的新 URL。
  • 旧 resource 已确认永久删除,而且没有替代:410 Gone 是精准选择。
  • URL 只是未知、拼写错误,或者从来没有存在过:正常的 404 Not Found 就合适。

我会避免为了“消除错误”而把所有死 URL 都 redirect 到首页。那会掩盖 resource 的真实状态,对用户和 crawler 都可能产生更差的体验。

现在我会如何在上线前审计老域名

如果以后再次使用有历史的域名,即使完全不迁移旧站,我也会把它的 URL 历史当作 migration 的一部分。

  1. 检查旧 footprint。 上线前寻找 historical URL 和明显的 legacy section。
  2. 从第一天就看 access log。 如果你从未创建过的 path 反复收到请求,说明这个域名仍然被外部系统记住。
  3. 区分真实用户、search crawler 和随机 bot。 direct traffic 激增和 crawler error 是不同 signal,不应自动合并成一个因果故事。
  4. 分类反复出现的 dead URL。 对每个重要 pattern 明确决定应该用 301、404 还是 410。
  5. 分别监控结果。 请求频率、crawler report 和 indexing 是不同维度,不应该都压缩成一个模糊的“SEO health”指标。

相比等到日志和 webmaster tools 已经被噪音淹没后再排查,这些工作成本很低。

410 不能解决什么

410 只是关于 resource 状态的 HTTP 表达。它不是 firewall、rate limiter,也不是 bot blocking 机制。如果 scraper 收到 410 后仍然继续请求,服务器还是必须接收并响应。如果真正的问题是恶意或过高的 request volume,那属于另一类 infrastructure 问题。

410 也不是 SEO boost。正确状态码能帮助 crawler 理解 URL 发生了什么,但它本身不会让新站排名更高。

这次经历真正留下的规则

让我意外的不是“老域名有旧 URL”,而是这段看不见的历史在上线后重新出现得有多快:不存在的页面每天收到 1,000 多次请求,engagement 几乎为零,Yandex Webmaster 一夜之间出现 900 多个错误。

老域名不是一个空 namespace。原始内容消失多年以后,旧链接、crawler、script 和 bot 仍然可能记得那些 path。现在我的规则很简单:审计历史,返回符合真实状态的 HTTP status,并把运营层面的 bot traffic 和对搜索引擎行为的推断分开。

历史可以是资产,也是一份你继承下来的 state。