2024 年 12 月 9 日(月曜日)
Google がキャッシュ保存をできるようにしてください。ぜひともお願いします。
インターネットの成長に伴い、Google によるクロールも増加しています。Google のクロール インフラストラクチャは、ヒューリスティックなキャッシュ保存のメカニズムをサポートしています。これは以前からそうです。ただ、ローカル キャッシュから返されるリクエストの数は 10 年前と比較して減少しています。10 年前はフェッチ全体の約 0.026% がキャッシュに保存できました。この数値も決して高いわけではありませんが、現在では 0.017% にまで下がっています。
キャッシュ保存が重要である理由
キャッシュ保存は大きなパズルと言えるインターネットの重要なピースです。キャッシュ保存により、再度ページにアクセスしたときに高速でページが読み込まれます。また、コンピューティング リソースを節約でき、結果として天然資源の節約にもつながります。クライアント側とサーバー側の両方において費用のかかる帯域幅の使用量も大幅に削減されます。
大規模なサイトで、個々の URL のコンテンツが滅多に変更されない場合は特に、ローカルでのキャッシュ保存を可能にするとより効率的にサイトがクロールされるようになります。Google クローラーのインフラストラクチャは、HTTP キャッシュ標準で定義されているヒューリスティックな HTTP キャッシュ保存をサポートしています。具体的には ETag
レスポンスおよび If-None-Match
リクエスト ヘッダーと、Last-Modified
レスポンスおよび If-Modified-Since
リクエスト ヘッダーを使用します。
エラーとミスが発生しにくい ETag
を強くおすすめします(Last-Modified
値とは異なり値が構造化されていません)。可能であれば両方を設定してください。きっと、インターネットも喜ぶはずです。
どのような変更をクライアントがキャッシュを更新する必要がある変更と捉えるかは、個別の判断です。コンテンツに対して重大な変更を行った場合に、キャッシュの更新を求めるようにすることをおすすめします。たとえば、ページの一番下にある著作権の日付を更新しただけでは重大な変更とは言えないでしょう。
ETag
と If-None-Match
Google クローラーは HTTP キャッシュ標準の定義のとおり、ETag
ベースの条件付きリクエストをサポートしています。つまり、Google クローラーにキャッシュ保存の設定を伝えるには、アクセスされた URL でホストされているコンテンツを一意に示す任意の ASCII 文字列を Etag
値として設定します(通常はコンテンツのハッシュまたはバージョン番号を使用しますが、円周率でも何でも構いません)。たとえば、同じ URL で同じコンテンツの複数のバージョンをホストしている場合(モバイル版と PC 版など)、各バージョンの一意の ETag
値を設定します。
キャッシュ保存をサポートしている Google クローラーはその URL の以前のクロールで返された If-None-Match header
の ETag
値を送信します。クローラーが送信した ETag
値が、サーバーが生成した現在の値と一致する場合、サーバーは HTTP 304
(変更なし)のステータス コードを HTTP 本文なしで返します。この最後の「HTTP 本文なし」という点が、次の観点から重要となります。
- サーバーはコンピューティング リソースをコンテンツの生成に充当する必要がないため、費用を抑えられる
- サーバーは HTTP 本文を転送する必要がないため、費用を抑えられる
ユーザーのブラウザまたは Googlebot のようなクライアント サイドでは、その URL に含まれるコンテンツはクライアントの内部キャッシュから取得されます。データ転送を伴わないため、この処理は速やかに完了します。ユーザーの満足度向上につながると同時に、ユーザー用にリソースを節約できる可能性もあります。
Last-Modified
と If-Modified-Since
ETag
と同様に、Google クローラーは HTTP キャッシュ標準の定義のとおり、Last-Modified based
の条件付きリクエストもサポートしています。これは結果からみると ETag
と同様に機能します。つまり、識別子はリソースがキャッシュ保存の対象となるかどうかを判断するために使用されます。また、クライアント サイドでも ETag
と同じ効果をもたらします。
ただ、キャッシュ ディレクティブとして Last-Modified
を使用する場合には、いくつかの推奨事項があります。
-
Last-Modified
ヘッダーの日付は HTTP 標準に従った形式とします。解析に関する問題が発生しないように、「Weekday, DD Mon YYYY HH:MM:SS Timezone」という日付形式を使用することをおすすめします(「Fri, 4 Sep 1998 19:15:56 GMT」など)。 -
必須ではないものの、
Cache-Control
ヘッダーのmax-age
フィールドを設定して、クローラーが特定の URL を再クロールするタイミングを判断できるようにすることも検討してください。max-age
フィールドの値には、コンテンツが変更されない想定期間を秒単位で設定します。たとえば、Cache-Control: max-age=94043
と設定します。
例
私のように、ヒューリスティックなキャッシュ保存の仕組みを理解するのが難しい方は、一連のリクエストとレスポンスの例を確認すると理解が深まります。こちらでは、1 つは ETag
/ If-None-Match
、もう 1 つは Last-Modified
/ If-Modified-Since
という 2 つの流れについて、その仕組みをまとめています。
ETag / If-None-Match |
Last-Modified / If-Modified-Since |
|
---|---|---|
クロールに対するサーバーのレスポンス: これは ETag と Last-Modified のどちらの前提条件のヘッダー フィールドをクローラーが保存できるかについてのレスポンス。 |
HTTP/1.1 200 OK Content-Type: text/plain Date: Fri, 4 Sep 1998 19:15:50 GMT ETag: "34aa387-d-1568eb00" ... |
HTTP/1.1 200 OK Content-Type: text/plain Date: Fri, 4 Sep 1998 19:15:50 GMT Last-Modified: Fri, 4 Sep 1998 19:15:56 GMT Cache-Control: max-age=94043 ... |
後続のクローラーによる条件付きリクエスト: 条件付きリクエストは以前のリクエストで保存された前提条件のヘッダー値に基づく。値はサーバーに返送され、If-None-Match および If-Modified-Since リクエスト ヘッダーが検証される。 |
GET /hello.world HTTP/1.1 Host: www.example.com Accept-Language: en, hu User-Agent: Googlebot/2.1 (+http://www.google.com/bot.html) If-None-Match: "34aa387-d-1568eb00" ... |
GET /hello.world HTTP/1.1 Host: www.example.com Accept-Language: en, hu User-Agent: Googlebot/2.1 (+http://www.google.com/bot.html) If-Modified-Since: Fri, 4 Sep 1998 19:15:56 GMT ... |
条件付きリクエストに対するサーバーのレスポンス: クローラーが送信した前提条件ヘッダーの値はサーバーサイドで検証されているため、サーバーは 304 HTTP ステータス コード(空の HTTP 本文)をクローラーに返す。これは後続のリクエストごとに、前提条件の検証が失敗するまで(サーバーサイドで ETag または Last-Modified の日付が変更されるまで)実行される。 |
HTTP/1.1 304 Not Modified Date: Fri, 4 Sep 1998 19:15:50 GMT Expires: Fri, 4 Sep 1998 19:15:52 GMT Vary: Accept-Encoding If-None-Match: "34aa387-d-1568eb00" ... |
HTTP/1.1 304 Not Modified Date: Fri, 4 Sep 1998 19:15:50 GMT Expires: Fri, 4 Sep 1998 19:15:51 GMT Vary: Accept-Encoding If-Modified-Since: Fri, 4 Sep 1998 19:15:56 GMT ... |
ユーザーの満足度を高め、ホスティング費用を少しでも節約したい場合は、ホスティング プロバイダ、CMS プロバイダ、デベロッパーと、サイトで HTTP キャッシュ保存を有効にする方法について検討してください。少なくとも、ユーザーのサービス満足度が少し上がるはずです。
キャッシュ保存について話がしたい場合は、最寄りの検索セントラルのヘルプ コミュニティにアクセスしてください。Google によるキャッシュ保存についてご意見がある方は、このブログ投稿と一緒に公開しているキャッシュ保存に関するドキュメントにフィードバックをお寄せください。
クロールについて詳しくは、12 月のクロール情報シリーズ全体をご覧ください。
Google 検索の更新に関する Q&A
2023 年 11 月 2 日(木曜日) Google 検索では、検索ランキング システムを定期的に更新し、最も関連性の高い有用なコンテンツを表示できるようにしています。過去数週間に一連の重要な更新が公開されており、今月は 2 件の更新があります。そこで、更新の仕組み、更新を公開する理由、更新時にクリエイターが考慮すべき点(ある場合)について説明し、注意点を以下に示します。 本日より、 2023 年 11 月のコア アップデートをロールアウトする ことを発表しました。2023 年 10 月のコア
Google 検索の多言語検索への対応
2023 年 9 月 8 日(金曜日) 世界中の多くの国や地域では、人々は複数の言語で話し、検索するのが一般的です。ユーザーに最適なサービスを提供するために、Google はさまざまな方法を使って、検索結果を表示するのに最適な言語を自動的に決定しています。 Google 検索では、言語設定に一致する結果のみが表示されると思われている方もいらっしゃるでしょうが、それでは思っているほど役に立ちません。 ブラウザ、モバイル
ヘルプフル コンテンツの作成におけるページ エクスペリエンスの影響
2023 年 4 月 19 日(水曜日) 一般的にヘルプフル コンテンツには、優れたページ エクスペリエンスを提供することが求められます。この度、 ヘルプフル コンテンツの作成に関するガイドライン にページ エクスペリエンスについてのセクションを追加し、 ページ エクスペリエンスに関するヘルプページ を改訂したのは、そのためです。これにより、サイト所有者の皆様がコンテンツ作成プロセスの一環として、より包括的にページ エクスペリエンスについて検討できるものと考えています。
AI 生成コンテンツに関する Google 検索のガイダンス
この投稿では、検索でユーザーに有用なコンテンツを表示するための Google の継続的な取り組みにおける、AI 生成コンテンツの位置づけについて詳しく説明します。
Google 検索ランキング システムに関する新たなガイドの導入
2022 年 11 月 21 日(月曜日) Google は、何年にもわたって、ブログ投稿やその他の一般向け発表を通じて、自動ランキング システムとその運用方法に関する情報を定期的に公開してきました。この度、それらの情報を一つにまとめて「 Google 検索ランキング システム ガイド 」を作成し、クリエイターや他のユーザーの皆様の関心が高い Google のシステムについて簡単に学べるようにしました。この新しいガイドでは、Google
2022 年 5 月のコア アップデートのリリース(Google 検索)
2022 年 5 月 25 日(水) Google では年に数回、ランキング処理全般に大幅な改良を加えており、このような改良を コア アップデート と呼んでいます。コア アップデートは、検索結果の全体的な関連性が向上し、すべてのユーザーにとって 利便性と有用性が高まるようにする ことを目的としています。本日、2022 年 5 月のコア アップデートをリリースします。ロールアウトが完了するまでに 1~2 週間ほどかかります。 コア アップデートは、Google
Google によるウェブページ検索結果のタイトル生成方法の詳細
2021 年 9 月 17 日(金曜日) 先月、 ウェブページ検索結果のタイトルを生成する 新しいシステムについて説明しました。その後、お客様から大変ありがたいフィードバックをいただき、タイトル システムをさらに改良しました。ここでは、Google が行った対策と、クリエイター向けのその他のガイダンスをご紹介します。 前回の投稿 で説明したように、新しいシステムでは、ウェブページ検索結果に表示するタイトルの大半には、HTML タイトル要素(タイトルタグとも呼ばれます)が使用されます。いただいた
ウェブページのタイトルの生成方法に関する最新情報
2021 年 8 月 24 日(火曜日) 検索結果と検索クエリの関連性をユーザーが判別する主な方法の 1 つは、検索結果に表示されたウェブページのタイトルを確認することです。そのため、Google 検索では、検索結果に掲載される文書に最適なタイトルを提供し、クリエイター、パブリッシャー、企業などが作成したコンテンツとユーザーを橋渡しできるよう努めています。 Google
Google ニュースでの表示に関するよくある質問への回答
2021 年 7 月 16 日(金) Google は、信頼できるさまざまなニュース メディアから関連性の高い権威あるニュースを提供することで、誰もが情勢を把握できるようにしたいと考えています。ここでは、Google ニュースと Google 検索でのニュースの表示について理解を深めていただけるよう、ニュース メディアから寄せられたよくある質問に回答します。 ニュース コンテンツは、Google ニュース、Google 検索、Google アシスタント、YouTube、Discover など、
Google 検索でカスタマー サポートの方法をハイライト表示する
2021 年 7 月 7 日(水曜日) ユーザーがビジネスへの問い合わせ方法を探すことはよくあるため、Google では、利用可能な最良の情報を表示し、 さまざまな形式 で可能な限りユーザーを支援できるよう取り組んでいます。そのために、ビジネスまたはサービスの最も正確な情報が表示されやすくなる、いくつかのおすすめの方法を実施していただくことをおすすめします。
2021 年 4 月の Google 商品レビューの更新情報についてクリエイターが知っておくべきこと
2021 年 4 月 8 日(木曜日) Google 検索は、 テスト、検証、審査プロセス を通じて、できる限り便利で役立つ情報を表示するよう常に努めています。それにより、ユーザーから高く評価されるのは、多数の商品をまとめただけの質の低いコンテンツではなく、詳細な調査結果を示した商品レビューであることがわかっています。そこで、そうしたコンテンツが高く評価されるように設計された、 ランキング システム の改善(「商品レビューに関するアップデート」と呼んでいます)についてお知らせいたします。
Google 検索で COVID-19 に関するお知らせをハイライト表示できる新しい方法の導入
2020 年 4 月 3 日(金曜日) COVID-19(新型コロナウイルス感染症)の流行により、多くの組織や団体が、日常生活に影響を及ぼす新型コロナウイルス関連の重要なお知らせを発表しています。 このような状況を受け、Google ではこうした特別なお知らせを Google 検索でハイライト表示するための新しい方法を導入します。各サイトは、ウェブページに SpecialAnnouncement 構造化データを追加 したり、 Search Console で COVID-19
進化する nofollow - リンクの性質を識別する新しい方法
2019 年 9 月 10 日(火曜日) 15 年ほど前、 nofollow 属性 がコメントスパムの対策として 導入されました 。間もなくして、広告関連のリンクやスポンサー リンクであることを示すための Google の 推奨方法 の一つとなりました。2005 年に nofollow が導入されて以降、ウェブは進化し、nofollow も進化するときがやってきました。 本日は、2 つの新しいリンク属性についてお知らせします。これらの属性も、Google
2019 年 8 月の Google コア アップデートについてサイト所有者が知っておくべきこと
2019 年 8 月 1 日(木曜日) Google ではほぼ毎日、検索結果を改善するための変更をリリースしています。ほとんどの変更は小さなものですが、それでも漸進的な改善に役立っています。 時には、重要な変更を行う場合もあります。サイト所有者やコンテンツ プロデューサーなどにとって実用的な情報があると判断した場合、Google ではそのようなアップデートを周知するようにしています。たとえば「Speed Update」を実施した際には、その数か月前から 事前通知とアドバイス を公開しました。
Google ニュースで成功を収める方法
2019 年 1 月 17 日(木曜日) 新年を迎えてしばらく経ちましたが、皆様が 2019 年に Google ニュースでさらなる成功を収められるように、ベスト プラクティスとアドバイスをいくつかご紹介いたします。 Google ニュースのニュース メディア向けヘルプセンター には、検討に値する有益な情報が多数掲載されています。この分野の資料、特に コンテンツ と 技術 に関するガイドラインをお読みください。 Google ニュースは、発信元のニュース