Guide· Technical

Structured data: describing your products and your business to Google

Structured data is a block of code, usually in JSON-LD format, that tells Google what the page contains: a product, its price, its availability, your return policy, your business. It does not replace the text, it translates it for machines, and it makes your pages eligible for rich results: price and availability under the title, merchant listings, shipping information.

Author
The FindMyCompany team
Published on
Reading time
5 min

In figures

590

monthly searches for “données structurées” (structured data) in France

of small business websites do not describe the business in structured data2,747 sites analysed
55 %
pixels minimum recommended per product imagewidth × height, according to Google
50,000
Google France volumes via OpenSEO, October 2026. FindMyCompany study of 2,747 sites, October 2026. Google Search Central, merchant listings.
Contents 8 sections

What structured data does for a website that sells

“Données structurées” (structured data) is searched 590 times a month on Google France. For a website that has to pay its way, it has one precise job: making a page eligible for displays that win a buyer’s click. A result showing the price, “In stock” and the delivery cost stands out from a plain blue link.

It does not lift a page by magic. Google says so repeatedly: it helps understand and display the page, provided it describes exactly what the visitor sees. A price in the JSON-LD that differs from the displayed price is an error, and can cost you the rich display.

For a shop, Google recommends combining both sources: structured data on your pages and a product feed in Merchant Center. Each confirms the other and maximises eligibility for shopping experiences.

Product and Offer: the minimum for a product page

For a merchant listing, Google requires three properties: name, image and offers (an Offer). It specifies that a merchant listing needs an Offer element (not an AggregateOffer), because the merchant must be the seller of the product. It recommends several high-resolution images of at least 50,000 pixels (width multiplied by height).

An example to adapt (the values are fictitious):

  • <script type=“application/ld+json”>
  • { “@context”: “https://schema.org”, “@type”: “Product”,
  • “name”: “Organic cotton baby sleeping bag 0-6 months”, “sku”: “GIG-06-BIO”,
  • “image”: [“https://www.example.com/img/sleeping-bag-1200.webp”],
  • “description”: “2.5 TOG organic cotton sleeping bag, side zip.”,
  • “brand”: { “@type”: “Brand”, “name”: “Example” },
  • “offers”: { “@type”: “Offer”, “price”: “39.00”, “priceCurrency”: “EUR”,
  • “availability”: “https://schema.org/InStock”, “url”: “https://www.example.com/organic-cotton-sleeping-bag” } }
  • </script>

Add gtin when the product has one (EAN barcode), and aggregateRating only if the reviews shown on the page are real and collected according to the rules. Never mark up a rating that does not appear on the page.

Returns and shipping: the information buyers look at

Costs and return conditions are among the first reasons a purchase is abandoned. Google lets you describe them in structured data, which can show them right in the results.

Your shop’s standard return policy is declared once, at business level: a MerchantReturnPolicy nested under Organization, which applies to most or all of your products. A product-specific exception is declared in its Offer.

Shipping costs specific to a product are declared in the Offer, with one or more OfferShippingDetails instances.

  • “hasMerchantReturnPolicy”: { “@type”: “MerchantReturnPolicy”, “applicableCountry”: “FR”,
  • “returnPolicyCategory”: “https://schema.org/MerchantReturnFiniteReturnWindow”, “merchantReturnDays”: 30 }
  • “shippingDetails”: { “@type”: “OfferShippingDetails”,
  • “shippingRate”: { “@type”: “MonetaryAmount”, “value”: “4.90”, “currency”: “EUR” },
  • “shippingDestination”: { “@type”: “DefinedRegion”, “addressCountry”: “FR” } }

The values above are examples: write your real conditions, the ones in your terms of sale and on your delivery page.

LocalBusiness and Organization: describing the business

In our study, 55% of small business websites do not describe the business in structured data. Yet it is the simplest block: name, address, phone, opening hours, area served, logo, the same information as the page and your Google Business Profile.

Choose the most specific type that exists (Plumber, Dentist, LegalService, Store…) rather than a generic LocalBusiness, and place the block on the home page and the contact page.

  • { “@context”: “https://schema.org”, “@type”: “Plumber”, “name”: “Example Plumbing”,
  • “telephone”: “+33 1 00 00 00 00”, “url”: “https://www.example.com”,
  • “address”: { “@type”: “PostalAddress”, “streetAddress”: “1 rue Exemple”, “postalCode”: “69003”, “addressLocality”: “Lyon”, “addressCountry”: “FR” },
  • “areaServed”: “Lyon and Villeurbanne”, “openingHours”: “Mo-Fr 08:00-18:00” }

FAQ, breadcrumbs and AI assistants

Breadcrumbs (BreadcrumbList) help Google show the path of the page instead of the raw address. The FAQ block describes the visible questions and answers on the page; 81% of the home pages in our study do not even have frequently asked questions to describe.

For AI assistants, structured data is not a requirement: Google states that its AI features do not need any in particular. It remains useful because it makes the facts on the page (price, opening hours, area) clean and consistent, which helps any machine that reads your site. On our own sites, we generate it from the same data as the visible text, so the two never diverge.

Which block on which page

Each type of page has its own block. Adding the same one everywhere is a common mistake: a category is not a product, an article is not a business.

  • Home page: Organization (or the most specific business type), with logo, contact details and links to your official profiles; WebSite.
  • Product page: Product with an Offer, plus BreadcrumbList; reviews and rating only if they are real and visible.
  • Category page: BreadcrumbList; no Product block for each listed product, which would suggest the page sells a single item.
  • Service page: the business type with the area served, plus BreadcrumbList; Service if you describe a specific service.
  • Article or guide: Article, with true publication and update dates, plus FAQPage if the questions are visible on the page.
  • Contact page: the business type, with the same contact details as the Google Business Profile.

Consistency matters more than quantity: the same name, address and phone number everywhere (page, structured data, Google Business Profile, directories) strengthens the trust Google places in this information.

Test and monitor in five steps

  1. Generate the JSON-LD from your data: price, stock and name come from the same source as the page, never from separate manual entry.
  2. Test a page: Google’s Rich Results Test shows the items detected, the errors and the warnings.
  3. Validate the template: test one page of each type (product, category, service, article), then apply the template to every page of that type.
  4. Monitor in Google Search Console: the “Enhancements” and “Merchant listings” reports list the pages in error after Google has crawled them.
  5. Check after every theme or plugin change: that is when structured data disappears or gets duplicated without anyone noticing.

Frequently asked questions

Does structured data improve Google rankings?

Not directly. It helps Google understand the page and makes it eligible for rich displays (price, availability, shipping) that attract more clicks.

What is a rich snippet?

It is a rich result: a Google result that shows more than the title and description, for example a product’s price, availability, rating or shipping information. Structured data makes a page eligible for this display without guaranteeing it: Google decides whether to show it.

How do I test my structured data?

Paste the page address into Google’s Rich Results Test: it lists the items detected, the errors and the warnings. Once the page is live, follow the enhancement reports in Google Search Console, which flag errors across the whole site.

JSON-LD, microdata or RDFa?

Google accepts all three and recommends JSON-LD, the easiest to maintain: a script block separate from the visible HTML.

Can I show stars with my own reviews?

Only if the reviews are real, visible on the page and collected according to the rules. A rating that does not appear on the page, or invented reviews, breach Google’s guidelines and the law.

Do I need structured data if I have a Merchant Center feed?

Yes, Google recommends both: the feed and the page data confirm each other and maximise eligibility for shopping experiences.

Sources

Free audit

Is your structured data in place?

The free audit detects your home page’s structured data, FAQ and the other signals read by Google and AI assistants.

Free30 secondsno commitment