🪐前言
做外贸独立站最容易掉进的陷阱之一:上线之后就不管了。半年后回来一看,WordPress 核心 3 个大版本没更新、插件红了 7 个、网站打不开了也没人知道、数据库膨胀到 500MB——这时候再想修,不如一开始就建好维护习惯。
日常维护不是复杂的技术活,它更像一个习惯。这篇文章给你一套可以直接照做的维护体系:什么时候更新、怎么更新不出事、怎么用免费工具监控网站死活、以及每个月的性能巡检到底查什么。每一项都配有可以直接执行的命令或操作路径。
一、WordPress 核心、主题与插件的更新策略
更新是所有维护动作里最核心的一项。不更新等于给黑客留后门,但瞎更新也可能把网站搞崩。你需要一个分级策略。
⏱️ 更新优先级分级
| 更新类型 | 响应时间 | 原因 | 更新方式 |
|---|---|---|---|
| WordPress 安全更新(小版本) | 24 小时内 | 已公开漏洞正在被利用 | 自动更新或手动快速执行 |
| WordPress 大版本更新(如 6.6→6.7) | 2 周内 | 需留时间观测社区反馈 | 手动,先看兼容性 |
| 安全插件更新(Wordfence 等) | 24 小时内 | 安全规则库需要最新 | 自动更新 |
| 功能插件更新(小版本) | 1 周内 | 修 bug 为主,风险低 | 手动确认后更新 |
| 功能插件更新(大版本) | 1-4 周 | 可能有破坏性变更 | 手动,先测后更 |
| 主题更新 | 2 周内 | 子主题用户风险较低 | 手动,先备份 |
| WooCommerce 更新 | 1-2 周 | 涉及支付,需格外谨慎 | 手动,必须在 staging 上先测 |
🔄 自动更新的正确配置
WordPress 5.5+ 支持对核心、插件、主题分类设置自动更新。建议的配置:
// 在 wp-config.php 中控制自动更新策略
// 开启小版本自动更新(默认已开启,确认一下)
define('WP_AUTO_UPDATE_CORE', 'minor');
// 如果希望完全手动控制核心更新:
// define('WP_AUTO_UPDATE_CORE', false);
// 插件和主题自动更新在后台设置:
// WordPress后台 → 插件 → 在需要自动更新的插件旁边点击"启用自动更新"
// 只对以下类型的插件开启自动更新:
// - 安全插件(Wordfence、Limit Login Attempts)
// - 知名插件(Yoast SEO、Akismet——大厂测试充分)
// - 备份插件(UpdraftPlus)
不要对所有插件开启自动更新。 尤其是以下类型的插件,必须手动更新:
- 付费插件(更新可能导致授权失效需要重新激活)
- 自定义开发或深度修改过的插件
- WooCommerce 相关插件(支付网关、运费计算)
- 页面构建器(Elementor 的大版本更新曾多次出兼容问题)
📧 更新通知配置
不要等手动检查才发现有更新。开启邮件通知:
// WordPress后台 → 设置 → 常规 → 管理员电子邮件地址
// 确认邮箱是正确的,WordPress 会自动发送更新通知到该邮箱
// 也可以通过代码控制通知频率:
// 安装 Background Update Tester 插件查看当前更新配置是否正常
每日检查一次的节奏太被动。更好的做法是安装 WP Health 插件,在后台仪表盘集中显示所有待更新的项目。或者在手机日历上设置一个每周五下午 3 点的 15 分钟"更新检查"提醒。

二、更新前必做:备份 SOP
更新翻车最常见的原因是:没备份。第二大原因是:备份了但还原不了。这一节给你一套验证过的备份流程。
📦 更新前备份标准操作流程
第一步:执行备份。
推荐用 UpdraftPlus 免费版,操作路径:
WordPress后台 → 设置 → UpdraftPlus Backups → 点击"立即备份"
备份内容勾选:
✓ 数据库
✓ 插件
✓ 主题
✓ Uploads
✓ 其他目录(Others)
备份到远程存储(推荐 Google Drive 或 Dropbox,免费空间够用)
如果你有服务器 SSH 权限,再用命令行做一次全量备份作为双保险:
# 全站文件打包
tar -czf /root/preupdate_$(date +%Y%m%d_%H%M).tar.gz \
/www/wwwroot/你的网站目录/
# 数据库单独导出
mysqldump -u 数据库用户名 -p 数据库名 \
--single-transaction --quick --lock-tables=false \
> /root/preupdate_db_$(date +%Y%m%d_%H%M).sql
--single-transaction 保证导出时数据库不受写入干扰,--quick 防止大表导出时内存溢出。
第二步:进入维护模式。
更新期间不要让访客看到半成品页面或者报错:
# 启用 WordPress 内置维护模式
wp maintenance-mode activate
# 访客会看到 "Briefly unavailable for scheduled maintenance"
# 更新完成后关闭
wp maintenance-mode deactivate
如果没有 WP CLI,在 wp-content/ 下创建一个 .maintenance 文件也能触发维护模式(WordPress 会自动检测):
<?php
// wp-content/maintenance.php(可选,自定义维护页面)
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Retry-After: 300'); // 告诉搜索引擎 5 分钟后再来
?>
<!DOCTYPE html>
<html>
<head><title>网站维护中</title></head>
<body>
<h1>我们正在进行例行维护</h1>
<p>预计 15 分钟内恢复,请稍后刷新。</p>
</body>
</html>
第三步:执行更新。
按顺序更新——先核心、再主题、最后插件:
# 使用 WP CLI 按顺序更新(推荐,可以一个个来)
wp core update # 先更新 WordPress 核心
wp theme update 你的主题名称 # 更新主题
wp plugin update 插件名1 # 逐个更新插件
wp plugin update 插件名2
# 每更新完一个关键插件,刷新前台和后台页面确认正常
第四步:更新后验证。
更新完成后,在关闭维护模式之前快速过一遍这个检查列表:
- [ ] 首页正常加载,无白屏或报错
- [ ] 后台正常登录,无 PHP Fatal Error
- [ ] 核心业务页面:产品页、联系页、关于页各点 3 个
- [ ] 核心业务功能:提交一次联系表单 / 测试一次下单流程
- [ ] 移动端:手机打开首页,确认布局无错乱
- [ ] 速度:用 Pagespeed Insights 或 GTmetrix 跑一次,对比之前的分数
如果更新失败怎么办:
# 回滚方案1:用 UpdraftPlus 一键还原(最省事)
# 进入 UpdraftPlus → 现有备份 → 找到刚才的备份 → 还原
# 回滚方案2:手动还原
# 如果你做了 tar.gz 全量备份:
tar -xzf /root/preupdate_*.tar.gz -C /www/wwwroot/
# 再导入数据库
mysql -u 用户名 -p 数据库名 < /root/preupdate_db_*.sql
# 回滚方案3:回滚单个插件
wp plugin install 插件名 --version=旧版本号 --force
💡 如果你有 staging 环境(SiteGround、Cloudways 都提供一键 staging),任何大版本更新先在 staging 上跑一次。 等于用 5 分钟换零风险。但如果你的站很小(每月流量不到 5000),专门维护一个 staging 站确实不值得——做完备份大胆更新就行,出问题回滚。

三、Uptime 监控配置:用 UptimeRobot 免费守护网站
Uptime 监控就是一个探针,每隔几分钟去访问一次你的网站,访问不通就立刻通知你。最尴尬的事不是网站挂了——而是挂了三天你才发现,结果客户在你不知情的情况下已经发了好几封投诉邮件。
📡 UptimeRobot 配置(免费版)
UptimeRobot 免费版提供 5 个监控项、5 分钟检查间隔、多个通知渠道,对一个网站来说完全够用。
注册和基础监控配置:
- 访问 uptimerobot.com 注册免费账号
- 登录后点击
+ Add New Monitor - 监控类型:选择 HTTP(s)
- Friendly Name:填网站名称,如
ABC外贸官网 - URL:填
https://你的域名.com - Monitoring Interval:选 5 分钟(免费版最快)
- Monitor Timeout:保持默认 30 秒
- 点击 Create Monitor
配置多通道通知:
单一的邮件通知不够——你可能在睡觉、开会、开车。至少配置两个通知渠道:
- 邮件(免费):基本通道
- Telegram / Pushover / Slack(免费):手机推送,10 秒内就能看到
- 短信(付费,$5/月):只在一切都不通时才需要,一般不需要
配置路径:UptimeRobot → My Settings → Alert Contacts → Add Alert Contact
然后在监控项的 Edit → Alert Contacts 中勾选刚添加的联系方式。
状态页的免费用法:
UptimeRobot 免费版支持一个公开状态页。你可以公开告诉用户"我们的服务状态是透明的":
UptimeRobot → Status Pages → Add Status Page
会生成一个类似 status.uptimerobot.com/xxxx 的链接
把它挂在你的网站页脚,客户随时可以查
🔍 监控的内容不只是"是否在线"
免费的 UptimeRobot HTTP(s) 监控只检查 HTTP 状态码。200 = 在线,其他 = 告警。但网站返回 200 不代表一切正常——你还需要加几个高级检查项。
关键词监控(检查页面内容是否正常):
在 UptimeRobot 监控项设置中,选择监控类型 "Keyword":
- URL:填一个关键页面
- Keyword:填一段只有正常运行时才会出现的文字,如页脚的公司版权信息 "2024 YourCompany All Rights Reserved"
- 如果这个关键词从页面中消失(比如页面被黑、数据库挂了、主题出错),UptimeRobot 会触发告警
SSL 证书监控(免费):
+ Add New Monitor → 选择 SSL 类型
输入域名,UptimeRobot 会在证书到期前 30/14/7/3 天分别发送提醒
SSL 过期是导致网站"自残"的第一大原因——不用被攻击,自己忘了续期就挂了。Let's Encrypt 证书只有 90 天有效期,虽然有自动续期脚本,但有备无患。
多地点监控:
如果免费版只开了一个监控,监控服务器在美国。如果你的目标市场在欧洲或东南亚,同时监控同一站点的不同区域访问情况需要付费版($8/月起)。对于起步阶段,一个监控点 + 你自己手机打开网站测试一下就够。

四、月度性能巡检清单
每月花 20 分钟做一次系统性的性能检查,比一年花一天做大扫除有效得多。下面是经过实战验证的月度检查清单。
📊 巡检一:数据库健康
-- 1. 检查数据库总大小和各表大小
SELECT
table_name AS '表名',
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS '大小(MB)'
FROM information_schema.TABLES
WHERE table_schema = '你的数据库名'
ORDER BY (data_length + index_length) DESC;
-- 2. 检查自动加载的 option 数量和大小(超过 1MB 要排查)
SELECT
COUNT(*) AS '自动加载选项数',
ROUND(SUM(LENGTH(option_value)) / 1024 / 1024, 2) AS '总大小(MB)'
FROM wp_options
WHERE autoload = 'yes';
-- 如果总数 > 500 或总大小 > 1MB,需要排查是否有插件遗留下的垃圾数据
-- 3. 清理过期临时数据
DELETE FROM wp_options WHERE option_name LIKE '%_transient_%' AND option_value < UNIX_TIMESTAMP();
DELETE FROM wp_options WHERE option_name LIKE '%_transient_timeout_%' AND option_value < UNIX_TIMESTAMP();
-- 4. 清理文章修订版本(每篇文章默认无限保存修订,会撑爆数据库)
DELETE FROM wp_posts WHERE post_type = 'revision';
-- 5. 清理垃圾评论和垃圾元数据
DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments);
如果你不想每次写 SQL,安装 WP-Optimize 免费插件,一键执行以上所有清理。
📊 巡检二:缓存命中率
# 如果你用 Redis 对象缓存
redis-cli INFO stats | grep keyspace_hits
redis-cli INFO stats | grep keyspace_misses
# 命中率 = hits / (hits + misses),应该 > 90%
# 如果你用 LiteSpeed Cache / WP Rocket
# 在插件设置页面查看缓存命中率统计
如果缓存命中率持续低于 80%,检查:
- 缓存过期时间是否设置得太短(建议 HTML 缓存至少 2 小时)
- 是否有被排除在缓存之外的动态页面(购物车、结账页正常除外)
- Redis 内存是否满了导致淘汰(增加 maxmemory 或排查是否有 key 异常膨胀)
📊 巡检三:页面速度
用以下三个工具分别跑一次首页和核心产品页:
| 工具 | 关注指标 | 基准值 |
|---|---|---|
| PageSpeed Insights | 性能分数(移动端) | 移动端 ≥ 70,桌面端 ≥ 90 |
| GTmetrix | LCP(最大内容绘制) | < 2.5s |
| Pingdom | 总加载时间 | 外贸站 < 3s(服务器在海外) |
如果 PageSpeed Insights 移动端低于 50,本月重点优化:图片压缩、移除未使用的 CSS/JS、减少第三方脚本。
📊 巡检四:插件和主题审计
# 用 WP CLI 查看所有插件的状态
wp plugin list --status=active --format=table
# 逐一检查:
# 1. 是否有插件超过 3 个月未更新?(查看 WordPress.org 插件的 "Last updated" 日期)
# 2. 是否有插件不与当前 WordPress 版本兼容?(查看插件的 "Tested up to" 版本号)
# 3. 是否有停用但未删除的插件?(停用的插件文件仍然在服务器上,是安全隐患)
# 4. 是否有多个插件在做同一件事?(如同时装了 3 个 SEO 插件)
# 清理建议:
wp plugin delete 不再需要的插件名 # 删除停用且不需要的插件
wp theme delete 不再需要的主题名 # 删除未激活且不需要的主题
保留的插件原则:激活的插件 ≤ 15 个(WooCommerce 站点允许到 20 个)。每个多余的插件都是潜在的安全漏洞、兼容性冲突点和性能负担。
📊 巡检五:安全快检
# 1. 核心文件完整性
wp core verify-checksums
# 2. 管理员用户列表
wp user list --role=administrator --fields=ID,user_login,user_email
# 3. 检查上传目录是否有 PHP
find /www/wwwroot/你的网站目录/wp-content/uploads/ -name "*.php" 2>/dev/null
# 4. 运行 Wordfence 扫描(如果已安装)
# WordPress后台 → Wordfence → Scan → Start New Scan
📊 巡检六:磁盘与流量
# SSH 服务器磁盘使用
df -h
# 如果根分区使用率 > 80%,清理日志或升级磁盘
# 最近 30 天的访问量统计(Nginx)
grep "$(date -d '30 days ago' +%d/%b/%Y)" /var/log/nginx/wordpress_access.log | wc -l
# 与上月对比,如果明显下降,检查 SEO / 搜索引擎收录 / 是否被惩罚

五、维护日历:把一切塞进日常节奏
知道该做什么不难,难的是记得做。以下是推荐的维护日历。
📅 维护节奏
| 频率 | 动作 | 耗时 | 工具 |
|---|---|---|---|
| 每日 | 看一眼 UptimeRobot 状态 | 30 秒 | UptimeRobot App |
| 每周 | 检查更新通知,决定是否更新 | 5 分钟 | WordPress 后台 |
| 每周 | 看一眼 Akismet 垃圾评论拦截量 | 1 分钟 | Akismet Stats |
| 每月 | 执行完整性能巡检(第四节) | 20 分钟 | 本文清单 |
| 每月 | 确认备份系统正常(检查最近一周的备份文件是否完整) | 5 分钟 | UpdraftPlus |
| 每季度 | 执行完整安全检查单(#45 文章第四节) | 30 分钟 | #45 文章清单 |
| 每季度 | 检查 SSL 证书到期时间 | 1 分钟 | UptimeRobot SSL 监控 |
| 每年 | 审计域名续费、主机续费、付费插件续费 | 15 分钟 | 各服务商后台 |
📅 在你的日历中设置提醒
打开你的日历 App(Google Calendar / Outlook / 飞书日历),创建以下循环事件:
事件名:WordPress 更新检查
时间:每周五 16:00-16:15
重复:每周
备注:检查更新、执行更新前备份
事件名:月度性能巡检
时间:每月 1 日 10:00-10:30
重复:每月
备注:按 #46 第四节清单逐项执行
事件名:季度安全检查
时间:每 3 个月第一个工作日
重复:每 3 个月
备注:按 #45 第四节清单逐项执行
日历提醒 + 手机通知,双重保障你不会忘。

总结
网站维护不是火箭科学——它是一组每周不到 30 分钟的小习惯。难的不是技术,而是坚持。但一个被维护的网站和一个被遗弃的网站,三年后的差距是天壤之别:前者稳定、安全、性能优良,后者满是漏洞、速度缓慢、随时可能崩溃。
维护体系部署检查单:
- [ ] 更新策略已明确:小版本自动、大版本手动先备份先测
- [ ] 安全插件(Wordfence 等)开启了自动更新
- [ ] 更新前备份 SOP 已知晓并有执行工具(UpdraftPlus + 命令行双保险)
- [ ] UptimeRobot 已配置 HTTP 监控 + SSL 到期监控 + 关键词监控,至少 2 个通知渠道
- [ ] 数据库清理工具已到位(WP-Optimize 或熟悉关键词 SQL)
- [ ] 冗余的停用插件/主题已删除
- [ ] 每月 1 日手机日历上已有"月度性能巡检"提醒
- [ ] UpdraftPlus 远程备份存储(Google Drive/Dropbox)已连接并正常运行
- [ ] 保留的激活插件数 ≤ 15 个(WooCommerce ≤ 20 个)
遇到维护问题时的求助路径:
- WordPress 官方支持论坛(中文区也有,英文区响应更快)
- UpdraftPlus 备份/还原文档
- UptimeRobot 帮助中心
- WP-Optimize 使用指南
- 你的主机商客服工单(SiteGround / Cloudways 的客服通常能快速判断服务器层面的问题)



备份还原那段太真实了,翻车过。
UptimeRobot 我也在用,免费够了。
插件别全自动更新,真的会炸。
自动更新我现在都只留安全插件,别的真不敢碰。
尤其带支付的,更新一次心都悬着。
先把监控和备份拉满,后面才敢折腾更新。
这个清单适合贴墙上。
SSL 过期那种尴尬,我踩过一次。
证书一过期,客户一进来就报红,我当场头大。
这种失误最烦,明明就差续一下。
每周五更新检查,感觉我坚持不了😭
想问下 WooCommerce 小版本也一定要 staging 吗?
数据库 500MB 那里扎心了,之前客户站就是修订版本堆爆,清起来半天。
修订版本真能把库撑炸,之前我删完都轻松一截。
那种清理半天还越清越乱,太折腾了。
WP-Optimize 清理 transient 会不会影响缓存插件?有点不敢乱点。
只留 15 个插件有点狠吧,外贸站随便表单、SEO、缓存、安全就一堆了。