Is your schema properly nested? If you’re seeing multiple “cards” in the Schema Markup Validator, it’s time to take a closer look.

In this quick guide, I’ll show you how to validate your structured data using Schema.org’s Validator, what proper nesting looks like, and how to avoid one of the most common mistakes I see in JSON-LD markup: multiple top-level entities that aren’t properly linked.
Who Is This For?
If you’re a designer learning development, a dev with a UX eye, or a technical SEO specialist, this tutorial is for you.
Structured data isn’t just about checking a box for Google. It’s about giving context to your content, and nailing your nesting helps you do it clearly and correctly.
Why Nesting Schema Correctly Matters
When you don’t nest schema properly, tools like the Schema Markup Validator will display your data as multiple unconnected cards—a red flag for search engines and AI.
That might mean:
- Your
WebPage
isn’t linked to yourPerson
,Organization
, orVideoObject
- Your
isPartOf
andmainEntityOfPage
relationships are missing or broken - Your page loses context, hurting both indexing and rich result eligibility
✅ Proper nesting = better clarity, improved validation, and stronger SEO
What Does Proper Schema Nesting Look Like?
Correctly nested schema typically has:
- One top-level
@type
: OftenWebPage
,ProfilePage
, orContactPage
- Other schema entities (like
Person
,Organization
,VideoObject
, orForm
) linked to that page using properties likemainEntity
,subjectOf
, orhasPart
- All entities referencing each other by ID (using
@id
and sometimes fragment IDs like#person
,#video
, etc.)
How to Check Your Schema
- Go to https://validator.schema.org
- Paste your structured data or your page URL
- Look at how many “cards” appear in the results
If you see just one card, you likely have a well-structured, nested schema.

If you see multiple unconnected cards, that’s not necessarily an error, but it may indicate that you’re missing connections between your schema types.

⚠️ Note: Multiple top-level entities aren’t inherently wrong. But if they aren’t connected via properties like
mainEntity
,isPartOf
, orhasPart
, your schema may lack context—making it harder for search engines to interpret the relationships between elements.
While it won’t show up as a validation error, unconnected schema often leads to missed opportunities for rich results and indexing clarity. That’s why it’s considered best practice to nest or connect your structured data around one central entity—usually the WebPage
or a specialized page type like ContactPage
or ProfilePage
.
Example: Manually Fixing a Broken Nesting Setup
I recently noticed that my CreativeWork
object wasn’t nested properly inside my ContactPage
. It was showing up as a separate top-level object in the Schema Validator.
Fix: I checked the ID for my ContactPage
. The line read "@id": "https://example.com/contact/appointment#webpage"
Then I checked the CreativeWork’s "isPartOf"
and found that the @id
was not the same. Ah ha! A typo. If the @id’s do not match, then the objects will not be properly nested.
I ensured that the line now read: "https://example.com/contact/appointment#webpage"
Upon revalidation, the CreativeWork
object now appeared nested under the ContactPage in the validator!
If you’re manually building schema across multiple pages and want to speed up your process, I also share my workflow for building structured data with ChatGPT, plus how I validate and edit AI-generated markup for real-world projects.
A Quick Word on Hashes (#
) in Schema IDs
Using fragment IDs like #person
, #form
, or #video
allows you to reference individual schema blocks that are all part of the same web page (@id: https://example.com/page-name
#webpage).
We’re used to seeing hashtags on social media or in URLs to jump to a section, but in schema, #
in the @id
has nothing to do with either. It’s all about linking parts of your structured data.
Tip: I use consistent ID naming based on the schema object like
#webpage
,#person
and#organization
to make my schema clear and easy to debug.
Summary: Best Practices for Schema Nesting
- Choose one main page schema type (
WebPage
,ProfilePage
,ContactPage
) - Link other entities via
mainEntity
,hasPart
,subjectOf
, orabout
- Use consistent and logical
@id
values with fragments (e.g.#form
,#person
) - Use the Schema Markup Validator to test nesting
- Fix nesting issues to avoid multiple cards and strengthen semantic clarity
Watch the Full Video Tutorial
If you prefer a visual walkthrough, I cover finding the incorrect @ID
in the "isPartOf"
schema and show how I fix it in my latest video:
📺 Watch: How to Check and Fix Schema Nesting
👋 About Me
Hi! I’m Kelly Barkhurst, a full-stack designer who helps other designers become fluent in development, schema, and technical SEO—one skill at a time. Whether you’re just learning structured data or trying to debug messy markup, I create tutorials and content to help bridge that knowledge gap.
Need Help with Schema or SEO?
Through Barkhurst Creative, I offer design, development, and SEO consulting, including custom structured data implementation for small businesses and creative professionals.
💬 Contact me here if you’d like to work together!