🏗️ Nested Schema & @id Linking: The Ultimate SEO Architecture Guide (2026) UPDATED JUNE 2026
When you markup a product page, you're not just telling Google "this is a phone." You must explain that these reviews relate to this product, and this FAQ answers questions specifically about it. Without using @id, search engines see disconnected entities, not a unified structure.
--subjectOf--> [FAQPage]
--position--> [BreadcrumbList]
🚀 New in 2026: Visual @graph Builder with A/B Testing
Our JSON-LD Generator now includes cutting-edge features for building complex semantic graphs:
1. The Problem of "Disconnected Blocks"
Common mistake: insert one script for Breadcrumbs, another for Product, a third for FAQ. For Google, these are three separate contexts.
❌ BEFORE: Disconnected Schema
Google sees:
- 1 isolated Product
- 1 isolated FAQPage
- 1 isolated BreadcrumbList
- No relationships between them
Result: Google must guess connections, potentially misinterpreting your page structure.
✅ AFTER: Unified Data Graph
Google sees:
- 1 cohesive Product entity
- FAQPage linked via subjectOf
- BreadcrumbList providing hierarchy
- All entities interconnected
Result: Google understands complete page semantics and relationships.
2. @id Magic: Creating Unique Anchors
The @id field is a unique identifier for an entity. Typically, it's the page URL with a hashtag anchor. For example:
- Product:
https://site.com/p1#product - Organization:
https://site.com/#org - FAQ:
https://site.com/p1#faq
🎯 Best Practice: Always Use Canonical URLs
Always use the canonical URL of the page as the base for your @id values. This prevents issues if the page is accessible through different URLs (with parameters or without). For example:
- Good:
https://site.com/product/iphone-15#product - Avoid:
https://site.com/product/iphone-15?ref=promo#product - Also avoid:
https://site.com/product/iphone-15/#product(trailing slash inconsistencies)
3. Perfect Architectural Example (Complete Graph)
Here's how to combine Product, Reviews, Rating, FAQ, and Breadcrumbs into one seamless chain within a single <script> tag:
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebPage",
"@id": "https://example.com/iphone-15",
"name": "iPhone 15 Pro Product Page",
"description": "Official page for iPhone 15 Pro with reviews and FAQ",
"breadcrumb": { "@id": "https://example.com/iphone-15#breadcrumb" },
"mainEntity": { "@id": "https://example.com/iphone-15#product" }
},
{
"@type": "Product",
"@id": "https://example.com/iphone-15#product",
"name": "iPhone 15 Pro",
"image": [
"https://example.com/images/iphone-15-front.jpg",
"https://example.com/images/iphone-15-back.jpg"
],
"description": "Latest Apple smartphone with A17 Pro chip",
"brand": {
"@type": "Brand",
"name": "Apple",
"@id": "https://example.com/brands/apple#brand"
},
"sku": "IP15P-256-BLK",
"gtin13": "0194254338932",
"offers": {
"@type": "Offer",
"price": "999",
"priceCurrency": "USD",
"priceValidUntil": "2026-12-31",
"availability": "https://schema.org/InStock",
"url": "https://example.com/iphone-15",
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": "0",
"currency": "USD"
},
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "US"
}
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.9",
"reviewCount": "850",
"bestRating": "5",
"worstRating": "1"
},
"review": [
{
"@type": "Review",
"@id": "https://example.com/iphone-15#review-1",
"author": {
"@type": "Person",
"name": "John Doe",
"url": "https://example.com/users/johndoe"
},
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5"
},
"reviewBody": "Excellent battery life and camera quality.",
"datePublished": "2026-01-10"
},
{
"@type": "Review",
"@id": "https://example.com/iphone-15#review-2",
"author": {
"@type": "Person",
"name": "Jane Smith"
},
"reviewRating": {
"@type": "Rating",
"ratingValue": "4",
"bestRating": "5"
},
"reviewBody": "Great phone but a bit expensive.",
"datePublished": "2026-01-15"
}
],
"subjectOf": { "@id": "https://example.com/iphone-15#faq" }
},
{
"@type": "FAQPage",
"@id": "https://example.com/iphone-15#faq",
"mainEntity": [
{
"@type": "Question",
"name": "Is it water resistant?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, iPhone 15 Pro has an IP68 rating, meaning it can withstand submersion in up to 6 meters of water for 30 minutes."
}
},
{
"@type": "Question",
"name": "Does it support 5G?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, iPhone 15 Pro supports all major 5G bands worldwide."
}
}
]
},
{
"@type": "BreadcrumbList",
"@id": "https://example.com/iphone-15#breadcrumb",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://example.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Smartphones",
"item": "https://example.com/category/smartphones"
},
{
"@type": "ListItem",
"position": 3,
"name": "Apple",
"item": "https://example.com/category/smartphones/apple"
},
{
"@type": "ListItem",
"position": 4,
"name": "iPhone 15 Pro",
"item": "https://example.com/iphone-15"
}
]
}
]
}
🧠 Why This Works Perfectly
We used the @graph array. This tells Google: "Here's the map of my content." We connected FAQ to Product via the subjectOf field using only @id. We also included the WebPage entity and linked everything together with Breadcrumbs. This saves space and creates clean semantic relationships that Google loves.
Key relationships established:
- WebPage → Product (mainEntity)
- Product → Reviews (review)
- Product → FAQ (subjectOf)
- WebPage → Breadcrumbs (breadcrumb)
Your Target: 90-100 Confidence Score - Our generator validates @graph structure automatically!
Common "Nesting" Mistakes
- Circular References: Don't reference an object that references you back (Product -> FAQ -> Product). This can confuse parsers.
- Protect Your @id: If you change the ID format (was #prod, became #item), Google may perceive this as new, unrelated data.
- Missing Canonical Consistency: Mixing www and non-www versions in @id values creates duplicate entities.
- Over-Nesting: Don't nest more than 3-4 levels deep. Keep your graph reasonably flat for better parser performance.
- Missing shippingDetails (2026): Google now requires explicit shipping information in Offer schema for e-commerce.
🎯 PRO Tip: Testing Your Graph
After implementing your @graph structure, test it with Google's Rich Results Test and Schema Validator. Look for "All good" messages and ensure all relationships are properly recognized. Use our generator to build complex graphs with automatic validation and confidence scoring.
🚀 Want to Build a Complex Graph?
Our tool generates clean JSON-LD with @graph mode, visual A/B testing, confidence scoring, and one-click export. Perfect for e-commerce, SaaS, and content-heavy sites.
Go to Generator →Free • No registration • 98/100 Confidence Score • A/B Preview
Need help? Check our implementation guide for frameworks.