縦ぽん!!

拙作のWordPressテーマ「Garyu」を公開し、このサイトで使用するようになって頭から離れないことがあった。

『「Garyu」はあまり速くないのではないか』という疑問。

自分なりに考えて作ったテーマだが、実際に使ってみても期待したほど表示が速くない。比較的低価格のスターサーバーを使用しているとはいえ、このままでは他の方に使っていただくのが大変申し訳ない気がして、改善策がないものかいろいろと試行錯誤してみた。

とりあえず、ある程度納得できるくらいに調整した結果、「Garyu」はパソコンではほぼ問題ない速さ、モバイルではもう少し改善の余地あり、という自己分析に至った。速いとうわさされるエックスサーバーに設置したらもう少し速くなる結果が期待できるが、今のところPVに影響が出てないため、比較的低価格でパフォーマンスが良いと思われるスターサーバーでも問題ないレベルということが分かっただけでも収穫があったと思う。

そこで今回は、WordPressを遅くしないための対策を列挙し、実際に効果が出た方法を公開することにした。

まずはサイトの速度や問題点を知ることから始める

最初に自分のサイトがどのくらい遅いのか、何が問題なのかということを知ることが先決だ。PageSpeed InsightsでウェブページのURLを入力するとモバイル、パソコンそれぞれで速度スコアや改善すべき内容を知ることができる。モバイル、パソコンいずれも100に近い数値が理想だが、現実はなかなかそうはいかない。問題点を洗い出し、出来る範囲でひとつづつ問題点を解決するのが大事だ。

私なりにいろいろ試してみた感じだが、モバイルの速度を上げるのがなかなか大変そうだ。劇的に効果が出たものがなく、モバイルの速度を100に近づけるにはテーマへの根本的な対策が必要かもしれない。

WordPressが遅くなる主な原因は利用者の無理な使い方が原因

WordPress自体は恐らく標準機能のままならそれほど遅くないと考えてよいだろう。では、遅くなる原因はどのようなものがあるかというと、だいたい以下のようなものが候補として挙げられるのではないだろうか。

  • 大量にプラグインを組み込んでいる
  • サイズが大きい画像を多用している
  • 掲載している広告が多すぎる
  • 使用しているテーマが重い
  • レンタルサーバーのスペック不足

WordPressは利用者が自由にカスタマイズできるが、無計画になんでもやりすぎると出来上がったサイトは当然重くなる。せっかく作ったサイトが遅いのが原因で見てもらえなければ意味がない。訪問者が閲覧を放棄することがないよう、なるべく速くページが表示されるようにしたいところだ。

次に、遅くなる原因の詳細とその対策について説明する。

使用するプラグインを選別する

簡単にWordPressの機能を拡張できるプラグインだが、やみくもにあれもこれも……とプラグインをインストールすると、それだけでWordPress自体が遅くなるので注意が必要だ。使用してるテーマによってはプラグインを使用せずとも、同様の機能を持つものもあるため、ネットの情報を鵜呑みにしてプラグインを追加するのはやめるべきだ。

例えば、AとBのプラグインを使用して機能の一部に似たようなものがある場合、当然その分が無駄になる。下手すると、動作が安定しなくなることも考えられるため、プラグイン選びは慎重にしたい。また、使用しているプラグインが表示速度に影響を与えているようなら、似たような機能を持つプラグインへ切り替えることも効果的だ。機能は多少見劣りしても軽いプラグインに変えることで速度低下を防ぐことが大事だろう。

PageSpeed Insightsの結果を見ると「レンダリングを妨げるリソースの除外」という項目があるが、その中にある「短縮できる時間(ミリ秒)」の数値が高い項目に対策することで速くなることが分かる。数値が高い項目にプラグインが使用しているスクリプトやスタイルシートがあるなら、プラグインの使用を見直してもよいだろう。

画像データの大きさやフォーマットを見直す

ヘッダ画像や記事内の画像データの大きさやフォーマットも検討した方がよい。写真やイラストを掲載するページでもない限り、極端に大きいサイズの画像は不要だし、フォーマットがPNGである必要もない。画面に表示される画像サイズは小さくても、データサイズ自体が大きければ読み込みに時間がかかるため、取り込むメディアサイズも考えた方がいい。最近のスマートフォンで撮影した写真データなどはサイズがかなり大きくなっている。アップロード前に画像サイズを調整する配慮はすべきだ。

またヘッダ画像を使用している場合、その画像は必ず表示されるうえ、大きいヘッダ画像であればデータサイズも増えることになる。割り切ってフォーマットをPNGからJPGに変更するのも効果的だ。多少画像が荒くなっても案外閲覧者は気にしてないものだ。

むやみに広告を掲載せずに、適切な量にする

過剰に広告を掲載すると、当然ながらページの表示速度に影響が出る。広告を掲載する適切な量はレンタルサーバーのプランなどによって能力の差に違いがあるため一概には言えないが、レンタルサーバー自体やプランの見直しを考えないなら掲載する広告量を減らすことも考慮すべきだ。広告を掲載するために外部スクリプトを含む場合もあるため、広告が原因でページの表示が遅くなる可能性は十分考えられるからだ。

思い切って使用しているテーマを変える

高機能なWordPressテーマを使用するとそれだけで速度が低下する可能性がある。高機能なテーマを否定するわけではないが、どうしてもこのテーマでなければダメ、というケースはそれほど多くないだろう。テーマは自由に変更することができるので、他のテーマファイルに変えて支障がなければ軽いテーマに乗り換えるのも一つの方法だ。

どうしても高機能なテーマを使用したいということであれば、ランニングコストが上がるのを承知のうえで高性能なサーバーを利用すべきだろう。非力なレンタルサーバーではレスポンスが悪い場合でも、ハイパワーなレンタルサーバーなら難なく表示できる可能性がある。

レンタルサーバーに対してできること

レンタルサーバーに対して利用者ができることはほどんどない。環境を変えずにできることは一つくらいなので、速度を上げる対策をいろいろやった結果、これ以上の効果が見込めない場合はレンタルサーバー自体を変えること考えた方が良いだろう。

PHPのバージョンを7にする

レンタルサーバーで使用しているPHPのバージョンを5系から7系に変えることで高速になる。設定一つで状況が変わるので、PHP7に切り替えるのをおすすめする。PHP7が使用できる前からレンタルサーバーを契約していた場合、PHP5をそのまま使用していることが考えられるため、一度確認したほうがいい。

ただし、使用しているテーマやプラグインによってはバージョン変更で正常に動作しなくなる可能性もあるため注意が必要だ。もっとも、現在のWordPressの推奨環境はPHP7以上となっているので、PHP7で正常に動作しないテーマやプラグインは早々に見切りをつけることも考えた方が良いだろう。

上位プランに変更することで速度が上がる可能性がある

すべてのホスティングサービスで効果があるか不明だが、契約しているプランを上位プランに変更することで速度が上がる可能性がある。気を付けなければならないのが、上位プランへの変更が環境変更を伴う場合、レンタルサーバーの移転と同等の作業を行うことになるため、契約プランの変更だけで簡単に解決するかどうかをサービス提供会社に確認する必要があることだ。また、上位プランへの変更が難しい場合、下のレンタルサーバーの移転を検討した方が良い場合もある。

別のレンタルサーバーへの移転を検討する

これまでの対応策を講じても効果が見られない場合、レンタルサーバーが力不足ということも考えられる。PVが多いサイトはそれなりのアクセスに耐えられるスペックがないとどうしようもない。そのまま放置するとアクセス数が頭打ちになり、アドセンスなどの広告を設置している場合は収入にも影響するだろう。

実際に効果があった対策と結果

それでは、当サイトで実際に行って効果があった対策をあげてみる。PageSpeed Insightsの結果がモバイルが40台だったのが50台後半から60台前半に、パソコンに至っては60台後半だったのが80台後半から99まで上昇した。モバイルの速度が思ったより早くならなかったのはレンタルサーバー側の問題というより、テーマ側の問題にありそうなので、今後も何らかの対策を進めたいところだ。

ヘッダ画像を変更すると速くなった

ヘッダ画像をPNG形式からJPG形式に変更することでデータサイズを大幅に減らすことができた。単純に考えて転送されるデータが減れば速くなって当然というところだろう。過去記事の画像についてはそのままだが、今後使用する画像については特に理由がなければJPG形式を使用することにしたい。

スクリプトやスタイルシートをmin化する

「Garyu」のスクリプトやスタイルシートはサンプルとして見てもらうことを考えて、min化せずに公開している。min化とはMinify処理(軽量化)のことで、コードの無駄を削除して、データ量を減らすことだ。「min化」のキーワードで検索するとオンラインツールがいくつも見つかるので、適当なものを使用してmin化したスクリプトやスタイルシートをサーバーへ設置した方が良い。

広告やスクリプトを含む外部ツールを減らした

当サイトは一時期、Twitterのタイムラインを埋め込んだり、Amazonの商品検索ウィジェットを掲載していたが、これらの影響で表示速度が遅くなっていたため、取り外すことにした。

いくつかのプラグインを変更、削除した

プラグインは必要最低限にとどめていたつもりだったが、それでも重たいプラグインがあったようで、以下のプラグインを変更、削除した。

削除したもの

  • Akismet Anti-Spam (アンチスパム)

WordPressと一緒についてくるプラグインで、スパム対策に有効だが、正直これは重たい。SiteGuard WP Pluginを使用していることもあり、思い切って削除してみた。悪影響が出るようであれば、再導入を検討する必要があるが、効果が非常に大きかったため、できれば使用せずに済ませたいところだ。

他のプラグインに変更したもの

  • Crayon Syntax Highlighter
  • WordPress Download Manager

どちらも著名なプラグインだが、高機能故かどちらも重たいプラグインだった。これらプラグインに強く依存しているわけではなかったので、以下のプラグインに変更したところ「レンダリングを妨げるリソースの除外」で高い数値を出していた項目が減り、速度が速くなった。

  • Simple Download Monitor
  • SyntaxHighlighter Evolved

他に削除候補として、自動的に見出しを作ってくれるプラグイン「Table of Contents Plus」があるが。これは「Garyu」に同様の機能を用意すれば不要になるため、実装を検討することにした。

gzip圧縮を使用したら速くなった

gzip圧縮ができるかどうかはレンタルサーバーによるが、使用できる場合はgzip圧縮を使うことでデータ転送量を減らし、結果として表示速度を早くすることができる。当サイトを設置しているレンタルサーバーはスターサーバー(旧ミニバード)だが、問題なくgzip圧縮を使用することができた。結果は良好で、これだけでもかなり速くなった印象だ。

gzip圧縮のやり方だが、初心者向きではないため別の機会に説明しようと思う。

上手に対策すればWordPressは遅くならない

結論として、WordPressが遅くなる原因は外的要因として利用しているレンタルサーバーの能力、内的要因として利用しているプラグインの量やそれ自体の重さ、掲載している広告などの量、画像データサイズといったところがあげられる。これらの要因に対して適切な対策を行うことで、WordPressは遅くなることを防ぐことができる。

WordPressが遅いと感じているなら、ここにあげた内容を参考に対策をしてみてはいかがだろうか。

関連する記事