-
Step 1 · 上 HTTPS:证书申请与强制跳转
免费证书 + 自动续签 + 全站跳转
HTTPS 现在是默认项,不是加分项:浏览器标「不安全」,百度也优先收录 https 页面。
宝塔用户(最省事):
站点 → SSL → Let's Encrypt → 申请 → 开启「强制 HTTPS」。免费、90 天有效期、宝塔自动续签。纯 Nginx 用户:
# 证书用 acme.sh 申请,配 crontab 自动续签 curl https://get.acme.sh | sh acme.sh --issue -d 你的域名 -w /www/wwwroot/你的域名必查三项:
- 全站资源都用 https(页面里有
http://的图片 / JS 会被拦,浏览器控制台会报 mixed content) - http 全部 301 跳到 https(不是 302)
- 证书到期前有自动续签(写个每月检查:
echo | openssl s_client -connect 域名:443 2>/dev/null | openssl x509 -noout -dates)
申请失败的常见原因:域名没解析到本机、80 端口没放行、同一域名 24 小时内申请超过 5 次(等明天)。
自查清单
- https 访问无证书警告
- http 自动 301 跳 https
- 证书有自动续签机制
- 全站资源都用 https(页面里有
-
Step 2 · 接 CDN:加速域名 + 回源配置
CNAME 到 CDN,回源指向源站,先按目录缓存
CDN 把你的静态文件缓存到全国节点,用户就近取,既快又省源站流量。
配置四步:
- CDN 控制台添加加速域名(如
cdn.你的域名),业务类型选「静态加速」 - 回源配置:回源地址填你的源站域名或 IP,回源协议选 https(源站已上证书)
- 域名解析:把
cdn.你的域名CNAME 到 CDN 给的域名 - 站点的静态资源路径换成 CDN 域名(改 HTML 里的
assets/前缀,或用 Nginx / 构建工具统一替换)
国内注意:使用国内 CDN 节点的域名需要备案,没备案只能用境外节点(速度优势就没了)。
回源鉴权:给源站加一层校验(如只允许 CDN 回源 IP 访问),避免别人绕过 CDN 直接打你的源站。
验证生效:
curl -I https://cdn.你的域名/assets/css/style.css,看响应头里有X-Cache: HIT或 CDN 厂商的命中标识,且Age大于 0。自查清单
- curl 能看到 CDN 缓存命中标识
- 直接访问源站 IP 被拒绝或限流
- 页面资源全部走 CDN 域名
- CDN 控制台添加加速域名(如
-
Step 3 · 缓存规则:什么缓存、缓存多久、怎么刷新
HTML 不缓存,静态资源长缓存 + 文件名带版本
缓存配错比不配更糟:用户看到的是三天前的页面,你还不知道。
推荐规则(照抄):
| 资源 | 缓存时间 | 原因 |
|---|---|---|
|*.html| 0(不缓存)或 5 分钟 | 内容更新要立刻生效 |
|/data/*.json| 1–5 分钟 | 数据文件更新要较快生效 |
|assets/js|css| 7 天 – 1 年 | 配合文件名版本号可长期缓存 |
| 图片 | 30 天 | 基本不变 |长期缓存的前提是「文件名带版本」:
style.css?v=20260927或style.a1b2c3.css。否则你改了 CSS,用户的浏览器还在用旧的。刷新(改版后必做):
- CDN 控制台「缓存刷新」→ 填 URL 或目录(支持目录刷新就刷
/assets/) - 刷新有配额,别每次改一个字就刷全站
- 紧急情况下用「URL 预热」把新内容推到节点
排错口诀:改了没生效 → ① 刷新 CDN → ② 看响应头
Age(>0 说明还是旧缓存)→ ③ 硬刷新浏览器(Ctrl+F5)。自查清单
- HTML 未被 CDN 长期缓存
- 静态资源文件名带版本号
- 改版后执行过缓存刷新并验证生效
- CDN 控制台「缓存刷新」→ 填 URL 或目录(支持目录刷新就刷
-
Step 4 · 验收:速度、安全头、收录不受影响
压测前后对比,确认爬虫还能正常抓
速度验收(改前后对比才有意义):
PageSpeed Insights跑一次,看 LCP / TTFB- 多地 ping 或「17ce / 站长工具」测全国访问速度
- 目标:TTFB < 200ms(国内节点),LCP < 2.5s
安全头(Nginx 加这几行即可):
add_header X-Content-Type-Options nosniff; add_header Referrer-Policy strict-origin-when-cross-origin; add_header X-Frame-Options SAMEORIGIN;收录不能受影响(最容易翻车的地方):
- 回源要正确:CDN 必须回源到最新内容,别把旧快照缓存几个月
- robots.txt 与 sitemap.xml 不要缓存太久(建议 ≤1 小时),否则爬虫拿到旧的
- 别屏蔽爬虫 UA:有些 CDN 的「安全防护」会误拦 Baiduspider,去 CDN 的 UA 白名单里放行主流爬虫
- 用 curl -A 'Mozilla/5.0 (compatible; Baiduspider/2.0)' 模拟爬虫请求,确认返回 200 且是最新内容
最后跑一次自检:
bash scripts/seo-check.sh,确认 canonical、sitemap、HTTPS 都还在。成本:个人站 CDN 流量费很低(每月几元),但突发流量和盗刷才是风险——设好用量告警。
自查清单
- TTFB 与 LCP 相对接 CDN 前有改善
- 模拟 Baiduspider 请求返回 200 且内容最新
- CDN 用量告警已开启