WordPressの画像アップロード制限と、それを下回るための解決策
多くの解説ではphp.iniの編集を勧められますが、共有ホスティングでは編集できないことがよくあります。最初に画像を圧縮することが、あらゆる環境で機能する解決策です。
制限値を引き上げるのではなく、画像を圧縮して制限以下に抑えましょう。ファイルサイズを小さくすれば、アップロードエラーとページ速度の問題を同時に解決できます。 WordPressはPHPから上限値を引き継いでおり、ホストによって通常は2 MBまたは8 MBに設定されています。マネージドホスティングや共有ホスティングでは、この値を変更できないことが多々あります。
この問題に関するほぼすべての記事で、php.ini、.htaccess、またはwp-config.phpの編集が推奨されています。しかし、これらの手順は多くのサイト所有者が持っていないサーバーへのアクセス権限を前提としています。また、アクセス権限がある場合でも、上限を引き上げることが本当に正しい選択なのかを考える価値はあります。
制限値はどこから来ているのか
上限は3つのPHP設定値によって決定され、その中で最も小さい値が適用されます。 WordPressはアップロードボックスの下にその結果となる数値を表示します。そのため、ホストが宣伝している数値と異なることがよくあります。
- upload_max_filesize は、PHPが受け入れる単一ファイルの最大サイズを制御します。
- post_max_size は、1回の送信全体の最大サイズを制御するため、ファイルサイズを上回る必要があります。
- memory_limit は、サムネイル生成時のリサイズ処理で使用できるメモリ量を制御します。
- max_execution_time も失敗の原因になります。大きな画像は処理が完了する前にタイムアウトすることがあるためです。
3つ目の設定値は、最も分かりにくい失敗を引き起こします。アップロード自体は成功しても、WordPressがサムネイルサイズを生成する段階で失敗することがあり、アップロードエラーではなく、メディアライブラリ内で画像が破損した状態で表示される原因になります。
制限を引き上げるよりも圧縮が優れている理由
ウェブページ上の6 MBの写真は、サーバーがそれを受け入れるかどうかに関わらず問題です。 制限を引き上げてもエラーメッセージが消えるだけで、根本的なページの重さは解消されません。
WordPressはアップロードされたすべての画像から複数のサムネイルサイズを生成するため、重いオリジナル画像は重い派生画像を増やし、メディアライブラリ全体のストレージを圧迫します。アップロード前に数百キロバイトに圧縮しておけば、エラーが解消され、生成されるサイズも縮小され、バックアップ時間が短縮され、サーバーへのアクセス権限も一切不要になります。
制限以下に抑える方法
サーバー設定を変更せずにアップロードを成功させるには、次の5つの手順に従ってください。
- WordPressのアップロードボックスの下に表示されている制限値を確認します。これがホストの実際の数値を示しています。
- 画像を実際に表示される幅(高解像度ディスプレイ用に2倍にした幅)にリサイズします。800 px幅のコラムに4000 pxの写真を載せるのは、データの大部分を無駄にすることになります。
- サイト上でのみ表示される写真やグラフィックについては、WebPに変換します。
- ほぼすべての記事内画像に適した、200 KBから400 KBを目標に圧縮します。
- アップロードし、デスクトップとモバイルの両方で、全幅で正しくレンダリングされているか確認します。
この順序で作業を行うと、通常はカメラのオリジナル画像よりも90%小さいファイルが作成され、画面上での見た目の変化はありません。アップロードエラーの解消は、目的そのものではなく、副次的な効果として得られます。
WordPressコンテンツの推奨サイズ
画像の幅を、テーマ内でその画像が占める最も広いスペースに合わせ、高解像度ディスプレイ用にその数値を2倍にします。 ほとんどのコンテンツエリアは、サイト所有者が想定しているよりもはるかに狭いです。
| 画像の用途 | 表示幅 | アップロード幅 | 目標サイズ |
|---|---|---|---|
| 記事内画像 | 700 px | 1400 px | 150 KBから250 KB |
| 全幅アイキャッチ | 1200 px | 2400 px | 300 KBから500 KB |
| ヒーローまたはヘッダーバナー | 1920 px | 1920 px | 300 KBから400 KB |
| サムネイルまたはカード | 400 px | 800 px | 50 KBから100 KB |
| 著者またはプロフィール写真 | 150 px | 300 px | 30 KB以下 |
制限を引き上げるべきケース
印刷解像度の写真、動画、テーマパッケージなど、どうしても大きなサイズのまま維持する必要があるファイルをアップロードする場合は、制限を引き上げてください。 これらは正当なケースですが、一般的なケースではありません。
高解像度のギャラリーを納品するフォトグラファー、大容量のプラグインをインポートするショップ、ダウンロード可能なPDFドキュメントをホストするサイトなどは、すべて余裕のある容量を必要とします。旅行の写真を700 px幅で表示するだけのブロガーには不要です。サーバー設定を変更する前に、そのファイルが何のために必要なのかを問いかけてください。答えは通常、圧縮の必要性を指し示しています。
必要に応じて制限を引き上げる方法
まずはホストに問い合わせてください。多くのマネージドプロバイダーは、リクエストに応じて数分で値を変更してくれます。 ファイルアクセスが制限されているホスティングプランでは、設定ファイルを編集するよりも、サポートチケットを送信する方が早く解決します。
- マネージドWordPressホストは、通常コントロールパネルに設定を用意しているか、リクエストに応じて調整してくれます。
- cPanelホスティングには、3つの値を直接設定できるMultiPHP INIエディターが含まれていることがよくあります。
- 仮想専用サーバー(VPS)では、php.iniを編集できます。編集後はPHPサービスを再起動する必要があります。
- .htaccessの編集は一部のApache環境で機能しますが、他の環境ではサーバーエラーを引き起こす可能性があるため、必ずバックアップを保存してください。
- 制限を引き上げると謳うプラグインは、説明に何と書かれていようと、サーバーが許可している上限を超えることはできません。
サイズが原因ではないHTTPエラー
アップロード中の一般的なHTTPエラーは、通常、ファイルサイズが拒否されたのではなく、WordPressがサムネイルを生成している最中にメモリまたは実行時間が不足したことを意味します。 画像を圧縮することで両方の原因を解決できるため、この違いを理解することは重要です。
サーバーはリサイズ中にすべてのピクセルをメモリに保持する必要があるため、ファイルサイズよりも画像の寸法(縦横のピクセル数)がメモリ使用量に大きく影響します。6000×4000 pxの画像は、ファイルサイズから想像されるよりもはるかに多くのメモリを必要とします。アップロード前に寸法を縮小しておけば、ファイルがすでにサイズ制限を下回っている場合でも、エラーを回避できます。
WordPressが作成するサムネイルサイズ
WordPressはアップロードされたすべての画像に対して少なくとも4つの追加コピーを生成し、テーマやプラグインによってさらに数個追加されるのが一般的です。 サイト所有者が気づかないうちに、1枚の写真がディスク上で8個または10個のファイルになることがあります。
デフォルト設定では、サムネイル(150 px四方)、中(300 px)、中大(768 px)、大(1024 px)があり、さらに非常に大きなアップロードに対してWordPressが作成する縮小版(scaled)があります。ページビルダーやギャラリープラグインは、その上に独自のサイズを登録します。オリジナルのサイズを小さくしてアップロードすれば、生成されるすべての派生ファイルも小さくなるため、アップロード前の圧縮効果はライブラリ全体で倍増します。
WordPressにおけるWebPサポート
WordPressはバージョン5.8からWebPのアップロードに対応しており、現在のすべてのブラウザがこのフォーマットを表示できます。 WebPを直接アップロードすれば、同じ目的のために多くのサイトが導入している変換プラグインを使用する必要がなくなります。
ただし、2つの注意点があります。一部の古いテーマやページビルダーはJPGまたはPNGを前提としており、WebPのサムネイルを正しく生成できない場合があるため、ライブラリ全体を変換する前にテストアップロードで確認してください。また、プレス向け素材や印刷用ガイドなど、訪問者がダウンロードすることを目的とした画像はJPGのままにしておくべきです。ブラウザ以外ではWebPの扱いが依然として不便なためです。
公開ページ上の画像サイズの確認方法
F12キーでデベロッパーツールを開き、Networkタブに切り替え、画像(Img)でフィルタリングしてページを再読み込みします。 パネルには、実際に転送されたサイズとともにすべての画像がリストされ、大きい順にソートされます。
この表示により、推測ではなく直接答えを確認できます。500 KBを超える単一の画像や、画像の合計が2 MBを超えるページがないか探してください。最も大きなファイルは、ほぼ常に最初に修正すべきものであり、通常はヘッダー画像か投稿の最初の写真です。2、3枚の画像を修正するだけで、ページ上の余分な重さの大部分を取り除くことができます。
すでに重くなっているメディアライブラリの修正
新規のアップロードだけでなく、既存のライブラリも圧縮してください。構築されたサイトでは、古い投稿が重さの大部分を占めているためです。 5年間運営されているブログには、数千枚の未圧縮画像が保存されている可能性があります。
uploadsフォルダをダウンロードし、一括処理して、既存の投稿が引き続き機能するように同じファイル名を維持したままファイルを置き換えます。その後、サムネイルを再生成することで、縮小されたオリジナルから派生サイズが再構築されます。これはファイルを上書きする数少ない画像処理タスクの1つであるため、置き換える前に必ずバックアップを作成してください。
uploadsフォルダ全体の一括処理
フォルダをZIPアーカイブとしてドロップするだけで、中にある対応画像がすべて抽出され、1回の処理でリサイズと圧縮が行われます。 1回あたり最大500ファイルまで処理できるため、ほとんどの小規模および中規模サイトは数回でカバーできます。
すべての処理はご自身のプロセッサを使用し、ブラウザ内で行われるため、クライアントのサイト、未公開の下書き、プライベートギャラリーがサーバーに送信されることはありません。これは契約に基づいて業務を行う制作会社にとって重要であり、クライアントのメディアライブラリを未知の圧縮サービスにアップロードすることは、たとえ問題が起きなくても契約違反になる可能性があります。