Back to News & Insights
SEO October 5, 2026 · 11 min read

How to Find and Fix Missing Meta Descriptions in WordPress with Claude or ChatGPT

A practical Yoast and Rank Math workflow: audit first, write from the page, check what the site...

How to Find and Fix Missing Meta Descriptions in WordPress with Claude or ChatGPT

A practical Yoast and Rank Math workflow: audit first, write from the page, check what the site actually serves, and keep a way back.

Many WordPress sites share the same quiet SEO gap. The homepage and the handful of pages someone cared about at launch have hand-written meta descriptions. Most posts published after that have an empty description field, so the SEO plugin falls back to a template and Google picks its own snippet.

People ask about this all the time. A recent r/Wordpress thread asked how to bulk edit Yoast meta descriptions for post categories, because Yoast's bulk editor didn't show them. Whole plugins exist just to find posts with no description and fill them. Meow Apps even lists it as a typical weekly request to an AI agent: "List every post without a meta description, write one for each in my tone, and show me before saving."

The writing part is easy now. Claude or ChatGPT can write a decent 150 character summary in seconds. The hard parts are the boring ones: Knowing which posts are actually missing a description. Making sure the AI writes from what the page says, not from a keyword and its imagination. Saving into the right field of the SEO plugin you run, and nothing else. Being able to undo it when a description turns out wrong.

This tutorial walks through that loop with an AI client connected to WordPress over MCP through WPPilot. I'll be clear about what the free plugin does, where Pro starts, and where you still need a human.

Google's documentation says snippets are "primarily created from the page content itself", and that Google "sometimes uses the meta description HTML element if it might give users a more accurate description of the page than content taken directly from the page." So a description is a strong suggestion, not a guarantee.

The same page gives three rules that matter once AI writes the copy: Unique per page. "Identical or similar descriptions on every page of a site aren't helpful." Prioritise. If you can't do every page, "at the very least, create a description for the critical URLs like your home page and popular pages." Generated is fine if it's good. Programmatic descriptions "can be appropriate and are encouraged. Good descriptions are human-readable and diverse." Strings of keywords "are less likely to be displayed as a snippet."

That's the green light for AI, if every description is readable, specific and different.

And a saved description is not a ranking result. WPPilot's SEO page says a successful write "proves the operation returned successfully". Measure clicks in Search Console a few weeks later.

What you need WordPress 6.9 or newer and PHP 8.0+. One supported SEO plugin active. WPPilot Free reads and sets one post's SEO title, meta description and robots in seven: Yoast SEO, Rank Math, AIOSEO, SEOPress, The SEO Framework, Slim SEO and SmartCrawl. The reference pages list minimum versions, for example Yoast SEO 21.0+ and Rank Math 1.0.200+. An MCP client. I'll use Claude and ChatGPT as examples. WPPilot Free. Pro is optional; I'll point out exactly where it helps.

If you have two SEO plugins active (common mid-migration), the plugin-neutral SEO calls refuse to guess. They return wppilotseoproviderambiguous and ask you to name the one the front end actually uses. Decide which plugin is live before writing anything.

Create a separate WordPress user for the AI. WPPilot's SEO use case recommends this "so the ledger names it rather than your administrator account." Free's per-post SEO calls check editposts plus the right to edit that post, according to the Yoast and Rank Math references. Pro's full modules check manageoptions, so Pro work needs an administrator-level user.

Then set the WPPilot safety profile to Read Only for the first session. The docs call Read Only "the correct starting point for audits, discovery, reporting, and connection tests," and it hides writes rather than just refusing them: "An ability the active profile does not allow is withheld from discovery." During the audit, the write tools simply aren't there.

Connecting: Claude (web): Customize, then Connectors, then Add custom connector. Paste the MCP URL from WPPilot's Connect screen and approve through OAuth as the dedicated user. claude.ai connects from Anthropic's side, so the site needs public HTTPS. For a local or staging site, Claude Desktop can reach it instead. ChatGPT: on ChatGPT web, open Settings, then Security and login, and turn on Developer mode (WPPilot's guide notes OpenAI documents it for Plus, Pro, Business, Enterprise and Education accounts). Create the app from ChatGPT Plugins with the OAuth URL your Connect screen generates. Apps are enabled per conversation from the plus menu, which explains most "it's connected but ChatGPT ignores it" reports.

WPPilot Free includes audit-content, a content audit that changes nothing. Its seometa check reports a missing meta description or SEO title, read through the active SEO plugin, and "the source used is reported." By default it runs as a background job over published posts and pages and returns a jobid; audit-content-status pages through the findings worst first. Findings are kept for seven days after the job ends.

"Missing" means no override was set. The Free Yoast reference says an empty description "means Yoast uses the post type template," and Rank Math works the same way. A post on the list may still output a template-built description. That's usually what you want to replace, but the page isn't blank in search.

The audit sees stored content. The platform reference warns that stored-content audits "can omit runtime templates, dynamic output and external content." If your theme prints its own meta tags, the audit won't see them. Step 5 covers that.

On Pro, seo-bulk-get-meta reads SEO title, description, canonical, robots and Open Graph fields for many posts in one shape across all supported plugins, with filters for missingdescription, missingtitle and duplicatetitles. A filtered read inspects at most 1,000 posts and reports truncated=true when there were more, so page by post type on big sites. Use the duplicate filter too; WPPilot's own rules say "fix duplicates before rewriting unique ones."

Want to discuss this further?

Book a free strategy call with our team to see how these insights apply to your specific business goals.

Book a consultation