SEO 百科
Nginx 缓存
本页目录
Nginx 缓存
Nginx 缓存 指的是代理缓存那一层,Nginx 自带这个能力,把已经生成过的响应留在本机或前置机上,后续同一请求由它直接返回。Nginx 把自己列为 HTTP 服务器、反向代理、内容缓存与负载均衡器,缓存是它的原生能力之一[1]。
这一层对 SEO 的用处
动态站点每次请求都要走一遍应用与数据库,首字节时间随之上升。缓存命中时后端不参与,响应快、机器省,加载性能里的 LCP 与交互响应都能受益[2]。抓取频繁的大型站点更明显:同样的抓取量下后端不被打穿,抓取才不会撞上超时与错误[3]。
要配的四件事
缓存键。默认按网址与协议构成,参数、Cookie、用户代理都可能把键打散,键一散命中率就掉。
有效期。命中与否看 Cache-Control,也看服务器侧给的 TTL,两者共同决定,静态资源给长时效、HTML 给短时效是常见分法[4]。
绕过条件。登录态、购物车、带特定 Cookie 的请求要跳过缓存,否则会把某个用户的私人页面发给别人。
失效方式。改完内容不能等自然过期,要按路径或标签主动清,否则引擎抓到的还是旧页[4]。
三条易错
缓存了带 noindex 的响应。头是从缓存里返回的,应用侧改了也不生效,必须清一次[4]。
按用户代理分别缓存导致内容不一致。爬虫与用户看到的版本不同,这类做法在测试实践里被明令避免:不要根据用户代理决定是否参与测试或给哪套内容[5]。
把重定向规则的结果长期缓存。改地址后旧跳转仍被命中,收敛变慢。
验证办法
看响应头里的命中标志与 Age;同一 URL 连续请求两次,第二次应当更快。抓取的落地核查用网址检查工具看渲染结果,确认引擎拿到的不是旧版本[6]。
常见误用
第一种是给所有页面统一的长 TTL,改完内容全站都是旧的。第二种是把数据库层的缓存与这一层混为一谈,两者作用对象不同。第三种是只在本机开缓存、前面还有 CDN,两层过期时间不一致时表现难判[4]。
附录
参见
参考资料
官方(境外)
- 《nginx documentation》,NGINX。
- 《了解 Core Web Vitals 和 Google 搜索结果》,Google 搜索中心。
- 《优化抓取预算》,Google 搜索中心。
- 《使用 HTTP 缓存提升网站性能》,web.dev。
- 《网站测试与 Google 搜索》,Google 搜索中心博客,2012-08-29。
- 《Google 搜索技术要求》,Google 搜索中心。
外部链接
- HTTP Semantics(RFC 9110),IETF。