️ Nested Schema & @id Linking: The Ultimate SEO Architecture Guide (2026) UPDATED AUGUST 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 practical examples
Our JSON-LD Generator now includes practical 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. 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 can make genuine semantic relationships easier to inspect; it does not guarantee a Google result.
Key relationships established:
- WebPage → Product (mainEntity)
- Product → Reviews (review)
- Product → FAQ (subjectOf)
- WebPage → Breadcrumbs (breadcrumb)
Review warnings and complete applicable fields - 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 Schema Validator Generator to build complex graphs with automatic validation and quality guidance.
🚀 Want to Build a Complex Graph?
Our tool generates JSON-LD with optional @graph mode, visual examples, field guidance, and export for e-commerce, SaaS, and content-heavy sites.
GeneratorFree • No registration • Quality guidance • Schema preview
Need help? Check our implementation guide for frameworks.
Related Articles
Next step
Connect entities without losing clarity
Use stable @id links for related entities, review the generated graph, and validate the published page.
Generator Audit a live URL first