All articles

Schema Markup in 2026: A Small Business Guide

Schema Markup in 2026: A Small Business Guide

Short answer (TL;DR)

Structured data (schema markup) is a block of code behind your page that tells Google and AI models, in machine-readable form, who you are, what you sell, where you are and when you are open. Google uses it for rich results: the stars, prices, hours and images you see inside search listings. Google's own case studies report a 25 percent higher CTR for pages with structured data (Rotten Tomatoes) and an 82 percent higher CTR for pages that appear as rich results (Nestlé). In May 2026 Google dropped FAQ rich results, but FAQPage markup stays valid and Google still reads it to understand a page. For a small business, two types carry most of the weight: LocalBusiness and Organization. Everything else depends on your industry.

What is structured data, exactly?

Structured data is a standard vocabulary of labels (schema.org) that attaches meaning to what is already on your page. A visitor reads "Hours: Mon-Fri 8am-4pm". Google sees text and has to guess. Write the same fact as structured data and there is nothing to guess, because Google gets an `openingHours` field with an explicit value.

The recommended format is JSON-LD, which means a block of code in a `<script>` tag placed in the `<head>` of the page. It does not change how the page looks and it does not slow it down. Because it is separate from the visible content, you can add it to an existing page without rebuilding anything.

It also helps to know what schema markup is not. It is not a direct ranking factor. Google has said repeatedly that adding markup does not by itself move a page up the results. The effect is indirect: better understanding of your content, and rich results that pull more clicks from the same position.

What does structured data actually deliver?

The most solid numbers come from Google's own case studies published in the Search Central documentation. Rotten Tomatoes added markup to 100,000 pages and measured a 25 percent higher CTR compared to pages without it. Nestlé measured an 82 percent higher CTR on pages that appear as rich results. Food Network enabled search features on 80 percent of its pages and recorded 35 percent more visits. Rakuten reports that users spend 1.5 times longer on pages with structured data.

Read those numbers correctly: structured data does not move your position, it moves the share of clicks you get from that position. If you rank third for "plumber near me" and you are the only listing showing opening hours, location and a starting price, you can take more clicks than the second result without them.

Which types are worth it for a small business?

Schema.org has hundreds of types. Google supports roughly thirty for rich results. For a small business, five of them matter.

Schema typeWho it is forWhat Google actually shows
LocalBusinessbarber, auto shop, restaurant, contractor, clinic, anyone with an address or a service areaaddress, phone, hours and map in the panel next to the listing, plus the data behind "near me" queries
Organizationevery company, including online-only businesses with no storefrontname, logo and social profiles inside what Google knows about your brand
Product with Offeronline stores and product pagesprice, availability and rating under the listing, eligibility for merchant listings
Article or BlogPostingblogs, guides, newsdate, author and image next to the listing, better snippet selection
Review and AggregateRatingproducts, books, recipes, events, so not a company reviewing its own servicesstar ratings under the listing, but since September 2019 Google ignores self-serving reviews a business publishes about itself (LocalBusiness and Organization). Stars for a tradesperson come from the Google Business Profile and independent sites, not from your own page
FAQPagepages with questions and answersnothing visible since May 2026, but the markup still helps machines understand the page

Other types (Event, Recipe, JobPosting, Course) are worth adding only if that is genuinely your business. Marking up something that is not on the page violates Google's guidelines and earns a manual action, not more visibility.

What changed in 2026?

The biggest change of the year is the removal of FAQ rich results. Google stopped showing the expandable question panels under listings on May 7, 2026, and in June 2026 it removed the Search Console report, the appearance filter and support in the Rich Results Test. Teams pulling FAQ data through the Search Console API had until August 2026 to adjust those calls.

The takeaway is not to rip FAQPage out. Google confirmed the markup remains valid and that it keeps parsing it to understand pages. You lost the visual treatment in search, not the machine readability, and machine readability is exactly what AI systems use when they assemble an answer.

The second shift is a move in emphasis, from how a result looks to how well entities are understood. Google and Microsoft both said in spring 2025 that structured data is useful for their generative features because it is precise and easy for machines to process. If you want the wider picture of how search itself changed, read our piece on AI SEO and Google's AI search.

How does structured data affect AI answers?

AI answers are assembled from sources the system trusts enough to cite. Trust grows when the same fact matches in more than one place. If your LocalBusiness markup says you are at 1 Main Street and open until 4pm, while your Google Business Profile says something else, the system cannot tell which source to use and will happily use a competitor whose data agrees with itself.

So structured data is not a standalone project. It is the second half of a pair, and the first half is a clean Google Business Profile. Name, address and phone have to match character for character everywhere, including the phone number format. If your profile is not in order yet, start there. We walked through the steps in our guide to Google Business Profile optimization.

Code you can paste

The block below is LocalBusiness for a typical service business. Replace the values with your own and put it in the `<head>` of your home page.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Novak Plumbing LLC",
  "image": "https://www.yourdomain.com/images/shop.jpg",
  "url": "https://www.yourdomain.com",
  "telephone": "+1 512 555 0134",
  "email": "[email protected]",
  "priceRange": "$35-$100/hr",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "1 Main Street",
    "addressLocality": "Austin",
    "addressRegion": "TX",
    "postalCode": "78701",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 30.2672,
    "longitude": -97.7431
  },
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
    "opens": "08:00",
    "closes": "16:00"
  }],
  "areaServed": ["Austin","Round Rock","Cedar Park"],
  "sameAs": [
    "https://www.facebook.com/yourcompany",
    "https://www.instagram.com/yourcompany"
  ]
}
</script>

If your industry has a more specific type, swap `LocalBusiness` for it, for example `Plumber`, `HairSalon`, `Dentist` or `AutoRepair`. A more specific type says more and breaks nothing.

The second block is FAQPage. There will be no rich result, but it is still useful for page understanding and for AI answers. The questions and answers have to be visible to a human visitor on the page itself.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "How much does an emergency plumber call cost?",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "An emergency call in Austin is $75 and includes the first hour of work. Additional work is billed at $55 per hour."
    }
  }, {
    "@type": "Question",
    "name": "How fast can you get to my address?",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "Within Austin and the surrounding suburbs we arrive within two hours of your call, between 8am and 4pm. Outside business hours we schedule by phone."
    }
  }]
}
</script>

Where does the code go and how do I verify it?

On WordPress the fastest route is an SEO plugin (Rank Math or Yoast), which builds LocalBusiness from your settings without writing code. On a custom site, paste the block straight into the `<head>` of the template. Wix and Squarespace both have a header code field, but you have to write the markup yourself.

Verification has two steps. First, run the URL through Google's Rich Results Test and check that the type is detected and no errors are reported. Then open the enhancements report in Search Console, where after a few days you will see how many pages Google actually read and how many have warnings. The schema.org validator is useful for syntax, but it says nothing about what Google will do with the markup.

How much work is it, and when does it show?

For a single-location business, setting up LocalBusiness and Organization is about an hour of work if the data is already gathered. Gathering the data takes longer than writing the code, because the address, hours, phone number and price range have to agree with every place they already appear. An online store with hundreds of products is a different job, since Product and Offer get generated from a database, making it a development task rather than a one-time entry.

The effect is not immediate. Google has to recrawl and process the page, which for a small site takes anywhere from a few days to two weeks. You can speed up indexing with a request in Search Console. The first signs show up in the enhancements report, then in impressions and clicks. So before you deploy, write down the current CTR for your main queries in the Search Results report. Without that baseline, a month later you will not know whether the markup changed anything or something else caused the lift.

Which mistakes do we see most often?

The first is marking up something that is not on the page. Stars without real reviews, a price with no price list, opening hours that contradict the contact page. That breaks the guidelines, and Google can switch off rich results for the whole domain.

The second is duplicate markup. The SEO plugin outputs its own Organization, the theme outputs another, a developer adds a third. Google receives three different claims about the same business. The rule is one business, one Organization, one home page.

The third is markup nobody maintains. You change the phone number on the page and the old one stays in the JSON-LD. Every time an address, schedule or price changes, check the markup too. Otherwise you build a contradiction into your own site, and neither Google nor an AI model has any reason to trust it.

Ready to take the next step?

Book a free 30-minute consultation with NovusAgency.

Book a free call

Related articles