動的な配信

動的な配信とは、ページ(モバイル、タブレット、パソコン)をリクエストしたユーザー エージェントに応じて、同じ URL で異なる HTML(および CSS)をサーバーから返すようにサイトを設定する方法です。

この設定方法では、モバイル ユーザー エージェント用にサイトの HTML が変更される(パソコン ユーザー エージェントのクロール時にはモバイル コンテンツが「隠される」)ことがすぐにはわかりません。したがって、サーバーからヒントを送信して、スマートフォン用の Googlebot もページをクロールしてモバイル コンテンツを検出できるようにリクエストすることをおすすめします。このヒントは Vary HTTP ヘッダーで実装します。

動的な配信では、同じ URL からデバイスに応じて異なるコードが配信されます。

要約

  • Vary HTTP ヘッダーを使用して、ユーザー エージェントに応じた変更を伝えます。
  • ユーザー エージェント文字列を正しく検出します。

Vary HTTP ヘッダー

Vary HTTP ヘッダーには、重要で有益な効果が 2 つあります。

  • キャッシュからページを配信するかどうかを決定する際にユーザー エージェントを考慮する必要があることを、ISP などで使用されるキャッシュ サーバーに知らせます。Vary HTTP ヘッダーがないと、モバイル ユーザーにパソコン用 HTML ページのキャッシュが誤って配信される場合(またはその逆の場合)があります。
  • Googlebot がモバイル デバイス向けコンテンツを迅速に検出できるようになります。有効な Vary HTTP ヘッダーは、モバイル デバイス向けコンテンツを配信する URL を Google がクロールする際にシグナルとして使用されるからです。

Vary HTTP ヘッダーは、次に示すように、リクエストに対するサーバーのレスポンスの一部です。

HTTP/1.1 200 OK
Content-Type: text/html
Vary: User-Agent
Content-Length: 5710
(... rest of HTTP response headers...)

Vary HTTP ヘッダーは、ページをリクエストしたユーザー エージェントに応じてレスポンスの内容が異なることをブラウザに伝えます。サーバーですでに Vary HTTP ヘッダーを使用している場合は、すでに配信されているリストに User-Agent を追加できます。

ユーザー エージェントの正確な検出

一般に、ユーザー エージェントの検出(ユーザー エージェントの「スニッフィング」と呼ばれることもあります)は、エラーが発生しやすい処理です。原因はさまざまですが、よく見られるのは次の 3 種類の問題です。

  1. ユーザー エージェントの検出は、照合に使用されるユーザー エージェント文字列(または部分文字列)のリストに依存しています。この種のリストは、常にメンテナンスと更新を行わないと、新しいユーザー エージェントと一致しなくなります。実際には、この種のリストの多くは適切なメンテナンスが行われておらず、最新の状態でないため、ユーザー エクスペリエンスが低下する原因となっています。
  2. ユーザー エージェントの照合で不一致が発生することもよくあります。パソコン ユーザー エージェントがモバイル ユーザー エージェントとして検出されたり、モバイル ユーザー エージェントがパソコン ユーザー エージェントとして検出されたりします。同様に、サイトでタブレット デバイスが誤ってスマートフォンとして処理されることもよくあります。サイトにアクセスするブラウザのユーザー エージェントの検出にあたっては、一般的なモバイル文字列を探す(たとえば「Android」という単語だけをチェックする)のではなく、スマートフォン固有の文字列を探す(たとえば「Android」と「Mobile」の両方をチェックする)ようにします。詳しくは Google のブログ投稿をご覧ください。

  3. ユーザー エージェントの検出ではクローキングに十分注意してください。ユーザー エージェントを検出する際、サイトではユーザー エージェント文字列でデバイス名を探してデバイスクラスまたはデバイスタイプを検出します。Googlebot だけを検索するべきではありません。すべての Googlebot ユーザー エージェントは自身を特定のモバイル デバイスと見なすので、モバイル デバイスとまったく同様に扱う必要があります。

フィードバックを送信...