SEO Tools

Generate schema markup that Google will actually accept

Choose what the page is about, fill in the fields, and copy the JSON-LD. The point of this one is the checking: almost every generator will happily emit markup that Google rejects, because it tests that a field is filled in and nothing else.

For a news story, a blog post or any written piece. Feeds the headline, date and author shown beside a search result.

Google truncates past about 110 characters.

At least 1200px wide. Google prefers 16:9, 4:3 and 1:1 all supplied.

A person or an organisation. Google shows this on article results.

Nothing to flag. This should pass the Rich Results Test.

Paste this into your <head>

Built in your browser. Nothing you type is sent anywhere.

  • Runs in your browser
  • No account required
  • Free to use

How it works

01

It checks the rules that actually matter

A relative URL, a price with no currency, a rating with no review count, a duration written as "30 minutes" instead of PT30M — each of these produces markup that looks perfectly reasonable and yields no rich result at all. Those are the failures worth catching, and they are the ones checked here.

02

Errors and warnings are different things

An error means Google will refuse it. A warning means it will work and you should still know something — that the field is ignored, that the content must also be visible, or that what you are about to publish could earn a manual action. Mixing the two into one list of red text teaches people to skim past both.

03

The output is escaped for a script tag

An HTML parser ends a script block at the first `</script>` in the text, whether or not it sits inside a JSON string. Every `<` is escaped on the way out, so a description containing markup cannot close the block early and spill the rest of your content onto the page.

What it does

Nine types, chosen for what people publish

Article, Product, LocalBusiness, Event, Person, Recipe, Organization, VideoObject and JobPosting — not the whole vocabulary, which runs to hundreds of types nobody uses.

Empty fields are left out

A half-filled form produces markup for what you filled in, not a set of empty properties. An author with no URL comes out as a name, not an object with a blank in it.

It fills in what it can work out

A recipe’s total time is added up from the prep and cook times, because Google reads that field rather than doing the arithmetic. A missing "last updated" falls back to the publication date, which is more accurate than saying nothing.

Runs in your browser

No account and no upload — what you type is never sent anywhere. Analytics records that the tool was opened, never what you put into it.

Practical advice

Getting a better result

  • Paste the result into the Rich Results Test before you ship it. This checks the rules it knows about; Google is the only authority on the rest.
  • Structured data describes what is on the page. If the price in your markup and the price on the page disagree, the markup is the one that is wrong.
  • Put the script tag in the head, or anywhere in the body — both work. One block per page per type is plenty.
  • Do not mark up ratings you collected yourself for your own product. It is one of the most commonly penalised things in search, and the tool says so every time you fill that field in.
  • JSON-LD is the format Google recommends, and the reason is maintenance: it sits in one block instead of being threaded through your HTML as attributes that break the next time somebody edits the template.

Questions

Things people ask

Will this get me a rich result?

It gets you markup that qualifies. Whether a rich result appears is Google’s decision and depends on the site, the query and the type — valid markup is necessary and never sufficient.

Where does the code go?

In a `<script type="application/ld+json">` block, in the head or the body of the page it describes. The tool gives you the whole tag, ready to paste.

What is the difference between JSON-LD and microdata?

Microdata is attributes scattered through your HTML; JSON-LD is one separate block. They express the same things, but the block survives template edits and the attributes do not, which is why Google recommends JSON-LD.

Why is my URL rejected?

Structured data is read on its own, with no page for a relative path to be relative to, so every URL needs the scheme and domain. It is the single most common reason markup that looks fine is refused.

Can I use more than one type on a page?

Yes — an article page often carries Article, BreadcrumbList and Organization. Generate each one and paste them as separate script blocks.

Who builds these

Free tools by day. Websites that earn their keep by trade.

KuConvert is built by KUDUY, a web design and development agency. From custom WordPress builds to SEO and e-commerce, everything they do is engineered to bring you more qualified traffic and turn it into revenue.

  • Fixed scope, no surprise invoices

    Most sites ship in four to eight weeks with the scope and the price agreed up front.

  • SEO from day one

    Search is designed into the build — structure, schema and Core Web Vitals — not retrofitted.

  • A team, not a ticket queue

    A project manager, a designer and a developer you can actually reach.

Need your whole site to load this fast?

Images are usually the heaviest thing on a page and the easiest win. KUDUY works on site speed, image delivery and Core Web Vitals for teams who would rather not do it by hand.

This tool runs entirely in your browser. Your files are never uploaded.