Praktycznie rzecz biorąc, najefektywniej wdrożyć LocalBusiness Schema na wielu podstronach poprzez jeden szablon JSON-LD, który jest dynamicznie wypełniany danymi specyficznymi dla każdej podstrony. Dzięki temu unikasz duplikacji i łatwo utrzymujesz spójność danych.
Co przygotować przed wdrożeniem
- Dokładny zestaw danych dla LocalBusiness (nazwa, adres, telefon, godziny otwarcia, URL, zdjęcia, kategorie).
- Struktura CMS-a lub projektu, która pozwala na wstrzykiwanie dynamicznych wartości do skryptu JSON-LD.
- Standardowy fragment JSON-LD dla LocalBusiness, który ma być używany na każdej podstronie.
- Plan walidacji: Google Rich Results Test i Schema.org Validator.
Zalecana architektura wdrożenia
Opcja A: szablon CMS z dynamicznym JSON-LD
- Stwórz szablon podstrony, który zawiera stały fragment
<script type="application/ld+json">{...}</script>. - Wypełniaj wartości zmiennymi z CMS (np. {{biz_name}}, {{address}}, {{opening_hours}}).
- Upewnij się, że pola są obecne na każdej podstronie i nie wprowadzają błędów JSON.
Opcja B: modularny fragment/literalny include
- Utwórz moduł/partial dla JSON-LD, który pobiera dane z pól strony.
- Wstawiaj moduł na każdą podstronę z różnymi parametrami.
- W razie zmian aktualizuj tylko moduł, nie każdą stronę z osobna.
Opcja C: dynamiczny plik JSON-LD generowany po stronie serwera
- Generuj plik JSON-LD po stronie serwera zgodny z @type LocalBusiness.
- Wstrzykuj go do każdej podstrony bez konieczności duplikowania logiki.
- W przypadku dużej liczby lokalizacji rozważ centralny repozytorium danych.
Przykładowy szablon JSON-LD (do podstawy)
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "{{biz_name}}",
"image": [
"{{logo_url}}"
],
"@id": "{{page_url}}",
"url": "{{page_url}}",
"telephone": "{{phone}}",
"address": {
"@type": "PostalAddress",
"streetAddress": "{{street}}",
"addressLocality": "{{city}}",
"addressRegion": "{{region}}",
"postalCode": "{{postal_code}}",
"addressCountry": "{{country}}"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": "{{lat}}",
"longitude": "{{lng}}"
},
"openingHours": [
"{{hours}}"
],
"priceRange": "{{price_range}}",
"servesCuisine": "{{cuisine}}",
"sameAs": [
"{{social_profile_1}}","{{social_profile_2}}"
],
"potentialAction": {
"@type": "ViewAction",
"target": "{{page_url}}"
}
}
Jak wdrożyć na wielu podstronach krok po kroku
1) Zdefiniuj zestaw pól wymaganych dla każdego lokalnego biznesu.
2) Stwórz centralny szablon JSON-LD i zmapuj pola CMS na wartości w szablonie.
3) Wykorzystaj mechanizm templatingu w CMS, aby generować prawidłowe wartości per podstrona.
4) Zautomatyzuj walidację po publikacji każdej strony:
- uruchom test Rich Results dla nowej podstrony,
- upewnij się, że dane są wyświetlane poprawnie w wynikach.
5) Monitoruj zgodność danych:
- porównuj address, URL i kontakt,
- utrzymuj spójność w sekcji sameAs i otwieranych godzinach.
6) Zapewnij fallbacky:
- jeśli niektóre dane są niedostępne, nie zostawiaj pustych pól w JSON-LD; usuń je lub użyj wartości domyślnych.
7) Waliduj regularnie:
- raz na kilka miesięcy ponownie uruchom walidatory,
- sprawdzaj błędy i ostrzeżenia.
Najczęstsze błędy i jak ich uniknąć
- Duplikacja danych: unikaj powtarzania tych samych pól na różnych podstronach. Zastosuj centralne źródło danych.
- Niekompletne pola: upewnij się, że każde pole, które wpływa na Rich Results, jest obecne i poprawnie sformułowane.
- Nieaktualne dane kontaktowe: prowadź procedurę aktualizacji w CMS i synchronizuj z JSON-LD.
- Złe formatowanie JSON: waliduj składnię podczas tworzenia skryptu (nie zostawiaj nadmięnych przecinków, nieprawidłowych znaków).
- Wykorzystywanie nieodpowiedniego typu: LocalBusiness to szerokie pojęcie; jeśli masz konkretną kategorię (np. Restaurant, Dentist), użyj właściwego typu.
Praktyczne przykłady zastosowań
- Lokalna firma usługowa z wieloma lokalizacjami: użyj tego samego szablonu, ale różnicuj adres, telefon, godziny i URL każdej lokalizacji.
- Sklep z kilkoma oddziałami: uwzględnij pola “openingHours” dla każdej lokalizacji i włącz “geo” dla precyzyjnego położenia.
- Usługi profesjonalne (np. biuro rachunkowe): dopasuj “priceRange” i ewentualnie pole “service” lub “servesCuisine” niepotrzebnie nie używaj.
Najważniejsze praktyki SEO
- Zachowuj spójność danych w Google Maps, Google Business Profile i na stronie.
- Wdrażaj JSON-LD na każdej podstronie, nawet jeśli dane są podobne.
- Waliduj każdy nowy wpis pod kątem zgodności z oczekiwaniami wyszukiwarek.