Zcompress

WordPress画像最適化ガイド

WordPressは世界で最も人気のあるCMSですが、適切な画像最適化を行わないと、サイトのパフォーマンスが大幅に低下する可能性があります。本記事では、WordPressサイトの画像を効果的に最適化し、ページ読み込み速度を改善するための包括的なガイドを提供します。初心者から上級者まで、すぐに実践できるテクニックを詳しく解説します。

WordPressで画像最適化が重要な理由

WordPressサイトにおいて、画像は以下のような影響を与えます:

WordPressの画像処理の仕組み

自動生成される画像サイズ

WordPressは画像をアップロードすると、自動的に複数のサイズを生成します:

functions.phpでの画像サイズ管理

// 不要な画像サイズの生成を停止
function remove_default_image_sizes( $sizes ) {
    unset( $sizes['medium_large'] );
    return $sizes;
}
add_filter( 'intermediate_image_sizes_advanced', 'remove_default_image_sizes' );

// カスタム画像サイズの追加
add_image_size( 'hero-image', 1920, 600, true );
add_image_size( 'product-thumb', 400, 400, true );

画像最適化プラグインの比較

1. Smush(無料/Pro版あり)

特徴:

設定方法:

  1. プラグインをインストール・有効化
  2. 「Smush」→「Dashboard」から初期設定
  3. 「Bulk Smush」で既存画像を一括最適化
  4. 自動圧縮を有効化

2. EWWW Image Optimizer

特徴:

設定例:

// .htaccessでWebP配信を設定
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{REQUEST_FILENAME} (.*)\.(jpe?g|png)$
RewriteCond %{REQUEST_FILENAME}.webp -f
RewriteRule (.+)\.(jpe?g|png)$ %{REQUEST_FILENAME}.webp [T=image/webp,E=accept:1]
</IfModule>

3. ShortPixel Image Optimizer

特徴:

手動での画像最適化テクニック

アップロード前の準備

  1. 適切なサイズにリサイズ:最大幅2000px程度に制限
  2. 画像編集ソフトで事前圧縮:品質80-85%に設定
  3. 適切なファイル名:SEOを意識した命名
  4. 不要なメタデータを削除:EXIF情報の除去

メディアライブラリの整理

定期的なメンテナンスで、不要な画像を削除し、ストレージを最適化:

// 未使用の画像を検出するSQL
SELECT * FROM wp_posts 
WHERE post_type = 'attachment' 
AND ID NOT IN (
    SELECT meta_value FROM wp_postmeta 
    WHERE meta_key = '_thumbnail_id'
);

高度な最適化テクニック

レスポンシブ画像の実装

WordPress 4.4以降では、自動的にsrcset属性が追加されますが、カスタマイズも可能:

// カスタムsrcsetの実装
function custom_responsive_images($attr, $attachment, $size) {
    $attr['sizes'] = '(max-width: 768px) 100vw, 
                      (max-width: 1200px) 50vw, 
                      33vw';
    return $attr;
}
add_filter('wp_get_attachment_image_attributes', 
           'custom_responsive_images', 10, 3);

遅延読み込みの実装

WordPress 5.5以降は標準で遅延読み込みをサポート:

// 特定の画像で遅延読み込みを無効化
function disable_lazy_loading($attr, $attachment, $size) {
    if ($size === 'hero-image') {
        $attr['loading'] = 'eager';
    }
    return $attr;
}
add_filter('wp_get_attachment_image_attributes', 
           'disable_lazy_loading', 10, 3);

CDNとの連携

CloudflareやCloudinaryなどのCDNを活用:

// 画像URLをCDNに置き換え
function replace_image_urls($content) {
    $site_url = get_site_url();
    $cdn_url = 'https://cdn.example.com';
    
    $content = str_replace(
        $site_url . '/wp-content/uploads',
        $cdn_url . '/wp-content/uploads',
        $content
    );
    
    return $content;
}
add_filter('the_content', 'replace_image_urls');

パフォーマンス測定と最適化

測定ツール

目標指標

指標 良好 改善が必要 不良
LCP(最大コンテンツ描画) <2.5秒 2.5-4秒 >4秒
総画像サイズ <1MB 1-3MB >3MB

トラブルシューティング

よくある問題と解決策

デバッグコード

// 画像処理のデバッグ情報を表示
add_filter('wp_handle_upload_prefilter', function($file) {
    error_log('Uploading: ' . $file['name']);
    error_log('Size: ' . $file['size'] . ' bytes');
    error_log('Type: ' . $file['type']);
    return $file;
});

セキュリティとバックアップ

画像最適化を行う際は、以下のセキュリティ対策を実施:

まとめ

WordPressサイトの画像最適化は、サイトパフォーマンスを大幅に改善する最も効果的な方法の一つです。適切なプラグインの選択、手動での最適化、そして継続的なモニタリングを組み合わせることで、高速で効率的なサイトを維持できます。まずは現状の分析から始め、段階的に最適化を進めていくことをお勧めします。Zcompressのようなツールも活用しながら、最適な画像配信環境を構築しましょう。

関連記事:画像読み込みパフォーマンス改善 | モバイル向け画像最適化