wordpressを使っていて、サーバの負荷が高い時に疑ってみるべきこと

私は幾つかのレンタルサーバを借りていますが、とりわけ長年お世話になっているのが value domain さんの低価格レンタルサーバ。
(xrea.com)

低価格レンタルサーバは月額換算200円くらいで利用できて非常にリーズナブル!!…なんですが、その分「サーバ負荷」にはシビアだったりします。

 value domain さんの場合も例外では無く、サーバに一定以上の負荷をかけていると判断された場合、ホームページ(WEBサイト)へのアクセスに制限がかけられてしまうことも…。
(=つまり、高負荷と判断されて制限がかけられると、ビジターがアクセスできない場合も出てきてしまう)

wordpressは負荷(プログラム)の塊だ!

そもそもwordpressに負荷は付き物

特にwordpressは本体もプログラムなのでアクセス毎にサーバに負荷がかかりますが、他にも非常に沢山のプログラム(=プラグイン)が動いているため…プレーンなHTMLページと比較するとサーバに与える負荷も非常に大きい。

つまり、「1アクセスごとにサーバにある程度の負荷を与えている」と言えます。
(※もちろん、アクセス単体で高負荷状態になってしまう訳ではありません。「塵も積もれば」の話です)

だからこそ!「明らかに無駄なアクセス=【明らかに無用な負荷】は、なんとしても避けたいところです。

過負荷状態ではサーバのレスポンスも遅くなりますから、「負荷へのペナルティが厳しい激安サーバ」のみならずとも、無用な負荷を避けるのがユーザビリティ維持向上にもつながります。

wordpressに忍び寄る「無用な負荷を生む」クローラー

例えばページを検索結果にインデックスしてくれるGoogleのクローラーなど、あなたのサイトに訪れるクローラーの多くは間接的にアクセスアップの恩恵をもたらしてくれる「好ましい」「歓迎すべき」ものになります。

こうした「歓迎すべき」クローラーはサーバに負荷を与えないように遠慮しながら、時間を置いて散発的にやってきます。

15061001

一方、この世界には「好ましく無い」「招かれざる」クローラーというものも存在します。

「好ましく無い」クローラーの特徴は、何といっても間髪開けず頻繁にアクセスしてくる…この一点に尽きます。

15061002

上の図は「Majestic-12」という英国のサーチエンジン(?)のクローラーがアクセスしてきたログですが、ほぼ10秒ごとという近接した頻度でアクセスを繰り返しているのが分かります。

このサイトはまだ記事数が少ないので、連続してやってきても「10秒ごとに30回」程度で済んでいます。

でも、これが記事数1000件超えのサイトなら「10秒ごとに1000回」のアクセスすらあり得る訳です!!

日本国内向けを意図してサイトを運営している場合、国外のサーチエンジンからクローラーがやってきても殆ど好ましい効果が期待できません。

にも拘わらず「10秒ごとに1000回」など【無用なアクセス】を繰り返されたら…いたずらにサーバ負荷だけ発生して「まるで良いところナシ」ということになってしまいます。

…うーーん…正直、これはいらない!!

ただ、本家Majestic-12サーチエンジンの名誉のために弁護させていただくと…実は「Majestic-12」を名乗るニセモノ(ウイルスで拡散するらしいのですが)が存在するとの情報があちこちで確認できました。

恐らく、私のサイトに頻繁にやってきたのも、このニセモノの方だと思われます!

…いらないに加えて…余計、怖いです。

スパムボット、スパムクローラーにはrobots.txtが利かない!!

こうした、アクセスを「ご遠慮願いたい」クローラーからのアクセスを避ける方法としては「robots.txt」の記述が一般的です。

Googleなどのクローラーは、サイトに設置された「robots.txt」を読み取り、

「クローラーのアクセスを許可しない」

という設定になっていればアクセスしない…という仕組みになっているためです。

しかし!!

私も試してみたのですが、今回の「Majestic-12」など殆どの「招かれざる」クローラーは、こうしたrobots.txtの設定内容などお構いナシ!!

いくら「来ないで!」という内容を記述しても、ドンドン土足でやってきます!!

そして、どんどんアクセス負荷が高まってしまう!!

image

ぎゃぁ~~!!負荷率が右肩上がり…制限マッタナ氏!?

スパムボット、クローラーには.htaccessで対策を!

結論を言うと、「これは困る」というクローラーには.htaccessによるアクセス制限をかけるのが効果的!

今回の「Majestic-12」対策に関しては「がんちゃんのブログ」さんで具体的な.htaccessの記述方法が紹介されていましたので、以下引用させていただきました。

order allow,deny
allow from all
# reject fake mj12
SetEnvIfNoCase User-Agent "^MJ12bot/v?1\.[01]\.[0-9]{1,2}" block
Deny from env=block

これで「Majestic-12」からの頻繁なアクセスは回避できます!!

…でも、他にも幾つか「招かれざる」クローラーは存在しますので、都度.htaccessでの対策が必要。

例えば「example」という招かれざるクローラーが現れた場合、がんちゃんさんの.htaccessに追記する場合は4行目の後に

SetEnvIf User-Agent “example” block

…などの形で追記する必要があります。

「最近、サーバの負荷が気になるなぁ…」

と思ったら、サーバの乗り換えやプラグインのダイエットを検討する前に…まずはアクセスログを確認して、怪しい(=短時間に大量にアクセスを繰り返している)「招かれざるクローラー」が混ざっていないかチェックされることをお勧めします!!

[click] 【重要】この企画は「ネタ」としてお楽しみください…でも!?
この投稿で発表させていただいた企画(ビジネスモデル、商品・サービス企画、ショートストーリーなど)は、あくまで著者である橋本哲人の妄想や空想の産物であり、背景に緻密なリサーチやマーケッティング、「車輪の再発明の防止」努力など一切ありません!!

これらの企画を実行に移された結果に蒙られた有形無形の損害に対して、私「橋本哲人」および事業者「テムジン」「ルナテムジン」関係者は一切責任を負いかねますのでご理解ください。
あくまで「ネタ」としてお楽しみいただければ嬉しく思います。

但し、

「この企画は、ここがおかしいと思います」
「興味を持った!一緒に実行に移してみないか!?」

などのご意見ご感想、提携協業のお誘いは大歓迎です!! お気軽にコメント欄にてお願いします! なお、コメント欄は公表されますので、「見られちゃマズイ」という場合は こちら のフォームよりお声掛けください!