Published
·
6 min
read
How to add schema markup in Framer and Webflow
Schema markup tells search engines what your pages actually are. Here is a plain-English walkthrough of the types worth adding, where the code goes in Framer and Webflow, and how to check it works.

TL;DR
Schema markup is a small block of JSON-LD in the page head that tells search engines and AI answer engines what a page is: a business, a service, an article, a set of FAQs.
Four types cover most service businesses: Organization or LocalBusiness, Service, FAQPage and BlogPosting.
In Framer every script goes in the Code tab of site settings, where you choose the pages it runs on, CMS pages included.
In Webflow page-level markup goes in the Schema markup field in Page settings, Collection pages included, and the site-wide block stays in the site's custom code. Then you publish.
Validate with the Rich Results Test and the Schema Markup Validator. Schema makes you eligible for richer results, it does not guarantee them.
What schema markup does
Schema markup is code you add to a page to describe the page in terms a machine can read. A person looking at your site sees “physiotherapy clinic in Warsaw, open until 18:00, 47 reviews”. A crawler sees text and has to guess. Schema removes the guessing: this is a LocalBusiness, this is the address, these are the opening hours, this is the price of the service.
It is usually written in JSON-LD, a script that sits in the head of the page. Visitors never see it, and it does not change your design. Google recommends JSON-LD over the older inline formats in its general structured data guidelines.
Schema does not raise your rankings, and it does not buy you star ratings. It makes your pages eligible for certain result types and gives answer engines precise facts to quote instead of scraping them out of your copy. That is the whole benefit, and it is worth having.
Which schema types matter for a service business
You do not need the full schema.org vocabulary. For a small service business, four types do almost all the work.
Organization or LocalBusiness. Your name, logo, contact details and social profiles. Use LocalBusiness if customers come to you or you serve a defined area, Organization if you work remotely. Put this once, site-wide.
Service. One per service page, describing what you offer, to whom and where. This is the type most agencies skip, and it is the one that maps directly to what people search for.
FAQPage. For questions and answers that are visibly on the page. This is the type answer engines pick up most readily.
BlogPosting or Article. For blog content, with author, publish date and headline.
If your site has a clear hierarchy, BreadcrumbList is a cheap fifth addition. Anything beyond this list is usually effort that never shows up.
Where the code goes in Framer
Framer keeps all custom code in one place, the Code tab in site settings. Each script carries its own settings for where it goes and which pages it runs on, so there are no plugins or per-page code fields involved.
Open site settings, select Code and click Add.
Give the script a name you will recognise later, such as schema-all-pages or schema-services.
Set Placement to Start of
<head>.Under Page, leave All for site-wide markup like Organization or LocalBusiness, or pick the pages the script should run on, such as Home or a single service page.
Set Run to On every page visit.
Paste the JSON-LD into the Code field, wrapped in a script tag with the type set to application/ld+json.
For CMS detail pages, select the collection page under Page and Framer lets you add structured data for its items. The full steps are in Framer’s guide to adding custom code.
Publish the site when you are done. Framer does not apply custom code to the staging preview in the editor, so test on the published URL.
Where the code goes in Webflow
Webflow now has a dedicated Schema markup field in Page settings, on every page including Collection pages. Use it for page-level markup such as Service, FAQPage or BlogPosting.
Open the Pages panel from the left toolbar.
Hover over the page and click the Settings icon.
Scroll to the Schema markup section.
Paste your JSON-LD, or click Generate schema markup to let Webflow AI draft it from the page content.
Click Save, then publish the site.
On Collection pages, bind dynamic Collection fields so each item gets its own values. Plain text, Image, Link, Number, Date/Time and Option fields work. Reference, Multi-reference and Multi-image fields do not. When Webflow AI generates schema on a Collection page, it adds the relevant fields itself. Check its output before publishing, the same way you would check your own.
The field needs a paid Site plan or a paid Workspace, and AI generation has to be switched on in Workspace settings. The full steps are in Webflow’s guide to adding schema markup.
The field works page by page, so keep your Organization or LocalBusiness block in Site settings, under Custom code, in the head code field. That way it is declared once, and each page’s Schema markup field carries only what is specific to that page. Schema you already added through custom code keeps working, so there is no need to move it. Just do not put the same markup in both places, or you publish it twice. Schema only goes live when you publish. If you check the page source and see nothing, republish first.
How to validate it
Never assume markup works because it saved without an error.
Run the published URL through Google’s Rich Results Test to see which result types the page qualifies for.
Run it through the Schema Markup Validator for a strict check of the schema.org syntax, without Google-specific filtering.
After a week or two, open the enhancement reports in Google Search Console. This is the only place that shows how your markup behaves across the whole site rather than one page at a time.
Fix critical errors. Warnings are usually recommended properties you left empty, and they are worth filling in when the data exists.
Not sure your schema is set up right?
Mistakes we see most often
Marking up facts that are not on the page. Google treats this as a quality violation, and it can cost you eligibility.
Adding FAQPage markup to questions hidden behind a tab that never renders. If a visitor cannot read it, it does not count.
Copying a template block and leaving placeholder values like “Your Company Name” in production. It happens more than you would think.
Repeating a full LocalBusiness block on every page with slightly different details. Declare it once, site-wide.
Forgetting to republish, then concluding schema does not work.
Frequently asked questions
Do I need a plugin or a developer for this?
No. Framer accepts JSON-LD in its built-in custom code settings, and Webflow has a dedicated Schema markup field. If you can copy a block of code into a settings panel, you can add schema.
Will schema markup improve my rankings?
No, and treat anyone who promises that with suspicion. It makes pages eligible for richer results and gives AI answer engines clean facts to work with.
Can I have more than one schema type on one page?
Yes. A service page can carry Service, FAQPage and BreadcrumbList at the same time. Keep them in separate script tags so a single mistake does not break the rest.
How long before anything shows up?
Google has to recrawl the page first. Days to a few weeks is normal, and there is no guarantee any rich result appears at all.
Does schema help with AI search and answer engines?
It helps them read you accurately, which matters when your service, location and pricing are the facts being summarised. There is no public ranking guarantee here either, so treat it as good hygiene rather than a growth tactic.



