WordPressの「更新ができない」を解決する完全ガイド(記事・画像・プラグイン・テーマ編集)

WordPressの「更新ができない」を解決する SOSブログ
この記事の監修者・著者

Web制作歴29年。Webプロデューサー、Webマーケター、Webディレクター、Webデザイナー、Webエンジニアなど、様々なポジションでWeb制作に携わってきました。

主宰するホームページ作成教室には全国から受講生が集まっています。

このたび、Webトラブル何でも相談窓口を開設しました。
Webサイトのトラブル解決をサポートします!

コナン先生(小南邦雄)をフォローする

1. はじめに:「更新」ボタンの裏側で何が起きているのか

WordPress(ワードプレス)は、今や世界のウェブサイトの40%以上を支えている巨大なシステムです。その最大の魅力は、難しいプログラムを書かなくても、管理画面から簡単に記事や機能を「更新」できることですよね。

しかし、だからこそ「更新ができない」というトラブルに直面すると、どうしていいか分からず途方に暮れてしまうものです。

実は、「更新」ボタンをひとつ押すだけでも、裏側ではものすごく複雑な処理が行われています。

ブラウザからサーバーへデータを送り、セキュリティの検問(ファイアウォール)を通り抜け、PHPというプログラムが動き、データベースに文字を書き込み、画像ファイルを保存する……この長いリレーのどこか一箇所でもバトンを落とすと、画面には無慈悲なエラーが表示されたり、真っ白な画面になったりしてしまうのです。

特に、「昨日までは普通に使えていたのに、今日突然更新できなくなった」というケースは、本当によくあります。これは決してあなたが悪いわけではありません。サーバー側のセキュリティが自動で強化されたり、WordPressが自動アップデートされたり、ブラウザの仕様が変わったりと、見えない環境の変化が原因であることが多いのです。

この記事では、記事の保存エラー、画像のアップロード失敗、プラグイン更新時のフリーズ、テーマ編集の拒否など、WordPressのあらゆる「更新できない」状況について、その原因と解決策を網羅しました。

主要なレンタルサーバー(エックスサーバー、ConoHa WING、ロリポップ!など)のクセもしっかり解説しています。

この記事を読みながら一つずつ確認していけば、原因が見つかり、解決できるように設計しています。焦らず、一緒に紐解いていきましょう。

2.記事が保存できない!ブロックエディタと通信エラーの謎

WordPress 5.0から導入された新しい投稿画面(ブロックエディタ/Gutenberg)は、従来の「メモ帳」のようなエディタとは仕組みが根本的に違います。これが「更新できない」トラブルを少し複雑にしています。

1.「返答が正しいJSONレスポンスではありません」と表示される場合

記事を書いている最中に、画面の上に赤い帯で「更新に失敗しました。返答が正しいJSONレスポンスではありません」というエラーが出たことはありませんか? これは、最も頻繁に起こるトラブルの一つです。

このメッセージは、少し噛み砕くとこういう意味です。

「ブラウザは『保存完了の合図(JSONデータ)』を期待していたのに、サーバーから『予期せぬデータ(多くはエラー画面のHTML)』が返ってきたので、どう解釈していいか分かりません」

原因のNo.1は「WAF(Webアプリケーションファイアウォール)」の誤作動

日本のレンタルサーバーを使っている場合、このエラーの原因のほとんどはサーバーのセキュリティ機能である「WAF」です。

WAFはサイトへの攻撃を防ぐ頼もしいガードマンのようなものですが、あなたの記事に含まれる文章を「攻撃」だと勘違いしてしまうことがあるのです(これを偽陽性と言います)。

  • どんな時に起きる?
    記事の中に、YouTubeなどの動画埋め込みタグやGoogleマップなどの埋め込みタグ(iframe)、特定の英語のプログラム用語(SELECT, DROPなどデータベース操作を連想させる英単語)、あるいは特殊な記号が多く含まれていると、WAFが「これはSQLインジェクション攻撃かもしれない!」と過剰反応して通信を遮断してしまうことがあります。
  • 解決ステップ
    ログを確認する
    まずはサーバーの管理画面に入り、「WAF設定」や「WAFログ」を見てみましょう。更新しようとした日時に「検知」のログが残っていれば、犯人はWAFで確定です。

    除外設定をする
    エックスサーバーやConoHa WINGでは、ログから「この通信は安全です」と教えてあげる「除外設定」が可能です。これが最も安全で推奨される方法です。

    一時的にOFFにする
    除外設定が難しい場合(ロリポップ!など)は、記事を保存する間だけWAFを「無効」にします。ただし、ロリポップ!などは設定反映に5〜10分かかることがあるので、OFFにしてすぐ試しても直らないことがあります。少し待ってから再トライしてください。

WAF以外の原因:内部設定のズレ

WAFをOFFにしても直らない場合は、WordPress内部の設定を見直す必要があります。

  • パーマリンク設定の更新
    WordPressのURL構造を決める「パーマリンク設定」が内部的に崩れていることがあります。管理画面の「設定」→「パーマリンク」を開き、何も変更せずにそのまま「変更を保存」ボタンを押してください。これだけで内部のルール(.htaccess)が書き直され、通信が復活することがよくあります。
  • セキュリティプラグインの干渉
    「SiteGuard」や「All In One WP Security」などのプラグインが、ブロックエディタが使う通信ルート(REST API)を塞いでいることがあります。一度プラグインを停止して、保存できるか試してみましょう。

SSL化の落とし穴「混合コンテンツ」

サイトをSSL化(https://〜)したのに、設定が不完全だとトラブルになります。

管理画面はhttpsなのに、一般設定の「WordPressアドレス」や「サイトアドレス」が http:// のままだと、ブラウザのセキュリティ機能が「安全でない通信」としてデータの送信をブロックしてしまうのです。

  • 確認すること
    「設定」→「一般」を見て、両方のURLが https:// で始まっているか確認してください。もしデータベースの中身が古いままであれば、「Better Search Replace」などのプラグインを使って、内部リンクをすべてhttpsに書き換える作業も必要になります。

2.「403 Forbidden」や権限エラーが出る場合

「更新に失敗しました」というメッセージと共に、ブラウザの検証ツールで見た時に「403 Forbidden」というコードが見える場合、これはサーバーから「立ち入り禁止」を食らっている状態です。

  • ドメインとDNSの問題
    サイトの引っ越し直後や、CloudflareなどのCDNを使っている場合、設定ミスによってサーバーへの接続が拒否されることがあります。
  • indexファイルの消失
    誤ってフォルダ内の index.php を削除してしまうと、サーバーのセキュリティ設定によってはフォルダの中身を見せないように全てのアクセスを403エラーで返すことがあります。

3.本体・プラグインの更新が止まる!メンテナンスモードの罠

「プラグインを更新」ボタンを押したら、画面が切り替わらず、サイト全体が「現在メンテナンス中のため、しばらくの間ご利用いただけません」という表示のまま動かなくなってしまった……。これも心臓に悪いトラブルですね。

1.メンテナンスモードから抜け出せなくなった時

これは、更新処理が何らかの理由で「途中終了」してしまった時に起こります。

  • なぜ起きる?
    WordPressは更新を始めるとき、「工事中」の看板として .maintenance というファイルを作成します。更新が無事に終われば自動で削除されるのですが、通信エラーやメモリ不足で処理が中断すると、このファイルが残ったままになり、永遠に工事中が表示されてしまうのです。
  • 解決策(脱出方法)
    FTPソフト(FileZillaなど)やサーバーのファイルマネージャーを使って、WordPressが入っている一番上のフォルダ(ルートディレクトリ)を見てください。そこに .maintenance というファイルがあります。これを手動で削除してください。これだけで、サイトは即座に復旧します。

2.ディスク容量がいっぱいで更新できない

更新作業には、新しいファイルをダウンロードして展開するための「作業スペース」が必要です。スマートフォンのアップデートと同じで、空き容量がギリギリだと失敗します。

  • 隠れた容量泥棒
    「そんなに記事書いてないのに?」と思うかもしれません。実は、バックアッププラグイン(BackWPupなど)が、サーバーの中に巨大なバックアップファイルを溜め込んでいるケースが非常に多いです。
  • データベースの悲鳴
    「WordPressデータベースエラー:ディスクがいっぱいです」という表示が出たら危険信号です。MySQLデータベースの容量制限に達しているため、新しいデータの書き込みが一切できません。不要なバックアップファイルをFTPで削除したり、データベースのリビジョン(過去の下書き履歴)を整理したりする必要があります。

3.ファイルの権限(パーミッション)設定ミス

サーバー上のファイルには「誰が書き込んでいいか」というルール(パーミッション)があります。これが厳しすぎると、WordPress自身が自分を更新できなくなります。

  • 正しい設定
    基本的に、フォルダは 755、ファイルは 644 という数値に設定されている必要があります。
  • やりがちなミス
    セキュリティを意識しすぎて権限を絞りすぎたり、逆にトラブル解決のために 777(誰でも書き込みOK)にして放置したりするのは危険です。FTPソフトで対象のフォルダやファイルを右クリックして「パーミッション変更」から確認してみましょう。

4.テーマファイルエディターで編集・保存ができない

管理画面の「外観」→「テーマファイルエディター」から style.cssfunctions.php を直接編集しようとすると、エラーになることがあります。

1.「致命的なエラーをチェックするために通信できない」と言われる

これはWordPress 4.9以降の親切機能の裏目です。WordPressは、あなたが保存しようとしているコードにミスがないか、保存直前に自分自身に通信をしてチェックを行います。

  • 原因
    Basic認証(ID/PASS)をかけているサイトや、サーバー内部の通信制限があると、この自己チェック通信(ループバックリクエスト)が失敗します。その結果、「チェックできないから保存はやめておきます」と判断されるのです。
  • 解決策
    Basic認証を一時的に外すか、サーバーのファイルマネージャーから編集したり、FTPソフトを使ってサーバーに直接ファイルをアップロードしましょう。
    WordPressの管理画面からの直接編集はミスをした時に画面が真っ白になり復旧が難しいため(ヒストリー機能などが無いため元に戻せない)、プロでも使わない人がいます。ファイルマネージャーで事前にバックアップをとってから編集するか、FTPを使うのが安全で確実です。

2.WAFによるコード拒否

functions.php への追記は、サーバーから見ると「プログラムコードを送りつけている」状態です。これが「コードインジェクション攻撃」に見えてしまい、WAFにブロックされることがよくあります。

この場合も、記事保存の時と同様に、一時的にWAFをOFFにするか除外設定を行う必要があります。

5.画像がアップロードできない!メディアライブラリのトラブル

「メディアを追加」から画像をアップロードしようとしたら「HTTPエラー」とだけ表示される。画像をドラッグ&ドロップしたのに「HTTPエラー」と出て失敗する。

あるいはアップロードはできたのに画像が灰色になる。

これらはサーバーのメモリ(体力)不足や設定制限が原因です。

1.Nginxサーバーの「サイズ制限」の壁

最近の高速なサーバー(KUSANAGIなど)では、Webサーバーソフトとして「Nginx(エンジンエックス)」が使われています。このNginx、初期設定では「1回に送れるデータは1MBまで」と厳しく制限されていることがあります。

  • 症状
    スマホで撮った写真(3MBとか)やストックフォト(Adobe Stockなどの写真素材)は失敗するのに、小さなアイコン画像なら成功する。
  • 解決策
    レンタルサーバーなら管理画面からphp.iniの「アップロード上限サイズ」設定を変更します。
    VPSなどを管理している場合は、nginx.conf という設定ファイルの client_max_body_size という数値を 20M(20MB)などに書き換えて再起動する必要があります。

2.メモリ不足と画像処理

画像アップロード自体は成功しても、その後の「サムネイル作成(小サイズ画像の自動生成)」で失敗することがあります。画像処理はサーバーのメモリを大量に消費するためです。

  • 解決策
    wp-config.php ファイルに
    define('WP_MEMORY_LIMIT', '256M');
    と記述して、WordPressが使えるメモリの上限を増やしてあげましょう。

    また、WordPressの5.3以降には、2560pxを超える巨大な画像がアップロードされると自動的に2560pxに縮小する機能がつきましたが、これを止めることでエラーが解決する場合もあります。
    functions.phpに、以下の1行を追加すると、画像を縮小せずそのまま保存するようになります。
    add_filter( ‘big_image_size_threshold’, ‘__return_false’ );

3.画像処理エンジン「ImageMagick」

PHPには画像を加工するためのツール(ライブラリ)として、「ImageMagick(イメージマジック)」と「GD(ジーディー)」の2つがあります。

WordPressは画質が良いImageMagickを優先して使おうとしますが、サーバー環境によってはこれが不安定で、メモリを食いすぎてエラーになることがあります。

ImageMagickからGDへ切り替える

ImageMagickの使用をやめて、より動作が軽いGDライブラリに切り替えると、嘘のようにエラーが直ることがあります。これにはテーマの functions.php に以下のコードを追加します。

function wpb_image_editor_default_to_gd( $editors ) {
    $gd_editor = 'WP_Image_Editor_GD'; // GDを指定
    $editors = array_diff( $editors, array( $gd_editor ) );
    array_unshift( $editors, $gd_editor ); // 先頭に追加して優先させる
    return $editors;
}
add_filter( 'wp_image_editors', 'wpb_image_editor_default_to_gd' );

6.サーバー別トラブルシューティング・マトリクス

お使いのレンタルサーバーによって、「更新できない」原因の傾向と対策が異なります。代表的なサーバーについてまとめました。

1.エックスサーバー (Xserver)

非常に利用者が多いサーバーですが、その分セキュリティもしっかりしています。

  • WAFの設定
    サーバーパネルの「WAF設定」は、「XSS」「SQL」「ファイル書き込み」など項目が細かく分かれています。全てOFFにするのではなく、エラーが出た項目だけをOFFにするのが賢い使い方です。
  • REST API制限
    標準機能で「REST API アクセス制限」がONになっていることがあります。これが外部ツールや一部のエディタ機能を邪魔することがあるので、確認してみてください。

2.ConoHa WING

高速表示が魅力ですが、WAF(SiteGuard)の感度がかなり高めです。

  • 除外設定が便利
    「更新できない!」となったら、すぐにコントロールパネルの「WAF」→「ログ」を見てください。「除外しますか?」というボタンが出ることが多く、これを押すだけで、その操作だけを許可リストに追加できます。セキュリティを下げずに解決できる素晴らしい機能です。

3.ロリポップ! (Lolipop!)

  • 403エラー画面
    WAFに引っかかると、独自の「403 Error」画面が出ます。これが出たらほぼ間違いなくWAFが原因です。
  • 反映のタイムラグ
    管理画面でWAFを無効にしても、実際にサーバーに反映されるまで5〜10分かかります。「設定変えたのに直らない!」と焦らず、コーヒーでも飲んで少し待ってから再操作してください。

4.さくらのレンタルサーバ

  • PHPの更新
    セキュリティポリシーにより、古いPHPバージョンが強制的に新しいものへ切り替わることがあります。古いプラグインを使っていると、このタイミングで突然動かなくなることがあります。

7.PHPバージョンとプラグインの不仲説

サーバーのPHPバージョンが上がったとき、あるいはWordPress本体を更新したとき、古いプラグインやテーマが「新しいルールについていけない」とストライキを起こすことがあります。

  • 症状
    更新ボタンを押しても反応がない、画面が真っ白になる。
  • 診断
    「Health Check & Troubleshooting」というプラグインを使うと便利です。一般の訪問者には影響を与えずに、管理者だけ「全プラグインをOFFにした状態」をシミュレーションできます。この状態で更新できるなら、犯人は間違いなく有効化していたプラグインのどれかです。
  • 対策
    PHPのバージョンを一時的にサーバー管理画面から下げてみるか、問題のプラグインを特定して代替のものに入れ替えましょう。

8.それでも解決しない時の「上級調査テクニック」

ここまでの対策でも直らない場合、原因はもっと深い場所にあります。エラーの正体を暴くためのツールを使いましょう。

1.デバッグモード(WP_DEBUG)をONにする

WordPressには、普段隠しているエラーメッセージを表に出す「デバッグモード」があります。

サーバーのファイルマネージャーやFTPでwp-config.phpにアクセスして、 wp-config.phpのファイル内の define( ‘WP_DEBUG’, false ); という行を、以下のように書き換えてみてください。

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

こうすると、画面にはエラーを出さずに、wp-content フォルダの中に debug.log というファイルが生成され、そこにエラーの詳細が書き込まれます。「メモリ不足」「◯◯プラグインの×行目でエラー」といった具体的な犯人の名前がそこに書かれているはずです。

2.ブラウザの「検証ツール」を使う

Chromeならキーボードの F12 を押して開発者ツールを開き、「Network」タブを見てください。

更新ボタンを押したときに、赤文字で名前が出る行があるはずです。それをクリックして「Response」の中身を見ると、単なる「更新失敗」の裏でサーバーが何を叫んでいるのか(WAFのエラー画面のHTMLなど)がそのまま見えます。これが分かれば、解決への近道になります。

9.最後に:トラブルに備える最強の盾「バックアップ」

ここまで、たくさんの技術的な解決策をお伝えしてきました。原因が分かり、無事解決できましたでしょうか?

WordPressの「更新できない」トラブルは、サーバー、通信、プログラム、データベースなど、多くの要素が絡み合って起きます。運用を続ける以上、完全に避けることは難しいかもしれません。

しかし、どんなトラブルが起きても「バックアップさえあれば、確実に元の状態に戻せる」ということだけは忘れないでください。

「UpdraftPlus」や「BackWPup」などのプラグインを使って、ファイルとデータベースの両方を、Googleドライブなどの外部に自動保存するように設定しておきましょう。

「いつでも元に戻せる」という安心感こそが、トラブル解決の際に最も必要な「心の余裕」を生んでくれるはずです。