AI visibility
Schema markup generator
Write JSON-LD structured data from a short form: pick a type, fill in what your page shows, and copy the markup, checked against the properties Google requires and recommends. Nothing you type leaves the page.
Pick a type
Fill in what your page shows, then copy or download the JSON-LD.
Checked as you type
Against the properties Google's documentation requires and recommends.
Private
It runs in your browser with no sign-up, and nothing you type leaves the page.
Short answer
A schema markup generator turns a short form into JSON-LD structured data that you paste into a page. Convertica's free generator writes markup for eight schema.org types, including Organization, LocalBusiness, Product and Article, and checks it as you type against the properties Google's documentation requires and recommends. It runs in your browser.
- Pick the type that describes what the page is about, fill in only what the page really shows, and paste the block into the page's HTML.
- Google's lists decide eligibility for a rich result: LocalBusiness needs a name and an address, Product needs a name and a price, review or rating, and Organization has no required property.
- Structured data makes a page eligible for a rich result. Google does not promise to show one, and it is not a documented ranking factor.
- The generator escapes every "<" in your values so that nothing typed can end the script tag early.
- Nothing you type is sent anywhere. The generator runs in your browser and stores nothing.
Schema markup generator: build your JSON-LD
Free to use, no sign-up. The form starts with an illustrative example from a made-up shop. Pick your type, replace the values with what your page shows, and the markup updates as you type. Nothing you enter leaves your browser.
Organization markup
Organization
13 properties, 673 characters.
Every property Google requires for this type is present.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Example Bike Shop",
"url": "https://www.example.com/",
"logo": "https://www.example.com/images/logo.png",
"description": "A made-up bike shop used to show the markup.",
"email": "hello@example.com",
"telephone": "+1-555-010-0199",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 Example Street",
"addressLocality": "Springfield",
"addressRegion": "IL",
"postalCode": "62701",
"addressCountry": "US"
},
"sameAs": [
"https://www.facebook.com/example",
"https://www.youtube.com/@example"
]
}
</script>
Check against Google's lists
Organization
- Google lists no required property for this type.
Recommended, still empty: alternateName, contactPoint, foundingDate, legalName.
Also on Google's list but not in this form (11): add by hand if your page has them. See the list.
Preview: what a parser reads
| Property | Value |
|---|---|
@type | Organization |
name | Example Bike Shop |
url | https://www.example.com/ |
logo | https://www.example.com/images/logo.png |
description | A made-up bike shop used to show the markup. |
email | hello@example.com |
telephone | +1-555-010-0199 |
address > @type | PostalAddress |
address > streetAddress | 100 Example Street |
address > addressLocality | Springfield |
address > addressRegion | IL |
address > postalCode | 62701 |
address > addressCountry | US |
sameAs | https://www.facebook.com/example, https://www.youtube.com/@example |
The format
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "The type you picked",
"property": "value",
"nestedProperty": { "@type": "NestedType", "property": "value" }
}
</script>
One item per block, with nested items for addresses, offers and authors. Source: Google's introduction to structured data.
How to use the schema markup generator
To use the schema markup generator, choose the schema type that describes your page, fill in the fields with what the page really shows, fix anything flagged under a field, and copy or download the JSON-LD. Then paste it into the page's HTML and test the published page.
- Pick the type. Use the type that matches the main thing on the page: Product on a product page, LocalBusiness on a store page, Article on a post. Narrow it with "More specific type" if one fits.
- Fill in what the page shows. Copy names, prices, addresses and dates from the page itself. Leave a field empty rather than guessing: an empty field is left out of the markup.
- Add the repeating rows. Use Add and Remove for profile links, opening hours, offers, tickets and breadcrumb steps.
- Read the messages under the fields. A value in the wrong format, such as a price with a dollar sign, is left out until you fix it.
- Read the check under the markup. It lists each property Google requires for the type as present or missing, then the recommended ones that are still empty.
- Copy or download the markup. Choose JSON only if your CMS adds the script tag itself.
- Paste it into the page and test it. Put the block in the head or the body, publish, then run the page through Google's Rich Results Test.
What is a schema markup generator?
A schema markup generator is a tool that writes structured data from a form, so you never type JSON-LD by hand. Schema markup uses the schema.org vocabulary to state facts about a page, such as a product's price or a business's address, in a form search engines read. Google recommends the JSON-LD format, which this generator writes.
Writing it by hand goes wrong in small ways: a missing comma breaks the whole block, a price typed as "$89" is not the number Google asks for, and a value that contains a closing script tag ends the block early. A generator handles the syntax so that you can spend your attention on the part no tool can check: whether the values match the page.
Most generators stop at the syntax. This one also compares the result with the required and recommended property lists in Google's structured data documentation, the same lists Convertica's schema markup validator uses, read on October 13, 2026.
Which schema types does the generator support?
The schema markup generator supports eight schema.org types: Organization, LocalBusiness, Product with its offers, Article (with BlogPosting and NewsArticle), BreadcrumbList, Person, WebSite and Event. Each one matches a rich result feature Google documents, except Person, which Google reads as an author or profile. The table shows what Google requires for each.
| Type | More specific types offered | Google feature | Required by Google | Repeating rows |
|---|---|---|---|---|
Organization |
Corporation, OnlineStore, NGO, EducationalOrganization, MedicalOrganization | Organization rich result | none listed | Profile links (sameAs) |
LocalBusiness |
Store, Restaurant, ProfessionalService, HomeAndConstructionBusiness, HealthAndBeautyBusiness, AutoRepair, Dentist, LegalService | Local business rich result | address, name | Opening hours, Profile links (sameAs) |
Product |
None | Product snippet rich result, Merchant listing rich result | Product snippet: name, review or aggregateRating or offers; Merchant listing: name, image, offers | Offers |
Article |
BlogPosting, NewsArticle | Article rich result | none listed | None |
BreadcrumbList |
None | Breadcrumb rich result | itemListElement | Breadcrumb trail |
Person |
None | None of its own | No Google list; schema.org shape expects name | Profile links (sameAs) |
WebSite |
None | Site name rich result | name, url | None |
Event |
BusinessEvent, MusicEvent, EducationEvent, SportsEvent, Festival | Event rich result | location, location.address, name, startDate | Tickets |
"Required" decides whether a page can be eligible for the feature at all. Recommended properties make the result more complete, and Google's own advice is to add fewer recommended properties that are accurate rather than every one. Where a type has two features, such as Product snippet and Merchant listing, the check shows both: Merchant listing is for pages where people can buy the product from you.
Why HowTo and FAQPage are not in the list
Google stopped showing HowTo rich results in September 2023, according to its Search Central blog post on HowTo and FAQ changes, so HowTo markup no longer earns anything in Google. FAQ rich results ended on May 7, 2026. FAQPage is still valid schema.org markup, and it has its own tool: the FAQ schema generator builds it from your questions and answers and explains what it still does.
Review and rating markup is left out on purpose too. A rating has to come from real reviews that the page shows, and Google's review snippet guidelines set rules on who may mark up which reviews. That is not something a form should make easy to invent.
Schema markup examples, worked by the generator
The schema markup examples below are built by the same code as the tool above, from the example each type loads. The shop, its address, its prices and its people are made up. They show how the markup is written, not what a business should say, and each one meets every property Google requires for its type.
1. Organization schema for a home page
The form's default values give 13 properties, with a nested PostalAddress and two profile links in sameAs. Google lists no required property for Organization, so the check shows only the recommended properties that are still empty. Organization markup belongs on the home page or on the one page that describes the organization.
2. Product schema with an offer
A product with one offer, ready for both of Google's product features. The price is a number with a dot and no currency sign, and the currency is a separate three-letter code:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Example Trail Helmet",
"image": "https://www.example.com/images/trail-helmet.jpg",
"description": "A made-up helmet used to show the markup.",
"brand": {
"@type": "Brand",
"name": "Example Gear"
},
"sku": "EX-HELM-01",
"offers": {
"@type": "Offer",
"price": "89.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition",
"url": "https://www.example.com/trail-helmet/"
}
}
</script>
The check still lists gtin and mpn as recommended for Merchant listing. Add them if the product has them; never make one up.
3. Local business schema with opening hours
A store open Monday to Friday and on Saturday. "Monday to Friday" in the form becomes one OpeningHoursSpecification with five days in dayOfWeek, and the coordinates become numbers inside a GeoCoordinates item:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Store",
"name": "Example Bike Shop",
"url": "https://www.example.com/",
"image": "https://www.example.com/images/storefront.jpg",
"telephone": "+1-555-010-0199",
"priceRange": "$$",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 Example Street",
"addressLocality": "Springfield",
"addressRegion": "IL",
"postalCode": "62701",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 39.7817,
"longitude": -89.6501
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"opens": "09:00",
"closes": "18:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "10:00",
"closes": "16:00"
}
]
}
</script>
4. Breadcrumb schema for a three-step trail
The generator numbers the steps itself, so position always runs 1, 2, 3 in the order of the rows. The last step has no URL, which Google's breadcrumb documentation allows for the current page:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://www.example.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Helmets",
"item": "https://www.example.com/helmets/"
},
{
"@type": "ListItem",
"position": 3,
"name": "Example Trail Helmet"
}
]
}
</script>
5. A value that contains a closing script tag
Suppose a name is typed as Example </script><script>alert(1)</script> Shop. Pasted by hand into a script element, it would end the block and start a new script. The generator writes every < as the JSON escape \u003c:
"name": "Example \u003c/script>\u003cscript>alert(1)\u003c/script> Shop",
A JSON parser reads the name back exactly as typed. An HTML parser sees no tag in it, so the only closing script tag in the block is the one that ends it.
6. A product with mistakes
The image is typed as /images/trail-helmet.jpg, the price as $89 and the price end date as 12/31/2026. The generator leaves those three values out and says why under each field:
| Field | What the generator says |
|---|---|
| Image URL | Enter a full address that starts with https:// (or http://), such as https://www.example.com/page/. This value is left out of the markup until then. |
| Offer 1: Price | Enter the price as a number with a dot for decimals and no currency sign or commas, such as 1299.00. The currency goes in its own field. This value is left out of the markup until then. |
| Offer 1: Price valid until | Enter the date as YYYY-MM-DD, such as 2026-10-18 (ISO 8601). This value is left out of the markup until then. |
With those values left out, the check reports what Google requires and the markup lacks: offers.price or priceSpecification.price (Product snippet), image (Merchant listing), offers.price or priceSpecification.price (Merchant listing). The lowercase "usd" is not an error: the generator writes it as USD.
What does the schema markup generator check?
The schema markup generator checks two things as you type. Each value's format: full URLs, ISO 8601 dates, 24-hour times, prices as plain numbers, three-letter currencies and coordinates in range. And the finished item against Google's lists for its type, split into required, recommended, recommended where it applies, and properties this form does not offer.
- A value in the wrong format is left out of the markup, with the reason under its field. Nothing half-right is written.
- Missing: a required property means the page is not eligible for that Google feature until it is added.
- Recommended, still empty lists the fields in this form that Google recommends. Fill the ones your page really has.
- Recommended where it applies are the ones Google ties to a kind of business or page, such as a price end date.
- Not in this form counts the properties on Google's list that the form does not offer, such as a return policy or shipping details, with a link to the list.
What it does not check: your live page. It cannot see whether the page shows the same name, price or hours, and it is not Google's validator. For markup you already have, including blocks a plugin prints, paste the page source into the schema markup validator, which also checks every name against schema.org's vocabulary.
How to add schema markup to your website
To add schema markup to your website, paste the script block into the HTML of the page it describes, in the head or in the body. Google's introduction to structured data describes JSON-LD as a script tag in either place. Then follow four rules from Google's guidelines.
- Mark up only what the page shows. Google's general structured data guidelines say not to mark up content that is not visible to readers of the page.
- Put the markup on the page it describes. Product markup on that product's page, LocalBusiness on the location's page, WebSite on the home page.
- Do not print the same item twice. If your theme or SEO plugin already prints Product or Organization markup, fix that block instead of adding a second one that may contradict it.
- Change both together. When a price or opening hours change on the page, change the markup in the same edit.
In WordPress, Shopify or another CMS, look for the field your theme or plugin gives for custom head code or JSON-LD. Google also reads JSON-LD that a script adds to the page, which is how a tag manager adds it, but markup in the page's own HTML has one less thing that can fail.
How to test schema markup
- Before you publish, paste the block into the schema markup validator. It runs in your browser and checks syntax, names and Google's lists.
- After you publish, run the page through Google's Rich Results Test. It shows which rich results Google can read from the live page.
- Use the Schema Markup Validator at schema.org for types Google has no rich result for, such as Person.
- Open the page and compare the values with the markup by eye. No validator does this for you.
Is schema markup still worth adding?
Schema markup is still worth adding for the features Google documents: Product, Local business, Article, Breadcrumb, Event, Organization and Site name all have current property lists. It makes a page eligible for a rich result, not certain of one. Google's guidelines say structured data enables a feature to be present but does not guarantee it.
Three claims to be careful with:
- Rankings. Google has not said structured data is a ranking factor. It helps Google understand a page and qualify it for rich results.
- AI search. Google's guide to its generative AI features says structured data is not required for them and that there is no special schema.org markup to add, while still recommending it for rich results. OpenAI, Anthropic and Perplexity document their crawlers and robots.txt controls, not structured data.
- Click-through rate. A richer result may draw more clicks, but no figure applies to every site. Measure your own: compare the page's click-through rate in Search Console before and after, with the CTR calculator if it helps.
For a store, the case for Product markup is mostly about the facts being right: the price, the availability and the condition that a search result or a shopping agent repeats should be the ones the page shows. Whether AI crawlers and agents can reach and read the page at all is a separate check, which the AI visibility checker runs. It is also one of the eight checks in Convertica's free CRO audit.
Related tools and guides
Schema markup is one part of making a page readable by machines. These cover the rest.
See all free tools and how they fit together.
Schema markup generator FAQ
These questions are in this page's own FAQPage markup, word for word. Both are printed from one list.
What is a schema markup generator?
A schema markup generator is a tool that writes structured data for you from a form, so you do not have to type JSON-LD by hand. You choose a schema.org type, such as Organization or Product, fill in the fields, and copy a script block to paste into your page. This one also checks the result against Google's published property lists.
How can I generate schema markup code?
Choose the type that matches what the page is about, enter the values the page actually shows, and copy the JSON-LD the generator writes. Paste it into the page's HTML, in the head or the body, then test the published page. Google's documentation recommends JSON-LD over Microdata and RDFa because it is the easiest to add and keep up to date.
Is schema markup still relevant?
Yes, for the rich results Google still shows. Product, Local business, Article, Breadcrumb, Event, Organization and Site name are all documented features with current property lists. Two common types are no longer worth adding for Google: HowTo rich results ended in September 2023 and FAQ rich results on May 7, 2026.
What is schema markup used for?
Schema markup tells machines what a page is about in a fixed vocabulary: that a page sells a product at a price, describes a business at an address, or is an article by a named author. Google uses it to make a page eligible for rich results, such as product prices or breadcrumbs in search, and it reads it to understand the page.
Does schema markup improve rankings?
Google has not said that it does. Its documentation says structured data makes a page eligible for rich results, and that using it does not guarantee a rich result will appear. Add markup so that machines read your page correctly and so that it can qualify for those features, not as a way to move up.
Does schema markup help with AI Overviews or ChatGPT?
Google says it is not needed for that. Its guide to its generative AI features says structured data is not required and that there is no special schema.org markup to add, though it still recommends structured data for rich results. No AI search provider documents using schema markup to choose its sources.
Which schema type should I use for my page?
The one that describes the main thing on the page. A product page gets Product with an Offer, a store or office page gets LocalBusiness, a blog post gets Article or BlogPosting, and the home page gets Organization and WebSite. Breadcrumb markup can go on any page that shows a breadcrumb trail.
Where do I put the schema markup on my website?
In the HTML of the page it describes, in the head or in the body. Google reads JSON-LD in either place, and also JSON-LD that a script adds, such as through a tag manager. In a CMS, use the field your theme or SEO plugin gives for custom head code, and check first that the plugin does not already print the same type.
What is the best schema generator for Shopify?
Check what your theme prints before you add anything. Many Shopify themes already print Product markup on product pages, and a second Product block for the same item can contradict the first. Paste the page source into a validator to see what is there, then use a generator only for what is missing, such as Organization or LocalBusiness.
Is a JSON schema generator the same thing?
No. JSON Schema is a format for describing the shape of JSON data, used by developers to validate API payloads. Schema markup uses the schema.org vocabulary to describe things on web pages. The names are similar, the jobs are not, and a JSON Schema generator will not write structured data for search.
Is this schema markup generator free, and where does my data go?
It is free and needs no sign-up. The markup and the check are made by a script in your browser. Nothing you type is sent to a server and nothing is stored, so you can use it for a page that is not live yet.