画像を上書きしても反映されない原因と対策【アクセラレータ(キャッシュ)設定に注意】
目次
WordPressで画像を同じファイル名で差し替えたのに、なぜか古い画像のまま…。
この現象の多くは、サーバーやブラウザに備わったアクセラレータ(キャッシュ機能)が原因です。
この記事では、Xアクセラレータ(エックスサーバー)やロリポップ!アクセラレータの設定例を交えて、反映されない理由と解決策を解説します。
1 アクセラレータとは?
アクセラレータとは、データを一時的に保存してサイトの表示を高速化する仕組みです。
ページや画像、CSSなどを再利用することで、読み込み速度を大幅に短縮できます。
- ブラウザキャッシュ: ユーザー端末に保存して再利用。
- サーバーキャッシュ: HTMLや画像をサーバー側で保持して高速配信。
- CDNキャッシュ: Cloudflareなどが世界中のサーバーにコピーして配信。
この便利な仕組みですが、「同じファイル名で上書きした画像」では「同じファイルだから更新不要」と判断され、古い画像を表示してしまうのです。
2 Xアクセラレータ(エックスサーバー)の設定例
下図は、Xサーバーのアクセラレータ設定画面です。
WordPressで頻繁に画像やCSSを変更する場合は、一時的にOFFにするのが確実です。

3 ロリポップ!アクセラレータの設定例
ロリポップでは「サーバーの管理・設定」→「ロリポップ!アクセラレータ」から確認可能。
CMS(WordPressなど)を利用している場合は、OFFにしてから作業すると反映が早くなります。

4 解決策まとめ
- ① ファイル名を変更:
logo.png → logo-v2.png - ② ブラウザキャッシュを削除: WindowsはCtrl+F5、MacはCmd+Shift+R
- ③ アクセラレータを一時停止: サーバーパネルでOFFにする。
- ④ CDN利用時: Cloudflareなどで「Purge Cache」を実行。
5 functions.phpでキャッシュを自動回避する方法
ファイル更新時に自動でバージョンを付与し、キャッシュをリセットできるコードです。
これをテーマのfunctions.phpに追加します。
<?php
add_filter( 'style_loader_src', 'auto_version_assets', 9999 );
add_filter( 'script_loader_src', 'auto_version_assets', 9999 );
function auto_version_assets( $src ) {
if ( strpos( $src, 'ver=' ) ) {
return remove_query_arg( 'ver', $src );
}
$file_path = ABSPATH . str_replace( home_url( '/' ), '', $src );
if ( file_exists( $file_path ) ) {
$src = add_query_arg( 'ver', filemtime( $file_path ), $src );
}
return $src;
}
?>
6 まとめ
アクセラレータ(キャッシュ)はサイトを高速化する強力な仕組みですが、
WordPressで頻繁に更新するサイトでは「反映されない」トラブルの原因になります。
制作中はOFF、公開後にONへ戻す運用が理想です。


