WordPress をスピードアップする9つの方法

2009 年 10 月 25 日 | カテゴリー: ブログ運営 | タグ:

先日、データベーの容量が気になり、「データベース、MySQL の容量制限が気になりだした!」と題して投稿記事を公開した。本ブログは、何度も導入を繰り返した WordPress の成果があって、比較的 WordPress に手を加えることなく、運用できているのだが、ハイペースで投稿記事を公開しているため、パフォーマンスが速くも気になっている(まだまだ、気にすることはなさそうではあるが・・・)。

そこで、以前、WordPress をスピードアップする内容の投稿記事をブックマークした記憶があって、探してみると「わーどぷれすっ!::WordPress をスピードアップする方法、その壱」を再発見。もともとは、「Pro Blog Design::10 Ways to Speed up Your WordPress Blog」を要約した投稿記事である。10項目となっているが、10項目目は、リンク集になっているので、実質は9項目といたっところである。

早速、「WordPress をスピードアップする9項目」をリストしておこう。更に、私なりの詳細を加えて説明しておく。

  1. 不要なプラグインを削除する
  2. 必ずしも必要としない PHP タグを取り除く
  3. WP Super Cache を使う
  4. データベースを最適化する
  5. 画像を最適化する
  6. CSS と JavaScript を圧縮する
  7. ホットリンクを無効にする
  8. スパマーを遠ざけておく
  9. 投稿編集履歴機能を切る

リストの内容は、私のような素人でも手が出るような内容ばかりである。それ故に、既に「常識的」な内容なのかもしれないが、私はまだ実施していないので(実施したものに関しては、「実施済」を表記した・・・)、自分用にも解説しておく。

不要なプラグインを削除する

WordPress を利用するメリットは、星の数ほどリリースされている素晴らしいプラグインだが、それが逆に仇となって、山のようにプラグインをインストール・・・誰でも経験している失敗!?ではないだろうか。

まずは、インストールしているプラグインの数を確認する。10以上のプラグインを導入しているようであれば、再考してみよう、と推奨している。本当に必要なプラグインなのかどうか。自問自答して整理することが推奨されている。

また、プラグインをテンプレートに統合してしまおう、と推奨しているが、私のレベルでは技術的にどうやって統合するのは不明。それよりは、プラグインの機能を確認して、使い切れているかを確認するのが良い、と考える。同じような機能のプラグインを複数導入していないかを確認することを推奨する。

必ずしも必要としない PHP タグを取り除く

これは効果がありそうである。特に無償で配布されている Theme ファイルには、この「必要としない PHP タグ」が多く含まれているそうである。また、そのタグの確認は、一度自分のブログをブラウザで表示して、ウェブページのソースを表示することで、PHP タグに変わり、表示されたコードに置き換えていくことで実施できる。

「必要のない PHP タグ」は、「Pro Blog Design::Delete WordPress Tags to Decrease Server Load」を参考にリストしておこう。

  1. <?php language_attributes(); ?>
  2. <?php bloginfo(’html_type’); ?>
  3. <?php bloginfo(’charset’); ?>
  4. <?php bloginfo(’name’); ?>
  5. <meta name=”generator” content=”WordPress <?php bloginfo(’version’); ?>” /> <!- leave this for stats -> は、サードパーティーのアクセス解析ツール(Google Analytics 等)を利用しているのであれば、全く必要無し。
  6. <?php bloginfo(’stylesheet_url’); ?>
  7. <?php bloginfo(’rss2_url’); ?> は、注意して削除すること。RSS に関するプラグインで利用している可能性もある。
  8. <?php bloginfo(’pingback_url’); ?>
  9. <?php bloginfo(’stylesheet_directory’); ?>
  10. <?php bloginfo(’description’); ?>
  11. <?php bloginfo(’comments_rss2_url’); ?>
  12. <!- <?php echo get_num_queries(); ?> queries. <?php timer_stop(1); ?> seconds. ->
  13. サイドバーにウェジェットを利用している場合;
    <?php /* Widgetized sidebar, if you have the plugin installed. */
    if ( !function_exists(’dynamic_sidebar’) || !dynamic_sidebar() ) : ?> と <?php endif; ?> の間のコード全て。

上記の多くは、header.php ファイルに存在しているが、header.php ファイルであれば、「WordPress Plugins/JSeries::Head Cleaner (最適化&高速化)」が役にたつかもしれない(私は、まだ導入していない・・・)ちょっと解説文を引用しておこう。

WordPress サイトの <head> の中身と、フッタ領域を整形しなおします。注意:PHP 5 以降のみ対応です。

  • IE6 以外の時は先頭に xml 宣言を付与。
  • 重複タグや、不要なタグ、コメント、空白を削除。
  • <meta name="description" /> タグが複数ある場合、一つにまとめる。
  • <meta name="keyword" /> タグが複数ある場合、一つにまとめる。
  • 話題の <link rel="canonical" /> タグを追加。
  • IE コンディショナルタグを判定して、ブラウザが IE の時だけ対象タグを表示。
  • CSS, JavaScript は、ブラウザが対応していれば gzip 圧縮転送。
  • 複数ある CSS を media 属性ごとに結合して一ファイルにまとめる。もちろん、そのファイルには インライン CSS も含まれる。
  • CSSTidy を使用して CSS を最適化する。
  • CSSTidy の最適化オプションを管理画面で指定できる。
  • 複数ある JavaScript をすべて結合して一ファイルにまとめる。もちろん、そのファイルには インライン JavaScript も含まれる。
  • JSMin で、JavaScript のソースコードを圧縮する。
  • JavaScript をフッタ領域に移動することもできる。
  • フッタ領域の JavaScript も同様に結合して一ファイルにまとめる。
  • Prototype.js, script.aculo.us, jQuery, mootools が複数読み込まれている場合、1回だけ読み込むようにする。
  • Prototype.js, script.aculo.us, jQuery, mootools の読み込み順を修正して、できるだけコンフリクトが発生しないようにする。
  • CSS @import を展開して結合する。 (Ver.1.1.0 以降)
  • 管理画面より JavaScript を個別指定して、フッタに移動する。 (Ver.1.1.0 以降)

WP Super Cache を使う

これは、有名なプラグインであって、「WordPress::WP Super Cache」からダウンロードできる。ただ、本サイトでは、携帯電話での閲覧ができるように「Ktai Style」というプラグインをインストールしており、このプラグインとの相性が悪いらしいので、導入することはしない(解決しているのかもしれないが・・・)

データベースを最適化する

この項目が、先日の MySQL の容量も最適化することができる。即ち、MySQL の容量が増加すれば、WordPress のスピードがダウンするということであろう。

もともとの投稿記事、「Pro Blog Design::10 Ways to Speed up Your WordPress Blog」には、MySQL を phpMyAdmin から、実際に操作する方法が記述されているので、自信がある方は、実施して頂きたい。また、自信はないが、挑戦してみたいという方には、投稿記事、「トイレのうず::phpMyAdmin から MySQL の最適化 〜WordPressを快適に使うために〜」が参考になるかもしれない。日本語で、丁寧に解説されている。

しかし、私個人としては、プラグインを利用することを推奨する(と、自分に言い聞かせている・・・)。「WP-DBManager」というプラグインが実施してくれる。英語が苦手な方には、「小粋空間::WP-DBManager プラグイン」に本当に丁寧に解説されているし、日本語化の方法も記述されているので、全く困ることなく導入することができる。

画像を最適化する

いわゆる画像ファイルの大きさを圧縮することである。photoshop での方法が記述されているようだが、私のよう素人は、Photoshop を持っていない・・・そこで、推奨されているのが、「GIMP」というフリーソフト。「GIMP」で、画像ファイルを JPG で保存しようとすると、圧縮の方法を問われるので、それに従って保存すれば良い、ということである。

CSS と JavaScript を圧縮する

CSS と JavaScript は一つのファイルに総括し、更に footer.php のような各ページのボトムに配置することを推奨している。本ブログでも、数多くの CSS と JavaScript を利用しているため、是非実施したいと考えているが、どうやって分割されている JavaScript を統合すれば良いのか・・・特に、プラグイン用の JavaScript を統合するのは難しくないだろうか。

CSS に関しては、「styleneat.com」を利用することを推奨しているので、興味のある方は利用してみるのも良いかも知れない。

ホットリンクを無効にする

ホットリンクとは、「他のサイトの画像(画像に限らないらしいが・・・)をそのままソース元したリンク」のことだそうで、直リンクとも呼ばれる。このホットリンクが他のサイトで利用されると、「本ブログを運営するサーバーに保存されている画像を直接呼び出すこと」になる。よって、スピードダウンすることになる、というものである。

そこで、「.htaccess」を利用して、ホットリンクを防止することが推奨されている。「.htaccess」のサンプルは、そのまま引用しておくが、それぞれのラインの意味は、私の知識では説明できない。

#disable hotlinking of images with forbidden or custom image option
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?yourdomain.com/.*$ [NC]
#RewriteRule .(gif|jpg)$ – [F]
RewriteRule .(gif|jpg)$ http://www.yourdomain.com/stealingisbad.gif [R,L]

スパマーを遠ざけておく

いわゆるスパムをブログに到達する前に弾いておくことを推奨している。これも、同じく「.htaccess」ファイルに記述することで対処できる。「.htaccess」に関しては、「WPShout.com::A to Z of WordPress .htaccess Hacks」が参考になる。

以前、上記の方法でスパムを弾くことを実践していたが、無限にあるスパムを「.htaccess」に記述するのが大変で止めてしまった経緯があるが、「Perishable Press::The Ultimate Referrer Blacklist, Featuring Over 8000 Banned Referrers」として、8000以上ものスパムがダウンロードできるので、興味がある方は、試してみて欲しい。

投稿編集履歴機能を切る

所謂、「Revision」というやつである。この編集履歴は、個人で運用しているブログでは、必要ないだろうから、この機能を Off にすること、としている。この機能を Off にするプラグインがあるので、それを導入する方法もあるが、wp-config.php ファイルに、以下のコードを追加するだけでも、同じことが実施できるようである。

define(‘WP_POST_REVISIONS’, false);

以上である。意外と簡単に(私ですら、という意味)実践できそうな項目もあり、即時に、とはいかないが、将来的にはやってみようかと考えている。

コメントはまだありません。