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

You are here: Sysadmins of the North » Web applications » WordPress » 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.

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;
Code language: SQL (Structured Query Language) (sql)

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;
Code language: PHP (php)

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

Hi! Join the discussion, leave a reply!

Scroll to Top