Technology

How Do You Combine Multiple Schema Types With JSON-LD @graph on a Webflow Page?

Written by
Pravin Kumar
Published on
Jul 22, 2026

Why do my Webflow pages need more than one type of schema?

Because a single page is usually many things at once. A blog post is an Article, written by a Person, published by an Organization, sitting inside a BreadcrumbList, on a WebPage. Search engines and AI systems understand your page better when you describe all of those roles and connect them, instead of shipping one lonely schema type.

The clean way to do that is a JSON-LD @graph. It lets you put several connected entities into one structured data block, so machines see how they relate. I use this pattern on client blogs because it packs the most meaning into the least clutter. Let me explain what it is and how to add it safely in Webflow.

What is JSON-LD @graph?

JSON-LD is the format Google recommends for structured data, and @graph is a feature of it that holds a list of entities in one document. Instead of one object describing one thing, you get an array of objects, each with its own type, all sharing a single context. It is a container for many related facts about your page.

Think of @graph as one folder holding several labeled cards. One card describes the article, one the author, one the publisher, one the breadcrumb trail. They live together in a single script, which keeps your page tidy and your data consistent.

This is standard JSON-LD, not a Webflow trick or a hack. Schema.org and Google both support describing multiple entities this way, so you are using the format exactly as intended.

How is @graph different from adding separate schema blocks?

You can add several separate JSON-LD scripts to a page, and that works. The problem is they float unconnected, so a machine sees an article and an author but is not told they belong together. A @graph lets you link them explicitly, so the relationships are clear instead of guessed.

The other benefit is maintenance. One block is easier to manage, validate, and update than five scattered scripts. When everything lives in one place with shared references, you are far less likely to leave a stale or conflicting entity behind. Fewer moving parts means fewer errors.

To be fair, separate blocks are not wrong, and Google can read either approach. If you only need one type today, a single block is simpler. The @graph earns its keep once you have three or more connected entities, which is exactly the situation on a real blog post with an author and a publisher.

Which schema types should I combine on a blog post?

For a typical Webflow blog post, five types cover most needs. Use Article for the post itself, Person for the author, Organization for the publisher, BreadcrumbList for the navigation path, and WebPage for the page as a whole. That set tells engines who wrote it, who stands behind it, and where it fits.

You do not need every type on every page. Match the schema to what the page actually is. I break down the individual pieces in my guides to adding Article schema in Webflow and adding Organization schema. The @graph is where you bring those separate pieces together into one connected picture.

How do @id references connect the entities?

Each entity in your graph can carry an @id, which is a unique name for that thing. Once an entity has an @id, another entity can point to it by that same @id instead of repeating all its details. That pointer is what turns a list of separate cards into a connected web of facts.

For example, your Article entity can name its author by pointing to the Person entity's @id, and its publisher by pointing to the Organization entity's @id. The Person and Organization are described once, then referenced everywhere they are needed. This keeps your data consistent and avoids contradicting yourself across the page.

Consistency here is the whole point. If your author is described one way in one block and another way in another, machines lose trust in the data. Shared @id references make that mismatch almost impossible.

How do I add a @graph block to a Webflow page?

Put your JSON-LD inside a script of type application/ld+json, and place it in the page head using Webflow's custom code, or in an HTML embed on your collection template. For a CMS blog, the embed on the collection template is powerful, because you can bind fields like the post title, author, and publish date to your CMS data.

That binding is the part people miss. Instead of hand-writing schema for every post, you build the @graph once on the template and let Webflow fill in each post's details from the CMS. One setup then covers your entire blog. New posts get correct structured data automatically, which is exactly the kind of leverage a CMS should give you.

Keep the block in the head or near the top of the body so crawlers find it early. Then publish the site so the change goes live, since custom code only takes effect on a published page. If you are on a lower Webflow plan, check your custom code character limit before you paste, because a large graph can bump against it.

How do I avoid breaking my structured data?

Validate before you trust it. Run your published URL through Google's Rich Results Test and the Schema.org validator to confirm the graph parses and the types are recognized. Fix anything they flag, then test again. Never assume a hand-built block is correct just because it looks right.

Watch for two common mistakes. First, make sure the facts in your schema match what is visible on the page, because invented or mismatched data can get your markup ignored. Second, do not describe the same entity twice with different details. I walk through catching these problems in my post on auditing your structured data for errors.

Does @graph actually help with AI search and rich results?

It helps because it removes guesswork. When an AI engine or Google can see clearly that this article was written by this named person and published by this named organization, it can trust and attribute your content with more confidence. Clear relationships support the trust signals that both rich results and AI citations lean on.

I want to be precise here. Structured data does not force a rich result or guarantee a citation. Google decides what to show. What good schema does is make your page easier to understand and trust, which stacks the odds in your favor. That is worth doing, as long as you do not expect magic.

What should you do next?

Pick your blog collection template and plan a single @graph with Article, Person, Organization, BreadcrumbList, and WebPage, connected by @id references. Build it once with your CMS fields bound in, publish, then validate a live post with the Rich Results Test. After that, every new post inherits correct structured data for free.

If you want this set up cleanly on your Webflow site, without broken markup or guesswork, that is exactly the kind of technical SEO work I do. Reach out and I can build it around your CMS. Let's chat at pravinkumar.co.

Get found, cited and the back office automated

Let's make your site the source AI engines quote and wire up the systems behind it.

Contact

Let's get your website found and cited by AI

Tell me what you're working on, whether AI search is skipping your product, your back office is buried in manual work, or you need a build that does both.

Got it, thanks. I read every message personally and reply within 1-2 business days.
Oops! Something went wrong while submitting the form.