2026年5月20日

2026年5月20日

WordPressの絵文字スクリプトを無効化する方法

はじめに

WordPressはデフォルトで絵文字(emoji)サポート用のJavaScriptとCSSを全ページに読み込みます。絵文字を使用していないサイトではこれが無駄なHTTPリクエストになり、ページ速度スコアに影響します。わずか数行のコードで無効化できます。

症状・原因

絵文字スクリプトによる影響:

  • 不要なHTTPリクエストwp-emoji-release.min.js(約10KB)が毎ページ読み込まれる
  • dns-prefetchタグの追加s.w.orgへのprefetchタグがhead内に追加される
  • TinyMCEへの追加:管理画面の投稿エディターにも絵文字スクリプトが読み込まれる

絵文字スクリプトが問題になるのは:

  • PageSpeed InsightsやGTmetrixで「不要なJSの削除」を指摘される場合
  • 絵文字をサイトで一切使用していない場合
  • サイトの表示速度を少しでも改善したい場合

解決手順

ステップ1:絵文字スクリプトを完全に無効化する

// functions.php — 絵文字スクリプトを無効化
add_action('init', function() {
    // フロントエンドとバックエンドの絵文字スクリプトを削除
    remove_action('wp_head', 'print_emoji_detection_script', 7);
    remove_action('admin_print_scripts', 'print_emoji_detection_script');
    
    // 絵文字用CSSを削除
    remove_action('wp_print_styles', 'print_emoji_styles');
    remove_action('admin_print_styles', 'print_emoji_styles');
    
    // TinyMCEの絵文字プラグインを削除
    remove_filter('the_content_feed', 'wp_staticize_emoji');
    remove_filter('comment_text_rss', 'wp_staticize_emoji');
    remove_filter('wp_mail', 'wp_staticize_emoji_for_email');
    
    // TinyMCEのプラグインリストから絵文字を削除
    add_filter('tiny_mce_plugins', function($plugins) {
        return array_diff($plugins, ['wpemoji']);
    });
});

ステップ2:dns-prefetchのタグも削除する

// functions.php — s.w.orgへのdns-prefetchを削除
add_filter('emoji_svg_url', '__return_false');

// または wp_resource_hints フィルターで削除
add_filter('wp_resource_hints', function($hints, $relation_type) {
    if ('dns-prefetch' === $relation_type) {
        return array_filter($hints, function($hint) {
            return !str_contains($hint, 's.w.org');
        });
    }
    return $hints;
}, 10, 2);

ステップ3:プラグインで無効化する(コード不要)

コードを書かずにGUIで設定したい場合は「Disable Emojis」プラグインが便利です。

# WP-CLIでインストール
wp plugin install disable-emojis --activate

インストール後は自動で全絵文字スクリプトが無効化されます。

ステップ4:無効化後の確認

# ページのソースで絵文字スクリプトが消えているか確認
curl -s https://yoursite.com/ | grep -i "emoji"

# 正常(何も出力されない)
# 問題あり(wp-emoji-release.min.js の記述が残っている)

PageSpeed Insightsで再測定して改善を確認します。

ステップ5:絵文字は引き続き使用したい場合

絵文字スクリプトを無効化しても、現代のOS・ブラウザは絵文字をネイティブ表示できます。

// functions.php — JavaScriptなしで絵文字をそのまま表示するテスト
// 絵文字を記事に直接書いても多くのブラウザで表示される
// WordPressの絵文字スクリプトは古いブラウザ向けのポリフィル

絵文字を多用するサイト(子供向け・SNS系)ではスクリプトを残した方が安全です。

注意事項

  • 絵文字スクリプトを無効化しても、最新のWindows・macOS・iOS・Androidでは絵文字はネイティブ表示されます。
  • 非常に古いブラウザ(IE11など)では絵文字が豆腐(□)になる場合があります。
  • 子テーマのfunctions.phpに追加することをお勧めします。

まとめ

WordPressの絵文字スクリプトはremove_actionの数行で無効化できます。絵文字を使用していないサイトでは不要なHTTPリクエストを削減でき、わずかながらページ速度が改善します。関連記事:WordPressの表示速度改善不要なスクリプトの削除

お気軽にご相談ください

お見積りへ お問い合わせへ