WordPressへ画像を入れようとして「HTTPエラー」「アップロード中にエラーが発生しました」「このファイルタイプをアップロードする権限がありません」などと表示されたとき、原因は画像そのもの、ブラウザ、アカウント、サーバー設定のいずれにもあり得ます。
最初に確認したいのは、その画像だけ失敗するのか、小さなJPEGやPNGを含めてすべて失敗するのかです。1ファイルだけならサイズ・形式・破損を優先し、すべてなら容量・PHP設定・権限・サーバー処理へ範囲を広げます。
エラーを消すために、いきなりフォルダ権限を777へ変更したり、PHP上限を根拠なく大きくしたりしないでください。セキュリティやサーバー負荷に影響するため、確認結果に合う対応だけを行います。
この記事では、画像アップロードエラーを安全な順番で切り分ける方法、サーバー会社へ伝える情報、直った後の確認まで解説します。
先に結論:7段階で原因を絞る
| 順番 | 行うこと | 目的 |
|---|---|---|
| 1 | エラー文と発生時刻を記録 | 再現条件を残す |
| 2 | 小さなJPEG・PNGを1枚試す | ファイル固有か全体か分ける |
| 3 | サイズ・形式・ファイル名を確認 | 画像側の原因を除く |
| 4 | 別ブラウザとメディア画面で試す | 画面・通信の問題を分ける |
| 5 | 権限とサイトヘルスを確認 | アカウント・環境を把握 |
| 6 | 容量・PHP・WAF・ファイル権限を確認 | サーバー側を絞る |
| 7 | 修正後に表示と画像情報を確認 | 不完全な登録を防ぐ |
WordPress公式のMedia Add New screenでは、メディア追加画面にホスティング事業者が設定した最大アップロードサイズが表示されること、通常の複数ファイル用アップローダーが動かない場合にブラウザーアップローダーを試せることが案内されています。
画像アップロードで起きる主なエラー
| 表示・症状 | 優先する確認 | 主な候補 |
|---|---|---|
| HTTPエラー | 別画像、時刻、サーバーログ | 通信、画像処理、WAF、PHP |
| ファイルサイズ超過 | 表示上限と実ファイル容量 | upload_max_filesize等 |
| ファイルタイプ不可 | 拡張子と実際の形式 | 未対応形式、権限、MIME判定 |
| ディスクへ書き込めない | 空き容量、所有者、権限 | サーバー保存領域 |
| 途中で止まる | 回線、ブラウザ、タイムアウト | 通信・処理時間・負荷 |
| サムネイル作成で失敗 | 画像寸法、メモリ、画像ライブラリ | 変換処理の負荷 |
同じ「HTTPエラー」でも、原因は1つではありません。画面に出た文章を省略せず保存し、何時何分に、どの画面で、どのファイルを入れたかを記録してください。

まず小さな既知の画像で切り分ける
1. 元画像を残して複製を作る
トラブル確認のために元画像を上書きせず、複製を作ります。複製を一般的なJPEGまたはPNGとして保存し、縦横サイズとファイル容量を小さくして試します。これで成功するなら、WordPress全体より元画像の容量、寸法、形式、破損を優先して確認できます。
画像を軽くする具体的な考え方は、WordPress画像最適化のやり方を参照してください。見た目を必要以上に劣化させず、表示用途に合う大きさへ整えることが大切です。
2. ファイル名と拡張子を確認する
拡張子だけを書き換えても、画像の中身の形式は変わりません。画像編集ソフトの「書き出し」や「別名で保存」を使い、正しい形式として保存します。ファイル名は半角英数字とハイフンを中心に短くし、記号や制御文字を避けて再試行します。
WordPressはファイルの拡張子と種類を確認し、許可されていない形式を拒否します。公式コードリファレンスの_wp_handle_upload()でも、サイズ、アップロード状態、拡張子とMIMEタイプなどを検査する処理が確認できます。
3. 画像の破損を確認する
パソコンの画像表示アプリで最後まで開けるか、別の画像編集ソフトで再保存できるかを確認します。メールやクラウドからのダウンロードが途中で切れている場合は、元データを再取得します。ファイル容量が0バイトなら正常な画像ではありません。
WordPress画面とブラウザを確認する
メディアの新規追加画面で試す
投稿編集画面だけで失敗する場合は、「メディア」→「新規追加」で同じ小さな画像を1枚試します。ここで成功するなら、特定の投稿編集画面、ブロック、ブラウザ拡張、編集画面の一時的不具合へ範囲を絞れます。
メディア追加画面には、現在の最大アップロードサイズが表示されます。画像容量がその値を超えていないか確認してください。表示値はサーバー契約やPHP設定で異なるため、他サイトの数値をそのまま基準にしません。
別ブラウザ・シークレットウィンドウで試す
ブラウザのキャッシュ、Cookie、広告ブロック、セキュリティ拡張がアップロード通信へ影響することがあります。現在の画面を閉じる前に文章を保存し、シークレットウィンドウまたは別ブラウザで再ログインして1回だけ試します。
安定した回線で1枚ずつ試す
複数画像を一度に入れず、1枚ずつ試します。VPNや不安定なWi-Fiを使っている場合は、運用ルールの範囲で安定した回線へ切り替えます。同じ画像を何度も連続送信すると、未完了の添付データや重複画像が残ることがあるため、メディアライブラリも確認してください。

ユーザー権限を確認する
ログインできても、アカウントに画像アップロードの権限がない場合があります。WordPress公式のFile blockでは、標準では管理者・編集者・投稿者がファイルブロックからアップロードできると説明されています。サイト独自の権限設定や会員機能がある場合は管理者へ確認します。
別ユーザーのパスワードを借りるのではなく、管理者に自分の役割と必要な権限を確認してもらいます。作業後に過剰な権限を残さないことも重要です。
サイトヘルスでアップロード環境を見る
管理画面の「ツール」→「サイトヘルス」→「情報」を開き、メディア処理やサーバーの項目を確認します。WordPress公式のSite Health screenでは、サイト構成の情報を確認・コピーできることが案内されています。
- ファイルアップロードが有効か
- 最大アップロードファイルサイズ
- PHPのPOST最大サイズ
- PHPメモリ上限
- ImagickまたはGDなど画像処理情報
- WordPressとPHPのバージョン
- サーバーとデータベース情報
サイトヘルスの内容にはサーバーパスや環境情報が含まれることがあります。公開掲示板へ全文を貼らず、必要箇所だけを伏せ字にして共有してください。項目の読み方はWordPressサイトヘルスの見方で確認できます。
サーバー容量とPHP上限を確認する
ディスク空き容量を確認する
画像本体だけでなく、WordPressは複数サイズの画像を生成し、一時フォルダも使います。契約サーバーの管理画面で、Web領域、メール、バックアップを含む使用量を確認します。空きが少ない場合は、削除対象とバックアップ方針を決めてから整理してください。
upload_max_filesizeとpost_max_sizeを確認する
WordPress公式のPHP Optimizationでは、画像アップロードにPHPが使われ、upload_max_filesizeが個別ファイル、post_max_sizeがリクエスト全体の上限に関わり、後者は前者以上である必要があると説明されています。
実効的な最大サイズは複数の上限のうち小さい値に制約されます。公式のwp_max_upload_size()でも、upload_max_filesizeとpost_max_sizeの小さい方を基に判定する実装が確認できます。
変更方法はサーバーにより異なり、利用者が変更できないプランもあります。サーバー会社の公式手順を使い、必要な画像容量に合わせて相談してください。PHP環境全体の確認はWordPressのPHPバージョンを安全に更新する方法も参考になります。
メモリと処理時間を確認する
ファイル容量が上限内でも、縦横が非常に大きい画像は、回転、縮小、サムネイル生成で多くのメモリを使います。小さくした複製だけ成功するなら、アップロード容量だけでなく画像処理負荷も候補です。
サイト全体が遅い、管理画面で処理が止まる場合は、WordPressが重い原因と改善順に沿って、サーバー負荷、プラグイン、データベース、外部通信を分けて確認します。
ファイル権限・所有者・WAFを確認する
uploadsフォルダへ書き込めるか
WordPressは通常、wp-content/uploads配下へメディアを保存します。サーバー移行、復元、所有者変更の後にすべての画像が失敗する場合は、フォルダの所有者と権限が実行環境に合っているかをサーバー会社へ確認します。
WordPress公式のFile Permissionsは、権限の設定を誤るとサイトが停止し得ると注意しています。共有サーバー、専用サーバー、実行方式で適切な設定が異なるため、数字だけを他サイトからコピーしません。
「試しに777」は行わないでください。誰でも書き込める状態を作る危険があり、根本原因である所有者不一致も解決しない場合があります。
WAF・セキュリティ機能の記録を確認する
WAFやセキュリティプラグインが、ファイル内容やリクエストを遮断することがあります。無効化を繰り返す前に、発生時刻とブロックログを照合します。例外設定が必要なら対象を最小限にし、作業後の戻し忘れを防ぎます。
セキュリティ機能を保ったまま確認する考え方は、WordPressセキュリティの基本を参照してください。キャッシュやCDNが管理画面通信へ影響する構成では、WordPressキャッシュ設定の基本も確認します。

エラーログは公開せず安全に確認する
同じ時刻のPHPエラーログ、Webサーバーログ、WAFログには、処理失敗の手掛かりが残ることがあります。サーバー管理画面のログ機能を使い、画像名と発生時刻に近い記録を確認します。
本番サイトの画面へPHPエラーを表示する設定は避けてください。WordPress公式のHiding PHP Keeping Your Site Safeでも、公開サイトでエラーを画面表示しないことが推奨されています。パスや構成情報が訪問者へ見える可能性があります。
サーバー会社へ伝える情報
- エラー文の全文と画面のスクリーンショット
- 発生日時とタイムゾーン
- 失敗した画像の形式、容量、縦横サイズ
- 小さなJPEG・PNGでも失敗するか
- 投稿画面とメディア新規追加の結果
- 別ブラウザ・別回線での結果
- 最大アップロードサイズの表示値
- サイトヘルスの関連項目
- ディスク空き容量
- 移行・復元・PHP変更など直前の作業
- WAFログとPHPログの該当時刻
画像ファイル自体を送る必要がある場合は、個人情報、位置情報、顧客情報が含まれていないか確認します。管理画面やサーバーのパスワードを通常のメールへ記載しないでください。復旧作業前のバックアップはWordPressバックアップの取り方に沿って準備します。
直った後の確認チェックリスト
- メディアライブラリに画像が1件だけ登録されている
- 元画像とサムネイルが正常に表示される
- 投稿へ挿入して公開画面で見える
- スマートフォンでも比率が崩れていない
- 代替テキストが画像の内容を説明している
- 不要な重複・失敗添付を確認した
- WAFやセキュリティ設定を元へ戻した
- 権限を広げたままにしていない
- 画像容量と表示速度を確認した
- 原因と対応日時を記録した
アップロードできても、重い画像をそのまま公開すると表示速度を落とします。公開前に画像最適化を行い、サイト全体の体感はWordPressが重い原因と改善順で確認してください。サーバー上限が運用に合わない状態が続くなら、WordPressサーバー見直しの判断基準も検討材料になります。
画像アップロードエラーを防ぐ運用
- アップロード前に用途に合う縦横サイズへ整える
- 元画像を手元へ保管し、公開用は複製する
- 一般的な画像形式で正しく書き出す
- ファイル名を半角英数字とハイフンで統一する
- ディスク容量とバックアップ容量を定期確認する
- PHP変更やサーバー移行後にテスト画像を入れる
- 権限やWAFを変更した履歴を残す
- 大量アップロードは小分けにする
よくある質問
HTTPエラーとしか表示されない場合は何を見ますか?
発生時刻を記録し、小さなJPEGまたはPNGを1枚試します。次にメディア新規追加、別ブラウザ、サイトヘルス、サーバーログの順で確認します。HTTPエラーだけでは原因を1つに決められません。
最大アップロードサイズを上げれば直りますか?
画像が上限を超えている場合は候補ですが、形式、権限、容量不足、画像処理、WAFが原因なら直りません。まず表示上限と画像容量を比較し、必要な場合だけサーバーの公式手順で変更します。
プラグインをすべて停止すべきですか?
本番サイトで一括停止すると、表示やフォームへ影響します。先に小さな画像、ブラウザ、ログ、WAF記録で範囲を絞り、プラグイン競合が疑われる場合はバックアップとメンテナンス時間を確保して1つずつ確認してください。
まとめ:1ファイルだけか全体かを最初に分ける
WordPressの画像アップロードエラーは、同じ表示でも原因が異なります。まずエラー文と時刻を残し、小さな既知のJPEG・PNGが入るかを確認します。1ファイルだけならサイズ・形式・破損、すべてならブラウザ、権限、容量、PHP、WAF、保存先へ順に広げてください。
権限777や無制限に近いPHP設定は、安全な解決策ではありません。サーバーの公式手順とログに基づいて必要な箇所だけ直し、成功後は画像表示、重複登録、代替テキスト、最適化、セキュリティ設定の戻しまで確認して完了です。