ホームページの文章や画像を差し替えたのに、開いてみると前のままになっている——この記事は、いまその画面を見ている方に向けて書いています。制作会社に連絡する前に、自分で確かめられることを順番に並べます。
先に結論です。更新が見えない原因の大半は「どこかに保存されている古いコピー(キャッシュ)が表示されている」ことで、そのコピーの置き場所は4つしかありません。①自分のブラウザ、②WordPressなどのCMSやキャッシュ系プラグイン、③CDNやサーバーのキャッシュ、そして④そもそも更新が本番に公開されていない、です。最初にやることは1つだけ、「自分にだけ古く見えているのか、誰が見ても古いのか」を分けることです。これで見に行く先が半分になります。
なお、Googleの検索結果に出るタイトルや説明文が古いままという話は、ここで扱うキャッシュとは別の仕組みです。そちらはサイト更新が検索結果に反映されない原因と早める手順にまとめています。
まず30秒で「誰に古く見えているか」を分ける
次の3つを試すと、古いコピーがどの層にあるかがほぼ決まります。どれも設定を壊さない確認なので、上から順に試して構いません。
試すこと | 新しい内容が見えたら | まだ古いままなら |
|---|---|---|
ブラウザのシークレット(プライベート)ウィンドウで開く | 原因は①自分のブラウザ。キャッシュを消せば直る | ②〜④のどこか。次へ |
スマートフォンをWi-Fiから外し、モバイル回線で開く | 社内ネットワークやプロキシ側の保存が残っている可能性 | サーバー側(②③)か④。次へ |
URLの末尾に ?v=1 のような文字を付けて開く | そのURLの保存コピーが古い=②か③。削除(パージ)すれば直る | ④更新そのものが本番に入っていない可能性が高い |
3つ目の「?v=1」は、多くの設定ではキャッシュから見て別のURLとして扱われるため、保存済みのコピーを迂回して最新を取りに行かせる確認です。ただしCDNの設定によっては「?」以降を無視するものもあるので、これで古いままでも③を完全には否定できません。そのときは下の「HTTPヘッダーを見る」で確かめます。
HTTPヘッダーを見れば、どこが返しているかが分かる
見た目では区別できなくても、サーバーが返す情報(レスポンスヘッダー)には「どこに保存されていたものか」が書かれています。Macのターミナルなら次の1行です。
curl -sI https://example.com/更新したページ
見るのは3種類だけです。Cache-Control(どれだけの期間保存してよいかの指示)、Age(保存されてから何秒経ったか)、そしてCDNごとの印(Cloudflareなら cf-cache-status: HIT のような行)です。HITや大きなAgeが出ていれば、返しているのは保存済みのコピーです。Windowsでも、ブラウザでF12キーを押して開くデベロッパーツールの「ネットワーク」タブで、該当ページの行を選ぶと同じヘッダーが見られます。
これらのヘッダーの意味はHTTPキャッシュの標準仕様(RFC 9111 HTTP Caching)で決まっていて、どのサーバー・CDNでも読み方は共通です。
原因1|自分のブラウザが古いコピーを持っている
シークレットウィンドウでは新しく見えるなら、これです。直し方は2段階あります。
そのページだけ強制的に読み直す(スーパーリロード)
- Windows(Chrome・Edge):Ctrl+F5 または Ctrl+Shift+R
- Mac(Chrome・Safari):Command+Shift+R
多くの場合はこれで直ります。直らないときは、画像やCSSなどページが読み込む部品のほうが古いまま残っています。
それでも古ければ、キャッシュを削除する
Chromeでは、右上のその他アイコンから[閲覧履歴データを削除]を選び、期間を指定して[キャッシュされた画像とファイル]にチェックを入れて削除します。手順の詳細はGoogleのChromeの閲覧データを削除する(Chromeヘルプ)にあります。Cookieまで消すと各サイトからログアウトされるので、更新確認が目的なら「キャッシュされた画像とファイル」だけで足ります。
この原因の場合、お客様には最初から新しい内容が見えていることがほとんどです。慌てて制作会社に「反映されていない」と連絡する前に、シークレットウィンドウで一度確認する習慣を付けるだけで、やり取りが1往復減ります。
原因2|WordPressのキャッシュ系プラグインやサーバーの高速化機能
シークレットウィンドウでも古く、URLに「?v=1」を付けると新しく見える。WordPressのサイトでいちばん多いのがこの形です。表示を速くするために、作ったページをHTMLとして保存しておく仕組みが動いています。
- キャッシュ系プラグイン:WP Super Cache、W3 Total Cache、LiteSpeed Cache など。管理画面の上部バーや設定画面に「キャッシュを削除」「Purge All」といったボタンがあります
- レンタルサーバーの高速化機能:サーバー会社の管理画面にある「サーバーキャッシュ」などの設定。プラグインとは別に動いているので、プラグインを消しても残ります
- テーマや固定ページビルダーの独自キャッシュ:テーマ設定の中に削除ボタンがある場合があります
落とし穴は、キャッシュが二重・三重にかかっていることです。プラグインのキャッシュだけ消して「まだ古い」となったら、サーバー側も消します。誰が何を入れたか分からない場合は、管理画面のプラグイン一覧と、サーバー会社の管理画面の両方を見てください。
原因3|CDNが古い世代を配っている
CloudflareなどのCDN(世界各地にコピーを置いて配信を速くする仕組み)を通しているサイトでは、CDNの各拠点が保存したコピーを返します。ヘッダーにHITが出ていて、上の2つを消しても古いなら、CDNの管理画面からキャッシュを削除(パージ)します。Cloudflareなら、そのドメインのキャッシュ設定に「すべてパージ」や特定URLだけのパージがあります。
Mihataのサイトで実際に起きていること
このmihata.jpもCDN(Cloudflare)から配信しています。静的なファイルには長い保存期間を指定しているため、curl -sI で見ると、保存済みのコピーが使われていることを示す行が返ってきます。記事の本文を直した場合も、サイトを作り直す工程(ビルド)が終わるまでの数分間は、前の内容が出続けます。
運用していて分かったのは、「効かせすぎ」と「効いていない」の両方が事故になるということです。設定を書き忘れたファイルは保存期間ゼロで配られて表示が遅くなり、逆に長く保存しすぎたものは直しても古いまま残ります。そのため私たちは、中身を差し替えるファイルは保存を短く、変わらないファイルはファイル名ごと変えて長く保存するという分け方にしています。
原因4|そもそも本番に公開されていない
「?v=1」を付けても、別の回線で見ても古いなら、キャッシュではなく更新そのものが本番に入っていない可能性が高いです。現場で多いのは次の5つです。
よくある状態 | 確かめ方 |
|---|---|
「下書き保存」や「予約投稿」のままになっている | CMSの投稿一覧で状態が「公開済み」か |
テスト環境(ステージング)だけを更新している | 編集していた画面のURLが本番ドメインか |
FTPで別のフォルダ・別のサーバーに上げている | アップロード先のパスと、サーバー上のファイルの更新日時 |
画像は同じファイル名で上書きしたつもりが、別名で増えている | メディア一覧に似た名前の画像が2つないか |
サーバー移転やDNS切り替えの直後で、旧サーバーを見ている人がいる | 切り替えの日時と、旧サーバーの契約状況 |
最後のDNSの件は、移転直後の数時間〜1日程度、見る人によって新旧どちらのサーバーにつながるかが分かれる現象です。人によって見え方が違うという点では、自分だけサイトが表示されないときの原因と同じ切り分けが使えます。
更新を担当している方が社内にいない、あるいは誰がどの設定を入れたか分からない状態なら、それ自体を直す時期に来ているのかもしれません。私たちMihataはホームページ制作の中で、こうした更新の仕組みも含めてお預かりしています。記事の途中で恐縮ですが、よろしければサービスの内容も合わせてご覧いただけたら嬉しいです。
再発を防ぐ3つの決めごと
- 画像を差し替えるときは、ファイル名を変える。同じ名前で上書きすると、各所に保存された古い画像が残りやすくなります。「logo-2026.png」のように新しい名前で上げて、ページ側の指定を差し替えるのが確実です
- 更新したら、シークレットウィンドウとスマートフォンの回線の2つで確認する。自分の普段のブラウザだけで判断しない
- キャッシュがどこに何段かかっているかを1枚に書いておく。プラグイン名、サーバーの機能名、CDNの有無と、それぞれの削除ボタンの場所。担当者が替わっても迷いません
表示の崩れも同時に起きているなら、古いCSSが残っている可能性があります。スマートフォンで崩れる場合の切り分けはホームページがスマホで崩れる原因と直し方、ページそのものが見つからない場合は404エラーが出る原因と直し方を参照してください。
どの層で止まっているか分からないとき、あるいは更新のたびに同じことが起きるときは、いま見えている画面と、更新したページのURLをそのままお送りください。どこのキャッシュが古いかの切り分けからご一緒します。
よくある質問
ホームページを更新したのに、自分のパソコンでだけ古いまま表示されます。
自分のブラウザが古いコピーを持っている可能性が高いです。シークレットウィンドウで開いて新しい内容が見えるなら、それで確定です。WindowsならCtrl+F5、MacならCommand+Shift+Rで読み直し、直らなければブラウザの閲覧データ削除で「キャッシュされた画像とファイル」だけを消してください。この場合、お客様には最初から新しい内容が見えていることがほとんどです。
シークレットウィンドウでも古いままです。何を疑えばよいですか。
サーバー側のキャッシュか、更新が本番に入っていないかのどちらかです。URLの末尾に?v=1のような文字を付けて開き、新しく見えるならWordPressのキャッシュ系プラグイン、レンタルサーバーの高速化機能、CDNのどれかに古いコピーが残っています。それぞれの管理画面で削除します。キャッシュは二重三重にかかっていることがあるので、1つ消して古ければ次を消してください。
キャッシュをすべて消しても古いままです。
更新そのものが本番に公開されていない可能性が高いです。下書きや予約投稿のままになっていないか、テスト環境だけを更新していないか、FTPのアップロード先が本番のフォルダか、画像が上書きでなく別名で増えていないかを確認してください。サーバー移転やDNS切り替えの直後なら、旧サーバーを見ている人がいる可能性もあります。
画像を差し替えたときに古い画像が出続けないようにするには。
同じファイル名で上書きせず、新しい名前で画像を上げてページ側の指定を差し替えるのが確実です。ファイル名が変われば、ブラウザやCDNに保存された古い画像は使われなくなります。Mihataでも、中身を差し替えるファイルは保存期間を短く、変わらないファイルはファイル名ごと変えて長く保存するという分け方で運用しています。