Choose the page type first
The list below breaks this down into the parts that matter most. Read through each one and note anything that applies to your own setup.
- Organization: the business identity and official URL.
- WebSite: the site entity and, where supported, search action.
- Article: editorial content with an author and publication date.
- BreadcrumbList: the visible hierarchy of a page.
- SoftwareApplication: a real software product with supported details.
Keep JSON-LD aligned
The name, description, author, dates and URLs in JSON-LD should be visible or directly verifiable on the page. Do not add ratings, FAQs, prices or features simply because a schema type allows them.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": []
}
</script>- Add the JSON-LD through Framer's custom code area or the project's controlled head pattern.
- Use absolute canonical URLs for entity and breadcrumb items.
- Validate the published URL with Google's rich result and schema validators.
- Fix warnings that affect the chosen result, then retest after publishing.
Dynamic CMS schema
For CMS pages, generate the schema from the same record fields used by the page. Never reuse one Article date, author or image across every record.
Pre-publish schema checklist
Before making changes, work through the points below. Each one covers a different part of the picture, so treat them as a set rather than picking favourites.
- Every required property for the chosen type is present and non-empty.
- Dates use a consistent ISO format and reflect the actual publish or update time.
- Images referenced in schema resolve to real, published URLs.
- Only one Organization and one WebSite block exist site-wide, not one per page.
- Breadcrumb items match the visible navigation trail exactly.
Signs schema is causing problems
A few moving parts are involved here. The points below cover each of them, so you can see the full scope before deciding where to start.
- Search Console reports structured data errors after a template change.
- Rich result eligibility disappears after a CMS field is renamed or removed.
- Duplicate JSON-LD blocks appear because a global and a page-level script both fire.
- Schema describes a price, rating or feature that has since changed on the visible page.