When we inject blocks or breadcrumbs into a NodesSources they might be serialized again and injected for any child NodesSources wasting precious TTFB and response size.
If we wrap single NodesSources responses in a RootObject, we will be able to add additional data outside of NodesSources:
{
"@type": "SingleNodesSourcesRoot",
"item": {
"@id": "",
"@type": "Page",
"someNodeRef": [{
"@id": "",
"@type": "BlogPost"
}],
},
"blocks": {},
"breadcrumbs": []
}
instead of:
{
"@id": "",
"@type": "Page",
"someNodeRef": [{
"@id": "",
"@type": "BlogPost",
"blocks": {},
"breadcrumbs": []
}],
…
"blocks": {},
"breadcrumbs": []
}
When we inject
blocksorbreadcrumbsinto a NodesSources they might be serialized again and injected for any child NodesSources wasting precious TTFB and response size.If we wrap single NodesSources responses in a RootObject, we will be able to add additional data outside of NodesSources:
{ "@type": "SingleNodesSourcesRoot", "item": { "@id": "", "@type": "Page", "someNodeRef": [{ "@id": "", "@type": "BlogPost" }], }, "blocks": {}, "breadcrumbs": [] }instead of:
{ "@id": "", "@type": "Page", "someNodeRef": [{ "@id": "", "@type": "BlogPost", "blocks": {}, "breadcrumbs": [] }], … "blocks": {}, "breadcrumbs": [] }