Cloudflare経由のWordPressへアクセスしたとき、「521 Web Server Is Down」と表示されることがあります。サイト全体が開けない、SSL設定変更後に発生した、Cloudflareを有効にした直後から表示される、といった症状です。
521は、Cloudflareが接続しようとしたオリジンサーバーから接続を拒否された状態です。サーバー停止だけでなく、Webサーバーが必要なポートで待ち受けていない、ファイアウォールがCloudflare IPを遮断した、SSL/TLSモードとポートが合っていない場合にも起こります。
521を消すために、ファイアウォールやセキュリティプラグインを恒久的に全停止しないでください。オリジンを無防備にするのではなく、拒否した層と正規のCloudflare通信を特定して対象限定で直します。
先に結論:521エラーは8段階で確認する
- URL、発生時刻、タイムゾーン、Ray IDを記録する
- Cloudflareとホスティングの障害情報を確認する
- オリジンのWebサーバーが稼働しているか確認する
- SSL/TLSモードに合う80番または443番ポートで待ち受けているか確認する
- ファイアウォール、WAF、レート制限、セキュリティ機能の遮断ログを見る
- 接続元がCloudflare公式IP範囲か照合する
- 原因に近い設定だけを修正し、一度ずつ再確認する
- 公開ページ、管理画面、保存、SSL、ログ、監視まで確認する
接続後に未知の応答を受けているならWordPressの520エラーを直す確認順、接続が拒否されず時間切れになるならWordPressの522エラーを直す確認順へ切り替えます。
521エラーとは?
Cloudflare公式のError 521は、オリジンWebサーバーがCloudflareからの接続を拒否したときに発生します。代表的な原因は、オリジンのWebサーバー停止とCloudflareリクエストの遮断です。
WordPressの投稿本文やパーマリンクが壊れただけで、通常はTCP接続そのものを拒否する521にはなりません。WordPressより前にあるWebサーバー、ロードバランサー、ファイアウォール、ホスティングの防御機能を先に確認します。
ただし、プラグインやPHP処理が原因でWebサーバーが繰り返し停止し、その結果として521になる可能性はあります。接続拒否を直した後、WordPress側のクラッシュ原因もログで確認します。

403・502・520・521・522の違い
| 表示 | 主な状態 | 接続の段階 |
|---|---|---|
| 403 Forbidden | 接続後のHTTP要求を拒否 | HTTP応答を返している |
| 502 Bad Gateway | 中継層が上流から無効な応答を受信 | 上流応答の問題 |
| 520 Unknown Error | Cloudflareが想定外の応答を受信 | 接続後の応答異常 |
| 521 Web Server Is Down | オリジンが接続を拒否 | 接続入口で拒否 |
| 522 Connection Timed Out | 接続または要求確認が時間切れ | 拒否せず応答しない |
403が返っている場合はHTTP応答まで進んでいるため、WordPressの403 Forbiddenを直す手順でWAFや権限を調べます。521では、その前の接続受付を確認します。
WordPressで521が出る主な原因
1.Webサーバーが停止または再起動中
Apache、Nginx、LiteSpeedなどのWebサーバーが停止していると、Cloudflareの接続を受け付けられません。更新、設定変更、メモリ不足、プロセスクラッシュ、ホスティング保守の時刻と521の発生時刻を照合します。
2.必要なポートで待ち受けていない
CloudflareのSSL/TLSモードにより、オリジンへ接続するポートが変わります。公式資料ではFlexibleは80番、FullまたはFull (Strict)は443番でWebサーバーが待ち受けていることを確認するよう案内されています。
3.ファイアウォールがCloudflare IPを拒否している
Cloudflare経由では、多数の閲覧者がCloudflareの共有IP範囲から接続します。短時間のアクセス増加を攻撃と誤認し、サーバーファイアウォール、ホスティング防御、Fail2ban、セキュリティ機能がCloudflareを遮断する場合があります。
4.レート制限が接続元単位で厳しすぎる
実際の訪問者IPを復元できていない状態で接続元単位の制限をかけると、Cloudflareの一つのIPから大量アクセスが来たように見えます。IP復元設定と制限条件を確認し、単純に上限だけを広げません。
5.SSL/TLSモードとオリジン証明書が合っていない
FullまたはFull (Strict)で443番へ接続するのに、WebサーバーがHTTPSを受け付けていない、証明書設定や仮想ホストが誤っている場合があります。証明書エラーだけなら525・526になる場合もあるため、実際のコードとログで判断します。
6.オリジンIPまたはホスト名が古い
サーバー移行やIP変更後、Cloudflare DNSが旧オリジンへ向いたままだと、停止済みサーバーから接続拒否されることがあります。現在のホスティング情報とA・AAAA・CNAMEを照合します。
最初の10分で行う安全な初動
1.エラー証拠と変更履歴を保存する
URL、時刻、Ray ID、直前のDNS・SSL・WAF・サーバー変更、発生範囲を記録します。設定担当が複数いる場合は、同時変更を止めて一つの記録へ集約します。
2.ホスティングの状態を確認する
サーバー障害情報、CPU・メモリ、Webサーバープロセス、再起動履歴を確認します。公開ページだけでなく管理画面も521なら、WordPressの画面操作よりサーバー状態を優先します。
3.戻せる状態を確保する
Webサーバーやファイアウォールを変更する前にWordPressとサーバー設定を戻せるバックアップ手順を確認します。設定ファイルは現在値をコピーし、変更点を一つずつ記録します。
どの層が接続を拒否したか特定する
| 確認層 | 見るもの | 判断の手がかり |
|---|---|---|
| Cloudflare | Ray ID、SSL/TLSモード、DNS、変更履歴 | どのIP・ポートへ接続したか |
| ホスティング | 障害、稼働状態、リソース、保守 | サーバー全体が停止していないか |
| Webサーバー | プロセス、80/443待受、仮想ホスト、ログ | 接続を受け付ける状態か |
| ファイアウォール | 拒否・レート制限、接続元IP、時刻 | Cloudflare IPだけを拒否したか |
| WordPress | 直前更新、PHPクラッシュ、負荷 | Webサーバー停止の引き金がないか |
Cloudflare公式のIPアドレス資料では、プロキシ対象への通信がCloudflare IPからオリジンへ届くため、オリジン側で公式範囲を許可するよう案内しています。現在の公式一覧を使い、古い転載一覧だけで設定しません。
WordPressの致命的エラーがWebサーバー停止の引き金になった疑いがあれば、WordPress公式のデバッグ方法で画面表示とログ保存を分けます。本番にエラーを表示し続けません。

原因別の安全な直し方
1.Webサーバーを正規手順で復旧する
停止原因をログで確認してから、ホスティングの正規手順でWebサーバーを起動します。繰り返し停止する場合は、自動再起動だけで済ませず、メモリ不足、設定エラー、PHPクラッシュ、更新失敗を解消します。
2.SSL/TLSモードに合うポートを開く
Flexibleなら80番、FullまたはFull (Strict)なら443番で対象ホスト名を受け付けるか、ホスティングへ確認します。安全性のためにFull (Strict)を使っていた場合、安易にFlexibleへ下げず、オリジン証明書と443番待受を正しく直します。
3.Cloudflare IPの誤遮断だけを解除する
拒否ログの接続元とCloudflare公式範囲を照合し、ホスティングへ許可設定を依頼します。防御ルール全体の無効化ではなく、Cloudflareから必要ポートへ来る正規通信だけを扱います。
4.レート制限と実IP復元を整える
Cloudflare経由の実訪問者IPを正しく認識できる構成か確認し、レート制限の対象と閾値を調整します。WordPressのログイン防御を弱めず、Cloudflareの共有IPだけが集中して遮断される条件を直します。
5.DNSのオリジンIPを現在値へ合わせる
ホスティングが示す現在のIPv4・IPv6・ホスト名とCloudflare DNSを照合します。移行中なら、旧サーバー停止前にデータ同期、SSL、メール、サブドメインを確認します。詳しくはWordPressサーバーを見直す判断基準も確認してください。
6.WordPress側の停止原因を再発防止する
接続が戻ったら、同時刻のPHP・WordPressログを確認します。直前のプラグイン更新や重い処理が原因なら、WordPressの500エラーを直す安全な手順で対象限定の切り戻しを行います。

やってはいけない対処
- ファイアウォールとWAFを無期限で全停止する
- Cloudflare以外を含む全IPから管理ポートを開放する
- 安全性を確認せずSSL/TLSモードをFlexibleへ下げる
- 現在値を保存せずDNSのA・AAAAを一括変更する
- 停止原因を見ずWebサーバー再起動だけを繰り返す
- WordPress全プラグイン停止を最初の一手にする
- Ray ID、接続元IP、時刻を記録せずログを消す
- 認証情報やオリジンIPを公開の場所へ貼る
復旧後の確認チェックリスト
- Cloudflare経由の主要URLが200を返す
- Webサーバーが必要なポートで安定して待ち受けている
- Cloudflare IPが誤遮断・レート制限されていない
- SSL/TLSモードとオリジン証明書が一致している
- 管理画面、保存、画像、フォームが正常である
- Webサーバー・PHPが再停止していない
- DNSのA・AAAA・CNAMEが現在のオリジンを示す
- 不要な一時許可やデバッグ表示を元へ戻した
- 監視とバックアップが正常である
- 別回線・未ログイン状態でも再発しない
521を含む5xxが継続すると検索クロールにも影響します。Googleの5xxに関する公式資料に沿って、復旧後に重要URLが安定して2xxを返すことを確認します。
自力で直せないときに伝える情報
- 521が出たURLと発生範囲
- 日時、タイムゾーン、Ray ID
- CloudflareのSSL/TLSモード
- Cloudflare DNSに設定したレコード種別と確認済みIP
- Webサーバーの稼働・再起動状況
- 80番・443番の待受状況
- 同時刻の拒否・レート制限ログ
- 直前の移行、SSL、WAF、プラグイン変更
ホスティングには、Cloudflare IPから対象ポートへの接続が拒否されていないか調査を依頼します。その結果とRay IDをそろえてCloudflareへ相談すると、担当範囲を分けやすくなります。
よくある質問
521はWordPressが停止しているという意味ですか?
正確には、Cloudflareからオリジンへの接続が拒否された状態です。WordPressのPHPエラーがサーバー停止を招く場合はありますが、まずWebサーバー、ポート、ファイアウォールを確認します。
Cloudflare IPを全部許可して安全ですか?
公式の現在範囲と必要な接続先を使い、ホスティングの案内に従ってください。古い一覧や無関係な全IP許可は避け、オリジン保護と実IP復元も合わせて設計します。
DNS-onlyにすれば解決しますか?
原因切り分けには使える場合がありますが、オリジンの停止やポート不整合は残ります。オリジンIPの露出と防御低下にも注意し、恒久的な解決にはしません。
まとめ
521 Web Server Is Downは、Cloudflareからオリジンへの接続が拒否された状態です。WordPress本文を触る前に、接続入口を確認します。
- Ray ID、時刻、URL、直前変更を保存する
- Webサーバー稼働と80・443番ポートを確認する
- Cloudflare IPの誤遮断とレート制限を調べる
- SSL/TLSモードとオリジン設定をそろえる
- 復旧後にWordPress側の停止原因も確認する