Schema Markup & Structured Data Template
Free editable Schema Markup & Structured Data Template. Copy, personalize, or download the Word .docx template from UNmiss.
Structured data describes your page's content to search engines in a machine-readable way, which can make the page eligible for rich results such as review stars, FAQ accordions, and breadcrumb trails. Google recommends JSON-LD, a script block you place in the page's head or body. This template walks you through six of the most useful schema types. For each one you'll find a plain-language explanation, a property checklist (some types require certain fields, while others, like Article, have none, so check each type and include every accurate property you can), and the rich result it can earn. Fill in the placeholders with values that match what real visitors actually see on the page: the golden rule is to mark up only content that is genuinely present and visible.
6 ready-to-use variants
Article / BlogPosting
Mark up news stories, guides, and blog posts so they're eligible for the Article rich result with a headline, image, and byline.
Article & BlogPosting schema
Use the Article type (or its subtype BlogPosting) for editorial content. It helps Google understand the headline, author, publish date, and lead image, and makes the page eligible for the enhanced Article appearance in Search and Google News.
Property checklist
- @type: [Article or BlogPosting]
- headline: [Article title, 110 characters or fewer]
- image: [URL of a high-resolution in-article image]
- author.name: [Author full name]
- author.url: [Author bio or profile URL]
- datePublished: [ISO 8601 date, e.g. 2026-01-15]
- dateModified: [ISO 8601 last-updated date]
- publisher.name: [Site or brand name]
Match every value to the visible page. Keep the headline identical to the on-page title, and make sure the author is a real person or organization. Article has no strictly required properties: treat the fields above as recommended and include every one you can fill accurately. This markup makes the page eligible for the Article rich result; it does not guarantee one.
Product with Offer & review/rating
Mark up product pages so they qualify for price, availability, and review-star rich results in Search and Shopping.
Product schema with Offer & ratings
The Product type describes a single sellable item. Combined with an Offer (price and availability) and genuine review or aggregateRating data, it can earn price, stock, and star-rating snippets.
Property checklist
- name: [Product name]
- image: [Product image URL]
- description: [Short product description]
- brand.name: [Brand name]
- offers.price: [Numeric price, e.g. 49.00]
- offers.priceCurrency: [ISO currency, e.g. USD]
- offers.availability: [e.g. https://schema.org/InStock]
- aggregateRating.ratingValue & reviewCount: [Only if real reviews exist]
Critical rule: add review or rating markup only when those reviews genuinely appear on the page. Inventing star ratings is a manual-action risk. The Offer fields make the product eligible for price and availability snippets; review fields are what unlock star ratings.
FAQPage
Mark up a page of genuine questions and answers so it can show an expandable FAQ block in Search.
FAQPage schema
The FAQPage type marks up a list of questions and their answers that are all visible on the page. Google now shows the FAQ rich result only for well-known, authoritative government and health sites, so most pages will not earn the expandable FAQ block, but the markup still helps search engines understand your Q&A content.
Property checklist
- @type: [FAQPage]
- mainEntity: a list of Question items
- Question.name: [The full question text]
- acceptedAnswer.@type: Answer
- acceptedAnswer.text: [The full answer, limited HTML tags allowed]
- Repeat one Question block per Q&A pair
Only use FAQPage when the questions and answers are written by the site and visible to users, not for a Q&A forum where users submit answers (use QAPage for that). Every question and answer in the markup must match the on-page text exactly. Avoid using FAQ markup purely for advertising or to repeat the same answer across many questions.
HowTo
Mark up step-by-step instructions so the steps, tools, and time required are clearly understood by search engines.
HowTo schema
The HowTo type describes a task a user completes by following a sequence of steps, such as a repair, setup, or configuration walkthrough. It helps search engines understand the ordered steps, any tools or materials, and how long the task takes.
Property checklist
- name: [The task, e.g. How to reset your router]
- step: an ordered list of HowToStep items
- HowToStep.text: [Instruction for this step]
- HowToStep.name: [Short step title]
- HowToStep.image: [Optional step image URL]
- tool & supply: [Items needed, if any]
- totalTime: [ISO 8601 duration, e.g. PT15M]
List the same steps that appear on the page, in the same order. Note that Google removed the HowTo rich result in 2024, so this markup is now semantic only: it helps search engines understand your steps but no longer produces a special search appearance. Never wrap promotional content as instructional steps.
LocalBusiness
Mark up a physical business location so its name, address, hours, and contact details are clearly defined for local search.
LocalBusiness schema
The LocalBusiness type (or a more specific subtype like Restaurant or Dentist) describes a business with a physical location or defined service area. It clarifies your name, address, phone, and opening hours, supporting your presence in local and map results.
Property checklist
- @type: [LocalBusiness or a subtype]
- name: [Business name]
- address: a PostalAddress with street, city, region, postal code
- telephone: [Public phone number]
- openingHoursSpecification: [Days and hours]
- geo.latitude & geo.longitude: [Coordinates]
- url: [Canonical page URL]
- priceRange: [e.g. $]
Keep the name, address, and phone identical to what's shown on the page and on your Google Business Profile. Accurate, consistent details help search engines associate the markup with the correct entity. This data supports local discovery but does not by itself guarantee a knowledge panel.
Organization & Breadcrumb
Define your brand entity site-wide and give every page a breadcrumb trail that can replace the URL in Search.
Organization & BreadcrumbList schema
The Organization type defines your brand as an entity, helping consolidate logo, name, and official profiles. BreadcrumbList describes a page's position in your site hierarchy and can render as a breadcrumb trail in the search result instead of the plain URL path.
Organization checklist
- name: [Official organization name]
- url: [Homepage URL]
- logo: [Square logo image URL]
- sameAs: [Official social or profile URLs]
BreadcrumbList checklist
- itemListElement: an ordered list of ListItem entries
- ListItem.position: [1, 2, 3 ...]
- ListItem.name: [Crumb label]
- ListItem.item: [URL for that crumb]
Place Organization markup once, typically on the homepage, and add a BreadcrumbList to each interior page that mirrors its visible breadcrumb trail. The breadcrumb gives Search a structured trail it can display for the page.
How to use this template
- Identify what the page actually is: an article, product, FAQ, how-to, local business, or your organization, and pick the single best-matching schema type. Don't force a type onto content it doesn't describe.
- List the properties you plan to mark up and confirm each value appears in the visible page content. Structured data must match what users see; never mark up hidden, fake, or absent information.
- Build a JSON-LD script block with @context set to schema.org and the @type for your page, then fill in each type's required properties (some types, such as Article, have none) plus the recommended ones you have accurate values for.
- Replace each placeholder with the real value, copying text such as the headline, price, and address exactly as it appears on the page so the markup and rendered content stay in sync.
- Place the JSON-LD inside a script type="application/ld+json" tag in the page's HTML; JSON-LD is Google's recommended format and can sit in the head or body. If values are injected by JavaScript, confirm they appear in the rendered HTML Googlebot sees, or the markup is ignored.
- Run the live URL or snippet through Google's Rich Results Test to confirm eligibility and catch missing required properties before publishing.
- Run the same markup through the schema.org validator to verify the syntax and property usage are valid, since it catches structural issues the Rich Results Test may not flag.
- Publish the page and watch the relevant enhancement reports in Google Search Console, fixing any flagged errors and remembering that eligibility never guarantees a rich result will appear.
Pro tips
- Mark up only true, present content. Adding review stars, prices, or details you don't actually show on the page is a violation that can trigger a manual action and remove your rich results.
- Know required vs recommended properties. Required ones determine eligibility for a rich result; recommended ones improve quality and can unlock more features. Satisfy the required set first.
- Eligibility is not a guarantee. Valid structured data only makes a page eligible; whether Google shows a rich result depends on its own quality and relevance judgments, so don't treat a passing test as a promise.
- Keep markup and content in sync. When you edit prices, hours, headlines, or steps, update the JSON-LD in the same change so stale data never contradicts the visible page.
Frequently asked questions
What format should I use for structured data?
Use JSON-LD. It's the format Google recommends because it sits in a single script block, keeps your markup separate from your HTML, and is the easiest to add and maintain. Microdata and RDFa are supported but harder to manage.
Will adding schema markup guarantee a rich result?
No. Structured data makes a page eligible for rich results, but Google decides whether to actually show one based on quality, relevance, and its own guidelines. Valid markup is necessary but not sufficient for a rich result to appear.
Can I add review stars to a page that has no reviews?
No. You may only mark up reviews and ratings that genuinely exist and are visible on the page. Adding fake or absent ratings violates Google's guidelines and can trigger a manual action that removes your rich results entirely.
Does my markup have to match what's on the page?
Yes. Structured data must describe content that's actually present and visible to users. If your markup includes information that doesn't appear on the page, or contradicts it, the page can be deemed ineligible or penalized.
How do I test my structured data?
Run the page or code through Google's Rich Results Test to check rich-result eligibility, and the schema.org validator to verify the markup is valid schema.org. Both are free, and you should pass both before publishing.
What's the difference between required and recommended properties?
Required properties are the minimum a page needs to be eligible for a given rich result; omit one and the page won't qualify. Recommended properties aren't mandatory but improve the markup's quality and can unlock additional features.