18

How to delete/remove wordpress feed urls from the head tag in header.php?

Example these URLs:

<link rel="alternate" type="application/rss+xml" title="Example Business &raquo; Feed" href="http://example.com/feed/"/> <link rel="alternate" type="application/rss+xml" title="Example Business &raquo; Comments Feed" href="http://example.com/comments/feed/"/> <link rel="alternate" type="application/rss+xml" title="Example Business &raquo; Home Page Live Comments Feed" href="http://example.com/home/feed/"/> 

I don't want to use any plugin for the same.

3 Answers 3

47

I’ve recently had a need to remove the feed url 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:

<?php remove_action( 'wp_head', 'feed_links_extra', 3 ); // Display the links to the extra feeds such as category feeds remove_action( 'wp_head', 'feed_links', 2 ); // Display the links to the general feeds: Post and Comment Feed remove_action( 'wp_head', 'rsd_link' ); // Display the link to the Really Simple Discovery service endpoint, EditURI link remove_action( 'wp_head', 'wlwmanifest_link' ); // Display the link to the Windows Live Writer manifest file. remove_action( 'wp_head', 'index_rel_link' ); // index link remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 ); // prev link remove_action( 'wp_head', 'start_post_rel_link', 10, 0 ); // start link remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 ); // Display relational links for the posts adjacent to the current post. remove_action( 'wp_head', 'wp_generator' ); // Display the XHTML generator that is generated on the wp_head hook, WP version ?> 
Sign up to request clarification or add additional context in comments.

6 Comments

This is a very clean solution. But note that if you don't use a selfmade theme or child theme these changes will be overwritten with the next theme update. To prevent this create a child theme or make a small plugin out of this.
To add to Gerald's comments, if you want to add this code to a child theme create a new function in the child theme's functions.php script called something like override_parent_actions() and then copy-and-paste Kailash's code into that function (minus the PHP tags, of course). Immediately after the new function, add the following code: add_action( 'after_setup_theme', 'override_parent_actions' ); This will then remove the feed URLs without needing to modify the parent theme.
Thanks @NoelWhitemore Very good suggestion to overcome the child theme update.
@KailashYadav, why are pagination rel links included here? Aren't they helpful for SEO bots to discover more of your website content quicker?
I found the remove_action()s worked in my child theme php WITHOUT wrapping them in a function called by add_action()
|
8

You can add this code in your WordPress theme/plugin. to remove all the unnecessary tags from head including WordPress feed tags.

Github Gist URL: https://gist.github.com/coder618/29782921f79235f26285847916c2a122

add_action( 'after_setup_theme', 'prefix_remove_unnecessary_tags' ); function prefix_remove_unnecessary_tags(){ // REMOVE WP EMOJI remove_action('wp_head', 'print_emoji_detection_script', 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' ); // remove all tags from header remove_action( 'wp_head', 'rsd_link' ); remove_action( 'wp_head', 'wp_generator' ); remove_action( 'wp_head', 'feed_links', 2 ); remove_action( 'wp_head', 'index_rel_link' ); remove_action( 'wp_head', 'wlwmanifest_link' ); remove_action( 'wp_head', 'feed_links_extra', 3 ); 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', 'wp_shortlink_wp_head', 10, 0 ); remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 ); remove_action( 'wp_head', 'rest_output_link_wp_head' ); remove_action( 'wp_head', 'wp_oembed_add_discovery_links' ); remove_action( 'template_redirect', 'rest_output_link_header', 11 ); // language add_filter('multilingualpress.hreflang_type', '__return_false'); } 

2 Comments

Attention: be aware that this code will remove a lot more than just the RSS references. Test before using!
Perfect for me!
-3

The simplest way, to remove RSS FEED button is more simple, just go in Appearance / Editor / and REMOVE :

 <div id="profiles" class="clearfix gutter-left"> <?php do_action( 'graphene_social_profiles' ); ?> </div> 

from Theme Header (header.php) of your theme, for me Graphene. Others ways don't work for me, but this way is very simple !!!! Tested!!! PS: Find the same type of script changing graphene, word with the name of your theme.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.