SEO
Common Structured Data mistakes that still ship
Broken JSON-LD, markup that contradicts the page, and schema on the wrong templates still ship under otherwise calm SEO checklists.
· by Jonas Reed

Most structured data failures I see are mechanical. The JSON does not parse. The type does not match the page. The template that needed markup never received the partial. SlaySlop's Structured data check "Reviews machine-readable page context exposed to crawlers." The mistakes below are how teams still fail that review while the design system README claims schema is "done."
Outcome if you fix these early
Fewer crawler-facing contradictions. Tickets that name template and URL. Less time arguing about rich results when the HTML never exposed coherent context.
Boundaries
Read-only public scanning. Permission required. Not a pentest. Not advice to spam hidden markup. Structured data ≠ title/meta/social/AI readiness siblings. SlaySlop does not push CMS changes.
Happy path: mistakes I still see
Loading diagram.
Mistake 1: Invalid JSON-LD
A trailing comma, an unescaped quote, a CMS field that injected HTML into a string. Crawlers cannot use what they cannot parse. Validate the rendered page, not only the component storybook.
Mistake 2: Markup contradicts the visible page
Price in JSON differs from price on the page. Author missing on the article but present in markup. Availability set to InStock on a sold-out UI. That is how you earn distrust from machines and auditors.
curl -sL "https://www.example.com/products/demo" | rg -n 'application/ld\+json' -A2Mistake 3: Homepage only
Organization exists on / while product and article templates ship bare. The scan review will look uneven for good reason.
Mistake 4: Staging residue
Canonical URLs, image URLs, or @id values still point at staging hosts. Public crawlers will see that residue.
sd_mistake_log:
url:
symptom: broken-json|mismatch|coverage|staging-residue|duplicate-types
evidence: view-source|slayslop
owner:Pitfalls
Treating the Structured data row as a ranking score. Synonym cycling tickets into unsearchable mush. Inventing check outcomes for types the glossary never promised. Hiding content for users while marking it up for bots.
Related next step
Fix the rendered HTML, rescan, then align titles if those are also thin. Soft link: Structured data. Soft close: verify with a permissioned SlaySlop crawl so template breadth is not a single URL anecdote.
What I refuse to invent
I do not invent prices, customer counts, or scan durations. I do not invent check names absent from slayslop.com. I do not publish exploit steps or takeover payloads. When the glossary sentence is narrow, the article stays on that sentence: observe the public signal with permission, fix the producing configuration, rescan, and keep sibling checks labeled correctly in tickets and portals.
Keep the portal language aligned with the published glossary sentence so clients and future engineers read the same claim.
Keep the portal language aligned with the published glossary sentence so clients and future engineers read the same claim.
Keep the portal language aligned with the published glossary sentence so clients and future engineers read the same claim.
Keep the portal language aligned with the published glossary sentence so clients and future engineers read the same claim.