简记建站以来对网站各方面的优化
核心优化工具 / 插件清单
- 访问性能优化:W3 Total Cache、EWWW Image Optimizer
- 安全防护:Solid Security Basic
- 网络加速:阿里云 ESA 边缘安全加速 CDN,腾讯云EdgeOne边缘安全加速 CDN
- 服务端环境:宝塔 Linux 面板、Nginx、MySQL、PHP-FPM
这里不得不感谢一下阿里云和腾讯云新出的活动。首先是阿里云新出的边缘安全加速 ESA免费试用一个站点。虽说一次只能买1年的免费,但是可以一直买啊(,薅羊毛直接续到2041年7月5日 00:00:00了;其次腾讯云EdgeOne抽奖送长期套餐,虽然说是抽奖但是目前参与的人全抽中了(),而且流量不限制。往里进往里进。
一、前端性能全链路优化
1. 页面静态缓存(核心优化)
使用 W3 Total Cache 插件设计高性能静态页面缓存方案,使得访问网站时完全绕过 PHP 与 WordPress 内核,由 Web 服务器直接交付静态缓存文件,从根本上消除动态页面生成的性能开销。
原理:
当用户首次访问某页面、或缓存过期 / 被清理时,W3TC 会完成:
- 按正常流程执行 WordPress PHP 渲染、数据库查询,生成完整的页面 HTML 静态内容;
- 按照站点的固定链接,在服务器磁盘上生成与请求路径一一对应的静态 HTML 缓存文件,同时自动区分桌面端 / 移动端、HTTP/HTTPS、多语言等不同场景,生成独立的缓存副本;
- 配套生成缓存元数据,用于管控过期时间、清理规则、缓存匹配逻辑。
再次访问时:
- 若缓存命中:Web 服务器直接读取磁盘上的静态 HTML 文件,返回给用户浏览器,全程不启动 PHP 进程、不加载 WordPress 内核、不执行任何数据库查询;
- 若缓存未命中:请求才会正常转发给 PHP,回源执行 WordPress 页面渲染流程,并生成新的缓存文件。
效果: 页面首字节返回时间(TTFB)从 2-3s 降低至 0.3s 以内;大幅降低服务器资源占用,提升并发承载能力。
2. 静态资源压缩与合并
通过 W3 Total Cache 开启 HTML、CSS、JS 文件的无损压缩与智能合并:
- 移除代码中的注释、空格、换行符等冗余内容,缩小文件体积;
- 合并分散的 CSS/JS 文件,减少 HTTP 请求次数,降低浏览器 TCP 握手开销;
- 开启 GZIP/Brotli 双压缩适配,静态资源体积平均缩小 60%+。
3. 浏览器本地缓存管控
在 W3 Total Cache 中配置精细化的浏览器缓存规则,为不同类型资源设置合理的本地缓存过期时间:
- 图片 / 字体 / 音视频等静态资源:缓存过期时间 1 年,
Cache-Control: max-age=31536000; - CSS/JS 资源:缓存过期时间 30 天,配套文件版本号机制,更新时自动失效旧缓存;
- HTML 页面:缓存过期时间 1 小时,兼顾页面更新时效性与访问速度。
4. 核心 Web Vitals 指标专项优化
总阻塞时间(TBT)优化:禁用 WordPress 闲置插件,移除页面非必要的第三方 JS 脚本,开启 JS 延迟加载,非首屏交互的 JS 脚本延后执行,TBT 从 210ms 降至 150ms 以内;
二、图片与媒体资源全链路优化
1. 图片无损压缩与格式转换
将全站图片通过 EWWW Image Optimizer 完成批量优化:
- 无损 / 有损智能压缩,移除图片 EXIF 冗余信息,在人眼无感知画质损失的前提下,将图片体积平均压缩 50%+;
- 批量生成 WebP 格式图片,同等画质下体积比 JPG/PNG 缩小 50%-70%,命名规则适配
原文件名.原后缀.webp(如logo.jpg对应logo.jpg.webp); - 首页封面大图从 1.14MB 压缩至 178KB,完全加载时间从 2s 降低至 0.5s 以内。
2. Nginx 层 WebP 自适应适配
为解决不同浏览器的 WebP 兼容性问题,在 Nginx 服务器配置中添加自适应加载规则,优先返回 WebP 格式,不兼容的浏览器自动回退到原格式图片:
- 在 server 块前添加 WebP 支持判断:
map http_acceptwebp_suffix { default ""; "~*webp" ".webp"; } - 在静态资源配置块中添加 WebP 优先加载规则,适配全站图片请求:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf){ add_header Vary Accept; expires 365d; error_log /dev/null; access_log /dev/null; # 优先加载WebP格式,找不到则加载原图片文件 try_filesuriwebp_suffixuri =404; } - 配套 Shell 脚本批量检查全站图片的 WebP 版本生成情况,输出缺失文件清单到 txt 文档,确保无遗漏:
# 定义网站根目录和结果文件 IMAGE_DIR="/www/wwwroot/cloverdayssss.top" RESULT_FILE="webp_check_result.txt" # 遍历图片并检查WebP版本 find "IMAGE_DIR" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" \) | while read -r img; do if [ ! -f "{img}.webp" ]; then echo "❌ 缺失WebP版本:img" >> "RESULT_FILE" else echo "✅ 已存在WebP版本:img" >> "RESULT_FILE" fi done
3. 响应式图片与懒加载优化
- 通过 WordPress 原生
srcset + sizes属性实现响应式图片,不同屏幕尺寸自动加载对应分辨率的图片,避免移动端加载超大 PC 端原图,移动端加载流量降低 70%+; - 开启 EWWW Image Optimizer 原生图片懒加载,为非首屏图片添加
loading="lazy"属性,无需额外 JS 脚本,大幅降低首屏请求数,提升首屏加载速度; - 首屏核心图片禁用懒加载,设置
loading="eager",确保核心视觉元素优先加载。
三、网络层 CDN 加速优化
使用阿里云 ESA 边缘安全加速 CDN,将全站静态资源托管至全国边缘节点,实现用户就近访问,彻底解决跨运营商、跨地域访问延迟高的问题。
1. 核心缓存规则配置
针对不同资源类型配置精细化的缓存规则,确保边缘节点缓存命中率最大化,核心规则如下:
- 静态图片长缓存规则
- 匹配规则表达式(修正了分隔符错误,确保 100% 匹配图片后缀):
```plaintext
(lower(http.request.uri.path.extension) in {"jpg","jpeg","png","webp","avif","bmp","gif"})
``` -
缓存动作:符合缓存条件,开启强制缓存,忽略源站缓存策略;
-
边缘缓存过期时间:365 天,浏览器缓存过期时间:30 天;
-
缓存优化:开启查询字符串全忽略,避免随机参数导致缓存穿透,开启查询字符串排序,最大化缓存命中率。
- CSS/JS 静态资源缓存规则
- 匹配后缀:css、js、svg、ico、字体文件;
- 边缘缓存过期时间:30 天,强制缓存开启,忽略 URL 参数。
2. 缓存刷新与预热机制
-
资源更新后,先通过 CDN 控制台的 URL 刷新功能,清空边缘节点的旧缓存,避免用户访问到过期内容;
-
针对全站图片资源,通过 Shell 脚本生成全量图片 URL 清单,批量提交 CDN 预热,让全国边缘节点提前缓存图片资源,确保用户首次访问即可命中缓存(HIT),避免首次访问回源导致的延迟;
-
配套 curl 命令验证缓存命中与 WebP 优化效果,模拟正常浏览器请求头,检查 CDN 节点响应状态:
curl -I -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36" -H "Accept: image/webp,image/apng,*/*" "图片完整URL"验证标准:响应头返回
X-Site-Cache-Status: HIT(缓存命中)、
Content-Type: image/webp(WebP 优化生效)。
3. 回源与传输优化
- 回源协议改为 HTTP 回源,降低 HTTPS 握手开销,提升回源速度;
- 加速区域仅选择中国大陆,避免调度到境外节点导致的延迟飙升;
- 开启 HTTP/2、HTTP3(QUIC)传输协议,降低 TCP 握手开销,提升弱网环境下的访问稳定性;
- 关闭免费版性能瓶颈的实时图像转换功能,改为本地预先生成 WebP 图片,避免节点实时转码导致的加载延迟。
4.子站静态博客全CDN托管
为了彻底解决 “子站访问 / 资源加载时主站卡死” 的核心问题,我将子站(me.cloverdayssss.top)的静态博客资源完全托管到腾讯云 EdgeOne CDN,让所有子站访问请求直接由边缘节点响应,切断回源链路对主站服务器的资源抢占,从根源上保障主站稳定性。子站作为静态博客站点,初期直接部署在主站服务器下,访问高峰或资源加载时会抢占主站的 CPU、内存与带宽资源。全 CDN 托管的核心逻辑是:让腾讯云 EdgeOne 边缘节点成为子站的 “核心访问入口”,所有用户访问子站的请求均由边缘节点承接,主站服务器仅作为 “资源同步源”,不再处理任何用户侧的访问请求。
配置步骤
- 子站域名接入:将子站域名
me.cloverdayssss.top接入腾讯云 EdgeOne 控制台,选择「静态站点托管」模式,完成域名解析与 CDN 节点覆盖配置; - 资源全量同步:通过宝塔面板的文件同步工具,将子站所有静态资源(HTML 页面、图片、CSS/JS、博客附件等)批量同步至 EdgeOne 存储桶,确保全国边缘节点均缓存完整的子站资源副本;
- 精细化缓存规则:
- 针对子站静态页面 / 博客正文:设置 30 天边缘缓存,开启 “忽略 URL 随机参数”,避免因参数差异导致缓存穿透;
- 针对子站图片 / 附件:设置 365 天强制长缓存,优先返回 WebP 格式,进一步降低节点响应耗时;
- 回源策略:仅当边缘节点无缓存时触发回源,且回源链路走主站服务器与腾讯云内网,大幅降低回源延迟;
- 访问链路隔离:关闭主站服务器上子站的直接访问入口,将子站所有访问链接统一指向 EdgeOne 节点地址,确保用户请求完全由 CDN 承接。
优化效果
- 彻底解决主从站资源抢占:子站访问请求 100% 由边缘节点响应,主站服务器 CPU 使用率从子站访问时的 70%+ 降至 10% 以内,彻底告别 “子站访问→主站卡死” 的问题;
- 资源成本优化:借助腾讯云 EdgeOne 不限流量套餐,子站访问流量成本降为零,主站服务器带宽占用减少 60% 以上。
四、服务器与后端性能优化
1. PHP-FPM 性能调优
针对 2 核 2G 的服务器配置,优化 PHP-FPM 进程管理模式,避免进程数过多导致的资源抢占与负载飙升:
- 进程管理模式从动态改为静态
pm = static; - 最大子进程数
pm.max_children = 8,匹配服务器内存规格,避免进程溢出;
2. 服务器负载管控与故障排查
针对服务器 CPU、内存负载突然打满的问题,建立了完整的排查与处理流程:
- 通过
top、htop命令定位高资源占用进程,核心元凶为批量图片优化任务拉起的大量 PHP-FPM 子进程,通过终止任务、重启 PHP-FPM 服务快速恢复; -
通过
iotop命令排查磁盘 IO 瓶颈,排除 MySQL 慢查询、磁盘满导致的服务卡死问题; -
清理 swap 分区缓存,调整系统 swappiness 参数,减少内存交换导致的性能下降;
-
管控宝塔面板后台任务,批量图片优化、备份等 CPU 密集型任务改为分批执行,避免一次性全量运行导致的服务器负载飙升。
五、网站安全防护体系
通过 Solid Security Basic 插件搭建完整的 WordPress 安全防护体系,覆盖暴力破解防护、恶意请求拦截、漏洞防护三大核心维度:
- 登录安全防护:开启暴力破解拦截,同一 IP 多次登录失败自动封禁;开启双因素认证(2FA),强化管理员账号安全。
- 核心系统防护:禁用 WP 文件编辑器,防止黑客通过主题 / 插件编辑器篡改网站代码;开启文件完整性监控,WordPress 核心文件、主题插件文件被篡改时自动告警。
- 恶意请求拦截:开启恶意用户代理、恶意 IP 封禁,拦截扫描器、爬虫的自动化攻击请求;屏蔽恶意请求路径,阻断 SQL 注入、XSS 跨站脚本等常见攻击。
- 权限与备份管控:严格管控网站目录文件权限,关闭不必要的写入权限;定期自动备份网站数据库与核心文件,备份文件异地存储,避免网站被篡改后无法恢复。
六、SEO 全流程配置(Rank Math SEO 适中详细版)
结合个人技术博客的定位与双 CDN 加速环境,我以 Rank Math SEO 为核心完成了整套 SEO 配置,既保证搜索引擎能正常抓取、收录,又不与缓存、CDN 服务冲突,同时做好原创内容保护,整套流程兼顾实用性与长期收录效果。
1.插件初始化与搜索引擎归属验证
安装并激活 Rank Math SEO 后,先停用其他 SEO 类插件,避免元标签、站点地图重复冲突。
随后进入插件的搜索引擎验证模块,分别完成百度、Google、Bing三大站长平台的站点验证:
- 复制各平台提供的 HTML 验证标签,粘贴到 Rank Math 对应输入框;
- 保存后返回站长平台完成校验,让搜索引擎正式确认网站归属,为后续收录打下基础。
2. 站点核心规则规范化配置
(1)robots.txt 引导爬虫抓取
通过 Rank Math 动态生成 robots.txt,明确告诉搜索引擎哪些内容可抓取、哪些需屏蔽:
- 允许爬虫访问全站内容,屏蔽
/wp-admin/、/wp-includes/、/uncategorized/等无价值目录; - 屏蔽单篇文章冗余 feed 地址,避免重复内容抓取;
- 末尾添加站点地图地址,指引爬虫快速定位全站内容入口。
(2)站点地图(Sitemap)自动生成
开启 Rank Math 站点地图功能,只保留文章、页面、媒体文件三类核心地图,关闭分类、标签等低价值地图:
- 文章地图收录所有技术笔记,页面地图覆盖关于、项目等静态页,媒体地图用于图片搜索收录;
- 开启自动刷新,发布 / 更新文章后自动同步到站点地图,无需手动提交。
(3)统一标题与元描述模板
为全站内容配置标准化标题和描述格式,保证搜索结果展示统一、关键词清晰:
- 文章标题:
%title% | CloverDayssssの小站,突出文章主题与站点名称; - 元描述:自动截取文章摘要,并植入服务器优化、CDN 配置、WordPress 实操等核心关键词,提升搜索相关性。
3. 全局 SEO 基础优化
(1)图片 SEO 自动优化
为所有上传图片设置自动 ALT 文本规则,以「文件名 + 站点名」生成描述,无需手动逐张填写,大幅提升图片在搜索引擎的收录概率。
(2)规范链接(Canonical)自动处理
开启自动规范链接功能,对分页、相似内容页面自动标注原始链接,避免重复页面分散网站权重,保证搜索引擎只收录核心页面。
(3)404 页面与死链处理
自定义 404 页面文案与跳转引导,降低用户跳出率;同时开启 404 监控与 301 重定向,对修改固定链接、删除旧内容产生的死链及时跳转,避免影响收录评分。
4. 内容端 SEO 精细化设置
(1)单篇文章 SEO 优化
每篇技术笔记发布前,在 Rank Math 编辑面板设置 1–2 个核心关键词,将 SEO 评分优化至 80 分以上:
- 确保关键词出现在标题、首段、图片 ALT 文本中;
- 合理添加内链,关联站内相关文章,提升内容关联性与权重流转。
(2)文章目录优化
在 Rank Math 区块设置中,将目录标题改为「文章目录」,使用编号式列表样式,适配技术长文的层级结构,既提升阅读体验,也利于搜索引擎理解文章结构。
(3)RSS 版权与 SEO 兼容
修复 RSS 版权声明的标签嵌套与变量解析问题,最终配置为:
<br>本文来源:%POSTLINK% | CloverDayssssの小站
既为订阅内容添加原文来源、防止抄袭,又自动带 rel="nofollow",不流失网站权重,同时保证 RSS 源格式合规。
5. CDN 与 SEO 兼容适配
由于主站使用阿里云 ESA、子站 me.cloverdayssss.top 使用腾讯云 EdgeOne 双 CDN 加速,为避免爬虫抓取到缓存页面,专门做了兼容配置:
- 在两家 CDN 控制台开启搜索引擎爬虫直接回源,让百度、Google 等爬虫直接访问源站,获取最新 SEO 标签;
- 排除标题、描述、规范链接等 SEO 相关内容的缓存,确保爬虫拿到完整、准确的页面信息。
6. 收录推进与日常维护
配置完成后,将 sitemap_index.xml 站点地图提交至各大站长平台,加速新内容收录;
日常定期查看爬虫抓取统计,及时处理抓取异常、死链等问题,同时对旧文章进行关键词、链接更新,维持并提升搜索排名。
六、总结
1.核心性能指标:如下表格数据来源于谷歌网站性能测试网站。除了Cumulative Layout Shift(CLS)累积布局偏移这个评分很烂以外,其他性能已经达到了较好的水平,相比之前无缓存下需要网站加载两秒甚至五六秒有了质的飞跃。CLS评分不好很大部分来自我给首页加了相当多的额外CSS以实现一些不明的动画效果(,导致页面意外位移很多,在谷歌测评看来这显得网页极其不稳定。但是我感觉还好()
| 指标名 | 加载用时 |
|---|---|
| First Contentful Paint | 0.5 秒 |
| Largest Contentful Paint | 0.8秒 |
| Total Blocking Time | 90毫秒 |
| Cumulative Layout Shift | 0.703 |
| Speed Index | 1.3秒 |
以下两张图片来自于国内性能测试网站17ce,可以看出国内访问速度已经相当稳定且速度不慢。
2.服务器负载:日常 CPU 使用率从 30%-50% 降低至 10% 以内,内存使用率从 70% 降低至 30% 以内,并发承载能力提升 5 倍以上,无突发负载飙升问题。
3.访问体验:大部分情况下全国多地区、多运营商访问延迟从 200-500ms 降低至 50ms 以内,首页大图可能稍有卡顿、页面无布局跳动,用户访问体验相对提升。
4.安全防护:上线以来成功拦截 100+ 次暴力破解尝试、50+ 次恶意扫描与攻击请求(别扫了哥),无安全漏洞与网站被篡改情况发生。


