How to Debug Schema in WordPress (Errors, Conflicts, Fields)
When WordPress schema breaks, the symptoms are subtle: rich snippets disappear, Search Console shows Enhancement errors, AI agents stop citing. Diagnosis requires the validator workflow plus knowledge of common WordPress patterns. This guide covers the schema debugging process. Pair with schema debugger guide and schema builder.
Step 1: Reproduce the issue
Use Google's Rich Results Test on the affected URL. Note exact error messages and warnings. Save the JSON-LD shown by the test for comparison after fixes.
Step 2: Categorise the error
Common categories: (a) syntax error (invalid JSON, missing brace), (b) missing required field (Product without offers, Recipe without recipeIngredient), (c) wrong @type (using Article when BlogPosting more appropriate), (d) @id collision (two plugins outputting same @id), (e) value type mismatch (date as text not ISO 8601).
Step 3: Identify the source plugin
View page source. Find the JSON-LD block. Find a distinctive field/value combination. Search your WordPress installation: grep -r 'distinctive string' /wp-content/plugins/ — identifies which plugin output it.
Step 4: Fix syntax errors
Often from custom code injecting bad JSON. If from a plugin, update plugin or disable. If from theme code, edit theme. If from a manual JSON-LD block in content, fix the block.
Step 5: Fix missing required fields
Per-schema-type required fields are in schema.org docs. Configure plugin to populate them: Yoast/Rank Math 'Schema Settings' has fields for Organization, Person, Article author/publisher mapping. Verify all required fields filled.
Step 6: Resolve plugin conflicts
When two plugins both output overlapping schemas: pick one to be authority, disable schema output in the other. Each plugin has a 'disable schema' setting (often in advanced/expert section).
Step 7: Re-validate and monitor
Re-run Rich Results Test. Confirm errors cleared. Search Console → Enhancements: errors take 1-7 days to clear from there. Set up monthly monitoring.
Frequently Asked Questions
Why do I have duplicate @id in my WordPress schema?
Two plugins both outputting schemas with the same @id. Common combinations: Yoast SEO + Schema Pro, Yoast SEO + AIOSEO, Rank Math + Schema Pro. Each plugin generates @id values like 'https://yoursite.com/post/#article'. When both target the same URL, they collide. Fix: disable schema output in one plugin.
Search Console says my WordPress schema has 'missing field publisher.logo' — how do I fix?
Plugin Settings → Schema/Knowledge Graph → upload your organisation logo. Requirements: 600x60px minimum, ≤112KB, PNG/JPG. The logo URL becomes publisher.logo.url in JSON-LD output. Without it, Article schema is incomplete.
My WordPress schema validates in Rich Results Test but Search Console reports errors — why?
Search Console uses a slightly different validator and is more strict. Common gap: Rich Results Test allows certain warnings; Search Console marks them as errors. Address ALL warnings in Rich Results Test to prevent Search Console errors.
Can I have schema in both shortcodes and JSON-LD on the same WordPress page?
Yes if they're consistent. Inconsistent (shortcode says 'Product A' but JSON-LD says 'Product B') confuses Google. Best practice: one source of truth — usually JSON-LD output by the SEO plugin. Use shortcodes for display only, not for schema.
Why does my WordPress Article schema show wrong date?
Three common causes: (a) plugin reading wrong field (Yoast uses post date; some plugins use modified date — should be datePublished for original, dateModified for updates). (b) Timezone issues — schema dates should be ISO 8601 with timezone. (c) Caching — if you updated the post but cache wasn't cleared, old date persists in cached HTML.
🔍 Debug WordPress schema
Find errors, conflicts and missing fields across your schemas.
Run Schema Debugger →