简记建站以来对网站各方面的优化

发布于 2026-03-06  244 次阅读


简记建站以来对网站各方面的优化

核心优化工具 / 插件清单

  • 访问性能优化: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 会完成:

  1. 按正常流程执行 WordPress PHP 渲染、数据库查询,生成完整的页面 HTML 静态内容;
  2. 按照站点的固定链接,在服务器磁盘上生成与请求路径一一对应的静态 HTML 缓存文件,同时自动区分桌面端 / 移动端、HTTP/HTTPS、多语言等不同场景,生成独立的缓存副本;
  3. 配套生成缓存元数据,用于管控过期时间、清理规则、缓存匹配逻辑。

再次访问时:

  • 若缓存命中: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 格式,不兼容的浏览器自动回退到原格式图片:

  1. 在 server 块前添加 WebP 支持判断:
    map http_acceptwebp_suffix {
       default "";
       "~*webp" ".webp";
    }
    
  2. 在静态资源配置块中添加 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;
    }
    
  3. 配套 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. 核心缓存规则配置

针对不同资源类型配置精细化的缓存规则,确保边缘节点缓存命中率最大化,核心规则如下:

  1. 静态图片长缓存规则
  • 匹配规则表达式(修正了分隔符错误,确保 100% 匹配图片后缀):

    ```plaintext
    (lower(http.request.uri.path.extension) in {"jpg","jpeg","png","webp","avif","bmp","gif"})
    ```

  • 缓存动作:符合缓存条件,开启强制缓存,忽略源站缓存策略;

  • 边缘缓存过期时间:365 天,浏览器缓存过期时间:30 天;

  • 缓存优化:开启查询字符串全忽略,避免随机参数导致缓存穿透,开启查询字符串排序,最大化缓存命中率。

  1. 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 边缘节点成为子站的 “核心访问入口”,所有用户访问子站的请求均由边缘节点承接,主站服务器仅作为 “资源同步源”,不再处理任何用户侧的访问请求。

配置步骤

  1. 子站域名接入:将子站域名 me.cloverdayssss.top 接入腾讯云 EdgeOne 控制台,选择「静态站点托管」模式,完成域名解析与 CDN 节点覆盖配置;
  2. 资源全量同步:通过宝塔面板的文件同步工具,将子站所有静态资源(HTML 页面、图片、CSS/JS、博客附件等)批量同步至 EdgeOne 存储桶,确保全国边缘节点均缓存完整的子站资源副本;
  3. 精细化缓存规则:
    • 针对子站静态页面 / 博客正文:设置 30 天边缘缓存,开启 “忽略 URL 随机参数”,避免因参数差异导致缓存穿透;
    • 针对子站图片 / 附件:设置 365 天强制长缓存,优先返回 WebP 格式,进一步降低节点响应耗时;
    • 回源策略:仅当边缘节点无缓存时触发回源,且回源链路走主站服务器与腾讯云内网,大幅降低回源延迟;
  4. 访问链路隔离:关闭主站服务器上子站的直接访问入口,将子站所有访问链接统一指向 EdgeOne 节点地址,确保用户请求完全由 CDN 承接。

优化效果

  • 彻底解决主从站资源抢占:子站访问请求 100% 由边缘节点响应,主站服务器 CPU 使用率从子站访问时的 70%+ 降至 10% 以内,彻底告别 “子站访问→主站卡死” 的问题;
  • 资源成本优化:借助腾讯云 EdgeOne 不限流量套餐,子站访问流量成本降为零,主站服务器带宽占用减少 60% 以上。

四、服务器与后端性能优化
1. PHP-FPM 性能调优

针对 2 核 2G 的服务器配置,优化 PHP-FPM 进程管理模式,避免进程数过多导致的资源抢占与负载飙升:

  • 进程管理模式从动态改为静态pm = static
  • 最大子进程数pm.max_children = 8,匹配服务器内存规格,避免进程溢出;
2. 服务器负载管控与故障排查

针对服务器 CPU、内存负载突然打满的问题,建立了完整的排查与处理流程:

  1. 通过tophtop命令定位高资源占用进程,核心元凶为批量图片优化任务拉起的大量 PHP-FPM 子进程,通过终止任务、重启 PHP-FPM 服务快速恢复;

  2. 通过iotop命令排查磁盘 IO 瓶颈,排除 MySQL 慢查询、磁盘满导致的服务卡死问题;

  3. 清理 swap 分区缓存,调整系统 swappiness 参数,减少内存交换导致的性能下降;

  4. 管控宝塔面板后台任务,批量图片优化、备份等 CPU 密集型任务改为分批执行,避免一次性全量运行导致的服务器负载飙升。


五、网站安全防护体系

通过 Solid Security Basic 插件搭建完整的 WordPress 安全防护体系,覆盖暴力破解防护、恶意请求拦截、漏洞防护三大核心维度:

  1. 登录安全防护:开启暴力破解拦截,同一 IP 多次登录失败自动封禁;开启双因素认证(2FA),强化管理员账号安全。
  2. 核心系统防护:禁用 WP 文件编辑器,防止黑客通过主题 / 插件编辑器篡改网站代码;开启文件完整性监控,WordPress 核心文件、主题插件文件被篡改时自动告警。
  3. 恶意请求拦截:开启恶意用户代理、恶意 IP 封禁,拦截扫描器、爬虫的自动化攻击请求;屏蔽恶意请求路径,阻断 SQL 注入、XSS 跨站脚本等常见攻击。
  4. 权限与备份管控:严格管控网站目录文件权限,关闭不必要的写入权限;定期自动备份网站数据库与核心文件,备份文件异地存储,避免网站被篡改后无法恢复。
六、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+ 次恶意扫描与攻击请求(别扫了哥),无安全漏洞与网站被篡改情况发生。


"Hasta Ia Victoria Siempre"