WordPress プラグインの CSS を削除しサイト高速化
必要性
サイトを高速で表示するには、レンダリングをブロックする CSS の排除が必須です。
しかし、多くの WordPress プラグインは、レンダリングをブロックする CSS を <head>
タグ内に挿入してきます。
サイト表示速度が遅ければ遅いほど、サイト離脱率は高まります。また、十分な速度を維持できなければ、検索順位にも悪影響が及びます。
サイト表示を高速にするために、WordPress プラグインの CSS を削除する方法をご紹介します。
読み込みを停止
多くのサイトがインストールしている Contact Form 7 を例に、プラグインの CSS を削除する方法を説明します。他のプラグインでも行うことは同じです。
テーマのスタイルシートに CSS を貼り付け
まずは、デベロッパーツールで <head>
タグ内を確認し、Contact Form 7 の スタイルシートの <link>
タグを探します。
<link
rel="stylesheet"
id="contact-form-7-css"
href="サイトのURL/wp-content/plugins/contact-form-7/includes/css/styles.css"
type="text/css"
media="all" />
上記の <link>
タグを見つけた後は、まず id="contact-form-7-css"
をどこかにメモをしておきます。この id は、CSS を削除する際のコードで使用します。
次に、href 属性の URL をコピーした後、ブラウザの新しいタブにペーストし URL を開きます。すると、Contact Form 7 の CSS が表示されるため、CSS をお使いのテーマのスタイルシートにコピペします。
Contact Form 7 の CSS では、相対パスで background-image
を指定している箇所があります。この相対パスの指定が変わるため、この部分だけ CSS を変更します。
テーマにコピペした CSS の中から、下記の部分を探します。
div.wpcf7 .ajax-loader {
visibility: hidden;
display: inline-block;
background-image: url('../../images/ajax-loader.gif');
width: 16px;
height: 16px;
border: none;
padding: 0;
margin: 0 0 0 4px;
vertical-align: middle;
}
このうち変更するのは background-image: url('../../images/ajax-loader.gif');
です。この GIF 画像は、送信ボタンをクリック後に表示されるローディングアイコンです。
テーマフォルダの直下にスタイルシートがある場合は、下記の CSS に書き換えます。
background-image: url('../../plugins/contact-form-7/images/ajax-loader.gif');
相対パスではなく、絶対パスで指定しても構いません。
他のプラグインでも background-image
で画像を呼び出していないかを確認します。
スタイルシートを head 内から削除
テーマのスタイルシートに CSS をコピペした後は、プラグインのスタイルシートを読み込まなくともデザインは崩れません。
テーマの functions.php に下記のコードを追加し、プラグインのスタイルシートを <head>
タグ内から削除します。
add_action( 'wp_enqueue_scripts', function() {
wp_dequeue_style( 'contact-form-7' );
});
wp_dequeue_style()
では、ハンドルを指定します。CSS ファイルのハンドルは、通常は id と同じです。
Contact Form 7 のスタイルシートの <link>
タグからメモをしておいた、id="contact-form-7-css"
を使用します。ただ、-css
は不要なため、実際に使用するのは contact-form-7
です。
これでレンダリングをブロックする WordPress プラグインのスタイルシートの削除は完了です。
プラグインやテーマによってはカスタマイズは不要
WordPress プラグインの中には、プラグインの設定からスタイルシートの読み込みを停止できるものもあります。
人気プラグインの WordPress Popular Posts が、その 1 つです。WordPress Popular Posts の設定のツールタブには、「プラグインのスタイルシートを使う」という項目があります。この項目を無効にするだけで、WordPress Popular Posts のスタイルシートが <head>
タグ内で読み込まれなくなります。
また、人気テーマの Cocoon は、プラグインの CSS を含む全ての CSS をインライン化する機能があります(しかも、縮小まで行ってくれる)。インライン化すれば、CSS はレンダリングをブロックしません。このようなテーマをお使いになるのもサイトを速くする方法の 1 つです。