更新が反映されていないんですけど。
すみませんが、ブラウザのキャッシュをクリアしてみていただけませんか?
Webディレクターとして、数年働いている方なら、1度や2度、「キャッシュをクリアしていただけませんか?」とクライアントに説明したことがあるはずです。
こんな方におすすめ
- 「キャッシュをクリアする」って何?と思っている方
- Webディレクターの方
- Web制作会社から「キャッシュクリアしてもらえませんか?」と言われたことがある方
上記のような方へ、キャッシュクリアについての疑問にお答えします。
わたしはWeb業界で20数年、働いているモノコト(@monokoto68)です。
これまで様々なWebサイト制作に携わってきました。
そんな現役Webディレクターが現場での実際に行われる「キャッシュクリア」を教えます。
「キャッシュをクリアしてほしい」という言葉には、制作側の常識とクライアント側の常識が交差するやり取りではないかと思っている。
キャッシュをクリアするとは
Webサイトを更新したにも関わらず、クライアントから「変わってないんですけど」と連絡をもらうことがあります。
大抵の場合、キャッシュをクリアすることで解決します。
キャッシュとは
キャッシュとは、パソコン上の保存されたWebサイトデータのことです。
Webサイトはサーバー上に存在します。
あなたが使っているパソコンからWebサイトにアクセスをしたときには、Webサーバー上にあるWebサイトをあなたのパソコンに一時的に保存しています。
何のためにあなたのパソコンに保存するのでしょうか。
2回目以降に、同じWebサイトにアクセスしたときに、もう一度、わざわざWebサーバーにアクセスすることなく、自分のパソコンの情報を表示させるためです。
そうすれば、Webサイトは非常に早く表示されます。
この保存されたデータのことをキャッシュと呼んでいます。
キャッシュをクリアするとは
キャッシュをクリアするとは、あなたのパソコンに保存されたWebサイトのデータを消すことを「キャッシュをクリアする」と言います。
キャッシュをクリアする方法は、各ブラウザによって違ってきますが、設定の項目の中に「閲覧履歴データを消去する」などと書かれています。
キャッシュをクリアすることで、もう一度、Webサイトにアクセスしたときに、自分のパソコンにデータがないから、Webサーバーに新たに情報を取得することになります。
キャッシュをクリアするのが面倒なときには
パソコンの場合に限りますが、ブラウザでWebサイトを表示している状態で、「Ctrl」キーを押しながら「F5」キーを押すことで、保存されたデータ(キャッシュ)を無視して、Webサーバーにアクセスするということが可能です。
※パソコンによって違う場合あり
Webディレクターなら、クライアントに対して電話で以下の会話をしたことがありませんか?
コントロールキーを押しながらF5キーを押して見てもらえませんか。
あっ、変わりました。
キャッシュが残っていたみたいですね。
Webサイト更新作業についての対処方法
Webサイト制作者側では、既存ファイルを更新して、本番サーバーで上書きします。
上書きだと、サーバーは新しいファイルでも、お客さまのパソコンでは古いファイルが残ったままになります。
いわゆるキャッシュが残った状態ですね。
この対処方法はどうしたらよいのでしょうか?
制作側の通常の更新作業
例えば、Webサイトを更新する上で、Aというファイルに修正を加え、Webサーバー上にあるAというファイルを上書きします。
当然の作業ですよね。
これだと、Aというファイルは元々存在していたファイルのため、過去に一度でもWebサイトを見たユーザーは、自分のパソコンにAファイルは保存されているかもしれません。
Webサーバー上では、新しい情報が掲載されたAというファイルであっても、自分のパソコンでは新しい情報に書き換わっていないAファイルになります。
クライアント側の常識
クライアント側で「更新されていない」ということは、一般のお客様でも同じで「更新されていない」のと同じです。
新しい情報をいち早くお届けしなければならないのに、「更新されていない」では困ります。
一般のお客様に対して、「キャッシュをクリアしてご確認ください」などと言えるわけがありません。
Webサイト制作のプロとして、Webディレクターは事前に対処する必要がありますね。
対処方法
少し技術的な話ですが、以下の方法が考えられます。
- 更新ファイルのファイル名を変える
- meta要素にno-cacheを追記する
- リンクに引数をつける
そもそもファイル名を変えてしまうのが一番の方法です。
しかし、ファイル名を変えるということは、リンク元の記述も変える必要があるため、更新作業のボリュームが増え、ミスも起こりやすくなるため、得策ではありません。
meta要素にno-cacheを追記すると、キャッシュデータを読みにいかないようにすることが可能です。
解決策ではありますが、大きな意味でユーザーフレンドリーではありません。
リンク先に引数をつけるとは、同じAというファイルであっても、引数を付けることによって、擬似的に違うファイルとみなして、キャッシュを読みにいかないようにすることです。
例えば、「A.html?=2022」などします
これもリンク元を修正しなければなりませんが、ファイル名を変える必要はないため、ミスも起きにくくなります。
特に、CSSに変更を加えたときなどには有効な方法になります。
実際の現場では、対処方法は時と場合によって方法を変えます。
ただ、そのまま上書きをすることが多いですね。
クライアントには、「キャッシュをクリアの上、ご確認ください」とお伝えしているのが現状です。
キャッシュをクリアしても更新されないときは
キャッシュは、あなた個人のパソコン端末だけに存在するのではありません。
Webサーバー自体にもキャッシュを持っている場合があります。
あなたのパソコンのキャッシュをいくら消そうとも、情報が更新されないことがあります。
Webサーバーを管理している会社に対して、キャッシュをクリアしてもらう必要があるため、少し厄介ですね。
Webサーバーのもつキャッシュは、数時間で自動的にキャッシュがクリアされますので、しばらく待ってみるとよいでしょう。
他にも、Webサーバー内にキャッシュファイルが自動生成される場合もあるため、FTPなどでWebサーバーにアクセスして、キャッシュファイルを直接削除しなければならないことも。
Webディレクターなら、言ったことのある言い訳
このキャッシュの影響で、実際には更新しているのに変わっていないと言う症状を利用した言い訳をWebディレクターなら言ったことがありませんか?
わたしの経験でも実際には更新し忘れていて、クライアントから変わっていないと指摘されたあとに、慌てて更新を行い、「キャッシュの影響じゃないでしょうか」などと言い、その場をしのいだことがあります。
キャッシュの言葉を多くクライアントに使っていると、クライアント側から「キャッシュですかね?」なんて言われることもあります。
まとめ:「キャッシュをクリアしていただけませんか?」Webディレクターのよく言うワード
Webディレクターが言ったことのある「キャッシュをクリアしていただけませんか?」は、制作側の常識を押しつけ過ぎなのではと感じる。
キャッシュをクリアしなければ、新しい情報が見れないのはおかしい。
とはいえ、日々の更新作業に追われている場合やクリティカルではない場合は、対処せずに「画面が変わらない場合は、キャッシュをクリアの上、ご確認ください」と言ってしまうのが現状だ。