Structured Data SEO: the complete guide for Catalan businesses
When you search for "dentist Tarragona" on Google and see a result with stars, opening hours and distance next to another that's plain text, the click decision is already made. That's what structured data SEO does: it doesn't directly boost rankings, but it makes your result stand out and generate more clicks than competitors ranking above you. In this guide I explain exactly how they work, which types matter to you and how to implement them without errors, with examples of real businesses from Catalonia.
| Main objective | Improve visibility and CTR on Google through rich snippets |
|---|---|
| Recommended format | JSON-LD + Schema.org vocabulary |
| Technical difficulty | Medium — implementable without a programmer in most cases |
| Time to results | 2–6 weeks for indexing and rich results appearance |
| Applicable to | SMEs, freelancers, e-commerce, clinics, restaurants, law firms |
- 1. What is structured data and how it works
- 2. Why it makes a difference for Catalan businesses
- 3. Which types to use depending on your business
- 4. Step-by-step implementation with real examples
- 5. Technical errors I see every week
- 6. Monitoring in Search Console: what to look for and when
- Frequently asked questions
1. What is structured data and how it works
Google is very good at reading text, but doesn't always interpret context correctly. The number "4.8" could be a rating, a price, a size or a coordinate. Structured data eliminates this ambiguity: you explicitly tell Google "this 4.8 is the average score from 120 reviews of a restaurant in Gràcia". No room for error.
The standard vocabulary is Schema.org — a joint project by Google, Bing and Yahoo — and the format Google recommends is JSON-LD: a block of JavaScript code that goes in the <head> of the page. The visitor sees nothing different, but Google reads an additional layer of very precise information that can translate into a rich result in the search engine.
2. Why it makes a difference for Catalan businesses
When I audit Catalan SME websites, the pattern repeats: decent content, acceptable on-page SEO, but results on Google completely "bare". Without schema, you lose visual space and instant credibility against competitors who may rank below you but get more clicks.
Specific cases I've seen firsthand:
- A Catalan cuisine restaurant in Gràcia that went from having a plain text result to showing stars, price range and opening hours. The CTR of its homepage increased noticeably in less than two months, without changing position.
- A physiotherapy clinic in Tarragona that added FAQPage to its services page. The expandable questions appeared in the search result and doubled organic traffic to that page in six weeks.
- A sports clothing e-commerce in Sabadell with 500+ items that had no product schema. When we implemented it correctly, Google started showing price and availability in results, which reduced bounce rate because users already knew the price before clicking.
What distinguishes a good schema implementation from a mediocre one isn't quantity, but precision. Adding schema to all pages without criteria is worse than having none: Google can suppress rich results or apply manual actions. Each schema type must be adapted to the business, sector and search intent of each specific page.
3. Which types to use depending on your business
Here are the most relevant schemas for Catalan businesses, with specific use cases and the rich results they activate:
| Schema Type | Ideal for | Rich result it activates | Real example |
|---|---|---|---|
| LocalBusiness (and subtypes) | Restaurants, clinics, shops, law firms | Opening hours, address, phone in Google panel | Catalan cuisine restaurant in Gràcia (Barcelona) → use Restaurant, not generic LocalBusiness |
| Product | E-commerce, online shops | Price, availability, ratings | Sports clothing shop in Sabadell with 500+ items |
| FAQPage | Service pages with real questions | Expandable questions in search result | Services page of a physiotherapy clinic in Tarragona |
| Article / BlogPosting | Blogs, guides, news | Publication date, author, breadcrumb | Blog of a tax advisory firm in Lleida |
| BreadcrumbList | Any website with categories | Navigation path visible in result | Gourmet products e-commerce from Girona |
| AggregateRating | Products, services, establishments with real reviews | Rating stars | Beauty center in Badalona with verifiable reviews on the page |
Recommended priority order: if you have a physical business, start with LocalBusiness with the correct subtype. If you sell online, prioritize Product. Add FAQPage to service pages that already answer questions naturally. BreadcrumbList is quick to implement and improves presentation on any website with category structure.
4. Step-by-step implementation with real examples
Step 1 — Identify pages where schema will have the most impact
Don't implement schema across your entire website at once. In Google Search Console, go to "Performance" → sort by "Impressions" from highest to lowest → filter for pages with CTR below your global average. Those pages with many impressions but low CTR are ideal candidates: they already appear on Google, but don't generate clicks. Schema can change that.
Step 2 — Choose the correct Schema.org subtype
Schema.org has hierarchies that many ignore. LocalBusiness has very specific subtypes: Restaurant, Dentist, LegalService, ClothingStore, BeautySalon… The more specific you are, the better. A restaurant in Gràcia should use Restaurant, not generic LocalBusiness. A dental clinic in Tarragona should use Dentist. Google uses the subtype to classify the business in the correct category searches and to decide which additional fields to show.
Step 3 — Generate JSON-LD with all relevant fields
For a restaurant in Gràcia, the minimum viable JSON-LD must include:
@type: Restaurantwith name, URL and logo- Complete
address: street, number, postal code, Barcelona, ES — no field can be missing telephonein international format (+34 93X XXX XXX)openingHoursSpecificationfor each time slot — it's more precise than the genericopeningHoursfield and allows specifying different kitchen hoursservesCuisineandpriceRange(from "€" to "€€€€") for restaurant search resultsgeowith exact latitude and longitude — essential for local proximity SEO and map resultsaggregateRatingonly if you have real, visible reviews on the same page
Step 4 — Insert the code into your website
The JSON-LD block goes inside a <script type="application/ld+json"> tag in the <head>. If you use WordPress, Rank Math and Yoast SEO generate it automatically for common cases. For e-commerce with WooCommerce (very common in Sabadell and Terrassa), Rank Math Pro manages product schema completely, including price variants and availability per SKU. If you have a custom website, insert the block manually or via Google Tag Manager — the latter makes updates easier without touching code.
Step 5 — Validate with Rich Results Test before publishing
Go to search.google.com/test/rich-results, paste the URL or code directly and check for critical errors. The tool shows you exactly which rich results the page could activate and which fields are missing or incorrectly formatted. It's the step most people skip and then wonder why stars don't appear.
aggregateRating with 4.9 stars but there are no visible reviews for the user, Google can apply a manual action for deceptive schema. I've seen websites penalized for exactly this — and recovering from a manual action takes months.5. Technical errors I see every week
When I audit websites from SMEs in Barcelona, Girona or Lleida, the same errors appear over and over. Here they are ordered from most to least serious:
- Duplicate schema from conflicting plugins: Yoast and Rank Math both active, or a premium theme that already generates its own schema. The result is duplicate and contradictory JSON-LD. Check this with the Chrome extension "Schema Markup Validator" or by inspecting source code and searching for multiple
application/ld+jsonblocks. - AggregateRating without visible reviews on the page: The most common case of manual penalty. If you add stars to schema, real reviews must exist and be readable on the same page, not just on Google Maps or Tripadvisor.
- FAQPage on pages that don't answer questions: Adding FAQ schema to a homepage or contact page to "take up more space" in results is schema spam. Since 2023, Google is especially strict about this and has significantly reduced visibility of this rich result for abuse.
- LocalBusiness with missing required fields: Missing
postalCode,addressCountryortelephone. Google invalidates the entire rich result for a single missing required field. Always check the list of required fields in Google's official documentation for each type. - Prices in schema that don't match the page: An e-commerce that updates prices in the store but forgets to update JSON-LD. Google detects the discrepancy and suppresses the product rich result. If you use WooCommerce, make sure the schema plugin reads the price dynamically, not from a static value.
- Seasonal schema not updated: A Girona shop that closes for vacation but keeps regular hours in JSON-LD. The user arrives at a closed door and Google ends up showing incorrect information in the knowledge panel.
6. Monitoring in Search Console: what to look for and when
Implementing schema is half the work. The other half is monitoring it. In Google Search Console, go to the sidebar menu → "Enhancements" section. You'll see a report for each type of rich result detected on your website.
Here's exactly what you need to review and in what order:
- Pages with errors (red): Maximum priority. The schema is invalid and won't activate any rich result. Click each error to see the exact field that fails — Search Console tells you the JSON-LD line and the reason for the error.
- Pages with warnings (orange): The schema is valid but incomplete. Often resolved by adding optional recommended fields like
image,descriptionorsameAs(to link with your Google Business Profile). - Valid pages without rich result (gray): The schema is correct but Google has decided not to show the rich result. It could be due to lack of page authority, insufficient content or because the page has low traffic. The solution here is to improve content and links, not schema.
When to review: every 4 weeks as routine. If you make content, price or hours changes, review it the following week. A page with schema errors is traffic and clicks you're leaving on the table every day.
One detail many overlook: when Search Console marks a page as "valid", it doesn't mean the rich result is showing. To confirm, search directly on Google for the URL in question and check if the rich result appears. If it doesn't appear despite being validated, check if the page has enough content and authority to deserve it.
If you'd prefer we do this review and deliver you a report with improvements prioritized by impact order, contact us for a free technical SEO audit — no commitment and no endless forms.
Frequently asked questions
Do structured data directly improve rankings on Google?
Not directly. Google has publicly confirmed that schema markup is not a ranking factor by itself. But rich snippets increase CTR, and consistently higher CTR can influence positioning in the medium term: Google interprets that the result is relevant to users and tends to maintain or raise it.
Do I need to know how to code to implement structured data?
For most cases, no. With WordPress and Rank Math or Yoast SEO you can generate JSON-LD automatically for the most common types. For custom websites or complex e-commerce with many product references, it's recommended to have an SEO technician to avoid errors, duplicates and misconfigured fields that invalidate rich results.
How long does it take Google to show rich snippets once schema is implemented?
Between 2 and 6 weeks in most cases, depending on how frequently Google crawls your website. You can speed it up by manually submitting the URL to Search Console: "Inspect URL" → "Request indexing". It doesn't guarantee speed, but it's the best you can do on your end.
Can I be penalized by Google if I implement structured data incorrectly?
Yes. Google applies manual actions for deceptive schema: stars without real visible reviews on the page, prices that don't match content, or FAQPage on pages that don't answer questions. Since 2023 it's especially strict about FAQ schema and rating abuse, and recovering from a manual action can take months.
Which types of structured data matter most for a local Catalan business?
For physical businesses — restaurants in Gràcia, clinics in Tarragona, shops in Girona — the LocalBusiness schema with the correct subtype is absolute priority. Complement it with FAQPage on service pages that already answer questions naturally, BreadcrumbList for your entire website structure and AggregateRating if you have verifiable and visible reviews on the page.