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の表示速度改善、不要なスクリプトの削除