Query all WordPress posts in MySQL not having a Yoast SEO meta description

If you just started using Yoast SEO it's sometimes nice to know which posts don't have a meta description yet. Knowing this, you can add the description which is good for your SEO results. Here is a query you can use to query all posts in WordPress not having a Yoast SEO meta description yet. You can run this on your MySQL prompt or in phpMyAdmin.
Published on Friday, 2 December 2022

Here is a query you can use to query all posts in WordPress not having a Yoast SEO meta description yet. You can run this on your MySQL prompt or in phpMyAdmin.


SELECT p.ID, p.post_title, pm.meta_key, pm.meta_value
  FROM wp_posts p
  LEFT JOIN wp_postmeta pm ON p.ID = pm.post_id AND pm.meta_key = '_yoast_wpseo_metadesc'
  WHERE p.post_type in ('post', 'page')
  AND p.post_status='publish'
  AND pm.meta_key IS NULL;

The SQL query above lists all posts and pages not having a Yoast SEO meta description, because we look at WHERE ... pm.meta_key IS NULL. If you want to inspect all meta description, change it to IS NOT NULL, like this:

SELECT p.ID, p.post_title, pm.meta_key, pm.meta_value
  FROM wp_posts p
  LEFT JOIN wp_postmeta pm ON p.ID = pm.post_id AND pm.meta_key = '_yoast_wpseo_metadesc'
  WHERE p.post_type in ('post', 'page')
  AND p.post_status='publish'
  AND pm.meta_key IS NOT NULL;

This may come in handy to when you want to bulk review the meta descriptions of all your posts and pages.