スマホ向け表示を分けているときはVary HTTPヘッダーを使うこと など10+4記事(海外&国内SEO情報)
スマホ向け表示を分けているときはVary HTTPヘッダーを使うこと
グーグルが理解できるように (Google Webmaster Help on YouTube)
グーグルが推奨するモバイルサイト構成には3つ種類がある。「レスポンシブWebデザイン」「同一URLで端末によって出し分け」「スマホ向けを別URLで作り、リダイレクトする」の3つだ。
このうちレスポンシブWebデザイン以外の2つの構成では、アクセスしてきた端末の「User-Agent(UA、ユーザーエージェント)」の情報に基づいてPCとスマートフォンで異なるHTML(やCSS)を返す。
これら2つの構成を採用する際には、Vary HTTPヘッダーを使用することをグーグルは強く勧めている。
Vary HTTPヘッダーとは、サーバーにアクセスがあったときに、データと一緒にサーバーから返すHTTPヘッダーの1つで「Vary」という名前のもののこと。「今回はこのHTMLを返したけど、この内容はユーザーエージェント名によって変わる場合があります」「この内容はクッキーの状態によって変わることがあります」といった意味を表すシグナルだ。
しかしVary HTTPヘッダーは本当に必要なのであろうか。
グーグルのマット・カッツ氏が説明した。
今回は日本語訳ではなくマット・カッツの説明を噛み砕いて、筆者の言葉で解説する。
結論から言えば、「Vary HTTPヘッダー使ったほうがいい」ということになる。
ネットでは「キャッシュ」が使われている
マット・カッツ氏は動画の前半では“キャッシュ”について技術的な説明をしている。まずキャッシュとは何かから解説していこう。
誰かがいったんアクセスしたWebページのコンテンツのコピーを、ネットワーク上などの別の場所に(一時的に)保持しておく。そして別のユーザーが同じページにアクセスしようとした際には、キャッシュしてあるコンテンツを返すことで、いちいち元のWebサーバーにアクセスしなくても同じデータをすぐにとれるようにする。こうした仕組みが“キャッシュ”だ。
CDN(コンテンツ・デリバリー・ネットワーク)や一部のISP(インターネット・サービス・プロバイダ)は、キャッシュを利用することで、ユーザーがWebサイトのコンテンツを表示する(ダウンロードする)速度を向上させている。
こうすることで、Webサーバーの負荷を軽減できレスポンスが速くなる(自分たちのキャッシュからデータをユーザーに返せば、インターネット回線への通信量を削減することもできる)。
キャッシュはちゃんと扱わないと問題が生じる場合も
このようなメリットがキャッシュにはあり、幅広く利用されているのだが、思わぬ影響が出ることがあり得るのだ。
PC向けページとモバイル向けページを同じURLで自動的に出し分けている場合を考えてみてほしい。まずPCからのアクセスがあり、そのデータがキャッシュされているとする。その後にスマートフォンからのアクセスがあった場合、キャッシュしていたデータを返すと、元のWebサーバーで行うデバイス判別が行われずに、ユーザーにはキャッシュされていたPC向けのページが返されてしまうのだ(その反対もあり得る)。
つまり、サーバー側でコンテンツを動的に出し分けている場合、キャッシュする側がうまく処理していないと、まずいことになり得るのだ。
グーグル検索でもキャッシュと同じ問題が起きうる
同じことが、グーグルのインデックスにも発生する。ここでも、PC向けページとモバイル向けページを同じURLで自動的に出し分けている場合を考えてみてほしい。
PC向けのGooglebotがまずWebページにアクセスしてその内容を取得し、インデックスする(つまりグーグルのサーバーにキャッシュを作成する)。そのあとにモバイル向けのGooglebotが同じページをクロールする際に、すでにグーグルのネットワークキャッシュがあるので、そのキャッシュを利用する。すると、モバイル向けGooglebotがPC向けのコンテンツを取得してしまうかもしれないのだ(その反対もあり得る)。
だからHTTPヘッダーでVaryを指定しておくのが安心
このような事態を防ぐことに役立つのが、Vary HTTPヘッダーだ。「ユーザーエージェント名によって内容が変わりますよ」という情報をウェブサーバーがVary HTTPヘッダーで返すことで、キャッシュサーバーやGooglebotがそれを理解できるからだ。Vary HTTPヘッダーを実際どのように処理するかはCDNやISP側に委ねられるが、PC向けコンテンツとモバイル向けコンテンツが別々に存在する(可能性がある)ことをグーグルは確実に認識できる。
Vary HTTPヘッダーを利用しなかったからといって、必ずしも問題が起こるとは限らない。アノテーションさえしっかり記述しておけばなくても大丈夫なような気もする。
だがそうであったとしても、利用できないあるいは利用したくないといった特殊な状況にない限りは、万全を期すためにVary HTTPヘッダーを利用してグーグルを補助するのが安心だろう。
設定に手間がかることもなく非常に簡単だ。Apacheサーバーでの.htaccessを使った設定例を示そう。
解説で示したようにユーザーエージェント名でコンテンツを出し分けているのであれば、以下の1行を.htaccessに追加するだけで済む。
Header set Vary User-Agent
ユーザーの利用している言語とクッキーの状態で変わるのであれば、次のようにする。
Header set Vary Accept-Language,Cookie
ブラウザが対応しているgzipなどの受信形式とクッキーの状態で変わるのであれば、次のようにする。
Header set Vary Accept-Encoding,Cookie
日本語で読めるSEO/SEM情報
グーグルSEOに最も重要な大原則
グーグルが目指す方向に向けてサイトを最適化する (SEMリサーチ)
渡辺隆広氏が、「現在の Google がいる場所ではなく、Google が目指している先に向けてWebサイトを最適化する」と題して、SEOの取り組み方の原則を説いている。
「h1 タグは SEO に有効ですか?」
「新しいページを作成する時に、何文字で書いたらいいのですか?」
「HTML5 でマークアップすると順位はよくなるのですか?」といった質問はよく受けるのですが、正直、どうでもいいじゃないですか、といつも言うわけです。
なぜ渡辺氏はここで「どうでもいいじゃないですか」と言うのだろうか。渡辺氏がアドバイスする「グーグルが実現したい未来に向けてWebサイトを最適化する」とはどういったことなのだろうか?
小手先の手法ではなく、長期に渡って安定したSEOを実現するためにじっくりと読んで理解したい内容だ。
「とは言っても、どうするのが良いかわからないので、やっぱり具体的な線引きやノウハウを知りたい」という人もいるだろう。そういうことが気になったときは、この原則に立ち戻って考えるようにしてほしい。
グーグルSEOには「エイジングフィルタ」も「サンドボックス」も存在しない
「幽霊」という言葉があるが幽霊が存在するとは限らない (SEOだけじゃない Web集客コラム)
最近はほとんど耳にすることがなくなったが、グーグルに「エイジングフィルタ」というアルゴリズムが存在するという説が依然として残っている。
「エイジングフィルタ」とは、できたばかりの新しいサイトは一定の期間は何をしても絶対に上位表示できないという現象だ。「サンドボックス」とも呼ばれる。そうした仕組みが、グーグルのアルゴリズムに組み込まれているというのだ。
グーグル(のマット・カッツ氏)は、
「エイジングフィルタ」が存在すると思われるような現象が見られることは確かだ。しかし、アルゴリズムの1つとしてグーグルが意図的にそういう仕組みを作っているわけではない。
といった内容のコメントを、過去に何度か出している。
こちらの記事では、エイジングフィルタが存在しないと考えられる理由を、たとえ話で解説している。納得がいく説明だと筆者は思った。
rel="canonical"タグによくある5つの間違い
実際によく見かける間違い (Google ウェブマスター向け公式ブログ)
グーグルのウェブマスター向け公式ブログが、rel="canonical"タグを使用するうえでの推奨事項と5つのよくある間違いを説明した。
よくある5つの間違いは次のとおりだ。
- 複数ページにまたがるコンテンツの 1 ページ目を rel=canonical のリンク先とする
- 絶対 URL のつもりで相対 URL を記述してしまう
- rel=canonical を意図しない形で指定している、または 2 つ以上指定する
- カテゴリ ページまたはランディング ページで特集記事への rel=canonical リンクを指定する
- <body> タグ内に rel=canonical を入れる
rel="canonical"タグは、グーグルのSEOには必須の仕組みだといっても過言ではない。しかし動作や仕様を十分に理解していないと予期せぬトラブルを招くことがある、実は扱いが難しいものなのだ。こちらの解説記事を入念に読むことを推奨する。
【新人ウェブ担当者向け】グーグルウェブマスターツールの活用方法
グーグル公式ハングアウトから (Google Webmaster Help on YouTube)
グーグル日本のサーチクオリティチームが第4回のウェブマスター向けハングアウト(ビデオチャット)をGoogle+で開催した。
今回のテーマは、「新ウェブマスターに贈るウェブマスター ツールの活用方法と Google 検索の最新情報について」だ。録画をYouTubeで視聴できる。
以下の4つのパートで構成されている。
- Google 検索の最新情報と、ウェブマスター ツールの活用方法について
- お役立ち情報
- 質問コーナー
- サーチクオリティチームからのお知らせ
今回は初級者向けの内容だ。ウェブマスターツールの使い方に慣れていないウェブ担当者には参考になるだろう。
ひとりでもSEOに成功するための秘訣
自身の体験談から (SEOのホワイトハットジャパン)
「CSS Nite in SAPPORO,Vol9」というSEOセミナーのレポート記事を先週ピックアップした。今週も、同じセミナーからのレポート記事をもう1つピックアップする。
辻正弘氏のセッションで、テーマは「ひとりでもできる、理想のSEO」だ。次のようなコンテンツから成っている。
- 過去に取り組んだSEOの失敗例
- 成功したSEO手法
- 成功した要因
- 理想のSEOのために
2つ目の「成功したSEO手法」は、どんなサイトであっても役に立つだろう。必ず読みたい。
辻氏自身による補足記事が辻氏の個人ブログに上がっているので、こちらも読んでおくといい。
なお樋口氏によるその他のセッションレポートも紹介しておく。
- 益子貴寛氏のセミナー、サイトリニューアル時のSEO
- 則田貴浩氏のセミナーウェブ解析でSEOの検証はどうすればいい?
- 古荘貴司氏のセミナー、サイト改善の初歩とA/Bテストの使いどころ
- SEOぶっちゃけトークのレポート
海外SEO情報ブログの
掲載記事からピックアップ
モバイル向けECサイトのUXに関する記事とrel="publisher"属性に関する記事を今週はピックアップ。
- 【ECサイト対象】モバイルサイトでもすべてのコンテンツを掲載するべき、省略してはいけない
スマホだから少なくてもいいというのは間違った想定 - Google、検索結果でのrel=publisherの利用はまだ予定していない
でも著者情報は設定しておこう
コメント
accept-encoding について
ユーザーの利用している言語とクッキーの状態で変わるのであれば、次のようにする。
Header set Vary Accept-Encoding,Cookie
正確には、「ユーザーの利用している言語」ではなく、「gzip などのhttp圧縮を使えるかどうか」だと思います。
ご指摘ありがとうございます
ご指摘ありがとうございます。
たしかに「Accept-Encoding」は言語とは別ですね。見逃していました。
訂正のうえ、Accept-EncodingとAccept-Languageそれぞれの用法を示すように修正しました。
わざわざのご指摘に感謝でございます!