WordPressは <head> 内に、RSDリンク・短縮URL・バージョン情報・絵文字用スクリプトなど多くのタグを自動出力します。使っていないものは functions.php で削除でき、HTMLの整理と軽量化につながります。この記事のコードは現行のWordPressで実際に登録されているフックだけに整理してあります。
この記事でわかること
- 現行WPで有効な不要タグの削除セット
- フィードリンクを消してよいかの判断(購読者がいるなら残す)
- 絵文字スクリプトの削除とバージョン情報の非表示
- 古い解説に残る今は無意味なコードの見分け方
不要タグの削除セット(現行WPで検証済み)
テーマ(子テーマ)の functions.php に追加します。いずれも現行のWordPressコアで登録されている出力です。
functions.php:head内の不要タグを削除
// RSDリンク(外部エディタ連携用・通常は不要)
remove_action('wp_head', 'rsd_link');
// WordPressバージョン(meta generator)
remove_action('wp_head', 'wp_generator');
// 短縮URL(shortlink)
remove_action('wp_head', 'wp_shortlink_wp_head');
// oEmbed発見リンク(自サイトの記事を他所に埋め込ませない場合)
remove_action('wp_head', 'wp_oembed_add_discovery_links');
// カテゴリー・タグなど個別フィードのリンク
remove_action('wp_head', 'feed_links_extra', 3);
メインフィード(feed_links)は消す前に考える
remove_action('wp_head', 'feed_links', 2); を追加するとRSSフィードの発見リンクも消えます。フィードリーダーで購読している読者がいるブログでは残すのが無難です。「フィードを一切使わない」サイトに限って削除してください。バージョン情報を非表示にする(気休めと知って使う)
wp_generator の削除に加えて、フィード内などのバージョン表記も消すにはthe_generator フィルターを使います。
functions.php:generator出力を完全に空にする
add_filter('the_generator', '__return_empty_string');
バージョン隠しはセキュリティの本質ではない
バージョン情報はCSS/JSの
バージョン情報はCSS/JSの
?ver= クエリや readme.html からも推測できるため、隠しても気休め程度です。本質的な対策はWordPress本体・テーマ・プラグインを常に最新に保つことです。絵文字(emoji)関連のコードを削除する
WordPressは絵文字の互換表示のためにスクリプトとCSSを読み込みます。記事で絵文字を使わない(またはOSの標準表示で十分な)場合は削除でき、わずかに軽量化されます。
functions.php:絵文字関連の読み込みを削除
// フロント側
remove_action('wp_head', 'print_emoji_detection_script', 7); // 優先度7を必ず指定
remove_action('wp_print_styles', 'print_emoji_styles');
// 管理画面側
remove_action('admin_print_scripts', 'print_emoji_detection_script');
remove_action('admin_print_styles', 'print_emoji_styles');
古い解説に残る「今は無意味なコード」
head整理の解説によく登場するものの、現行のWordPressではすでに出力自体が存在しないため、書いても何もしないコードがあります。見つけたら削除して問題ありません。
| remove_action の対象 | 状態 |
|---|---|
wlwmanifest_link |
WP 6.3でコアから削除済み(Windows Live Writer終息) |
index_rel_link / start_post_rel_link |
WP 3.3で廃止 |
adjacent_posts_rel_link_wp_head |
現行コアでは登録されていない |
タイトルタグ(<title>)の出力制御は別の仕組みなので、wp_headのtitle出力を削除・変更する方法を参照してください。head整理を含む高速化全般はWordPressサイトを高速化する7つのステップ、子テーマでの functions.php の書き方は子テーマでfunctions.phpを正しく拡張する方法が参考になります。
よくある質問(FAQ)
Qmeta generator(バージョン情報)を消すには?
A
remove_action('wp_head', 'wp_generator'); と add_filter('the_generator', '__return_empty_string'); を追加します。ただしバージョンは他の箇所からも推測できるため、本体を最新に保つことが本質的な対策です。Q絵文字のスクリプトは消しても大丈夫ですか?
A記事内の絵文字は最近のブラウザ・OSなら標準機能で表示されるため、多くのサイトでは削除して問題ありません。
remove_action('wp_head', 'print_emoji_detection_script', 7); の優先度7を忘れると解除されないので注意してください。Qremove_action を書いたのに消えません。
A①優先度が登録時と一致しているか(絵文字は7・個別フィードは3など)、②そもそも現行WPに存在しない出力(wlwmanifest_link 等)を消そうとしていないか、③キャッシュが残っていないか、の順で確認してください。
まとめ
- 削除セット:rsd_link・wp_generator・shortlink・oEmbed発見リンク・個別フィード(現行WP検証済み)
- メインフィード(feed_links)は購読者がいるなら残す
- 絵文字:優先度7を付けて解除(フロント+管理画面)
- バージョン隠しは気休め——本質は本体・テーマ・プラグインの更新
- wlwmanifest_link など廃止済みの行は書いても無意味(消してよい)
「今のWordPressに存在する出力」だけを対象に、用途を確認しながら削るのが、安全なhead整理のコツです。

