codexier.

Marketing & SEO

Structured Data for Small Business Sites

By CodexierPublished 6 min read

Structured data is a block of JSON in your page that tells search engines and AI assistants, in an unambiguous form, what the page is about: this is a company, here is its name and address, this is a service and its price, these are the questions the page answers. For a small business site it is a few hours of work, it removes guesswork from how you appear in results, and it carries one strict rule: what the markup says must be visible on the page. This guide covers the types worth adding and how to keep them honest.

What structured data does

Search engines read your page as text and infer what it means. Structured data removes the inference for the facts that matter: which entity the page belongs to, what it offers, where and for how much. The direct benefit is eligibility for richer results, such as a knowledge panel with your logo and contact details or a service listing with price. The indirect benefit, growing every year, is that AI assistants use the same data to confirm who you are before citing you.

Organization and LocalBusiness

Every business site should declare the organisation once, normally on the home page, and each physical location as a LocalBusiness or a more specific subtype such as Dentist, Restaurant or AutoRepair. The values must agree, character for character, with your Google Business Profile and the directories, because disagreement is what makes engines distrust all of them.

PropertyOrganizationLocalBusinessNote
name, legalNameYesYesTrading name and legal name if they differ
url, logo, sameAsYesOptionalsameAs links to LinkedIn, Facebook and directory profiles
address, geoRegistered addressEach locationSwedish postcode format with a space, matching the profile
telephone, emailMainPer locationInclude the country code
openingHoursSpecificationNoYesMust match the hours shown on the page
vatID, taxIDOptionalNoOrganisation number in taxID; VAT number in vatID

Service, Product and FAQ

These three types describe what you sell and what you explain. Service fits consulting, installation, cleaning and anything delivered rather than shipped. Product fits packages with a fixed price and is what enables price display in results. FAQPage marks up questions and answers that are genuinely on the page, and it has been the most abused type, which is why Google now shows it only for a narrow set of sites; add it for clarity, not for the rich result.

  • Service: name, description, provider (your Organization), areaServed, and an offers block with price and currency SEK where the price is fixed and shown.
  • Product: name, description, image, brand, and offers with price, priceCurrency, availability. Use it for packaged services with a stated price, not for from-prices that are not real prices.
  • FAQPage: only where the page visually shows each question and its full answer. Never mark up questions the page does not answer.
  • BreadcrumbList: cheap to add and helps engines understand the site structure.
  • Review and AggregateRating: only for reviews collected on your own site under a documented process; imported or self-written ratings violate the guidelines and Swedish marketing law.

Markup must match the page

This is the rule that matters more than any type. Structured data is a claim about the visible page, and Google treats markup for content the user cannot see, or content that differs from what they see, as spam. The penalty is loss of rich results for the whole site, sometimes a manual action. The common failures are not malicious; they are markup that was written once and never updated.

Stale prices and hours

The page says one price, the JSON another, because a plugin cached the old value. Generate the markup from the same source as the visible content, never by hand in a separate place.

Markup on the wrong pages

A theme that injects LocalBusiness on every page, or FAQPage on pages with no FAQ. Each type belongs on the page that actually shows that content.

Ratings you do not have

Star ratings copied from Google or invented. Beyond the search penalty, presenting reviews you cannot substantiate breaches the marketing rules on misleading claims.

Testing and monitoring

Structured data fails silently: a missing comma or a renamed field and the whole block is ignored without any visible change on the page. Test before publishing and watch afterwards, because a site update or a plugin upgrade can break it months later.

  1. Validate with Google's Rich Results Test and the schema.org validator before each release; the first checks eligibility, the second checks syntax.
  2. In Search Console, review the Enhancements reports monthly for errors and warnings per type.
  3. After any change to prices, hours or addresses on the page, confirm the markup changed with it.
  4. Keep the markup in one place in the codebase or CMS, generated from the content fields, with a comment on who maintains it.

When you do not need help: a single-location business on a mainstream CMS can add Organization and LocalBusiness in an afternoon with a well-chosen plugin or a short JSON block, and should stop there. Help pays when the site has many services and locations, when prices and hours change often and must stay in sync, or when Search Console already shows errors nobody understands. Structured data review and repair is part of our SEO audit and technical fix, with the match-the-page rule checked type by type; it is priced on the pricing page, or book a call and show us what Search Console is complaining about.

Frequently asked questions

Does structured data improve rankings?

Not directly. It changes how your result can be displayed and how confidently engines and assistants identify you, which affects clicks and citations. It does not move a page up the list on its own.

JSON-LD or microdata?

JSON-LD. It sits in one script block, is easier to generate and maintain from CMS fields, and is what Google recommends. Microdata spread through the HTML is fragile and breaks with theme changes.

Can we mark up prices if they are from-prices?

Only if the from-price is a real price someone can pay for a defined package. A from-price that nobody ever pays is misleading in markup just as it is on the page. Use a price range or omit the price rather than invent a floor.

Should the markup be in Swedish or English on a bilingual site?

In the language of the page it sits on, with inLanguage set, and with identical facts across both versions. Names, addresses and identifiers do not translate; descriptions do.

Not sure whether your markup is helping or hurting?

Fifteen minutes: we run your key pages through the validators, compare the markup with what the page shows, and tell you what to fix and what to leave alone.

Book a free 15-minute call