Recipe Schema Builder
Fill out the form on the left. The right panel shows the corresponding JSON-LD updating live as you type. Empty fields are omitted so the output stays clean and valid no matter where you stop. When you're happy, click the copy icon in the code block header and paste the<script>tag into your HTML head.
Durations in plain minutes
Type 15 for 15 minutes. The Builder converts to ISO 8601 format (PT15M) automatically. Works for longer recipes too: 90 becomes PT90M, which Google parses as "1 hr 30 min" in the Recipe rich result card.
Instructions support reorder
Each HowToStep row has ↑ and ↓ buttons to swap with the neighbour. Position numbers (01, 02, 03) update automatically. No drag-and-drop required. Click-to-swap is simpler and covers the realistic reorder case.
New to Recipe markup? Read the Rigshospitalet Recovery Porridge reference example first. It covers every property in depth along with the common mistakes. Click the "Load Jane Xoo's 1945 recipe" button above the form to populate every field from our reference entry and see what a fully-populated form produces.
This Builder deliberately skips the Offer block because most recipes don't have offers. If you need one (paid recipe content, premium cooking tutorials), generate the output here and add the Offer manually. The SoftwareApplication and Product Builders both cover the Offer pattern.
Everything runs in your browser. Your form data is never sent to XooCode's servers or logged anywhere. When you close the tab, nothing persists.
Recipe form
Add each recipe photo URL as a separate entry. For the Recipe rich result, prefer multiple aspect ratios (1:1, 4:3, 16:9).
Emitted as a nested Person entity: { '@type': 'Person', 'name': '...' }. For @id cross-references to existing Person entries, edit the generated JSON-LD by hand.
Freeform category label (e.g. 'Dessert', 'Main course', 'Therapeutic nutrition').
Freeform cuisine label (e.g. 'Italian', 'Danish / Nordic').
Type plain minutes. The Builder converts to ISO 8601 format (PT15M, PT90M) automatically. Empty fields are omitted from the output.
Emitted as nested QuantitativeValue with value and unitText.
Comma-separated tag list. Emitted as a single string.
One ingredient per line, including measurements. Emitted as a string array (or single string for one entry).
No ingredients yet. Click the button below to add the first one.
Instructions (0 steps)
Ordered list of HowToStep entries. Position numbers auto-update as you reorder steps with the ↑ and ↓ buttons. Each step needs text; name and image are optional.
No steps yet. Click the button below to add the first step.
Reviews (0)
Individual customer reviews. Add as many as you want. Each review contributes to the Review snippet rich result. Google pairs these with the aggregate rating above.
No reviews yet. Click the button below to add one.
Live JSON-LD output
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Recipe"
}
</script>Updates as you type. Empty fields are omitted from the output. Click the copy icon above to copy the full <script> tag ready for pasting into your HTML head.