WordPressで画像がアップロードできない時の原因8つと対処法
「WordPressに画像をアップロードしようとしたら、エラーが出てアップロードできない」「iPhoneで撮った写真が読み込まれない」——このトラブルは、ブロガー・Web制作者・EC運営者を問わず、多くの人が一度はぶつかる問題です。
原因は1つではありません。ファイル形式、サイズ、サーバー設定、プラグインの干渉など、少なくとも8つのパターンがあります。この記事では、それぞれの原因を特定する方法と具体的な対処法を順に解説し、最後にiPhoneから撮った写真で詰まりがちなケースの根本解決策も紹介します。
まず確認すべき、エラーメッセージのパターン
WordPressで画像アップロードに失敗すると、次のようなメッセージが表示されます。どのメッセージが出ているかで原因を絞り込めます。
- 「HTTPエラー」 — サーバー側の処理でつまずいています(メモリ不足や権限の可能性)
- 「ファイルサイズがこのサイトの上限を超えています」 —
upload_max_filesize超過 - 「このファイル形式はセキュリティ上の理由でアップロードできません」 — 許可されていない拡張子
- 「ディレクトリを作成できませんでした」 —
wp-content/uploadsへの書き込み権限なし - 画面が白くなる・何も表示されない — JavaScriptエラーやプラグイン競合の疑い
原因1: iPhoneのHEIC/HEIF形式に対応していない
iPhoneで撮影した写真は、初期設定では HEIC(HEIF) という形式で保存されます。WordPressの標準設定ではHEICのアップロードに対応しておらず、ブラウザでアップロードすると「このファイル形式はアップロードできません」とエラーになります。
対処法
- iPhoneの設定変更: 「設定」→「カメラ」→「フォーマット」を「互換性優先」に切り替える。これ以降に撮影する写真はJPEG形式で保存されます。
- 撮影済み写真の変換: Macに転送すると自動でJPEGに変換されます。Windowsの場合はオンラインツール(CloudConvertなど)でJPEGに変換。
- HEIC対応プラグインを入れる: 「WP HEIC Upload」などのプラグインを使えばWordPressがHEICを直接受け付けるようになります。
- SnapPressを使う: SnapPressはHEIC写真もそのまま扱え、アップロード時に必要に応じて最適化します。
原因2: ファイルサイズが上限を超えている
PHPの upload_max_filesize と post_max_size の設定値を超えるファイルはアップロードできません。初期値は2MB〜8MBのホスティング会社が多く、最近のスマホ写真(1枚5〜10MB)は簡単に超えてしまいます。
対処法
- 現在の上限を確認: 管理画面「メディア」→「新しいメディアファイルを追加」画面の下部に「最大アップロードファイルサイズ: XXMB」と記載されます。
- php.ini を編集:
upload_max_filesize = 32Mpost_max_size = 32Mに変更。レンタルサーバーの管理画面から設定できる場合もあります。 - .htaccess に追加:
php_value upload_max_filesize 32Mphp_value post_max_size 32M - 写真を事前にリサイズ: 画像編集アプリや圧縮ツールで2MB以下にしてから送る。SnapPressでは3段階の画質から選んでアップロード可能です。
原因3: PHPのメモリ不足(memory_limit)
大きな画像のアップロードや、サムネイル自動生成の処理でPHPのメモリを使い切り、「HTTPエラー」で失敗するケースです。特に4000px以上の高解像度写真で発生しやすい現象です。
対処法
wp-config.phpにdefine('WP_MEMORY_LIMIT', '256M');を追記- サーバーの php.ini で
memory_limit = 256Mに設定 - 画像を事前にリサイズして、1枚あたりの処理負荷を下げる
原因4: wp-content/uploads ディレクトリの権限エラー
画像は wp-content/uploads 配下に保存されます。このディレクトリに書き込み権限がないと、「ディレクトリを作成できませんでした」エラーになります。サーバー移転や FTP で手動アップロードした後に発生しやすい問題です。
対処法
- FTPクライアントで
wp-content/uploadsのパーミッションを 755 または 775 に設定 - ディレクトリ内のファイルのパーミッションは 644 に設定
- 所有者(オーナー)がWebサーバーの実行ユーザー(www-data、apacheなど)と一致しているか確認
原因5: プラグインの競合
画像最適化プラグイン(Smush、EWWW、ShortPixelなど)や、セキュリティプラグイン(Wordfence、SiteGuard)がアップロード処理に干渉して失敗するケースがあります。
対処法
- すべてのプラグインを一時的に停止し、アップロードできるか確認
- アップロードできたら、プラグインを1つずつ有効化して原因を特定
- 原因プラグインが特定できたら、設定を見直すか代替プラグインに切り替え
原因6: .htaccessやセキュリティ設定による制限
セキュリティ強化のための .htaccess 設定や、サーバー側のWAF(Web Application Firewall)がアップロードリクエストをブロックしていることがあります。
対処法
.htaccessを一度デフォルト内容に戻して試す(必ずバックアップ)- レンタルサーバーのWAF設定画面で、管理画面アクセス時のみ除外設定
- 「mod_security」のルールがアップロードを阻害していないか、サーバー管理者に確認
原因7: アプリケーションパスワードの設定ミス
外部アプリやAPI経由でアップロードする場合、アプリケーションパスワード(WordPress 5.6以降の機能)の設定が必須です。権限不足のユーザーや、未発行のユーザーでは401/403エラーになります。
対処法
- 管理画面「ユーザー」→対象ユーザーのプロフィール→「アプリケーションパスワード」で新規発行
- ユーザーの権限グループが「投稿者」以上であることを確認(「購読者」では画像をアップロードできない)
- HTTPSで通信していることを確認(HTTPだとアプリケーションパスワードは使えないサーバーが多い)
原因8: モバイル回線やWi-Fiの不安定さ
スマホからのアップロード中にネットワークが切れたり、速度が落ちたりすると、アップロード処理が途中で止まって失敗します。特に大きな画像ファイルほど影響を受けやすい問題です。
対処法
- 安定したWi-Fi環境でアップロード
- タイムアウトを延ばすため、
wp-config.phpにset_time_limit(300);を追加 - SnapPressのようにバックグラウンド対応・リトライ機能があるアプリを使う
iPhoneからの写真で何度も詰まるなら、専用アプリが最短解決
原因1〜8を1つずつ確認して解決するのは、技術に慣れていない方には大きな負担です。特にiPhoneから写真をアップロードするという限られた用途であれば、最初から専用設計のアプリを使うのが最短です。
SnapPress は、iPhone(iOS)とAndroidに対応したWordPress写真アップロード専用アプリです。以下のトラブルを初めから回避する設計になっています。
- HEIC形式をそのまま扱える — 変換作業が不要
- 自動画質調整で上限エラーを回避 — 3段階の画質から選択可能
- アプリケーションパスワード発行をQRコードで自動化 — 設定ミスがない
- WordPress REST APIを使った直接アップロード — ブラウザを経由しないのでプラグイン競合の影響を受けにくい
- 最大20枚を一括送信 — 1枚ずつ失敗を繰り返す苦労から解放
価格は¥500の買い切り。サブスクリプションなし、アカウント登録不要、14日間Apple経由の返金保証つきです。
まとめ: 原因別の対処フローチャート
| 症状 | 最初に試すこと |
|---|---|
| iPhoneで撮った写真だけ失敗する | フォーマットを「互換性優先」に変更、またはSnapPress利用 |
| 「ファイルサイズが上限を超えています」 | upload_max_filesize を32MB以上に、または写真を圧縮 |
| 「HTTPエラー」が出る | WP_MEMORY_LIMIT を256Mに増やす |
| 「ディレクトリを作成できませんでした」 | wp-content/uploads のパーミッションを755に |
| 原因不明・断続的に失敗する | プラグインを1つずつ停止して切り分け |
よくある質問
サーバー設定を変更する権限がない場合は?
レンタルサーバーによっては、管理画面から upload_max_filesize や memory_limit を変更できます(エックスサーバー・ロリポップ・ConoHaなど)。管理画面で「PHP設定」の項目を探してください。それでも上限に届かない場合は、画像を事前に圧縮するか、SnapPressのようにアプリ側で最適化する方法が有効です。
WordPress.comでも同じ原因ですか?
WordPress.comの無料プランと有料プランでは、アップロードできるファイル形式やサイズ上限が異なります。HEICは非対応のプランが多いです。ビジネスプラン以上であればREST APIが使えるため、SnapPressのような外部アプリも利用可能です。
プラグインを特定してもエラーが止まらない場合は?
テーマの問題の可能性があります。一時的にデフォルトテーマ(Twenty Twenty-Fourなど)に切り替えて、エラーが消えるか確認してください。テーマが原因の場合は、テーマ開発元に報告するか、別のテーマに乗り換えを検討しましょう。
サーバー移転直後にアップロードできなくなった
パーミッションの再設定が必要な可能性が高いです。wp-content/uploads ディレクトリのオーナーとパーミッションを確認し、必要に応じてFTPクライアントで修正してください。また、wp-config.php のデータベース接続情報が正しいかも確認しましょう。
スマホからアップロードできてもPCからだとエラーになる
PCのブラウザキャッシュや拡張機能が原因のことがあります。シークレットウィンドウで試す、別のブラウザで試す、拡張機能を無効化する、などを試してください。管理画面のHTTPS接続が混在コンテンツになっていないかも確認すると良いでしょう。
iPhoneから写真をアップロードして何度も詰まっている方へ
SnapPressならHEIC形式も自動処理、ファイルサイズも自動最適化、QRコードで設定ミスもなし。面倒なトラブルシューティングから解放されます。¥500の買い切りで、今すぐ試せます。
SnapPressを見る