GEO i AEO

Schema markup: Organization, LocalBusiness, FAQPage

6 min czytania·WeArkMedia·

W zeszłym tygodniu klient zapytał mnie: „Mamy w kodzie plik schemas.ts, ale nikt już nie pamięta, po co on jest i co robi każdy z bloków". To nie wyjątek. W co najmniej połowie projektów, które przeglądam, gdzieś leży osierocony plik JSON-LD — wrzucony kiedyś przez developera, bez dokumentacji, bez jasnego celu i często bez pewności, czy w ogóle jest poprawny.

Szkoda, bo dane strukturalne to dokładnie ten rodzaj informacji, na który łakną systemy AI: ChatGPT, Perplexity i Google AI Overviews. To kontekst czytelny dla maszyn, który mówi: „jesteśmy tym, tu się znajdujemy, a to odpowiedzi na najczęstsze pytania". Bez tego kontekstu model językowy musi zgadywać na podstawie niestrukturalnego tekstu. Z tym kontekstem dostaje bezpośrednie, wiarygodne źródło.

W tym artykule wyjaśniam trzy najczęściej używane typy schematu — Organization, LocalBusiness i FAQPage — z konkretnymi przykładami, które możesz wdrożyć od razu.

Dlaczego dane strukturalne wciąż mają znaczenie w erze AI

Dane strukturalne (najczęściej JSON-LD) istnieją od 2011 roku dzięki schema.org, którą wspólnie stworzyły Google, Bing, Yahoo i Yandex. Cel był wtedy prosty: pomóc wyszukiwarkom zrozumieć treść, żeby mogły pokazywać bogate wyniki — recenzje z gwiazdkami, godziny otwarcia, rozwijane FAQ w wynikach wyszukiwania.

Co się zmieniło: „czytelnikiem" Twoich danych strukturalnych nie jest już wyłącznie crawler indeksujący strony na potrzeby listy wyników. To także model językowy, który parsuje Twoje treści, żeby sformułować odpowiedź dla użytkownika, który może w ogóle nie wejść na Twoją stronę. Jeśli ktoś zapyta ChatGPT: „które firmy w Warszawie zajmują się konsultingiem AI", szansa, że Twoje JSON-LD trafi do odpowiedzi, jest wielokrotnie większa niż szansa, że model zinterpretuje akapit tekstu marketingowego.

Wynika to stąd, że dane strukturalne są jednoznaczne. Zdanie „Siedzimy w sercu Utrechtu" model musi zinterpretować i coś założyć. Obiekt PostalAddress z addressLocality: "Utrecht" nie wymaga interpretacji — to fakt, który można wyodrębnić bezpośrednio.

Jeśli chcesz poznać szerszą strategię stojącą za taką optymalizacją, przeczytaj też czym dokładnie jest GEO — dane strukturalne to tylko jeden element większej układanki.

Trzy typy schematu, których potrzebujesz niemal zawsze

Organization: kim naprawdę jesteś?

Schemat Organization to podstawa. Odpowiada na pytanie, którego systemy AI najczęściej nie potrafią rozstrzygnąć: czym jest ta firma i dlaczego miałbym jej zaufać? Ten schemat powinien znaleźć się na stronie głównej, a najlepiej powtarzać go (lub odwoływać się do niego) na każdej podstronie przez layout.

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "WeArkMedia",
  "url": "https://wearkmedia.nl",
  "logo": "https://wearkmedia.nl/logo.png",
  "description": "AI-native tworzenie stron i optymalizacja GEO/AEO dla firm, które chcą być znajdowane przez ChatGPT, Perplexity i Google AI Overviews.",
  "sameAs": [
    "https://www.linkedin.com/company/wearkmedia",
    "https://twitter.com/wearkmedia"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "email": "hallo@wearkmedia.nl",
    "contactType": "customer service"
  }
}

Co tu ważne: sameAs to nie ozdoba. To pole łączy Twoją firmę z zewnętrznymi, weryfikowalnymi źródłami — LinkedInem, stroną w Wikipedii (jeśli istnieje), profilem w Crunchbase. Modele AI wykorzystują takie odnośniki, żeby ustalić, czy dana encja jest „prawdziwa". Schemat Organization bez sameAs przypomina profil na LinkedInie bez kontaktów: technicznie poprawny, ale mało przekonujący.

Opisu (description) nie kopiuj z meta description. Napisz zdanie, które konkretnie mówi, co robisz i dla kogo — nie „jesteśmy wiodącą agencją", tylko konkret: co, dla kogo i czym się wyróżniasz.

LocalBusiness: kluczowy, gdy liczy się fizyczna lokalizacja

Jeśli masz fizyczną lokalizację — biuro, sklep, gabinet — LocalBusiness (albo bardziej szczegółowy podtyp, np. ProfessionalService, Restaurant, Store) jest niezbędny. To właśnie dzięki temu schematowi asystenci AI potrafią odpowiadać na pytania typu „w pobliżu".

{
  "@context": "https://schema.org",
  "@type": "ProfessionalService",
  "name": "WeArkMedia",
  "image": "https://wearkmedia.nl/kantoor.jpg",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Vredenburg 40",
    "addressLocality": "Utrecht",
    "postalCode": "3511 BD",
    "addressCountry": "NL"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 52.0907,
    "longitude": 5.1214
  },
  "telephone": "+31-30-1234567",
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "09:00",
      "closes": "17:30"
    }
  ],
  "priceRange": "€€€"
}

Dwie rzeczy często idą nie tak. Po pierwsze: ludzie zapominają o współrzędnych geo, a to właśnie na ich podstawie systemy liczą odległość przy zapytaniach o „najbliższy" punkt. Po drugie: @type bywa zbyt ogólny. Nie używaj domyślnie LocalBusiness, jeśli istnieje bardziej szczegółowy podtyp — Google i systemy AI znacznie trafniej dopasowują intencję, gdy podasz konkretny typ (np. Dentist, Accountant, MarketingAgency, jeśli jest dostępny).

To temat, który szerzej omawiam w GEO dla lokalnych firm — piszę tam też, jak radzić sobie z wieloma lokalizacjami.

FAQPage: najbardziej niedoceniany schemat w AEO

Jeśli jest jeden typ schematu, który bezpośrednio wpływa na to, czy zostaniesz zacytowany w odpowiedzi AI, to właśnie FAQPage. Dlaczego? Bo dostarcza dosłownie strukturę pytanie-odpowiedź, której model językowy potrzebuje, żeby wykorzystać Twoje treści we własnej odpowiedzi — często słowo w słowo.

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Ile kosztuje strona AI-native?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Strona AI-native powstaje etapami. Koszt zależy od liczby podstron, liczby języków i integracji z istniejącymi systemami. Poproś o wycenę na podstawie własnego zakresu, z podziałem na godziny w każdym etapie."
      }
    },
    {
      "@type": "Question",
      "name": "Czy dane strukturalne działają też bez zespołu technicznego?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Tak. Większość systemów CMS i frameworków obsługuje JSON-LD przez wtyczki lub proste snippety kodu. Nie potrzebujesz dedykowanego developera, żeby wdrożyć schemat Organization lub FAQPage."
      }
    }
  ]
}

Pułapka polega na tym, że ludzie wypełniają schemat FAQPage pytaniami marketingowymi („Dlaczego my?") zamiast pytaniami, które ludzie naprawdę zadają wyszukiwarce albo asystentowi AI. Zajrzyj do sekcji „People Also Ask" w Google albo sam sprawdź w ChatGPT i Perplexity, jakie pytania pojawiają się wokół Twojego tematu. Pisz odpowiedzi, które bronią się samodzielnie — muszą być zrozumiałe bez ponownego czytania pytania, bo właśnie w ten sposób model językowy je wycina.

Rozwinąłem to szerzej w praktycznym przewodniku po AEO, wraz z tym, jak ustalić, które pytania warto odpowiadać.

Od luźnego pliku do działającego systemu: praktyczna implementacja

Gdzie to umieścić w kodzie?

Jeśli masz już lib/schemas.ts (lub coś podobnego), logiczna struktura wygląda tak: eksportuj funkcje, które generują obiekty JSON-LD na podstawie treści, a nie statyczne stringi. Przykład:

// lib/schemas.ts
export function generateOrganizationSchema() {
  return {
    "@context": "https://schema.org",
    "@type": "Organization",
    name: "WeArkMedia",
    url: "https://wearkmedia.nl",
    // ...
  };
}

export function generateFAQSchema(faqs: { question: string; answer: string }[]) {
  return {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    mainEntity: faqs.map((faq) => ({
      "@type": "Question",
      name: faq.question,
      acceptedAnswer: {
        "@type": "Answer",
        text: faq.answer,
      },
    })),
  };
}

To zapobiega rozjeżdżaniu się schematów i treści — częsty problem, gdy tekst FAQ na stronie zostaje zmieniony, a schemat za nim nie. Niespójność między widoczną treścią a danymi schematu to dokładnie to, czego nie chcesz: podkopuje zaufanie zarówno u Google, jak i u crawlerów AI.

Przetestuj i zwaliduj przed publikacją

Zanim opublikujesz, skorzystaj z Google Rich Results Test i walidatora Schema.org. Częsty błąd to literówka w @type (np. Organisation z brytyjską pisownią zamiast Organization) — schemat wtedy po cichu nie działa, bez komunikatu błędu na stronie, a orientujesz się dopiero wtedy, gdy zastanawiasz się, dlaczego nic nie działa.

Nie zapomnij też sprawdzić, czy Twój robots.txt nie blokuje crawlerów AI, które właśnie te dane powinny czytać — zajrzyj do poradnika o robots.txt i crawlerach AI, jeśli nie masz pewności, czy Twoja konfiguracja jest poprawna.

Więcej na ten temat

Najczęstsze pytania

Czy muszę używać wszystkich trzech typów schematu, czy mogę wybrać?
To zależy od typu Twojej działalności. Organization pasuje do niemal każdej strony internetowej. LocalBusiness jest niezbędny, jeśli masz fizyczną lokalizację, do której przychodzą klienci. FAQPage jest wartościowy, gdy masz treści w formacie pytanie-odpowiedź — a tak jest w większości firm.
Czy dane strukturalne bezpośrednio poprawiają pozycje w Google?
Nie bezpośrednio — Google wykorzystuje schema przede wszystkim do rich results, a nie jako bezpośredni czynnik rankingowy. Efekt pośredni jest jednak duży: lepszy CTR dzięki rich snippetom oraz większa szansa, że systemy AI poprawnie zinterpretują i zacytują Twoje dane, co przekłada się na ruch i widoczność.
Czy mogę łączyć kilka typów schematu na jednej stronie?
Tak, a nawet warto. Strona główna może spokojnie zawierać jednocześnie schema Organization, LocalBusiness i WebSite, pod warunkiem że poprawnie je zagnieździsz lub umieścisz jako osobne bloki `<script type='application/ld+json'>`. Pamiętaj tylko o spójności informacji — ta sama nazwa i ten sam adres w każdym miejscu.
Jak często aktualizować dane w schemacie?
Za każdym razem, gdy zmieniają się fakty bazowe: nowy adres, nowe godziny otwarcia, nowe FAQ na stronie. Nie traktuj danych schema jako jednorazowego zadania technicznego, tylko jako część utrzymania treści — tak jak poprawiłbyś nieaktualną cenę na stronie.

Gotowy na start z GEO?

Skontaktuj się z nami, aby otrzymać bezpłatny audyt strony.

Rozpocznij rozmowę