WordPressサイトに加えた変更が反映されない…というのは実はよくあること。これは通常、ブラウザ、WordPressサイト、またはコンテンツデリバリネットワーク(CDN)のいずれかのキャッシュの問題に起因しています。
今回は、WordPressサイトの変更が反映されない問題を掘り下げ、なぜキャッシュがこの問題を引き起こすのかをご説明した後、トラブルシューティングの方法をご紹介していきます。
WordPressの変更が表示されない時の解決策について、動画での解説もご用意しています。
WordPressサイトの変更はいつ反映される?
一般には、WordPressサイトに加えた変更は、「保存」ボタンをクリックした直後に反映されるはずです。ボタンをクリックしてから変更したページを開くと、その変更が表示されます。また、サイト訪問者にも同様に変更が表示されるのが正常です。
すぐに変更が反映されない場合は、何かしらの問題があります。
WordPressサイトに変更が反映されない原因
先に述べた通り、WordPressサイトが更新されない最も一般的な原因はキャッシュにあります。
具体的には、以下のいずれかのキャッシュに問題がある可能性が高いです。
- ブラウザキャッシュ─訪問者のローカルコンピュータ上の特定の静的ファイルを保存
- ページキャッシュ─訪問ごとにPHPを使ってページを生成するのを回避するためにサイトの静的なHTMLバージョンを保存
- CDNキャッシュ─世界中のサーバーネットワークに静的コンテンツを保存し、読み込み時間を短縮
キャッシュの具体的な仕組みについては、今回理解する必要はありませんが、サイトの以前のバージョンがまだ「キャッシュ」に保存されていることが原因です。
つまり、WordPressサーバーのバージョンを更新したにもかかわらず、サイトの古くなったキャッシュバージョンが表示されており、反映したはずの変更が隠れているという状態になります。
解決策として、さまざまなキャッシュをクリアし、サイトの最新バージョンを「再読み込み」する方法を見ていきます。一度キャッシュをクリアすれば、すぐに変更が表示されるはずです。
キャッシュの問題以外の原因としては、WordPressのパーミッションが関係しているかもしれません。これは、会員制サイトのように、ユーザーによって表示されるコンテンツが異なる動的なサイトでよく見られます。
このシナリオでは、変更が正常に保存されていても、更新されたコンテンツを閲覧する権限がないために、古いコンテンツが表示されています。ブログやポートフォリオのようなシンプルなサイトではかなり稀ですが、動的なサイトでは起こり得ます。
WordPressの変更が反映されない時の解決策
以下、トラブルシューティングの手順を以下4つの原因に分けてご説明していきます。
最初の3つについては、順番に実行することをお勧めします。まずは、ブラウザのキャッシュをクリアすることから始めましょう。
ブラウザキャッシュの問題
ブラウザキャッシュは、サイトの特定のアセットをコンピュータのブラウザキャッシュに保存することで機能しています。これにより、アセットをWordPressサイトのサーバーから何度もダウンロードする必要がなくなります。ブラウザキャッシュの問題を解決するには、サーバーから最新バージョンのファイルをダウンロードするようにブラウザを強制します。これには、以下のような方法があります。
ブラウザの強制再読み込み
単一ページのブラウザキャッシュの問題を解決するには、ブラウザを強制再読み込みします。
強制的にブラウザを再読み込みすると、キャッシュをスキップし、すべてのアセットがウェブサーバーからダウンロードされます。
変更を確認したいページを開き、以下のショートカットキーを押してください。
- Windows:CTRL + F5
- Mac:Cmd + R
ブラウザキャッシュのクリア
強制再読み込みで問題が解決されない場合は、ブラウザのキャッシュをクリアする必要があるかもしれません。キャッシュを完全にクリアすると、最新バージョンのサイトファイルがダウンロードされるようになります。
キャッシュのクリア方法は、ブラウザによって異なります。主要ブラウザでキャッシュをクリアする方法はこちらでご紹介しています。
Cache Busting(キャッシュバスティング)
これで、自分のコンピュータ上での問題は解決されますが、ともすると訪問者のブラウザでは(キャッシュをクリアしていないために)まだ変更が反映されていないかもしれません。
これを回避するため、少し高度な方法ですが、「キャッシュバスティング」を行い、訪問者にも確実に最新バージョンを提供することができます。キャッシュバスティングとは、日本語にすると「キャッシュの破壊」という意味になります。
例えば、サイトのロゴのファイル名が「logo.png」だとします。ロゴを更新し同じ名前(logo.png)の新しいファイルをアップロードした場合、訪問者のブラウザは元のlogo.pngファイルを読み込むため、ロゴの変更がすぐに適用されない可能性があります。
キャッシュバスティングで解決するには、ファイル名を変更するだけ。
同じ名前(logo.png)で古いファイルを上書きするのではなく、別の名前(logo-v2.pngなど)でファイルをアップロードします。これにより、ファイル名が変更されるため、訪問者にもすぐに変更が反映されるようになります。
この方法は、CSSスタイルシートなどのスクリプトにも有効です。CSSの変更がWordPressに反映されない場合は、この方法で解決できる可能性があります。
キャッシュバスティングには、ファイル名の変更以外にも、ファイルパスの変更やクエリ文字列の追加などがあります。
- オリジナル:yoursite.com/style.css
- ファイル名─yoursite.com/stylev2.css
- ファイルパス─yoursite.com/v2/style.css
- クエリ文字列─yoursite.com/style.css?ver=2
WordPressキャッシュの問題
WordPressのキャッシュにはさまざまな種類がありますが、最も可能性が高いのはページキャッシュです。
通常、サーバーはPHPを使用して、訪問ごとにサイトのHTMLをゼロから構築します。その後、完成したHTMLを訪問者のブラウザに送信し、ページがレンダリングされます。
サイトを高速化するため、完成したHTMLをキャッシュに保存することができ、サーバーが訪問ごとにPHPを処理したりデータベースに問い合わせたりする手間を省くことができます。このため、サイトを更新しても、サーバーは変更前のキャッシュされたHTMLを提供するため、すぐに変更が反映されません。
ほとんどのホスティングサービスやキャッシュプラグインは、コンテンツを公開または更新するたびに自動的にキャッシュをクリアすることで、このような問題を回避しています。ページキャッシュに問題がある場合は、キャッシュソリューションにこのような設定がないか、正しく動作していない可能性があります。
また、多くのキャッシュソリューションは、WordPressの管理者ユーザーにはキャッシュされたコンテンツを表示されないようにします。このため、管理者アカウントをログアウトすると、ログイン時には見えていた変更が表示されない(つまり訪問者にも表示されない)ということもあります。
この場合は、まず手動でキャッシュをクリアしてみてください。
これにより、保存されているすべてのHTMLバージョンのページが削除され、最新のバージョンがゼロから構築されます。そしてその新しいバージョンがキャッシュに保存され、再びキャッシュのパフォーマンスの利点を活かすことができます。
WordPressのキャッシュをクリアする方法は、お使いのキャッシュソリューションによって異なりますが、今回は2つの方法をご紹介します。
- Kinstaでキャッシュをクリアする(Kinstaのホスティングプランをご利用の方)
- キャッシュプラグインを使用してキャッシュをクリアする
Kinstaでキャッシュをクリアする
Kinstaでは、サーバーレベルでページキャッシュを実装しているため、キャッシュプラグインは不要です。Kinstaでサイトキャッシュをクリアするには2つの方法があります。
1つはWordPress管理画面の左サイドバーにある「Kinsta Cache」を選択し、「Clear All Cache」ボタンをクリックします。
別の方法として、MyKinstaからもキャッシュをクリアすることができます。MyKinstaにログインし、「WordPressサイト」>(サイト名)>「ツール」に移動し、「サーバーキャッシュ」セクションの「キャッシュをクリア」をクリックします。
プラグインを使ってキャッシュをクリアする
Kinsta以外でWordPressサイトをホスティングしている場合は、ページキャッシュの処理にキャッシュプラグインを使用しているかもしれません。
キャッシュプラグインには、サイト全体のキャッシュをクリアする機能が組み込まれています(問題が見られる個々のコンテンツのキャッシュだけをクリアする機能があることも)。
すべてのキャッシュプラグインを取り上げることはできませんが、いくつか人気の選択肢を見てみましょう。どのプラグインでも、だいたい似たような手順になります。
WP Super Cache
WordPressのツールバーまたは「設定」>「WP Super Cache」で「Delete Cache」をクリックします。
WP Fastest Cache
WordPressツールバーの「Delete Cache」をクリックします。
またこのプラグインでは、問題のあるコンテンツのキャッシュだけを選んでクリアすることもできます。
- 投稿、固定ページ、またはカスタム投稿タイプの一覧を開く
- 変更が反映されないコンテンツにカーソルを合わせる
- 「Clear Cache」をクリックする
WP Rocket
WordPressツールバーの「WP Rocket」にカーソルを合わせ、「Clear cache」を選択します。
特定のコンテンツのキャッシュをクリアするには、一覧ページでカーソルを合わせ、「Clear this cache」をクリックします。
CDNキャッシュの問題
世界中のユーザーを対象とするWordPressサイトの読み込み時間を改善するため、コンテンツデリバリネットワーク(CDN)を使用している場合は、CDNキャッシュに問題があるかもしれません。
CDNは、世界中のサーバーネットワークにサイトの静的コンテンツをキャッシュし、訪問者に最も近い場所からファイルを提供します。
しかし、CDNが古いバージョンの画像ファイルやCSSスタイルシートをキャッシュしていると、変更が表示されないという問題につながることがあります。コンテンツ自体で起こる可能性は低いですが、画像やスクリプトなどをCDNで提供する静的ファイルでよく見られます(関連記事:WordPressのアイキャッチ画像が表示されない場合の解決策)。
これも他のキャッシュの問題と同様、CDNのキャッシュをクリアすることで解決可能です。手順は例によって、お使いのCDNサービスによって異なります。今回は、KinstaでCDNキャッシュをクリアする方法をご紹介します。
別のCDNサービスをご利用の場合は、公式ドキュメントを確認してみてください。
KinstaのCDNキャッシュをクリアする
Kinstaでは、追加料金なしでCDNをすべてのお客様に提供しています。CDNのキャッシュは、MyKinstaからクリアすることができます。
MyKinstaで問題のあるWordPressサイトを選択し、左サイドバーから「CDN」を開いて、「CDNキャッシュをクリアする」をクリックすれば完了です。
ユーザー役割およびパーミッションの問題
キャッシュの問題が原因でない場合、WordPressのユーザー役割およびパーミッションの設定に問題があり、変更が反映されていない可能性もあります。サイトは正しく更新されていても、ユーザーアカウントに変更を閲覧する権限が付与されていないかもしれません。
会員制サイトでは、一般に有料会員に表示されるコンテンツと、メンバー登録を行なっていないユーザーに表示されるコンテンツが異なります。たとえば、前者のコンテンツを変更し、シークレットウィンドウでサイトを開くと、ログイン状態が無効になり、当然コンテンツを見ることができなくなってしまいます(逆もまた然り)。
複数のメンバーシップを設けているサイトでは、さらに複雑になる可能性があります。
この問題を解決するには、まず該当するコンテンツを閲覧する権限を持っているアカウントにログインできているかを確認してください(アカウントにログインできていなかった、という初歩的なミスもあり得ます)。
この手の問題を簡単にデバッグして、WordPressアカウントを素早く切り替えるには、無料のUser Switchingプラグインが役に立ちます。
まとめ
多くの場合、WordPressサイトの変更が反映されない問題は、キャッシュ(ブラウザキャッシュ、ページキャッシュ、CDNキャッシュ)に関係しています。
キャッシュをクリアすることで、自分と訪問者の両方にサイトの最新バージョンを表示することができます。どのキャッシュが原因になっているかがわからない場合は、まずはブラウザのキャッシュ、それからページキャッシュ、そして最後にCDNキャッシュという順番でクリアすることをおすすめします。
また別の原因として、コンテンツを閲覧する権限を持たないために変更を確認できないということもあります。標準的なブログやポートフォリオサイトで起こることは滅多にありませんが、会員制サイトのような特定のユーザー限定のコンテンツを持つサイトでは起こり得ます。この問題を回避するためには、適切な権限を持つアカウントを使用しているかどうかを確認してください。
WordPressサイトの変更が表示されないという問題について、何かご質問がありましたら、以下のコメント欄でお知らせください。
コメントを残す