Wordpress renders a meta description tag with the content of the blog post as the value for the description.

I already generated in the header.php what I want the description to be, no matter what. However, the old one is still in there. I checked single-post.php and header.php and there is nothing rendering the meta description. So it HAS to be the wp_head() function.

Is there anyway I can put something in my functions.php or something to ensure that on certain pages the meta description is removed from wp_head()?

  • Have you tried switching themes to make certain it isn't your theme, and have you tried disabling all your plugins to see if any of them are setting it? single-post.php and header.php are not the only places in a theme one could set a meta description, and the theme is not the only option either.
    – WebElaine
    Commented Mar 8, 2017 at 22:38
  • It's not the theme, seeing that I have the same theme on my test site and it doesn't do that. I literally have no clue where the meta tag is coming from. I don't want to disable all the plugins on my main site as it is a large website that I hate to see go down.
    – Josh Holly
    Commented Mar 8, 2017 at 23:21

3 Answers 3


You should be able to remove the existing description tag with the following code:

remove_action( 'wp_head', '_wp_render_title_tag', 1 );

Put the above snippet inside the same function you are using to conditionally add a new tag so there is always only a single description tag at a time.


If you want to remote <meta name="description" content="" /> in html head, Add

remove_action('wp_head', 'description');

into your function.php.

  • I only want to remove it on one of the pages, not all of them. Also, is there a way to change the description too if need be?
    – Josh Holly
    Commented Mar 10, 2017 at 3:40
  • One way of doing what you want is to create a specific page.php template for the page and run the remove_action on the page after wp_head();. On your second question, I actually use a plugin (i decided too much trouble to write my own code) called easy-wp-meta-description which allows me to create the meta description content on each post for better SEO score.
    – hcheung
    Commented Mar 10, 2017 at 5:54
  • Sorry, it should be get_header();, not wp_head();.
    – hcheung
    Commented Mar 10, 2017 at 7:03
  • I did the remove_action function on the page after get_header() and it didn't change anything. Also, I have TONS of posts, so that would take FOREVER to do. Insteead, I wrote a code that generated a meta description tag. It's working fine, just got to get rid of the old meta description tag cause it's confusing google.
    – Josh Holly
    Commented Mar 11, 2017 at 6:28

For change the content of the meta description:

$description = '';
if( is_single() or is_page() ){
    global $post;
    $description = get_post_meta( $post->ID, $this->meta_key, true );
} ?>
<?php if( $description ): ?>
    <meta name="description" content="<?php print $description; ?>"
<?php endif ?>
  • That's what I'm doing right now. However, all that does is add another meta tag, not change the current one.
    – Josh Holly
    Commented Mar 11, 2017 at 6:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.