サイトの修正が反映されない…キャッシュをクリアして最新の表示に切り替える方法

決裁権が誰にもない

「ページを直したのにブラウザに反映されない」「自分の画面では新しいのに、相手には古いまま見えている」——Web制作の現場で長年、私はこのやり取りを数え切れないほど繰り返してきました。原因のほとんどはブラウザやサーバーに残った「キャッシュ」で、正しく読み込み直せば最新の状態に切り替わります

「ページ更新しました」と伝えても「いや、変わってないけど?」と返ってくる。直したはずのCSSや画像、文章が古いまま表示される。私自身も何度この会話をしたか分かりません。これはあなたの作業ミスではなく、ブラウザが表示を速くするためにデータを溜め込んでいるだけ、というケースが大半です。

そこでこの記事では、まず誰でもできるスーパーリロード(強制再読み込み)から始めて、Chrome・Edge・Firefox・Safariそれぞれのキャッシュ削除手順、開発者ツールでの「キャッシュを無効化して再読み込み」、さらに制作者側で根本的に解決するキャッシュバスティング(バージョン管理)やCDN・WordPressキャッシュプラグインの扱いまで、順番に整理します。

読み終えるころには、「古いまま表示される」と言われたときに、どこを疑い、どの順で試せばいいかが一通り分かるはずです。手元のページが反映されずに困っている方は、上から順に試してみてください。

そもそもキャッシュとは何か

キャッシュとは、一度表示したWebページのデータ(HTML・CSS・JavaScript・画像など)を、手元の端末に一時的に保存しておく仕組みのことです。

Webページは本来、表示のたびにサーバーから全ファイルをダウンロードします。ですが毎回ダウンロードしていては時間もかかり、サーバーにも負担がかかります。そこでブラウザは「前回と同じファイルなら、保存済みのものを使い回す」という判断をします。これがキャッシュです。

ノートパソコンでWebサイトのCSSを修正する作業

キャッシュの最大のメリットは、ページの表示が速くなることです。2回目以降のアクセスでは保存済みデータを使うため、読み込みが短縮され、通信量も減ります。サイトの表示速度はユーザー体験にも検索評価にも関わるので、キャッシュは本来とてもありがたい仕組みです。

一方でデメリットは、ファイルを更新しても、ブラウザが古い保存データを使い続けて新しい内容が反映されないこと。これが制作者とクライアントのあいだで起きる「変えた」「変わってない」というすれ違いの正体です。原因さえ分かれば、対処はそれほど難しくありません。

まず試す:スーパーリロード(強制再読み込み)

反映されないときに最初に試してほしいのが、スーパーリロード(ハードリロード/強制再読み込み)です。通常の更新(再読み込み)はキャッシュを使い回すことがありますが、スーパーリロードはキャッシュを無視してサーバーから取り直すため、CSSや画像の修正がそのまま反映されやすくなります。

ショートカットキーは次のとおりです。

  • Windows(Chrome / Edge / Firefox)Ctrl + F5 または Ctrl + Shift + R
  • Mac(Chrome / Firefox)Cmd + Shift + R
  • Mac(Safari)Cmd + Option + R

通常のリロードはF5(Windows)やCmd + R(Mac)ですが、反映されないときはまずスーパーリロードを試すのが定番です。多くの「直したのに反映されない」は、この操作だけで解決します。

注意点として、スーパーリロードは今見ているページのキャッシュを取り直すだけです。サイト全体に溜まったキャッシュまでは消えないので、それでも直らない場合は次のキャッシュ削除に進みます。

ブラウザ別:キャッシュを削除する手順

スーパーリロードでも変わらないときは、ブラウザに溜まったキャッシュ(閲覧データ)そのものを削除します。各ブラウザの手順を整理しました。

Google Chrome / Microsoft Edge

ChromeとEdgeは中身が同じ系統なので、操作もほぼ共通です。

  1. Ctrl + Shift + Delete(MacはCmd + Shift + Delete)を押す
  2. 「閲覧履歴データの削除」画面が開く
  3. 削除する期間を選び、「キャッシュされた画像とファイル」にチェックを入れる
  4. 「データを削除」をクリックする

メニューから開く場合は、右上の「︙」(Chrome)または「…」(Edge)から「閲覧履歴データの削除」をたどります。Cookieまで消すとログイン状態が解除されるので、表示崩れの確認だけならキャッシュ(画像とファイル)にチェックを絞るのがおすすめです。

Mozilla Firefox

  1. 右上の「≡」メニューから「設定」を開く
  2. 「プライバシーとセキュリティ」を選ぶ
  3. 「Cookieとサイトデータ」の項目で「データを消去」をクリックする
  4. 「ウェブコンテンツのキャッシュ」にチェックを入れて消去する

FirefoxもCtrl + Shift + Delete(MacはCmd + Shift + Delete)で履歴消去のダイアログを直接呼び出せます。

Safari(Mac)

Safariは標準ではキャッシュ削除メニューが隠れているので、まず「開発」メニューを表示させます。

  1. メニューバーの「Safari」→「設定」を開く
  2. 「詳細」タブで「Webデベロッパ用の機能を表示」(バージョンにより「メニューバーに”開発”メニューを表示」)にチェックを入れる
  3. メニューバーに表示された「開発」→「キャッシュを空にする」を選ぶ

制作中の確認用途なら、前述のCmd + Option + Rによるスーパーリロードと、この「キャッシュを空にする」を覚えておけば十分です。

参考:Caching Demystified: Inspect, Clear, and Disable Caches(Chrome for Developers) / Safari (Mac) のキャッシュクリア方法(WWWクリエイターズ)

制作者向け:開発者ツールでキャッシュを無効化する

修正と確認を何度も繰り返す制作中は、毎回キャッシュを消すのは非効率です。そこで使うのが開発者ツール(DevTools)でキャッシュを無効化する設定です。

Chrome / Edgeでの手順は次のとおりです。

  1. F12(MacはCmd + Option + I)で開発者ツールを開く
  2. 「Network(ネットワーク)」タブを開く
  3. 「Disable cache(キャッシュを無効化)」にチェックを入れる

このチェックは開発者ツールを開いているあいだだけ有効で、その間は常に最新ファイルが読み込まれます。CSSやJavaScriptを調整しながら確認するときに重宝します。

もうひとつ強力なのが、更新ボタンの長押し(右クリック)から選ぶ「キャッシュの消去とハード再読み込み」です。これは開発者ツールを開いた状態で、ブラウザの更新ボタンを長押しすると選べます。動的なJavaScriptを含めて確実に取り直したいときに有効です。

参考:Caching Demystified: Inspect, Clear, and Disable Caches(Chrome for Developers)

根本解決:キャッシュバスティングでファイルを確実に更新させる

ここまではブラウザ側の操作でしたが、制作者が仕組みで解決する方法もあります。それがキャッシュバスティング(cache busting)です。要はファイルが変わったことをブラウザに必ず伝えるテクニックで、訪問者全員に確実に最新版を届けられます。

1. クエリ文字列でバージョンを付ける

もっとも手軽なのが、ファイル名のうしろに?v=でバージョンを付ける方法です。

<link rel="stylesheet" href="style.css?v=20260630">
<script src="main.js?v=2"></script>

更新するたびにこの数字(や日付)を変えれば、ブラウザは別ファイルとみなして読み直します。WordPressのテーマやプラグインのようにファイル名を簡単に変えられない既存サイトでは、まずこの方法が現実的です。ファイルごとにバラバラの値ではなく、リリース単位で?v=20260630のように共通の値にすると管理が楽になります。

2. ファイル名にハッシュを埋め込む

より確実なのは、ファイル名そのものに内容のハッシュを入れる方法です。

style.a1b2c3.css
main.9f8e7d.js

中身が1文字でも変われば自動的に別の名前になるため、確実にキャッシュが切り替わります。クエリ文字列はCDNやプロキシによって無視・除去されることがあるのに対し、ファイル名(パス)の変更はどの環境でも尊重されるのが利点です。ReactやVue、各種ビルドツールでは本番ビルド時にこのハッシュ付与が自動で行われます。

運用のコツ

定石は、ハッシュ付きのCSS・JS・画像には長いキャッシュ期間(最大1年)を設定し、それらを参照するHTML本体は短い期間にすること。更新時はHTMLが新しいファイル名を指すだけで、訪問者は自動的に最新版を受け取れます。古いファイルは期限切れまで残りますが、明示的な削除(パージ)は不要です。

なお、metaタグや.htaccessでキャッシュを一切させない指定も可能ですが、表示速度やサーバー負荷を犠牲にするため、私は基本的におすすめしません。バージョン管理で「変わったものだけ取り直させる」ほうが筋がいいです。

参考:What is Cache Busting?(KeyCDN)

CDN・WordPress・サーバー側のキャッシュも疑う

ブラウザのキャッシュをすべてクリアしても古いままなら、ブラウザより手前にあるキャッシュを疑います。最近のサイトは何層にもキャッシュが重なっているので、ここを見落とすと延々と直りません。

  • CDN(CloudflareなどのCDN):エッジサーバーがファイルを保持しています。管理画面から該当ファイルや全体の「パージ(キャッシュ削除)」を行うと反映されます。
  • WordPressのキャッシュプラグイン:WP Super CacheやW3 Total Cacheなどは生成済みのHTMLを保存します。記事を直しても表示が変わらないときは、プラグインの「キャッシュ削除」を実行します。
  • サーバーキャッシュ:レンタルサーバー側にもページキャッシュ機能があり、コントロールパネルから手動でクリアできる場合があります。

順番としては、ブラウザ → サーバー/プラグイン → CDNと外側に向かって確認すると原因を切り分けやすいです。WordPressのキャッシュ設定でつまずいたときは、WP Super Cacheのキャッシュエラーを解消する設定方法もあわせてどうぞ。プラグイン全体の見直しならWordPressで本当に必要だった8つのおすすめプラグインも参考になります。

まとめ:反映されないときに試す順番

「直したのに反映されない」と感じたら、次の順で試すと多くは解決します。

  1. スーパーリロード:WindowsはCtrl + F5Ctrl + Shift + R、MacはCmd + Shift + R(SafariはCmd + Option + R)。まずはこれ。
  2. ブラウザのキャッシュ削除Ctrl + Shift + Deleteから「キャッシュされた画像とファイル」を消す。
  3. 開発者ツールで無効化:制作中はNetworkタブの「Disable cache」で常に最新を表示。
  4. 制作者は仕組みで解決?v=のバージョン付与かファイル名ハッシュで、訪問者全員に確実に最新版を届ける。
  5. 外側のキャッシュも確認:CDN・WordPressキャッシュプラグイン・サーバーキャッシュをパージする。

一番おすすめしたいのは、制作者側でキャッシュバスティング(バージョン管理)を仕込んでおくことです。これさえ入れておけば、「更新ボタン押してください」とお願いして回る手間がなくなり、誰の画面でも最新版が表示されます。クライアントに「変わってないよ」と言われる前に、仕組みで先回りしておきましょう。