Removing wp_head() elements (rel=’start’, etc.)

In customising WordPress you may find a need to occasionally remove or add to the Link elements that WordPress automatically outputs in the function call wp_head(). I’ve recently had a need to remove the rel=’prev’ and rel=’next’ link elements and in trying to avoid customising the core WordPress functions the following solutions works.

Ensure you have a functions.php file in your theme directory that you are using. If not create the file and edit the file. The following lines will help remove select lines from your wp_head() function:

remove_action( 'wp_head', 'feed_links_extra', 3 ); // Removes the links to the extra feeds such as category feeds
remove_action( 'wp_head', 'feed_links', 2 ); // Removes links to the general feeds: Post and Comment Feed
remove_action( 'wp_head', 'rsd_link'); // Removes the link to the Really Simple Discovery service endpoint, EditURI link
remove_action( 'wp_head', 'wlwmanifest_link'); // Removes the link to the Windows Live Writer manifest file.
remove_action( 'wp_head', 'index_rel_link'); // Removes the index link
remove_action( 'wp_head', 'parent_post_rel_link'); // Removes the prev link
remove_action( 'wp_head', 'start_post_rel_link'); // Removes the start link
remove_action( 'wp_head', 'adjacent_posts_rel_link'); // Removes the relational links for the posts adjacent to the current post.
remove_action( 'wp_head', 'wp_generator'); // Removes the WordPress version i.e. - WordPress 2.8.4

Don’t remove these items unless you have a need to. The WordPress generator removal could be useful if you are not religiously upgrading your WordPress install as it helps hide the WP version from potential hackers to a certain degree.

29 thoughts on “Removing wp_head() elements (rel=’start’, etc.)

  1. Great info. Not sure when you would need all of these, but I needed to remove the WordPress version and this worked great.

    Thanks 🙂

  2. I still have the rel=”prev” & rel=”start” listed in my header how do I remove it?

    Is there any other place where it could be hidden…

  3. Removing most of this should be usefull right? Less code on site will help to speed it up. I dont see any of the above really useful so i just removed it all. Thanks a lot.

  4. Thanks. What I wanna say is we may use

    wp_deregister_script(“jquery”);
    wp_head();

    at the header.php to drop the jquery (70kb) and light your wordpress

  5. Pingback: travistubbs.net - Travis Allen Tubbs

  6. Thanks! you save my life!

    eeh.. one question.. if good to make “start” with frontpage of the site? (same like the index)
    and if it’s good.. how to make?

    any ways, you save my life, now i can remove the F##K start rel to my old post

    THANKS!

  7. Pingback: Removing wp_head() elements (rel=’start’, etc.) - dhansson - dhansson

  8. Easier way is to write the following lines in your themes functions.php file

    add_filter( 'index_rel_link', 'disable_stuff' );
    add_filter( 'parent_post_rel_link', 'disable_stuff' );
    add_filter( 'start_post_rel_link', 'disable_stuff' );
    add_filter( 'previous_post_rel_link', 'disable_stuff' );
    add_filter( 'next_post_rel_link', 'disable_stuff' );

    function disable_stuff( $data ) {
    return false;
    }

  9. Pingback: wp_head(); içindeki rel=’start’ gibi taglar? temizlemek » Samet Mütevellio?lu

  10. Pingback: ??wp_head()??WordPress??_???

  11. Not working for me to remove the link.

    remove_action( ‘wp_head’, ‘feed_links’, 2 ); // Display the links to the general feeds: Post and Comment Feed

    Any idea for wordpress 3.3.1

  12. Pingback: next and prev tags in Wordpress Themes | | Industry Marketing GuideIndustry Marketing Guide

  13. Pingback: WordPress: Remove RSS (e.g. Page / Comments) Feed from Head

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.