I don’t need Yoast SEO meta box for one post type so I removed it with remove_meta_box(). Removed unneeded columns in post table by unsetting columns with manage_edit-custom_post_columns, but drop down is still left. Is there way to remove it?

Of course it is not that hard to do with jQuery, but maybe there is filter or something built in WP?

3 Answers 3


These additional dropdowns are added via the restrict_manage_posts action hook. This means the dropdown output isn't filterable, but you can remove the hooked action from Yoast SEO.

The filter dropdown is added by the posts_filter_dropdown() method in the WPSEO_Metabox class. It's added in the setup_page_analysis() method of the same class, which is hooked into admin_init at priority 10.

So, we want to remove that action to prevent the dropdown from being displayed. To do so, we can simply hook into admin_init at a priority greater than 10 (to ensure Yoast SEO has already called add_action()). Yoast SEO stores the WPSEO_Metabox class instance in the global variable $wpseo_metabox, so we can easily access it:

add_action( 'admin_init', 'wpse151723_remove_yoast_seo_posts_filter', 20 );

function wpse151723_remove_yoast_seo_posts_filter() {
    global $wpseo_metabox;

    if ( $wpseo_metabox ) {
        remove_action( 'restrict_manage_posts', array( $wpseo_metabox, 'posts_filter_dropdown' ) );
  • 5
    In the last version of Yoast SEO (3.0 +), you must use $wpseo_meta_columns instead of $wpseo_metabox
    – Matthieu
    Commented Apr 27, 2016 at 8:39

Updated answer for Yoast SEO Version: 7.0.2

This will remove both seo score filter and readability filter from posts list edit page in WordPress admin.

add_action( 'admin_init', 'bb_remove_yoast_seo_admin_filters', 20 );
function bb_remove_yoast_seo_admin_filters() {
    global $wpseo_meta_columns ;
    if ( $wpseo_meta_columns  ) {
        remove_action( 'restrict_manage_posts', array( $wpseo_meta_columns , 'posts_filter_dropdown' ) );
        remove_action( 'restrict_manage_posts', array( $wpseo_meta_columns , 'posts_filter_dropdown_readability' ) );

Update 18/03/2020 version 13.3

2 options currently work with current latest version 13.3

Option 1:

If you are working on a headless CMS or fetch the data via custom endpoints and don't need the CPT to be "public"

You can set post_type $args value "public" => false and SEO meta fields and columns filters fields won't appear.

Option 2:

Use the filter wpseo_accessible_post_types

 function bb_disable_yoast_seo_metabox( $post_types ) {
   unset( $post_types['custom_post_type'] );
   return $post_types;
 add_filter( 'wpseo_accessible_post_types', 'bb_disable_yoast_seo_metabox' );    

and you can add this line to the above function to remove the readability dropdown too:

    remove_action( 'restrict_manage_posts', array(  $wpseo_meta_columns, 'posts_filter_dropdown_readability' ) );

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.