SEO 百科
CDN
本页目录
CDN
CDN(内容分发网络)是一组分布在不同地区的服务器,它们保有一份网站内容的副本,按访客所在的位置,由最近的一台服务器回应请求[1]。它是站内见效最快的一项提速改动,同时它的缓存与防护设置又决定爬虫能不能拿到页面,所以用不用、用哪家、哪些文件交给它,三件事要一起想清楚。
在请求链中的位置
CDN 站在源服务器与访客之间,代替源站返回一部分文件。Cloudflare 说,CDN 是“一组地理位置分散的服务器,会在靠近最终用户的位置缓存内容”[2]。源服务器指网站程序与数据真正所在的那台机器。
Google 的描述更强调位置:“CDN 基本上是源服务器(网站所在位置)与最终用户之间的中间媒介,并为用户提供(部分)文件”[3]。中间媒介这个身份决定了它既能替源站分担,也可能替源站做错决定。
请求到达节点后分两种走向。节点上有这份文件的副本,就叫命中,直接返回;没有副本,节点向源站取回一次,取回后再存一份。命中的比例越高,源站就越空闲。
就近响应与源站减负
好处可以拆成三块,各自省掉的成本并不相同。
- 就近响应:访客与节点之间的往返距离变短,页面开始加载的时间随之提前[2]。
- 源站减负:静态文件由节点直接返回,源站不必为每个访客重复执行同一段程序,带宽和处理器都省下来[1]。
- 抗压与防护:流量骤增或攻击到来时,节点分散承担压力,源站不容易被打垮[3]。
第三块对抓取另有意义。爬虫抓取本身会造成压力,而百度会按服务器压力自动调整抓取频次[4]。源站响应更快,抓取量更容易维持在原有水平。
与搜索引擎抓取的配合
CDN 让服务器更快,抓取量一般会跟着受益。Google 说明过 CDN 与抓取率的关系:
我们的抓取基础架构旨在允许在由 CDN 提供支持的网站上实现更高的抓取率,CDN 是根据为我们的抓取程序提供网址的服务对应的 IP 地址推断出来的。
Google《抓取 12 月:CDN 和抓取》[3]
这个好处有个前提:CDN 要出现在爬虫看到的那条链路上,而且被识别为 CDN。若把爬虫单独引回源站,判断依据就不成立,好处也就不存在了。
抓取节奏还受另一件事影响。MDN 在讲缓存验证时提到,Last-Modified 不只为缓存服务,“爬虫会利用它调整抓取频率”[1]。
缓存不一致与拦爬虫风险
CDN 的缓存本质是一个过期时间问题,配不好会让访客与爬虫看到旧页面。发布新内容后,节点上仍是旧副本,页面要等缓存到期才更新。常见做法有两条:
- 发布静态文件时在文件名里带版本号,例如把
style.css改成style.a1b2c3.css; - 内容变化后主动刷新节点上的旧副本。
防护设置更容易出事。Google 把这类问题称为“过度保护”,并分成硬屏蔽与软屏蔽两类[3]。
- 硬屏蔽:CDN 直接拒绝爬虫的请求,返回
403一类的错误,页面完全无法抓取。 - 软屏蔽:请求能返回,但返回的是验证页或错误页,爬虫拿到的 HTML 里没有内容。
两类后果都落在收录上,而且从表面不容易看出来,因为普通访客的访问是正常的。
选购与上线要看的条件
选哪家先看访客在哪里,再看备案与地区限制。面向中国大陆访客的加速域名通常要先完成 ICP 备案,这一步在购买前就要确认。
下面是几项要一起考虑的差别:
| 关注点 | 说明 |
|---|---|
| 节点位置 | 靠近主要访客所在地区,延迟才真正下降 |
| 缓存规则 | 能否按目录与后缀分别设置过期时间 |
| 压缩能力 | 是否支持 Brotli 这类更省体积的编码 |
| 防护规则 | 拦截策略能否放行已知爬虫 |
上线前后要核对爬虫这条链路。Google 建议检查防火墙与拒绝服务攻击(DoS)的防护设置,确保它没有挡住爬虫[3]。迁移当天抓取量短暂下降属正常,随后会回升;持续异常就要回头查这条链路。
常见误用
- 只管加速,不管缓存。静态文件设了很长的过期时间,页面改版后旧样式仍在返回。
- 沿用默认防护,把爬虫一并挡在门外,还以为是内容没有被收录。
- 以为用了 CDN,源站压力就一定小。回源规则配错时,请求照样落在源站。
- 只在一个地区测试。不同节点的缓存状态可能不一致,本地正常不代表别处正常。
附录
参见
参考资料
官方(境外)
- 《CDN》,MDN Web 文档,2025-10-10 更新。
- 《什么是 CDN?》,Cloudflare Learning Center。
- 《抓取 12 月:CDN 和抓取》,Google 搜索中心博客,2024-12-24。
官方(国内)
- 《平台工具使用手册(抓取频次)》,百度搜索资源平台,2020-08-14 更新。
外部链接
无。