[対象: 中〜上級]
サイトのメンテナンスなどの理由で一時的にサービスを停止しユーザーのアクセスを遮断したいときがあります。
このケースでやるべきこととやっていはいけないことを、GoogleのPierre Far(ピエール・ファー)氏がGoogle+で説明しました。
米連邦政府議会で提案されているある法案に対して抗議する人たちへの援助の目的も背景にあるようですが、関わりのない僕たちにとっても非常に有益な内容なので紹介します。
以下で説明することは、「メンテナンス中」のような通知ページを元々のページと置き換えて訪問者に見せる状況にも当てはまります。
1. サイトの一部であってもサイト全体であっても、停止するURLはすべて503のHTTPステータスコードを返す。
次の2つの点において役に立つ。
- 通知ページが本当のコンテンツではないことをGoogleに伝えインデックスされない。
- すべてのページで同じ通知ページが表示されても重複コンテンツを引き起こさない。
2. 503が急に増えたことが分かるとGooglebotのクロール率が落ちる。これは避けられないことだが、停止が一時的なものであるかぎりは何か長期的な問題を起こすことはなく、かなり迅速に停止以前の状態にクロール率は回復する。
3. robots.txtについては次の2つが重要
- robots.txtに対して503を返すとサイト全体のクロールを停止するようにGooglebotは現状構成されている。robots.txtの取得時に受け入れ可能なステータスコード(現状、200か404)を認識するまではこのクロールの停止状態が続く。これは、通常ならアクセスがブロックされているコンテンツをGooglebotが結局クロールしてしまわないようにするための、安全性確保のための内蔵メカニズムによる。サイトの一部だけを停止するなら robots.txtのステータスコードを絶対に503に変更してはいけない。
- 停止期間中のクロールをブロックしようとして次のようにrobots.txtに記述したくなるかもしれない。
Disallow: /
しかしこのようにしてブロックしてはいけない。こうすると予想される数日よりもクロール率の回復にずっと長い時間がかかりクローリングの問題を引き起こす可能性が高い。
4. ウェブマスターツールにクロールエラーが出るはずだが、これはGoogleが停止を認識しているレポートになる。停止が終わったあと2週間はクロールエラーのセクションを特に注意深く監視し、予期しない問題が延々と続いていないか確認する。
5. 一般的なアドバイスをまとめると次のとおり
- シンプルにして多くのことを一度に変更しない。特に効果が出るのに違った時間がかかることはやってはいけない。
- DNSの設定を変えない。
- 上で説明したように、robots.txtファイルの中身を変えない。
- Googleウェブマスターツールのクロール速度を変更しない。
- できるだけ多くの設定を停止前・停止中・停止後に同じように保っておくと、何かおかしなことが起こる事態を最小限に抑えることができる。
以上です。
503の詳細についてはこちらの記事を参照してください。
- サイトメンテナンス時には、HTTP 503エラーを使う
- HTTP503エラーの設定方法
- メンテナンス中画面を出す正しい作法と.htaccessの書き方(Web担当者Forum)
- メンテナンスには302より503だと思います、ぐ○なびさん。
robots.txtが、200/404ではなく50xを返すことでランキングが下がったりインデックスから消えたりしてしまう注意点はこちらの記事を参照してください。
- robots.txtのべし・べからず(Web担当者Forum)
- robots.txtがエラーを返すと順位が下がることがある(Web担当者Forum)