Strona dewelopera w 2026 roku bez structured data jest niewidoczna dla Google poza wynikami tekstowymi. Konkurent z poprawnym Schema.org dostaje rich snippets — kafelki z ceną, dostępnością, lokalizacją w wyszukiwarce. Klient klika w niego pierwsza, nie w Ciebie.
Schema.org JSON-LD to standard, który możesz w pełni wdrożyć w 2-3 godziny pracy. Bez pluginów typu Yoast Premium ($99/rok). Sam JSON wpada do head’a strony.
1. Organization — na home
Każda strona firmowa musi mieć Schema.org Organization w head’ie strony głównej. Zawiera nazwę firmy, NIP/REGON/KRS, adres, kontakt, social.
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://jtmdevelopment.pl/#organization",
"name": "JTM Sp. z o.o.",
"alternateName": "JTM Development",
"url": "https://jtmdevelopment.pl",
"logo": "https://jtmdevelopment.pl/logo.png",
"telephone": "+48 605 580 958",
"email": "biuro@jtmdevelopment.pl",
"address": {
"@type": "PostalAddress",
"streetAddress": "ul. Napoleona 2E",
"addressLocality": "Kobyłka",
"postalCode": "05-230",
"addressRegion": "mazowieckie",
"addressCountry": "PL"
},
"identifier": [
{ "@type": "PropertyValue",
"propertyID": "KRS",
"value": "0001034522" },
{ "@type": "PropertyValue",
"propertyID": "NIP",
"value": "1251748653" },
{ "@type": "PropertyValue",
"propertyID": "REGON",
"value": "525248475" }
]
}
W WordPressie wpada w head’ie przez akcję wp_head:
add_action('wp_head', function() {
if (!is_front_page()) return;
$data = [
'@context' => 'https://schema.org',
'@type' => 'Organization',
'@id' => home_url('/#organization'),
'name' => 'JTM Sp. z o.o.',
// ...
];
echo '<script type="application/ld+json">';
echo wp_json_encode($data, JSON_UNESCAPED_SLASHES);
echo '</script>';
});
2. RealEstateListing — na karcie lokalu
Każdy lokal w portfolio (CPT „Lokal” w typowym setupie) dostaje JSON-LD typu RealEstateListing:
{
"@context": "https://schema.org",
"@type": "RealEstateListing",
"name": "Lokal 12, Bud. 3 — Stary Dybów",
"description": "Mieszkanie 3-pokojowe, 65 m², parter, ogródek 35 m²",
"datePosted": "2026-04-15",
"validUntil": "2026-12-31",
"image": "https://jtmdevelopment.pl/lokal-12.jpg",
"url": "https://jtmdevelopment.pl/lokale/lokal-12/",
"offers": {
"@type": "Offer",
"price": "499000.60",
"priceCurrency": "PLN",
"availability": "https://schema.org/InStock",
"validFrom": "2026-04-15"
},
"address": {
"@type": "PostalAddress",
"streetAddress": "ul. Kardynała Wyszyńskiego (dz. 78)",
"addressLocality": "Stary Dybów",
"postalCode": "05-250",
"addressCountry": "PL"
}
}
W WordPressie generujesz dynamicznie z meta lokalu:
add_action('wp_head', function() {
if (!is_singular('unit')) return;
$price = get_post_meta(get_the_ID(), 'jtm_price_gross', true);
$area = get_post_meta(get_the_ID(), 'jtm_area', true);
$status = get_post_meta(get_the_ID(), 'jtm_status', true);
$availability = match($status) {
'available' => 'https://schema.org/InStock',
'reserved' => 'https://schema.org/PreOrder',
'sold' => 'https://schema.org/SoldOut',
default => 'https://schema.org/InStock',
};
$data = [
'@context' => 'https://schema.org',
'@type' => 'RealEstateListing',
'name' => get_the_title(),
'datePosted' => get_the_date('Y-m-d'),
'offers' => [
'@type' => 'Offer',
'price' => (string) $price,
'priceCurrency' => 'PLN',
'availability' => $availability,
],
];
echo '<script type="application/ld+json">';
echo wp_json_encode($data);
echo '</script>';
});
3. BreadcrumbList — na sub-stronach
Breadcrumbs typu „Strona główna > Inwestycje > Stary Dybów > Lokal 12″ w head’ie. Google używa tego do generowania ścieżki w SERP’ie.
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1,
"name": "Strona główna",
"item": "https://jtmdevelopment.pl/" },
{ "@type": "ListItem", "position": 2,
"name": "Inwestycje",
"item": "https://jtmdevelopment.pl/inwestycje/" },
{ "@type": "ListItem", "position": 3,
"name": "Stary Dybów",
"item": "https://...stary-dybow/" },
{ "@type": "ListItem", "position": 4,
"name": "Lokal 12" }
]
}
Walidacja
Po deployu — sprawdź każdy typ Schema.org:
- validator.schema.org — sprawdza poprawność strukturalną
- search.google.com/test/rich-results — sprawdza, czy Google wykorzysta jako rich result
Jeśli validator pokazuje warningi — popraw. Jeśli rich-results test mówi „No items detected” — masz błąd struktury.
Co dostajesz
Po 4-8 tygodniach od deployu (czas indeksacji Google):
- Rich results dla nazwy firmy w SERP — kafelek z logo, adresem, telefonem
- Karty lokali pokazują się z ceną i dostępnością bezpośrednio w wynikach
- Knowledge Graph może podchwycić Twoją firmę (przy wystarczającej liczbie sygnałów)
- Wzrost CTR z SERP-u o 15-30% (mierzone w Search Console klientów)
Schema.org to free SEO. Wystarczy wdrożyć raz, a działa dla każdego nowego lokalu, każdego artykułu, każdej podstrony.