はじめに
SEOコンサルタントの外山です。
先日、7月末に開催された弊社のオンラインイベント「The Principle Week」で、SEOコンサルティングチームは「SEO公開勉強会 〜 Google Office Hour 公開読み合わせ 〜」と題したセミナーを実施しました。
このSEO公開勉強会は、私たちSEOコンサルティングチームが定期的に行なっている、John Mueller氏によるGoogleオフィスアワーの読み合わせを公開で実施したものです。John Mueller氏に寄せられた質問と回答をいくつかピックアップし、和訳してお届けしました。
セミナー実施後に寄せられたアンケートを読ませていただくと、「このような読み合わせは是非今後も公開で実施して欲しい」や、「自分も是非参加したい」などの感想が寄せられ、一定のニーズがあることが分かりました。
インハウスでSEOに取り組まれている方、あるいはコンサルティング会社で多くのサイトのSEOを担当している方にとって、SEOの情報や知識をどこから取得・習得するかは、重要なことであると思います。
特に、SEOについては様々な情報や噂が飛び交っていますので、できるだけGoogleやBingなど、検索エンジン元が発出する公式な「一次情報」に当たることが、特に大事であると思います。
例えばGoogleの公式情報には、以下のようなものがあります。
- オフィスアワー(リンクは2020年8月7日のもの)
- Google ウェブマスター向け公式ブログ
- 検索エンジン最適化(SEO)スターターガイドなどの、Search Consoleヘルプ
このうちSearch Consoleのヘルプは、頻繁に情報が追加・更新されたりしていますので、注意が必要です。先日も、「上級ユーザー向けスタートガイド」なるものが追加されており、興味深く読ませていただきました。
また既存のヘルプページにも、新しい説明が追加されたりしていますので、「何かを調べる時は、まずGoogleのSearch Consoleヘルプをあたり、最新の情報に触れてみる」ということは、私も習慣化していきたいと考えています。
本ブログでは、そんな「Google公式ドキュメント(=一次情報)」にあたる例として、各ステータスコードについての最新のGoogleの解説を、紹介していきたいと思います。
なお「一次情報にあたることの重要性」については、以下のブログでも紹介しておりますので、ご参照ください。
ステータスコードとは?
ステータスコード、正式には「HTTP レスポンスステータスコード」とは、特定の HTTP リクエストが正常に完了したどうかどうかを示すコード(数字)のことです。
代表的なものには以下のものがあります。
ステータスコード | 概要 |
---|---|
200 | 200 OK リクエストが成功したことを示します。成功が意味することは、 HTTP メソッド(GET、POSTなど)により異なります。 |
301 | 301 Moved Permanently リクエストされたリソースの URL が永遠に変更されたことを示します。レスポンスで新しい URL が与えられます。 |
302 | 302 Found リクエストされたリソースの URL が一時的に変更されたことを示します。 URL は将来、さらに変更される可能性があります。 |
404 | 404 Not Found サーバーがリクエストされたリソースを発見できないことを示します。 |
410 | 410 Gone このレスポンスは、リクエストされたコンテンツがサーバーから永久に削除され、転送先アドレスがない場合に送られます。クライアントはこのリソースへのキャッシュやリンクを削除することが期待されます。 |
503 | 503 Service Unavailable サーバーはリクエストを処理する準備ができていないことを示します。一般的な原因は、サーバーがメンテナンスや過負荷でダウンしていることです。このレスポンスは一時的な状況について使用するものであり、また可能であれば、サービスが復旧する前に Retry-After: HTTP ヘッダーに予定時刻を含めるべきです。 |
表の出典:MDN Web Docs の HTTP レスポンスステータスコードより
ユーザーのリクエストに対し適切なステータスコードを返すことは、ウェブサイトの基本でありとても重要なことです。そしてそれは、Googlebotのようなクローラーに対しても同様です。クローラーは、あるURLにアクセスした際に、そのURLが返すステータスコードによって、そこから取得できるコンテンツの扱いを変化させます。
次節では、特に注意したい、
- ページが削除された場合(404 or 410)
- ページがリダイレクトされる場合(301 or 302)
- サーバーが一時的にダウンしている場合(503)
について、説明していきます。
ページが削除された場合(404 or 410)
404や410を受け取った際のGoogleの反応
一般的にページが削除された場合は、ステータスコード404(Not Found)を返すと思います。一方で、ステータスコードには404の他に410(Gone)も存在します。410は404とは違い、ページが永久に削除された際に用いるステータスコードです。
では404や410のステータスコードを受け取ると、Goolebotはどのような反応をするのでしょうか。これについては、GoogleのMatt Cuttsがウェブマスターのヘルプビデオで解説しています。
上記は英語ですが、内容は概ね以下の通りとなります。
- Googlebotがステータスコード404(Not Found)を受け取った際は、それが何らかの間違いである可能性もあるので、GoogleはそのURLのインデックスを24時間は保護し、時間をおいた後に、再度そのURLをクロールします。
- Matt Cuttsは明確には述べていませんが、再クロールの結果、そのページ(URL)が正常に戻っている場合は、インデックスはそのままとする一方で、再度404が返却された場合には、そのページ(URL)をインデックスから外すものと思われます。
- 一方で、410(Gone)を受け取った場合は、インデックスを24時間保護することはせずに、すぐにインデックスから外します。
ここで述べられているように、404は誤って設定されることもあるので、Googleは冗長性をもって、クロールシステムを構築しています。404と410を使い分けているウェブサイトはそう多くはないと思いますが、ステータスコードによって上記のような違いがあるので、特に410を使用する際は注意が必要です。
「404」を修正する必要がある場合
Search Consoleのカバレッジレポートをみると、エラーの「404」や除外の「404」の項目が気になり、「修正しないといけないのか?」と考える方もいらっしゃると思います。
一般に、404ステータスコードを返すことは、ウェブサイトではよくある通常のことですので、多くの「404」は気にする必要はありません。
Googleも、Seaech Consoleのヘルプページにおいて以下のように記載しています。
“
ほとんどの 404 エラーは修正しなくても問題はありません。404 エラーはサイトのインデックス登録やランキングに影響を及ぼすことはないためです。
- 送信された URL(エラー)である場合は、修正する必要があります。
- ページが削除されており、代わりのページや同じようなページがない場合は、404 を返すようにしてください。1 か月程すると、レポートにこの 404 は表示されなくなります。
- スクリプトで生成された無効な URL や、サイトに存在したことがない URL の場合は、特に問題はありません。レポートには表示されますが、URL のスペルが間違っていない限り修正する必要はありません。404 エラーは約 1 か月後にレポートから削除されます。
”
上記で、「送信された URL(エラー)である場合は、修正する必要があります。」とありますが、これは送信しているサイトマップ中に、404のURLが含まれている場合です。
この場合は、カバレッジレポート上では「エラー」の項目の「送信された URL が見つかりませんでした(404)」にリストアップされます。ここにリストアップされているURLについては、確認の上、不要であるならば送信しているサイトマップから外し、必要であるのならば、404を返さないようにする方が望ましいでしょう。
ソフト404エラー
404とよく似たものに「ソフト404」というものがあります。これは、通常なら404のステータスコードを返すところで200(正常終了)のステータスコードを返していたり、存在しないページをすべて、TOPページへリダイレクトさせている場合などに、Googleが「404のようなもの」として認定する際に用いられます。
Seaech Consoleのヘルプページにおいて、ソフト404エラーは以下のように説明されています。
“
サイト内に存在しないページへのリクエストがあると、通常ウェブサーバーは 404(見つかりません)エラーを返します。この HTTP レスポンス コードにより、ページが存在しないことがブラウザと検索エンジンに明示されます。その結果、ページのコンテンツは(存在する場合でも)検索エンジンからクロールされず、インデックスにも登録されません。
ソフト 404 エラーとは、サイト内に実際には存在しない URL について、なんらかのページがサーバーから返されることをいいます。一般に、間違っている URL や存在しない URL をサーバーが「問題ない」ものとして処理し、ユーザーを有効なページ(トップページや独自の 404 ページなど)にリダイレクトする場合がこれに該当します。
これが問題なのは、検索エンジンがサイト内の存在しない(多くの場合重複する)URL のクロールとインデックス登録に多くの時間を費やすことになるからです。Googlebot が存在しないページに時間を費やすことから、意味のある固有の URL が迅速に検出されなかったり頻繁にアクセスされなかったりする可能性があるため、サイトのクロールが不十分になるおそれがあります。
引用元:ソフト 404 エラー
”
404とは違い、ソフト404エラーは、意味のある重要なページによりクロールを集中させるために、解消が望ましいエラーとなります。カバレッジレポート上で「送信された URL はソフト 404 エラーのようです」に分類されるURLだけでなく、除外項目の「ソフト 404」に分類されるURLも、できるだけ改善する方が良いと私は考えます。
改善の方法としては,リダイレクトを使用したりするのではなく、素直に404のステータスコードを返すようにするのがベストな方法でしょう。
ページがリダイレクトされる場合(301 or 302)
AというページをBというページへ転送させる場合には、リダイレクトという手法を用いることが一般的です。リダイレクトにはいくつかの方法がありますが、GoogleはSeaech Consoleのヘルプページにおいて、以下のように記載しています。
“
検索エンジンの結果で表示されるページの URL を変更する必要がある場合は、サーバー サイドの 301 リダイレクトを使用することをおすすめします。これは、ユーザーや検索エンジンが正しいページにたどり着くことを保証する最善の方法です。ステータス コード 301 は、ページが別の場所に完全に移転したことを意味します。
301 リダイレクトは、次のような場合に特に役立ちます。
・サイトを新しいドメインに移動し、できるだけスムーズに移行を行いたい場合。
・ユーザーが複数の異なる URL からサイトにアクセスする場合。たとえば、複数の URL(http://example.com/home、http://home.example.com、http://www.example.com など)でホームページにアクセスできる場合、1 つの URL を優先宛先(正規の宛先)として選び、301 リダイレクトで他の URL からその URL にトラフィックを送信することをおすすめします。
・2 つのウェブサイトを結合し、無効になった URL へのリンクが正しいページにリダイレクトされるようにしたい場合。
引用元:ページの URL の変更と 301 リダイレクトの使用
”
なお、リダイレクトには301(Moved Permanently)と302(Found)がありますが、上記Googleのヘルプページにあるように、通常は301を使うことが推奨されています。
一方で、以下のような場合は302リダイレクトが推奨されています。
- モバイル版とPC版のサイトがあり、UserAgentに応じて、PCからのアクセスをモバイル版のサイトにリダイレクトさせたりするとき
参考:別々の URL - A/B テストで元の URL からパターンの URL にユーザーをリダイレクトする際には、301リダイレクトではなく、302リダイレクトを使用することをGoogleは推奨しています。
参考:Google 検索でウェブサイトをテストする場合のおすすめの方法
リダイレクトは
AのURL → BのURL
と転送する手法ですが、301と302の違いは、
- 301は、BのURLをインデックスする
- 302は、AのURLをインデックスする
という点です。そのため、元のURL(AのURL)を覚えさせておきたいときは、302を使うことが推奨されているのだと思います。
サーバーが一時的にダウンしている場合(503)
サーバーがダウンしていることを示すステータスコード(5xx系統)を、意図して返すことはありえないと考える人も多いと思います。しかしサーバーメンテナンスの際には、意図してステータスコード503 (Service Unavailable) を返すように設定することを、Googleは推奨しています。
Googleウェブマスター公式ブログには、以下のような記載があります。
“
例えば、ページのリクエストに対して、HTTP ステータス コード 404 (Not Found) を返したり、エラー ページを表示しているのに 200 (OK) を返したりする方法は、ダウン タイムへの対処法としてお勧めできません。それよりも、HTTP ステータス コードとして 503 (Service Unavailable) を返すように設定した方が、検索エンジンのクローラに対してダウン タイムが一時的であることを伝えることができます。さらに、この方法には、サイトを訪れた人やボットに向けて、サイトが復旧するまでの時間を示せるという 利点もあります。 具体的には、Retry-After ヘッダー を利用することで、あらかじめ分かっているダウン タイムの時間やサイトの復旧日時について指定することができます。ちなみに、Googlebot は、この情報を参考にして、再クロールのタイミングを決める場合があります。
引用元:サイトのダウン タイムへの対処の仕方(Googleウェブマスター公式ブログ)
”
メンテナンス中に訪れたクローラーに対して、404のステータスコードを返してしまうと、Googleは一定時間後に再試行をした結果に応じて、そのURLをインデックスから除外してしまいます。また200のステータスコードを返した場合は、メンテナンスページが代わりにインデックスされてしまうか、あるいは「ソフト404」と認識され、404と同様にインデックスから除外される可能性があります。
いったん「404」や「ソフト404」と認識されても、復旧後に再度クローラーが来てくれることで、再インデックスされることは多いですが、それまでの間は、該当URLはインデックスから外れたままとなります。
TOPページなど、すぐにクローラーが来てくれる場合は問題ありませんが、数多くある商品ページなど、次のクローラーが来るまで比較的期間を要するようなページは、インデックスから外れたままとなってしまう可能性が高くなります。
そのため、メンテナンスの際は、ステータスコード503を返すことをGoogleは推奨しています。サーバー設定を変更する必要がありますが、メンテナンスの際は設定しておいた方が良いでしょう。
さいごに
以上、各種ステータスコードについてのGoogleの公式情報を紹介しました。
繰り返しになりますが、SEOについては様々な情報や噂が飛び交っていますので、できるだけGoogleやBingなど、検索エンジン元が発出する公式な「一次情報」に当たることが、特に大事であると思います。
SEOの情報は多岐にわたり、またアップデートも頻繁にあります。公式情報を常に確認するのは大変ですが、できるだけそのような「癖」を身につけておきたいところですね。