Skip to content

Instantly share code, notes, and snippets.

@paulcollett
Last active December 19, 2023 04:42
Show Gist options
  • Star 38 You must be signed in to star a gist
  • Fork 8 You must be signed in to fork a gist
  • Save paulcollett/4c81c4f6eb85334ba076 to your computer and use it in GitHub Desktop.
Save paulcollett/4c81c4f6eb85334ba076 to your computer and use it in GitHub Desktop.
Remove Yoast HTML Comments “This site is optimized with the Yoast WordPress SEO plugin”
// For Yoast SEO Plugin Version: 14.1+ add to your Wordpress Theme's functions.php...
// Remove All Yoast HTML Comments
// https://gist.github.com/paulcollett/4c81c4f6eb85334ba076
// Credit @devendrabhandari (https://gist.github.com/paulcollett/4c81c4f6eb85334ba076#gistcomment-3303423)
add_filter( 'wpseo_debug_markers', '__return_false' );
// For Yoast SEO Plugin Version: < 14.1 add to your Wordpress Theme's functions.php...
// Remove All Yoast HTML Comments
// https://gist.github.com/paulcollett/4c81c4f6eb85334ba076
// Credit @maxyudin (https://gist.github.com/paulcollett/4c81c4f6eb85334ba076#gistcomment-2937964)
add_action('wp_head',function() { ob_start(function($o) {
return preg_replace('/\n?<.*?yoast seo plugin.*?>/mi','',$o);
}); },~PHP_INT_MAX);
@Shoora
Copy link

Shoora commented Aug 12, 2017

thanks!! in Yoast SEO plugin v5.2 well working

@mike-source
Copy link

Not working for me:

Wordpress 4.8.2
Yoast SEO 5.5.1

@shangdev
Copy link

It working,super!

@paulcollett
Copy link
Author

I've just updated the above gist. Tested with:

Wordpress 4.9
Yoast SEO 5.7.1

(/cc @mike-source)

@nucklearproject
Copy link

nucklearproject commented Nov 13, 2017

Yoast 5.7.1
WP 4.8.3

If you activated "forced rewrite titles" don't work...
If "forced rewrite titles" is checked, the title tag it does not printt.... :/

UPDATED!
Ok, I solved it

Uncheck "forced rewrite titles"
In your header.php or your head template add this:
<title><?php wp_title(''); ?></title>

@carlitoescobar
Copy link

Yoast SEO plugin v5.8
WP 4.9

Not working for me.

@ghub2015
Copy link

ghub2015 commented Nov 27, 2017

It works (WP 4.9 + plugin v5.8) if you get rid of the check on 'WPSEO_VERSION' but I am not sure of any performance or reliability implications.
Specifically:

//if (defined('WPSEO_VERSION')) {
  add_action('wp_head',function() { ob_start(function($o) {
  return preg_replace('/^\n?\<\!\-\-.*?[Y]oast.*?\-\-\>\n?$/mi','',$o);
  }); },~PHP_INT_MAX);
//}

Edit: I just looked through the code and the check for WPSEO_VERSION should really work, so I am a bit puzzled myself. Anyway, consider this a drive-by comment as I wasn't specifically here for this, but just stumbled upon it. But, this is truly a wake up call for me to scrutinize these WordPress plugins more thoroughly.

@paulcollett
Copy link
Author

Performance wise, it would be exactly same. I'll update the code above

@PaulRayden
Copy link

Nice, thx u

@TomasHurtz
Copy link

This snippet works fine but my functions file complains that the code is not valid!
yoast-snippet

@paulcollett
Copy link
Author

@TomasHurtz, should be valid PHP5+, maybe your code editor is reporting for earlier versions of PHP.

Glad to hear it's still working for the community!

@wpplayer
Copy link

Thanks. Works great with Yoast v8.2.

@jamaluddinrumi
Copy link

jamaluddinrumi commented Sep 30, 2018

It works (WP 4.9 + plugin v5.8) if you get rid of the check on 'WPSEO_VERSION' but I am not sure of any performance or reliability implications.
Specifically:

//if (defined('WPSEO_VERSION')) {
  add_action('wp_head',function() { ob_start(function($o) {
  return preg_replace('/^\n?\<\!\-\-.*?[Y]oast.*?\-\-\>\n?$/mi','',$o);
  }); },~PHP_INT_MAX);
//}

Edit: I just looked through the code and the check for WPSEO_VERSION should really work, so I am a bit puzzled myself. Anyway, consider this a drive-by comment as I wasn't specifically here for this, but just stumbled upon it. But, this is truly a wake up call for me to scrutinize these WordPress plugins more thoroughly.

+1

i use yoast 8.3 and wp 4.9

@mertsabuncu
Copy link

I tried, and it happened. I cited my source in a paper, thank you.
https://mertsabuncu.com/wordpress-sayfa-kodlarindan-yoast-seo-yorumlarini-kaldirin/

@cormartur
Copy link

@cormartur
Copy link

@solucionesuno
Copy link

since last update of yoast 11 there is a problem with this cause it is printing code on header

@maxyudin
Copy link

maxyudin commented Jun 7, 2019

Since plugin version 11 the original code breaks the Knowledge Graph & Schema.org contents (opening <script type='application/ld+json' tag disappears).
So, change preg_replace() pattern as follows. May be somebody have more elegant solution.

preg_replace('/\n?<.*?yoast seo plugin.*?>/mi','',$o);

@DennysDionigi
Copy link

DennysDionigi commented Aug 21, 2019

Hi all, I found this function which seems lighter than a "heavy" replace:

/**
 * Disable Yoast's Mark and its version.
 */
add_action( 'template_redirect', function () {
     if ( ! class_exists( 'WPSEO_Frontend' ) ) {
        return;
    }
    $instance = WPSEO_Frontend::get_instance();
     // make sure, future version of the plugin does not break our site.
    if ( ! method_exists( $instance, 'debug_love') ) {
        return ;
    }
    // ok, let us remove the love letter.
     remove_action( 'wpseo_head', array( $instance, 'debug_love' ), 2 );
}, 9999 );

Also please note that as said by @maxyudin , the previous code breaks the script tag, adding the printed code in the body.

@kangmis77
Copy link

Looks good.. thanks dude... I'll try... http://ideunik.com/

@jeremypetrequin
Copy link

jeremypetrequin commented Jan 2, 2020

The method seems to be called "debug_mark" in the latest version of Yoast,
So the adapted code of @DennysDionigi working for me on the last version is

/**
 * Disable Yoast's Mark and its version.
 */
add_action( 'template_redirect', function () {
	if ( ! class_exists( '\WPSEO_Frontend' ) ) {
		return;
	}
	$instance = \WPSEO_Frontend::get_instance();
	// make sure, future version of the plugin does not break our site.
	if ( ! method_exists( $instance, 'debug_mark') ) {
		return ;
	}
	// ok, let us remove the love letter.
	remove_action( 'wpseo_head', [ $instance, 'debug_mark' ], 2 );
}, 9999 );

@Ridys
Copy link

Ridys commented Feb 27, 2020

Thanks

@devendrabhandari
Copy link

devendrabhandari commented May 14, 2020

Now use the below code to remove Yoast HTML Comments from version 14.1
Yoast SEO Plugin Version: 14.1

add_filter( 'wpseo_debug_markers', '__return_false' );

@mohsinr
Copy link

mohsinr commented Jun 19, 2020

Now use the below code to remove Yoast HTML Comments from version 14.1
Yoast SEO Plugin Version: 14.1

add_filter( 'wpseo_debug_markers', '__return_false' );

Thank you! It works!

@f0rtisyy2019
Copy link

Now use the below code to remove Yoast HTML Comments from version 14.1
Yoast SEO Plugin Version: 14.1
add_filter( 'wpseo_debug_markers', '__return_false' );

Thank you! It works!

Also works for me. Thanks

@ulissse
Copy link

ulissse commented Sep 6, 2020

Hello,
It work but is it possible to get rid of all the spaces and tabulations?
Thank you.

@eduardsantamaria
Copy link

Now use the below code to remove Yoast HTML Comments from version 14.1
Yoast SEO Plugin Version: 14.1
add_filter( 'wpseo_debug_markers', '__return_false' );

Thank you! It works!

Also works for me. Thanks

Now use the below code to remove Yoast HTML Comments from version 14.1
Yoast SEO Plugin Version: 14.1

add_filter( 'wpseo_debug_markers', '__return_false' );

It Works! Thank you!

@justinrains
Copy link

Awesome! Thanks for the code. Much appreciated!

@jenkinstm
Copy link

Still works! Thank you.

@ikiyamay
Copy link

Still works! Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment