Schema Markup is a format for structuring data on your website, making it easy for others to scrape, created by Schema.org. This standardized data format helps search engines and LLMs by making it easier to understand the context and reuse information from your website. By adding specific tags to your site's code, you can explicitly tell search engines what the page is about (e.g., "This is a recipe," "This is a product," "This is an event", "This event is happening 01.01.2026).
How to create a schema
The easiest way to test out what a schema for your page would look like is by using an AI chat and input the following prompt:
Create a JSON LD Schema for this page: www.mypage.com using documentation from Schema.org
Then you can use the Schema.org validator to test it by coping cod or linking to your live page.
Here you have an example schema for a Shoe product page.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Nike Air Max 90",
"description": "Comfortable running shoes from Nike with optimal cushioning.",
"image": "https://example.com/images/nike-air-max-90.jpg",
"brand": {
"@type": "Brand",
"name": "Nike"
},
"sku": "12345",
"offers": {
"@type": "Offer",
"url": "https://example.com/nike-air-max-90",
"priceCurrency": "NOK",
"price": "1299",
"availability": "https://schema.org/InStock"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "250"
},
"review": [
{
"@type": "Review",
"author": {
"@type": "Person",
"name": "John Doe"
},
"datePublished": "2025-01-10",
"reviewBody": "Comfortable shoes suitable for both training and everyday use",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5"
}
}
]
}
</script>
Schema pitfalls
Adding AI-generated schemas to your site without understanding how they work across different pages can lead to
Duplicate or conflicting schema
from multiple plugins or template layers (same entity marked up twice with different values). This can cause Google to ignore parts or choose the wrong values.
Conflicting entity identity
If you use AI to create your schema, you can end up with different @id tags or missing authoritative sameAs links. This can make entity linking inconsistent across pages. @id is the handle for an entity or organization. Reuse the same @id inn all schemas on all your pages, then Google can connect the dots and connect the content 1.
Here you can see a typical entity schema for organizations
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Example AS",
"url": "https://example.com/",
"logo": "https://example.com/logo.png",
"sameAs": [
"https://www.wikidata.org/wiki/QXXXX",
"https://www.linkedin.com/company/example/"
]
}
</script>How to add Schema to your sites
Here we have gathered resources on how to add schema to your website with the most common CMS providers.
Webflow
In Webflow, you add schema per page in Page settings: there is a dedicated “Schema markup” section where you can either generate schema with Webflow AI or paste your own JSON LD, and it works for static pages and Collection pages. Webflow Help: Add schema markup in Webflow
Wix
In Wix, you add schema as JSON LD through SEO Settings by creating a custom markup entry, optionally using variables for dynamic values, and Wix enforces some limits (for example character limits) so you usually keep the markup concise and aligned with visible page content. Source: Wix Support: Adding structured data markup
HubSpot CMS
In HubSpot CMS, schema is typically added by inserting JSON LD into the page head using “code snippets” (either per page or across a domain), which is the most direct way to control structured data without relying on a third party plugin. Source: HubSpot Knowledge Base: Use code snippets with HubSpot content
Framer
In Framer, you add schema by placing JSON LD in Custom Code so it renders in the page head, and you can also store JSON LD in a CMS field and output it into the head (useful for keeping schema in sync for CMS driven pages). Source: Framer Help: Structured data through JSON LD
Squarespace
Squarespace automatically generates some structured data for common page types (for example products, events, blog posts), and for anything extra you inject your own JSON LD using Code Injection (sitewide) or page level injection depending on your plan and needs. Squarespace Help: Using code injection
Custom HTML site
If you know how to build a custom HTML site, and launch it you probably know this already, but you can just add a <script> tag to the top <head> of your page.
