没有不值得去解决的问题,也没有不值得去学习的技术!

标签: W3 Total Cache

  • 一次阿里云 ECS CPU 接近 100% 的告警,最终从 Nginx 499、PHP-FPM max_children、Slowlog、W3 Total Cache Object Cache 和 Redis 一路排查到 Page Cache 冷缓存。实测发现服务器仅有 1 vCPU,而 /page/9/ 在 Cold MISS 时 TTFB 高达 10.6 秒,缓存命中后仅约 0.016 秒。最终没有提高 PHP-FPM 并发、关闭 Redis 或开启缓存预热,而是将 W3TC Page Cache 最长生命周期从 1 小时延长到 12 小时,以降低历史页面反复动态生成带来的 CPU 压力。

  • 在通过 EdgeOne 屏蔽异常 Sogou UA 流量、解决 WordPress 502 后,阿里云 ECS 仍然偶发 CPU 95%~100% 告警。进一步结合 PHP-FPM Slow Log、Nginx 请求日志和 W3 Total Cache 实测发现,大量带 Query String 的前台请求会导致 W3TC Disk: Enhanced 页面缓存无法复用,使请求重新进入 PHP-FPM,完整执行 Gutenberg、Polylang、Post Views Counter、Redis Object Cache 和数据库查询。正常 URL 第二次请求 TTFB 仅约 0.1 秒,而带参数 URL 每次仍需约 7~11 秒。最终决定不逐个封禁参数,也暂不升级服务器或修改 W3TC 内部逻辑,而是在 EdgeOne 与 Cloudflare CDN 层进行 Query String 缓存键和回源 URL 规范化,从根源减少动态参数造成的缓存穿透。

  • 收到包含 8 个中文文章 URL 的内容整改清单后,我没有直接删除 WordPress 文章,而是通过 MU Plugin 保留文章发布状态和系列标题,同时让指定中文页面真实返回 HTTP 404,并限制 REST API、RSS 与 Sitemap 继续输出正文。随后结合 W3 Total Cache、EdgeOne、Cloudflare 和 Polylang 完成缓存排查,最终仅下线清单中的中文文章,对应英文译文继续正常访问。

  • 在重新评估技术博客广告变现方案后,我停用了原有的 AdSense 手动广告位,仅保留全站基础代码,并正式启用自动广告。本文完整记录了旧广告缓存排查、源站与 EdgeOne 验证、自动广告格式配置、代码块兼容性测试,以及将页内广告最小间距从 200px 调整为 530px 的过程。最终采用较积极的广告密度,同时关闭意向驱动广告,保留页内广告、底部锚定广告和低间隔穿插广告,以测试自动广告能否在不插入代码块、不过度破坏阅读体验的前提下,提高技术博客的广告变现效率。

  • 一份用于同步 Polylang 中英文标签的批处理脚本,长期存在 WordPress 后台标签总数与脚本读取结果不一致的问题。此前两次排查分别修复了 Polylang 翻译关系缓存残留和动态分页导致的数据集变化,但问题仍会复发。最终通过对比 WP-CLI 与直接 PHP 执行环境,确认根因是 get_terms() 命中了持久化的旧 WP_Term_Query 查询缓存。脚本在源标签查询中加入 ‘cache_results’ => false 后,终于从旧的 8915 个标签恢复为正确的 8928 个。本文记录完整排查过程,并总结多语言数据维护脚本在缓存、运行上下文、统计验证和幂等性方面的实践经验。

  • 在 WordPress、Polylang、W3 Total Cache、Redis 与多域名架构下,后台通过 admin 子域名发布文章或清理缓存后,www 与 en 前台仍可能读取旧的页面缓存和对象缓存。本文通过对比源站、CDN、WP_Query 与 Redis 缓存结果,定位到 W3TC 按 Host 隔离对象缓存的问题,并利用缓存组版本机制,配合自定义 MU Plugin,实现语言首页、文章查询缓存及 WPCode 配置缓存的跨域同步失效,同时保留中英文站必要的缓存隔离。

  • 近期博客先后启用了英文子域名、独立后台域名、多 CDN、W3 Total Cache Page Cache 与 Redis Object Cache,并针对 Polylang、W3TC、TMS Extensions for Polylang、SlyTranslate 等兼容问题增加了多项调整。随着缓存失效、语言识别和插件升级风险逐渐显现,本文暂停继续增加补丁,对现有多域名架构进行一次阶段性复盘,明确哪些组件继续保留、哪些第三方插件源码修改需要撤销,以及后续应按照“改动盘点、恢复 W3TC 缓存闭环、实现多语言一键清理、最后接入 EdgeOne 与 Cloudflare 自动刷新”的顺序推进,使整套方案重新变得可控、可维护并具备复用价值。

  • 为解决 WordPress 后台经过 EdgeOne 时出现的核心升级 524 超时问题,本文将后台迁移至独立的 admin.shuijingwanwq.com 子域名,并通过 DNS Only 直连源站。整个方案包含独立 Nginx 虚拟主机、ECC HTTPS 证书、W3 Total Cache 多域名兼容补丁、WordPress MU 插件 URL 重写、前台后台入口统一跳转,以及 admin-ajax.php、admin-post.php 和文章密码提交接口的保留处理。迁移完成后,后台资源不再经过 EdgeOne 或 Cloudflare,www、en 及裸域的后台入口统一跳转至 admin,并成功通过新后台域名将 WordPress 升级到 7.0.1,未再出现 524、维护模式残留或 core_updater.lock。

  • 本文记录 WordPress 英文站从 /en/ 路径迁移到 en.shuijingwanwq.com 后,围绕 Yoast SEO 站点地图进行的完整调整与验证过程。内容包括薄内容标签页设置 noindex 并从 XML Sitemap 排除、W3 Total Cache 与 Cloudflare 多层缓存清理、重复标签导致的 Sitemap 误判排查,以及 Google、Bing、360、百度和搜狗等搜索平台中的资源添加与站点地图更新。最终,中英文站均统一使用 Yoast 生成的 sitemap_index.xml,英文子域的 Sitemap、robots、canonical 和搜索引擎提交状态均得到验证。

  • 本文记录 WordPress + Polylang 英文站从 /en/ 迁移至独立子域名后,对首页和分类归档页错误链接的完整排查与修复过程。问题涉及分类下拉列表仍使用中文主域名、站点标题和面包屑 Home 指向默认语言首页、导航与侧栏保留旧 /en/ 链接,以及 W3 Total Cache Object Cache 导致英文 Host 无法及时加载最新 WPCode 片段。最终通过前端事件补丁、区块模板链接调整、按 Host 刷新对象缓存及源站验证,恢复英文站分类、导航、面包屑和多域名链接的正确跳转。

👨‍💻 个人品牌

王世强|PHP / Go 技术顾问

15+ 年 Web 后端开发经验,专注于系统维护、架构优化、性能调优及 Linux 运维。

持续运营技术博客 10+ 年,累计发布 1000+ 篇原创技术文章。

为创业团队、中小企业及独立开发者提供长期技术支持与远程合作服务。

👉 关于我 & 合作

.env (14) 404 (13) add (16) AI 翻译 (28) Apache (13) Array (19) A Tour of Go (44) Cache (13) CentOS (23) ChatGPT (15) ChatGPT Plus (14) chrome (19) Cloudflare (28) Codex (14) composer (42) composer.json (22) composer install (13) composer update (14) console (16) Container (25) curl (15) delete (31) Docker (32) Dockerfile (15) EdgeOne (31) environment variable (19) error (24) file (15) filter (20) Git (27) GitHub (21) Gitlab (15) GLM-5.2 (26) Go (53) Google AdSense (22) Go 语言 (23) GraphQL (24) GraphQL API (14) Gutenberg (34) http (21) https (22) Interface (19) Jquery (13) json (24) Laravel (37) Laravel 6 (55) Laravel 9 (25) Lighthouse (17) Lighthouse 5 (14) Linux (21) Migrate (13) Module (17) MySQL (78) MySQL 5.7 (22) Nginx (63) normalize.css (28) OKX (15) OneinStack (21) PHP (67) php-fpm (18) php.ini (24) PHP 7.1.12 (22) PHP 7.4 (26) phpmyadmin (15) PhpStorm (24) Polylang (57) postman (18) Query (17) queue (16) Rancher (24) Redis (49) response (13) RESTful (27) RESTful API (23) Shell (13) Shopify (19) SlyTranslate (20) SQL (24) String (14) TortoiseGit (14) Twenty Twenty-Five (20) Ubuntu (40) update (20) VPN (17) W3 Total Cache (35) Windows 10 (46) WireGuard (27) WordPress (126) WordPress 多语言 (13) WPCode (23) Wstunnel (14) Yii (40) Yii 2 (70) Yii 2.0 (51) 多语言翻译 (24) 技术博客 (15) 故障排查 (14) 数据库迁移 (16) 浏览器 (14) 阿里云 (19)

2026 年 8 月
 12
3456789
10111213141516
17181920212223
24252627282930
31