WordPress 网站接入 Cloudflare 后,最容易让人紧张的不是速度变慢,而是突然出现 error 1016、error code 521、cloudflare error 1000、cloudflare 403、cloudflare ssl handshake failed 或 cloudflare error 500。这些错误看起来都在 Cloudflare 页面上出现,但真正原因可能在 DNS、源站端口、SSL 证书、防火墙,也可能是 WordPress 插件或 PHP 报错。
很多站长会先清缓存、暂停 Cloudflare、关闭全部插件。这样有机会短暂恢复,却容易把问题扩大:SSL 模式被改乱、WAF 被长期关闭、真实源站 IP 暴露,最后仍然不知道是哪一步修好的。本文按“用户访问链路”来排查:先看域名解析,再看 Cloudflare 能不能连到源站,然后看 SSL、403 拦截和 WordPress 500 日志。

先用 3 分钟定位:错误发生在哪一层
Cloudflare 的作用像一层反向代理。访客先到 Cloudflare,再由 Cloudflare 回源到你的服务器。因此排障时不要只盯着错误代码,而要问四个问题:域名是否能解析到正确源站?Cloudflare 是否能连接 80/443?HTTPS 回源证书是否可用?请求是否被 WAF、Bot 规则或源站安全插件拦截?
- 记录错误页上的 Ray ID、访问路径、发生时间和访客地区。后面查 Cloudflare Security Events 时会用到。
- 用手机 4G、无痕窗口、不同地区测试一次,排除本地 DNS 或浏览器缓存。
- 每次只改一个设置。例如只改 DNS,不同时改 SSL 和插件;只放行 Cloudflare IP,不同时关闭全部安全规则。
- 如果是生产站,先保存当前 DNS、SSL/TLS、WAF 规则截图,方便回滚。
常见错误代码对照:先查哪里最省时间
| 错误 | 典型症状 | 优先检查 |
|---|---|---|
| error 1016 | Origin DNS error,Cloudflare 找不到源站 | DNS A/CNAME/AAAA 记录、CNAME 目标 |
| error code 521 | Web server is down,源站拒绝连接 | Web 服务、80/443、防火墙、Cloudflare IP 白名单 |
| cloudflare error 1000 | DNS 指向被禁止的地址或循环 | 真实源站 IP、内网地址、CNAME 回环 |
| cloudflare 403 | 访问被拒绝,后台/接口/登录页常见 | Cloudflare WAF、Bot、源站安全插件 |
| cloudflare ssl handshake failed | 525/526 或握手失败 | SSL 模式、源站证书、证书链、TLS |
| cloudflare error 500 | 页面返回内部错误 | PHP、插件主题、数据库、伪静态、服务器日志 |
error 1016:DNS 找不到源站
1016 的本质是 Cloudflare 无法把某个主机名解析到可回源的地址。它常发生在迁站、删除旧记录、把 www 改成 CNAME、使用 SaaS 平台绑定域名,或误删子域名解析之后。用户看到的是 Cloudflare 错误页,但 WordPress 后台、Elementor、WooCommerce 本身通常不是第一嫌疑。
具体解决步骤
- 打开 Cloudflare 后台 DNS,检查 @、www、shop、blog、api 等正在访问的主机名是否存在记录。
- 根域名一般用 A/AAAA 指向主机商提供的真实服务器 IP;www 可 CNAME 到根域名,或按托管平台要求 CNAME 到指定 hostname。
- 不要把浏览器或 ping 看到的 Cloudflare 边缘 IP 填回 A 记录,这不是你的源站 IP。
- 如果 CNAME 到第三方平台,复制目标域名用 dig/nslookup 检查公网是否能解析。只能内网解析的地址,Cloudflare 无法回源。
- 删除无效 AAAA。服务器没有 IPv6 却保留错误 AAAA,可能导致部分地区或部分路径异常。
如果站点只出现 1016,可以看站内的 Cloudflare Error 1016 怎么解决?DNS Origin Error 排查教程,里面有更细的 DNS 排查思路。
error code 521:源站拒绝 Cloudflare 连接
521 常被理解成“服务器宕机”,但真实情况更细:Nginx/Apache/OpenLiteSpeed 没运行,站点没有监听 443,云安全组没放行端口,宝塔/CSF/Fail2ban/主机商 WAF 把 Cloudflare IP 当异常流量拦截,都会触发 521。

具体解决步骤
- 临时用 hosts 指向真实源站 IP,或短时间灰云测试,确认源站是否能直接打开。生产站操作前要记录当前设置。
- 登录服务器执行 systemctl status nginx、apache2 或 lsws,确认 Web 服务运行,配置文件没有语法错误。
- 检查云厂商安全组、服务器防火墙、宝塔防火墙、ufw/iptables/CSF,确保 80 和 443 对 Cloudflare 可达。
- 把 Cloudflare 官方 IP 段加入白名单。使用安全插件或主机商 WAF 的站点尤其要做这一步。
- 看 access log:如果完全没有 Cloudflare 请求,多半被网络或防火墙拦截;如果有请求但返回 5xx,再继续查 PHP 和程序日志。
同时遇到 502、503、504 的站点,可继续读 Cloudflare 500/502/503 真相:一文理清本质区别。
cloudflare error 1000:DNS 指向了不允许代理的地址
1000 与 1016 都和 DNS 有关,但方向不同。1016 是“找不到可用源站”,1000 往往是“你填的地址不允许这样代理”。常见错误包括 A 记录指向 Cloudflare 自己的 IP、127.0.0.1、10.x/192.168.x 内网地址,或者 @ 与 www 互相 CNAME 形成循环。
- 逐条核对 A/AAAA,只保留真实公网源站 IP。
- 删除迁站遗留的旧 IP、测试记录和重复记录,避免 Cloudflare 随机回源到错误机器。
- 如果平台要求 CNAME,不要把 CNAME 解析出来的结果手工改成 A 记录。
- 避免根域名与 www 相互指向。常见配置是 @ 指向源站,www CNAME 到 @,或完全按平台文档配置。
cloudflare 403:先分清是 Cloudflare 拦截,还是源站拦截
403 的麻烦在于来源很多。Cloudflare WAF、Bot Fight Mode、Rate Limiting、IP Access Rules 会返回 403;源站的 Nginx deny、Apache 规则、Wordfence、iThemes Security、All In One WP Security、主机商防火墙也会返回 403。不要一看到 403 就全站关闭 WAF。

具体解决步骤
- 用 Ray ID、访客 IP、访问路径和时间,到 Cloudflare → Security → Events 查询是否命中规则。
- 如果命中 WAF,对 wp-admin、wp-login.php、wp-json、支付回调、会员登录等必要路径做精确 Skip,而不是直接关掉全站防护。
- 如果 Cloudflare 没有安全事件,查看源站 access/error log 和安全插件日志,确认是否由 WordPress 插件或服务器规则拦截。
- 对支付网关、监控服务、管理员固定 IP 和必要 API 做白名单,但不要把全部国家、全部请求都放行。
使用 Wordfence 的站点,可以结合 Wordfence Security 插件安装配置指南 检查安全插件与 Cloudflare 规则是否重复拦截。
cloudflare ssl handshake failed:源站证书也要正确
SSL 握手失败通常对应 525 或 526。很多人只检查浏览器小锁,却忽略 Cloudflare 到源站之间也要建立 HTTPS。特别是在 Full (strict) 模式下,源站证书必须有效、未过期、域名匹配、证书链完整。
- 优先使用 Full (strict),但先确认源站证书覆盖 example.com 和 www.example.com。
- 如果使用 Cloudflare Origin Certificate,要把证书和私钥安装到服务器虚拟主机里,不是只在 Cloudflare 后台生成。
- 检查源站 TLS 版本、SNI 和证书链。老系统、旧 OpenSSL 或错误中间证书都可能握手失败。
- 确认 DNS 已经指向新服务器,避免 Cloudflare 回源到旧机器上的过期证书。
SSL 还可能引发循环跳转,可参考 Flexible SSL 模式的致命误区 和 Cloudflare SSL 设置引发 TOO_MANY_REDIRECTS 的解决方案。
cloudflare error 500:回到 WordPress、PHP 和服务器日志
500 通常不是 Cloudflare 自己故障,而是源站返回内部错误。WordPress 站点常见原因包括插件更新后的 fatal error、主题 functions.php 冲突、PHP 版本不兼容、内存不足、数据库连接异常、.htaccess 损坏、Nginx rewrite 写错、文件权限异常。
- 先灰云或 hosts 直连源站。绕过 Cloudflare 仍然 500,基本就是源站问题。
- 查看 PHP error_log、wp-content/debug.log、Nginx/Apache error log,重点搜索 fatal error、memory exhausted、permission denied、database error。
- 回滚最近更新的插件、主题、PHP 版本和缓存配置。Elementor、WooCommerce、缓存、安全、支付插件要优先排查。
- 检查 memory_limit、max_execution_time、max_input_vars、数据库连接和磁盘空间。必要时临时开启 WP_DEBUG_LOG,修复后再关闭前台 debug 输出。
- 重新保存固定链接,或检查 .htaccess / Nginx rewrite 是否有语法错误。
一套更稳的恢复顺序
- DNS:确认记录存在、没有重复、没有错误 AAAA、没有 CNAME 回环,且指向真实源站。
- 回源:确认 Web 服务运行、80/443 开放、Cloudflare IP 没被拦。
- SSL:确认 SSL/TLS 模式、源站证书、证书链、TLS 版本和回源 IP。
- 安全:查询 Security Events,再检查源站 WAF 和 WordPress 安全插件。
- WordPress:看 debug.log、PHP 日志、插件主题冲突、数据库、缓存和伪静态。
总结
处理 Cloudflare 常见错误代码,最重要的是不要把所有问题都归咎于 Cloudflare。error 1016 先查 DNS;error code 521 查源站连接和防火墙;cloudflare error 1000 修正禁止地址或 CNAME 循环;cloudflare 403 分清 Cloudflare 与源站拦截;cloudflare ssl handshake failed 检查源站证书和 TLS;cloudflare error 500 回到 WordPress、PHP 与服务器日志。按链路一层层排查,比盲目清缓存、停插件、改 SSL 模式更安全。


















3月11日 13:490
现在肯定还是做SEO的,只是玩法变了。 以前靠堆内容、堆关键词就能有流量,现在更看重 内容质量 + 品牌信任 + 用户体验。 另外单靠SEO其实越来越难,很多做得好的基本都是 SEO + 社媒 + 内容营销 + 私域转化 一起做。 SEO本质还是一个长期获客渠道,但不能再当成唯一渠道了。嘻嘻在干活
3月11日 10:540
正常,收录只代表 Google 看到了页面,不代表马上给排名,“已收录但没排名”通常是因为: 关键词竞争大、页面权重低、内容不够强、页面还比较新。 先继续优化长尾关键词、内容质量和内链,通常需要一点时间,排名会慢慢出来Amelia Foster 3月6日 16:200
有截图吗子非鱼也安知鱼之乐 3月6日 09:230
别先堆优化插件,先定位瓶颈: 用 Query Monitor 看慢 SQL、慢 Hook。 暂停全部插件做对比,再逐个开启。 检查 autoload 过大(options 表)。 检查数据库索引与大表查询。 服务器 TTFB 高就先处理主机/数据库性能。嘻嘻在干活
3月3日 16:470
你好风之旅,其实真不用搞复杂的本地环境,普通人按这几步来,更新基本不会崩站👇 先备份全站,文件 + 数据库都备一下,这是底线,出问题能一键回退。 更的时候别一键全更,分批更,先更不重要的插件,再更核心的。 更新完立刻清缓存,去前台检查首页、文章页、按钮、表单这些关键位置。 最好再装个支持版本回滚的插件,万一崩了,一秒切回旧版。 总结来说:先备份、分批更、更完查、留退路,稳得很✅😎希望能帮到你bugbang 3月2日 09:550
通常不是支付没成功,而是回调(webhook)没把订单状态写回来。 排查步骤: WooCommerce → 状态 → 日志:看支付网关是否有 webhook error / signature error / timeout 检查站点是否被 WAF 拦截(Cloudflare、宝塔防火墙、安全插件) 检查是否启用了“缓存结账页/接口路径”(结账页和回调接口不应缓存) 看服务器错误日志是否有 500/致命错误导致回调执行中断 解决方案: 放行 wp-json、wc-api、支付网关回调 URL(按网关文档配置) 关闭结账页的缓存与 JS 合并压缩测试一次 若使用 Cloudflare:为回调 URL 设置 不挑战、不拦截 的规则乌拉那拉甄嬛 1月31日 09:360
1) 先判断这是“正常等待”还是“异常卡住” 可以先看 3 个信号:页面发布时间是否在 7–14 天以内、是否 只有少量页面 出现该状态、页面是否已经出现在 XML Sitemap 中。 如果三个都满足,多半属于正常爬取与评估阶段,不需要立刻动手。 2) 什么情况下“等”是没用的? 以下情况基本不会靠时间自动解决:页面几乎没有内链(孤立页)、内容与站内已有页面高度相似、canonical 指向了别的 URL、同一主题短时间发布太多相似文章。 这种情况下,Google 已经抓取,但判断“当前不值得进入索引”。 3) 最有效的人工干预方式(不折腾) 优先做这 3 件事:加内链、从相关旧文章或栏目页链接到该页面、增强首屏信息密度 前 2–3 段直接回答用户问题,避免铺垫太多,确认 canonical 为自指,避免被判定为重复页,做完再去 GSC 请求重新编入索引即可。 4) 什么“干预动作”反而容易适得其反? 不太推荐:频繁删除重发、连续多次点“请求编入索引”、为了收录强行堆关键词、随意改 URL 或标题 这些操作会让 Google 重新评估页面稳定性,反而拖慢收录。 5) 一个实用判断标准 如果一篇文章:已被抓取、没有 noindex / robots 问题、有至少 1–2 条相关内链、内容明显解决了一个独立问题,那它 是否被收录,只是时间问题,不是插件问题。帖子搬运工 1月30日 10:000
新站前期不做外链完全可以,先把内容和站内结构做好更稳。只靠内容一般能拿到收录和部分长尾词排名,但中高竞争词起量会慢。建议等网站稳定收录、有30–50篇质量内容、关键词开始进前20/30后,再少量做外链,优先品牌词/裸链/引用型,别一上来追数量。👍