When a person reads a product page, they instantly understand that the big number is the price and that “in stock” means they can buy now. A search engine tries to understand the same thing from the code — and usually succeeds, but not always. Structured data is your way of telling it explicitly: this is a product, it’s called this, it costs this, and it’s available.
This guide explains structured data in practical terms: which types you actually need, how to write them in JSON-LD, where to put them, how to test them, and the mistakes that can cancel their value.
What are Schema and JSON-LD?
Schema.org is a shared vocabulary that search engines agree on to describe things: an organisation, a product, an article, an event, a recipe. JSON-LD is the format Google recommends for writing that data: a separate block of code in the page that doesn’t mix with its design and is easy to add and edit.
A simplified example for a local business:
{
"@context": "https://schema.org",
"@type": "AutoWash",
"name": "Business name",
"telephone": "+966500000000",
"address": {
"@type": "PostalAddress",
"addressLocality": "Riyadh",
"addressCountry": "SA"
}
}
What do you actually gain?
- A more precise understanding of the page: Google knows the content type and details without guessing.
- Eligibility for rich results: such as price and availability in product results, or a breadcrumb trail instead of a long URL.
- Connecting your brand’s data: logo, contact details, social profiles and address, which helps with knowledge panels and brand searches.
It’s important to be realistic: structured data isn’t a direct ranking factor, and having it doesn’t guarantee rich results. Google decides when to show them and has scaled back some types in recent years — for example, FAQ rich results are no longer available to most sites. So focus on the types that genuinely serve your pages.
The most important types for Arabic and Gulf websites
Organization: the home page
Introduces the organisation: name, URL, logo, contact details and social profiles (sameAs). Its natural home is the home page or About page.
LocalBusiness: for businesses customers visit
For restaurants, car washes, clinics, showrooms and physical stores. Adds the address, coordinates, opening hours and price range. Use the most specific type available (Restaurant, AutoRepair, BeautySalon…) rather than generic LocalBusiness. It complements your Google Maps profile, as our local SEO guide explains.
Product: product pages
Name, image, description, brand, and an Offer with price, currency and availability. Platforms like Shopify, Salla and Zid add basic product data automatically in many themes, so check your page before adding duplicate code.
Article: articles and blog posts
Headline, image, author, publish and update dates, and publisher. Real author information supports the content’s credibility.
BreadcrumbList: the navigation trail
Shows where the page sits in the site structure: Home → Category → Page. It can appear in results instead of the full URL and helps Google understand how your site is organised.
Our Schema generator covers these five types: you choose the type, only the relevant fields appear, and you get clean JSON-LD with checks for required fields and invalid URLs.
The golden rule: structured data must match what visitors see on the page. A price in the code that differs from the visible price, or star ratings with no genuine reviews behind them, breaks Google’s guidelines and can lead to a manual action that removes your rich results. That’s why our generator never adds ratings.
Where to put the code
- WordPress: many SEO plugins add basic structured data automatically. For additional types, use a custom code field on the page or the theme files.
- Shopify: through the theme files (such as the product or home page template) or a dedicated structured-data app.
- Any HTML site: paste a
<script type="application/ld+json">block inside<head>or<body>.
Avoid repeating the same type with different values on one page (for example Product from the theme and another Product from a plugin), because it confuses parsing and shows up as errors in reports.
How to test and monitor
- Before or right after publishing: test the URL or code in Google’s Rich Results Test to see whether the page is eligible and which fields are missing.
- For general syntax checks: the Schema.org validator catches structural errors, even for types Google doesn’t show rich results for.
- Over time: the Enhancements reports in Google Search Console show errors and warnings for each type across the site.
Common mistakes
- Data that doesn’t match the page: an old price, changed opening hours, or a sold-out product marked in stock.
- Fake ratings, or a business rating itself.
- Relative URLs for images and logos instead of full URLs starting with https.
- A type that’s too generic when a more specific one fits your business.
- Duplicate code from the theme and a plugin.
- Forgetting to update: structured data is part of the content and changes as prices, addresses and hours change.
A practical order to start
- Organization on the home page, with logo and social profiles.
- LocalBusiness for each branch if customers visit you, on a separate page per branch.
- BreadcrumbList in the theme so it appears on every page.
- Product or Article depending on your site, after checking what the theme already adds.
Structured data is part of a bigger picture: a compelling title and description (test them in our Google SERP preview), clean URLs and a clear share image. For SEO fundamentals, read our SEO guide for Saudi Arabia.
A worked example: a business with three branches
A car-care centre in Riyadh has three branches. The right implementation:
- Home page: Organization with name, logo, URL and social profiles.
- One page per branch: LocalBusiness with the most specific type (such as AutoWash or AutoRepair), plus that branch’s address, coordinates, phone and opening hours. Three branches means three pages and three code blocks — not one block with three addresses.
- Service pages: a BreadcrumbList showing the path (Home → Services → Ceramic coating, say).
That way each page’s data matches what visitors see on it, and matches each branch’s Google Maps profile.
Key takeaways
- JSON-LD is the recommended format, added as a standalone code block on the page.
- Start with Organization, LocalBusiness and BreadcrumbList, then Product or Article.
- Data must match visible content — never add ratings that aren’t real.
- Test with the Rich Results Test and monitor Search Console reports.
- Having the code doesn’t guarantee rich results, but it improves Google’s understanding of your page.
Frequently asked questions
Do I need a developer to add Schema?
Not necessarily. You can create the code with the tool and paste it into a custom code field. For large stores with many products, though, it’s better built into the theme so it updates automatically with each product.
Should I write the data in Arabic?
Yes — write names and descriptions in the page’s language. Technical values like country codes, currencies, dates and URLs use their standard formats.
When do rich results appear after adding the code?
Once Google has recrawled and reindexed the page, which can take days or weeks. Whether to show them remains Google’s decision, based on the query and quality.
Structured data is a simple way to speak to search engines in their own language. Create your page’s code now with our free Schema generator — and if you want a full technical SEO review of your site or store, get in touch.
