サイトがメンテナンス中の時でさえSEOを考慮した設定をする必要があります。
適切な設定がされない場合、メンテナンス中のページが「通常通り運営されている」とクローラーに読み込まれる可能性があります。
併せて、メンテナンス中にアクセスしてきたユーザーにも、メンテンナンス中であることを明確に表示させましょう。
この対処方法ですが、検索エンジンなどロボット向けにはステータスコードを503に設定します。
これはGoogleがページをクローリングした際に、メンテナンス中であると認識できるようにするためです。
ユーザー向けには、メンテナンス中であることを伝えるhtmlを別途作成し、終了予定日時などを記載しておき、終了後にまた来てもらえるよう工夫しておくことがおすすめです。
正しく設定されなかった場合のリスク
ステータスコードを変更したつもりでも、例えば503ではなく通常運用と同様に200で返してしまった場合、メンテナンス中のページをインデックスされてしまうことに繋がります。
他にも404を返してしまった場合は、ページが消滅したものと認識されてしまいます。
ステータスコードを変更した際には、上記のようなミスが起こりがちです。
「今はメンテナンス中なので、後でまたクロールしに来てください」と意思表示するためにも、503を設定するようにしましょう。
また、ユーザーが訪問時にサイトが見れなかった場合、リンク切れと判断して離脱に繋がるばかりか、今後サイトに訪問してもらえなくなる可能性も出てきます。
インデックスされていればアクセスがあるという事実を踏まえ、ユーザーにもメンテナンス中であることを正確に伝えるようにしましょう。
503の設定方法について
以下の手順で行います。
- メンテナンス中の旨の画面を出すWebサーバーに、メンテナンス告知用のhtml(たとえば、/maintenance.html)を作成し、ユーザーに対して表示するメッセージをHTMLで記述する。
- .htaccess(またはhttpd.conf)で、次のように設定する。
=========================
ErrorDocument 503 /maintenance.html
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !=/maintenance.html
RewriteRule ^.*$ – [R=503,L]
</IfModule>
=========================
上記で完了です。
これでどのURLにアクセスしても、ステータスコード503が返され(URLはユーザーがアクセスしたまま表示させ、リダイレクトはしない)、メンテナンス中を示すページが表示されるため、メンテナンス中のページがインデックスされることはありません。
まとめ
現状を正しく伝えることで、今後不利益を受けないようにすることは可能です。
また、ユーザーにはメンテナンス中である事実が伝われば良いので、わかりやすいページを用意しましょう。
必ずしもデザインに注力する必要はありませんが、メンテナンス完了予定を伝えることで、再開次第また来てもらえるような配慮をした画面を表示させておきましょう。