CPUコア数、メモリーを抑えたスペック上(VPSの一番安いタイプ)のWordpressで、ある日を境にページの表示が遅くなっていました。
(ページ表示に10秒以上かかってしまいます)
俗に言う、投稿件数が増えたことによる、データベースアクセスが原因?
だろう!そう、思ってしばらく放置していましたが
やっぱり気になるので、改善しないまでも、原因だけは特定しておこうと調査を始めました。
Chromeのデベロッパーツールで、HTML部のページがどのくらいかかっているのか?
まずは確認してみると、10秒ちょい・・・
これは遅すぎますね。大体どのページも10秒かかっています。
nginxのキャッシュが有効の場合は、もちろん表示は早く1秒以内となっています。
次に、Wordpress内の処理でどこに原因があるのか?
確認するために、Wordpressをデバッグモードに設定し、デバッグ用のプラグインを導入してみました。
まずは、一番有名な「Debug Bar」をインストールして、確認してみるとデータベースのクエリー検索自体は、全て遅くない結果になりました。
(全て数ミリでした)
あれ?Wordpressが遅いのはデータベースが原因だとずっと思っていましたが、そうではなかったようです。
Debug Barを拡張するプラグインを入れて、プラグイン、テーマ、関数など対象となる機能を増やそうといろいろ探して見ると・・・
Query Monitorを見つけました。
こちらもクエリーをモニターする機能がメインですが、使い勝手が良いのと、デザインが分かりやすくかっこいいので、今後はQuery Monitorを愛用したいと思いました。
あまり時間が無いため、プラグイン探しは一旦保留です。
で、結局原因が分かりそうに無かっため、単純な作業で原因を調べていくことにしました。
・有効なプラグインを全て無効化
解決しませんでした。
・利用している高機能なテーマから、デフォルトのテーマに変更
解決しませんでした。
・サイドバーなどで利用しているウィジェットを削除
お~、ビンゴです!表示が高速になりました!一秒以内に表示されるようになりました。
原因
RSSウィジェットが、ページの表示を遅くしていた原因でした。
大きいサイズのRSSデータを取得する際に、どうやらタイムアウトしているようです。WordpressのRSS(feed)出力は全件さえれてしまうのかな?
今回は、RSSウィジェットを削除して対応しました。
いやー、ページの表示が早いと気分がいいですね。解決して良かった。