WordPressでメンテナンス中画面を出す方法 【長時間メンテの場合は、HTTP 503エラーを返そう】

  • 投稿 : 2013-05-16
  • 更新 : 2013-06-02
Wordpressでメンテナンスを行う場合に、メンテナンス中にGoogleにインデックスされたりキャッシュされたくない場合があります。そういう時に役に立つ内容です。

Maintenance Mode

Maintenance Mode
http://wordpress.org/extend/plugins/maintenance-mode/

WPのプラグインを使用すると簡単に実現できます。

メンテナンスモードにすると、WPにログインしている管理者には普通にブログの内容などが見えるのですが、それ以外の人には、メンテナンス中画面になります。

またGooglebot向けに、503のHTTPステータスコードを返すことも可能です。

何らかの理由で、サイトを一時的に非公開にしたい場合にも使えたりすると思うので、WPに入れておくと便利だと思います。ボタン一つで非公開にできます。

設定方法


「使用」を選んで、「変更の保存」ボタンを押すと、メンテナンス中になります。日時も設定できますが、これは表示用で、勝手に解除されないので注意してくださいね。

管理画面(ダッシュボード)の上の方の表示に「メンテナンスモードを使用中です。 メンテナンスが終わったら必ず 停止 してください。」と表示はされるので、忘れにくいとは思います。

HHTP 503を返したい場合は、下の方の設定で「HTTPヘッダに '503 サービス利用不可' を適用」をチェックします。チェックしないと、HTTP 200(成功)が返却されます。

・フィードを有効にする
・トラックバックを有効にする
・XML-RPCによる投稿を有効にする

の項目もあり、RSSだけはアクセスできるようにするなどのことも簡単にできて便利だと思います。

メンテナンスが長時間になる場合、HTTP 503エラーを返そう

サーチエンジンには、サービスが一時的に過負荷やメンテナンスで使用不可能になっていることを表す「503: Service Unavailable」というHTTPステータスコードで示さなければなりません。

503を返すと、サーチエンジンのロボットはサイトが一時的にダウンしているだけで、しばらくすれば復旧すると認識してくれます。
サイトメンテナンス時には、HTTP 503エラーを使う | 海外SEO情報ブログ

HTTPのスタータスコードを503を返したほうが良いでしょう。

HTTPのスタータスコードの確認方法

方法 1

http://web-sniffer.net/

「HTTP Response Header」に
Status: HTTP/1.1 200 OK
のような感じで表示されるので、そこで確認

方法 2

1.調べたいサイトにアクセス
2.Google chromeでURLに「chrome://net-internals/#events」を入力
3.Filterに「URL_REQUEST」
4.一覧から、調べたいサイトのURLをさがして、クリック
5.右側に情報が表示されるので、そこから調べる

--> HTTP/1.1 200 OK

その他

http://neoinspire.net/status_check/
http://www.search-lab.jp/sub-tools/http-header.html

.htaccessで実現する方法

ErrorDocument 503 /maintenance.html

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !=/maintenance.html
  RewriteRule ^.*$ - [R=503,L]
</IfModule>
Webサイトのメンテナンス中画面を出す正しい作法と.htaccessの書き方 | Web担当者Forumに詳しく書かれていますので、必要な方はそちらの記事を参照願います。上記ソースは引用させていただきました。
スポンサーリンク