ある日、アイキャッチ画像が”幽霊化”した
WordPressの投稿画面で、アイキャッチ画像にsample.pngを設定していました。(ここでの「sample.png」は、仮の名前です。説明を分かりやすくするために便宜上そう呼びます)。
後日、きちんとした画像ができたので、次の手順で差し替えました。
- メディアライブラリからsample.pngを削除
- 別の内容のsample.pngをアップロード
- その画像をアイキャッチに指定
ところが──表示されるのは削除したはずの”古いsample.png”でした。
「今アップしたのに…」「メディアにも新しい方が見えているのに…」という、あの感じ。WordPressがバグったのか、ブラウザが壊れたのか、頭の中が一気に渋滞しました。
結論:原因はだいたい”同名画像×キャッシュ”
この現象の正体をざっくり言うと、こうです。
同じファイル名=同じURLになりやすい → キャッシュが”前の画像”を正として握り続ける
画像はHTMLやCSSよりキャッシュが強めに効くことが多く、しかもキャッシュが効いていると「削除→再アップしたのに古い画像が出る」という直感に反する見え方になります。
厄介なのは、キャッシュが1か所じゃないこと
- ブラウザ(PC/スマホ)のキャッシュ
- CDN(Cloudflareなど)のキャッシュ
- キャッシュプラグイン(WP Fastest Cacheなど)のキャッシュ
- 画像最適化(WebP/AVIF生成)の派生キャッシュ
- WordPressが生成するサイズ違い画像(サムネイル)
どこか1つでも古い画像を返すと、見た目は「戻った!」になります。つまり、原因が単発ではなく層(レイヤー)になっているのが沼ポイントです。
まず疑う:削除したつもりで”ゴミ箱に残っている”
WordPressのメディア削除は、状況によっては「完全削除」ではなくゴミ箱へ移動になっていることがあります。すると古い添付(attachment)が残り、参照がややこしくなります。
チェック手順
- メディアライブラリで「ゴミ箱」を表示
- 仮名のsample.png(古い方)が残っていたら「完全に削除」
- 必要ならゴミ箱を空にする
ここで古いものが残っていると、後段のキャッシュを消しても”見え方”が揺れます。最初に潰す価値が高いポイントです。
次に疑う:同名ファイルだとURLが同じになりやすい
WordPressではアップロード先が年/月フォルダ(例:/wp-content/uploads/2026/01/)になっていることが多く、同じ月に同名でアップすると同じURLに戻りやすいです。ここが致命傷になります。
切り分けの裏ワザ:URLの末尾に「?v=1」を付ける
画像URLを直接開き、末尾にクエリを付けて見比べます。
sample.png
sample.png?v=1
もし「?v=1」付きで新しい画像になるなら、ほぼ確定でキャッシュが古い画像を返している状態です。URLが変わると別物扱いになり、キャッシュを回避できるためです。
WordPressの仕組み:アイキャッチは”画像そのもの”ではなく”添付(attachment)”を参照する
アイキャッチは「このファイルを表示する」と直書きしているのではなく、投稿に紐づく添付ファイル(attachment)を参照して表示します。さらに表示ではサイズ違いの画像やレスポンシブ用の候補が使われることもあります。
そのため、こういうズレが起きます。
- 元画像は変えたのに、表示側が別サイズ(古いサムネ)を引いている
- PNGを変えたのに、WebP/AVIFの派生が残っていてそちらが表示される
「メディアでは新しいのに、表示が古い」を作りやすい構造なんです。
なお、PDFファイルからサムネイル画像を自動生成したい場合は、専用のプラグインを使う方法もあります。私が開発したRapls PDF Image Creatorでは、PDFアップロード時に表紙画像を自動生成し、アイキャッチとして設定できます。
私が最終的に直した”最短ルート”
遠回りを経て、結局いちばん効いたのは「層を上から潰す」でした。
1)ゴミ箱を含めて、古いsample.png(仮名)を完全に消す
- メディアライブラリのゴミ箱確認
- 残っていれば永久削除
2)キャッシュを全部消す(ブラウザ → プラグイン → CDN → 画像最適化)
- ブラウザ:強制リロード(スーパーリロード)+必要ならサイトのキャッシュ削除
- キャッシュプラグイン:全キャッシュ削除
- CDN:該当URLをパージ(使っている場合)
- 画像最適化:WebP/AVIFのキャッシュ削除(機能がある場合)
ここは「全部やる」が早いです。1つだけ残ると、また”戻ったように見える”からです。
3)最終手段:ファイル名を変える(これが最強)
キャッシュと戦うより、キャッシュが効かない状況を作る方が早いです。
- NG:sample.png(仮名。URLが同じになりやすい)
- OK:sample-20260117.png / sample-v2.png(URLが変わる)
ファイル名=URLが変われば、古いキャッシュを参照しようがありません。今すぐ終わらせたいなら、ここが最短ゴールです。
予防策:未来の自分を救う”運用ルール”
同名アップロードをやめる
仮画像・差し替えは命名規則で管理すると事故が減ります。
- draft:
hero-draft.png - final:
hero-final.png - 更新:
hero-20260117.png/hero-v3.png
どうしても同名にしたいなら、更新手順を固定化する
- アップロード後にCDNをURL単位でパージ
- キャッシュプラグインの全キャッシュ削除
- WebP/AVIFなど派生キャッシュも削除
「毎回同じ手順」でやると、原因切り分けの時間が減ります。
よくある質問(FAQ)
Q. 投稿画面(管理画面)でも古い画像が出ます。やっぱりキャッシュ?
A. 可能性大です。管理画面のプレビュー枠も、最終的には画像URLを読み込みます。特にブラウザ側キャッシュの影響が出やすいので、まずは強制リロードやキャッシュ削除を試すのが早いです。
Q. “削除→再アップ”をしたのに、古い画像が復活したように見えます
A. 実際に復活しているというより、古いキャッシュ(あるいは派生画像)が返されているケースがほとんどです。URLに「?v=1」を付けて新しくなるかどうかで判断できます。
Q. 画像最適化(WebP/AVIF)が原因かどうかはどう見分ける?
A. 表示されている画像URLの拡張子や、開発者ツールのNetworkで実際に取得しているファイル形式を確認します。PNGを更新してもWebP/AVIFの派生が古いままだと、表示だけが戻ることがあります。
まとめ:WordPressが悪いというより”キャッシュが優秀すぎた”
今回の学びはシンプルでした。
- 同名画像はURLが同じになりやすく、キャッシュが古い画像を返しやすい
- キャッシュはブラウザ/CDN/プラグイン/画像最適化など複数の層がある
- 最短解決は「全部消す」か「ファイル名を変えてURLを変える」
もし同じ状況でハマっているなら、まずはゴミ箱確認 → キャッシュ全消し → ファイル名変更の順で試してみてください。私はこの順で、ようやく”幽霊画像”から解放されました。
関連記事



コメント