Header Junk Remover

plugin banner

Header Junk Remover is a lightweight WordPress plugin that removes unnecessary meta tags and links from your site's section.

Author:Joseph Brzezowski (profile at wordpress.org)
WordPress version required:6.0
WordPress version tested:6.8.2
Plugin version:1.0.1
Added to WordPress repository:04-09-2025
Last updated:26-09-2025
Rating, %:0
Rated by:0
Plugin URI:https://github.com/avocadowebservices/junk-he...
Total downloads:845
Active installs:10+
plugin download
Click to start download

Header Junk Remover is a lightweight, no-settings plugin that cleans up the <head> section and headers of your WordPress site.

It removes outdated tags, redundant links, bloated scripts, and unnecessary headers that WordPress adds by default. The result: cleaner source code, faster page loads, less information leakage, and fewer HTTP requests.

What gets removed (and why it matters):

  • RSD Link
    remove_action(‘wp_head’, ‘rsd_link’);
    Used for Really Simple Discovery (old remote editing). Not needed anymore.

  • WordPress Generator
    remove_action(‘wp_head’, ‘wp_generator’);
    Hides your WP version. Avoids advertising it to bots/hackers.

  • Feed Links
    remove_action(‘wp_head’, ‘feed_links’, 2);
    remove_action(‘wp_head’, ‘feed_links_extra’, 3);
    Removes auto-added RSS/Atom feed links. If you don’t use feeds, these are pointless.

  • Relational Links (index, start, parent, adjacent posts)
    remove_action(‘wp_head’, ‘index_rel_link’);
    remove_action(‘wp_head’, ‘start_post_rel_link’, 10, 0);
    remove_action(‘wp_head’, ‘parent_post_rel_link’, 10, 0);
    remove_action(‘wp_head’, ‘adjacent_posts_rel_link’, 10, 0);
    remove_action(‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);
    Removes old “previous/next” link metadata almost no browsers or crawlers use.

  • Windows Live Writer Manifest
    remove_action(‘wp_head’, ‘wlwmanifest_link’);
    Dead tool support. Safe to remove.

  • Shortlink Tags/Headers
    remove_action(‘wp_head’, ‘wp_shortlink_wp_head’, 10, 0);
    remove_action(‘template_redirect’, ‘wp_shortlink_header’, 11);
    Shortlink system is obsolete. Removing reduces clutter.

  • REST API Discovery Link
    remove_action(‘wp_head’, ‘rest_output_link_wp_head’, 10);
    REST API still works, but no longer broadcast in headers.

  • oEmbed Discovery + Scripts
    remove_action(‘wp_head’, ‘wp_oembed_add_discovery_links’, 10);
    remove_action(‘wp_head’, ‘wp_oembed_add_host_js’);
    Prevents WordPress from advertising oEmbed endpoints and loading extra JS.

  • Resource Hints (dns-prefetch, preconnect)
    remove_action(‘wp_head’, ‘wp_resource_hints’, 2);
    Stops WP from auto-inserting DNS hints you may not control.

  • Emoji Scripts and Styles
    remove_action(‘wp_head’, ‘print_emoji_detection_script’, 7);
    remove_action(‘wp_print_styles’, ‘print_emoji_styles’);
    Removes redundant emoji JS/CSS. Browsers already handle emojis natively.

  • Global Styles (Block Editor/Gutenberg)
    remove_action(‘wp_head’, ‘wp_enqueue_global_styles’, 1);
    Prevents WP from injecting default CSS that bloats your source.

Extra Hardening:

  • Disable XML-RPC
    add_filter(‘xmlrpc_enabled’, ‘__return_false’);
    Blocks XML-RPC protocol (commonly abused in brute force/DDoS attacks).

  • Remove X-Pingback Header
    add_filter(‘wp_headers’, function($headers) { unset($headers[‘X-Pingback’]); return $headers; });
    Stops WP from advertising its pingback URL.

  • Turn off PHP Exposure (optional)
    @ini_set(‘expose_php’, ‘off’);
    Prevents PHP version disclosure in server headers.

Why this matters:

  • Less clutter in your <head>
  • Fewer HTTP requests and faster load times
  • Less information leakage for bots/hackers
  • Cleaner source code when you “View Source”
  • Safer defaults without touching your theme files

If you find this plugin useful, consider supporting my work:
???? Buy Me a Coffee


FAQ
ChangeLog