New: RankTutor for iPhone – checks 100 pages with 45 rules and your Google data.See the app β†’
RankTutor

Free, no sign-up. Runs in your browser.

Structured data generator: create JSON-LD schema markup

Pick a type, fill in the fields and copy ready-to-use JSON-LD code for your website. Then check it with Google's Rich Results Test before you publish.

What do you want to describe?
Local business

Your business

Address and location

Opening hours

Description and profiles

Your JSON-LD code

Paste it into the <head> or <body> of the page it describes.

    Why the app finds more

    The RankTutor app

    What the full check in the app does

    The website gives you a quick look at one page. The app checks your whole site, connects your Google data and tells you every week what to do next.

    QR code that opens RankTutor on your iPhone

    Send it to your iPhone: point the camera at the code.

    What structured data is

    Structured data is a small block of code that describes the facts on your page in a format machines can read without guessing. Instead of hoping Google figures out that "Mon–Fri 7–6" are your opening hours, you state it plainly: this is a bakery, this is the address, these are the hours.

    The shared vocabulary for this is schema.org, which is supported by Google, Bing and others. The format Google recommends is JSON-LD: a <script type="application/ld+json"> tag with the data inside. It doesn't change how your page looks to visitors.

    Why it helps

    • Rich results: Google can show extras like product prices, availability or ratings next to your result. Those results tend to stand out, which can lift your click-through rate.
    • Local information: For a local business, markup confirms your name, address, phone and opening hours. It supports what Google shows about you, alongside your Google Business Profile.
    • Clear facts for other systems: Search engines, voice assistants and AI tools read the web too. Clean, consistent facts make it easier for them to get your details right.

    Structured data makes your page eligible for rich results. It doesn't guarantee them, and it isn't a ranking boost on its own.

    Which type to use for what

    TypeUse it forExample
    LocalBusinessA business with a location or service area customers visit or callBakery, hair salon, plumber, cafΓ©, physiotherapist
    OrganizationYour company in general: name, logo, contact, social profilesOnline shop or agency homepage
    FAQPageA page with a list of questions and answers written by you"Frequently asked questions" page
    ArticleBlog posts, news and guides"5 tips for storing sourdough"
    ProductA single product page with price and availabilityProduct page in an online shop
    BreadcrumbListThe path from the homepage to the current pageHome β€Ί Cakes β€Ί Wedding cakes

    For LocalBusiness, pick the most specific subtype schema.org offers, such as Bakery, HairSalon, Plumber, CafeOrCoffeeShop or Physiotherapy. If nothing fits, LocalBusiness itself is fine. Use one main type per page and add BreadcrumbList on top where it makes sense.

    What to fill in for each type

    LocalBusiness

    Name, full address, phone, opening hours and your website URL are the core. Add geo coordinates and priceRange (for example $$) if you like. Use the exact same name, address and phone as on your Google Business Profile.

    Organization

    Name, URL and logo, plus sameAs links to your official social profiles. This suits online shops and businesses without a public location.

    Product

    Name, image and description, plus an offer with price, currency and availability. Ratings are optional and only belong there if real customer reviews are shown on the same page.

    Article

    Headline, author, publish date and an image. Add an update date if you revise the post, and only if you really changed it.

    BreadcrumbList

    Each step of the path with its name and URL, in order from the homepage to the current page. It should match the breadcrumb links visitors see.

    Example: JSON-LD for a bakery

    This is what the generator produces for a LocalBusiness. Replace the example values with your own details:

    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Bakery",
      "name": "Maple Street Bakery",
      "url": "https://www.maplestreetbakery.example/",
      "image": "https://www.maplestreetbakery.example/images/storefront.jpg",
      "telephone": "+1-217-555-0142",
      "priceRange": "$$",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "123 Maple Street",
        "addressLocality": "Springfield",
        "addressRegion": "IL",
        "postalCode": "62701",
        "addressCountry": "US"
      },
      "geo": {
        "@type": "GeoCoordinates",
        "latitude": 39.7990,
        "longitude": -89.6440
      },
      "openingHoursSpecification": [
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
          "opens": "07:00",
          "closes": "18:00"
        },
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": "Saturday",
          "opens": "08:00",
          "closes": "14:00"
        }
      ]
    }
    </script>

    Opening hours use English day names and 24-hour times like 07:00 and 18:00. The phone number works best in international format. The geo coordinates can be copied from Google Maps: right-click your location and the coordinates appear at the top of the menu.

    How to add it to your website

    Paste the full <script> block into the HTML of the page it describes. It can go in the <head> or anywhere in the <body>; Google reads both.

    • Your own HTML: paste it before the closing </head> tag.
    • WordPress: SEO plugins such as Yoast SEO, Rank Math or All in One SEO add basic schema automatically. For custom markup, use a plugin that lets you insert code into the header, or your theme's custom code option.
    • Wix: Wix has a structured data section in each page's SEO settings, and custom code can be added in the site settings.
    • Squarespace: use Code Injection (site-wide header) or a Code Block on a single page. Availability depends on your plan.
    • Shopify: most themes already output Product markup. Check it before adding your own, so you don't end up with duplicates.

    Put LocalBusiness or Organization markup on the homepage or contact page, not on every single page.

    How to test your markup

    1. Open the Rich Results Test and enter your page URL, or paste the code directly.
    2. Check which rich result types Google detects and fix any errors. Warnings are optional fields; fill them if you have the data.
    3. For types that don't have a Google rich result, use the Schema Markup Validator. It checks against the full schema.org vocabulary.
    4. After publishing, watch the Enhancements section in Google Search Console for errors over time.

    Google's own structured data documentation lists the required and recommended fields for each rich result type.

    Common mistakes

    • Data that isn't on the page. Markup must describe what visitors can actually see. Don't add a price, rating or opening hours that the page itself doesn't show.
    • Wrong opening hours format. Use "opens": "09:00", not "9 am". Days need full English names. If you close for lunch, add two entries for the same day.
    • Outdated details. When your hours or phone number change, update the markup too. Conflicting data looks unreliable.
    • Fake or self-written reviews. Never mark up reviews you made up. Also note Google's rule on self-serving reviews: star ratings for a LocalBusiness or Organization, published on that business's own site, don't get review stars in search.
    • Copied example data. Check that no placeholder values, like a sample address, are left in.

    Example: opening hours

    Weaker

    "openingHours": "Mon to Fri 7am till 6pm"

    Better

    "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], "opens": "07:00", "closes": "18:00"

    Machines need a fixed format. Free text gets misread or ignored.

    An honest note on FAQ rich results

    In 2023 Google limited FAQ rich results, the expandable questions under a search result, to well-known, authoritative government and health websites. For a cafΓ© or plumber, those dropdowns will almost certainly not appear anymore.

    FAQPage markup is still valid schema.org and can help other systems understand your questions and answers. Add it if you have a real FAQ section, but don't expect it to change how your result looks in Google. If you want AI tools to find your key pages, an llms.txt file is another small step you can take.

    Before you start, a quick SEO check shows whether your page already has structured data and what else is missing.

    Website vs. app: what each check covers

    The free check on this website looks at one page with Google's Lighthouse tests. The RankTutor app checks your whole site and adds your Google data.

    Basic check (website)RankTutor app
    Pages checked1 pageUp to 100 pages (5 in the free version)
    SEO rulesAbout 10 SEO tests from Google Lighthouse45 rules in six areas, incl. local SEO, security headers, broken links, redirects, structured data, social previews and duplicate titles
    Speed & Core Web Vitalsβœ“βœ“ mobile and desktop
    Images (size, format, alt text)This pageAll checked pages
    Every sitemap entry checkedβ€“βœ“ with Search Console
    Internal links and link ideas–Pro
    Search Console clicks, positions, search termsβ€“βœ“ 7 and 28 days Β· 90 days with Pro
    Weekly plan of what to fix–First step free Β· full plan with Pro
    Alerts when clicks drop or pages leave the index–Pro
    Tracked keywords–3 free Β· 50 with Pro
    Can AI crawlers read your site? llms.txtSeparate toolsβœ“
    Weekly check whether ChatGPT recommends you–Pro
    History and PDF report–Pro

    Pro is an optional subscription in the app. Everything without a Pro note is in the free version. See what the app does β†’

    Frequently asked questions

    What is schema markup?

    Schema markup is code that describes the content of a page using the schema.org vocabulary, such as a business address or a product price. Search engines use it to understand the page and to show rich results.

    Is JSON-LD better than Microdata?

    Google supports JSON-LD, Microdata and RDFa, but recommends JSON-LD because it is kept in one block and is easier to add and maintain. For most small business sites JSON-LD is the simplest choice.

    Where do I put JSON-LD on my page?

    Inside a script tag with the type application/ld+json, either in the head or in the body of the page it describes. Both work for Google.

    Does structured data improve rankings?

    Not directly. It helps search engines understand your page and can make it eligible for rich results, which may get more clicks.

    Why don't my review stars show up in Google?

    Google doesn't show review stars for LocalBusiness or Organization reviews that a business publishes about itself on its own site. Stars can still appear for eligible types like products when the reviews are genuine and visible on the page.

    Should I still use FAQPage markup?

    It is still valid, but since 2023 Google shows FAQ rich results only for well-known government and health sites. Use it if you have a real FAQ, without expecting dropdowns in Google.

    Get RankTutor for iPhone

    The full SEO check for your whole website – free to download.

    Download on the App Store
    See all features β†’