一、优化前准备工作
1. 站点备份
操作前先完整备份站点根目录所有文件+MySQL数据库,可通过宝塔面板/ftp下载文件,数据库通过后台【系统工具-数据库备份】一键导出,避免优化操作失误导致站点异常。
2. 基准测速
先记录优化前的加载速度,使用两个工具获取准确基准值:1. 站长工具全站测速:https://tool.chinaz.com/speedtest/,输入域名获取全国多节点加载时长;2. 谷歌浏览器F12打开Lighthouse,勾选【性能】选项生成报告,记录核心指标作为对比基准。
二、核心优化实操步骤
1. 图片资源压缩与懒加载
图片占前台加载资源体积的60%以上,是优化核心:
- 所有上传前的图片先通过TinyPNG压缩:https://tinypng.com/,支持批量压缩,压缩后体积可减少50%-70%无肉眼可见失真
- 开启后台自动缩略图:登录后台【系统配置-附件设置】,开启【自动生成缩略图】,按站点需求填写尺寸:列表页缩略图填200200,详情页主图填8000(0代表高度自适应),系统会自动生成对应尺寸的小图,避免加载超大原图
- 配置图片懒加载:打开当前使用的模板目录(默认路径/template/当前模板名),找到footer.htm文件,在尾部插入以下代码:
```
替换为:
- 配置静态资源缓存:如果使用Nginx,在站点配置文件中添加以下规则:
```
location ~ \.(jpg|jpeg|png|gif|ico|css|js|woff2?|eot|ttf|svg)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
etag on;
}
```
如果使用Apache,在站点根目录的.htaccess文件中添加以下规则:
```
ExpiresActive On
ExpiresByType image/jpg "access plus 30 days"
ExpiresByType image/jpeg "access plus 30 days"
ExpiresByType image/gif "access plus 30 days"
ExpiresByType image/png "access plus 30 days"
ExpiresByType text/css "access plus 30 days"
ExpiresByType application/javascript "access plus 30 days"
```
宝塔面板用户可直接在【网站-对应站点-性能优化】中一键开启静态资源缓存,缓存时长设置为30天即可。
3. 模板与缓存优化
- 清理模板冗余代码:删除模板中未使用的JS、CSS引用,比如默认模板自带的在线客服、第三方分享、统计代码如果不用直接删除,把放在head中的非关键JS移到footer尾部,避免阻塞页面渲染
- 开启系统缓存:后台【系统配置-性能优化】中,开启模板缓存、数据缓存,全局缓存时长设置为3600秒,动态更新的模块比如最新文章、评论可单独设置缓存时长为1800秒,减少数据库查询次数
- 卸载未使用插件:后台【插件管理】中卸载不用的插件,比如会员系统、留言系统、投稿系统如果未上线使用直接卸载,减少多余的逻辑执行和数据库查询。
4. 数据库与压缩优化
- 数据库优化:后台【系统工具-数据库优化】中全选所有数据表,依次点击优化表、修复表,可减少数据表碎片占用,提升查询速度;定期在【系统工具-数据清理】中删除草稿、操作日志、无效留言等垃圾数据
- 开启Gzip/Brotli压缩:Nginx用户可在站点配置中添加以下规则:
```
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_comp_level 5;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml+rss application/javascript application/json;
```
宝塔面板用户可直接在【网站-对应站点-性能优化】中一键开启Gzip和Brotli压缩,压缩等级分别设置为5和4即可,开启后文本类资源体积可减少60%以上。
三、优化后验证与异常处理
- 效果验证:所有优化操作完成后,用优化前使用的站长工具测速、Lighthouse重新生成性能报告,对比加载时长和性能得分,正常情况下优化后首屏加载速度可提升50%-80%
- 异常处理:如果更新内容后前台不显示最新内容,登录后台【系统工具-清理缓存】,一键清理所有缓存即可;如果图片不显示,检查懒加载的class和属性是否配置正确,或者关闭懒加载恢复原始配置。
- 如果站点使用了CDN服务,需要在CDN控制台配置缓存规则:静态资源(图片、CSS、JS等)缓存时长设置为30天,HTML页面缓存时长设置为1小时,避免内容更新不及时。