Utoljára frissítve:
FAQPage schema implementáció lépésről lépésre — Astro, WordPress, Next.js
A FAQPage schema a legjobb befektetés-arányú GEO-boost, amit egy weboldalon elvégezhetsz: a Frase kutatása szerint 3,2×-esére növeli az AI Overview-megjelenés valószínűségét. Ez az útmutató megmutatja, hogyan implementáld helyesen JSON-LD formátumban — Astro, WordPress és Next.js platformokon — validálással, hibakezeléssel és a leggyakoribb csapdák elkerülésével.
A FAQPage JSON-LD schema @type: "FAQPage" + mainEntity tömbből áll. A <head>-be kerül. 8–12 kérdés az optimum, minden válasz max 50 szó, HTML tag nélkül. Astro-ban set:html={JSON.stringify(...)}, WordPress-ben wp_head hook, Next.js-ben next/head komponens. Validálás: Google Rich Results Test + Schema Markup Validator.
Miért működik a FAQPage schema?
A Google AI Overview egy tartalom-kinyerő mechanizmust használ, amely az indexelt oldalakból idézhető egységeket azonosít. A mechanizmus explicit Q&A-struktúrát keres: egy önállóan érthető kérdést és egy tömör, faktikus választ. A FAQPage schema ezt a struktúrát gépileg olvasható formában tárja az AI crawler elé — nincs szükség arra, hogy az AI a szövegkörnyezetből próbálja leolvasni a kérdés-válasz viszonyt.
A Frase 2024-es GEO-kutatása 10 000+ oldalt elemzett, és azt találta, hogy a FAQPage schemával rendelkező oldalak 3,2-szer akkora valószínűséggel kerülnek be az AI Overview forráslistájába, mint azonos témájú, de schema nélküli oldalak. Ez az egyetlen strukturált adat típus, amelyre ekkora hatásméretet mértek.
A mechanizmus három szinten dolgozik. Először: a schema explicit jelzést ad az AI crawlernek, hogy az oldal kérdés-válasz formátumban tartalmaz idézhető egységeket. Másodszor: a mainEntity tömb minden eleme önálló, kontextustól független választ tartalmaz — amit az AI anélkül tud idézni, hogy az egész oldalt feldolgozná. Harmadszor: a schema jelenléte a Google Rich Results rendszerén keresztül minőségi jelzésként is értelmezhető, amely a domain hitelességét növeli.
A FAQPage schema hatása a domain authority-tól függetlenül érvényesül. Kis, kevésbé ismert oldalak is megjelenhetnek AI Overview-ban, ha a schema helyes, a kérdések valósak, és a válaszok tömören, önállóan érthetők. Ez a GEO leginkább demokratikus aspektusa.
A FAQPage schema JSON-LD struktúrája
A FAQPage schema JSON-LD formátumban három kötelező elemet tartalmaz: az @context hivatkozást a Schema.org-ra, az @type értékét ("FAQPage"), és a mainEntity tömböt, amely a kérdés-objektumokat tartalmazza. Minden kérdés-objektum @type: "Question" típusú, name mezőben tartalmazza a kérdést, és acceptedAnswer objektumban a választ.
{
"@context": "https://schema.org", // kötelező — Schema.org névtér
"@type": "FAQPage", // kötelező — oldaltípus deklaráció
"mainEntity": [ // kötelező — kérdések tömbje
{
"@type": "Question", // kötelező minden kérdésnél
"name": "Mi az a FAQPage schema?", // a kérdés szövege (egyezzen a látható HTML-lel)
"acceptedAnswer": {
"@type": "Answer", // kötelező
"text": "A FAQPage schema egy JSON-LD strukturált adat,
amely gépileg olvasható formában tárja a kérdés-válasz
párokat a keresőmotorok és AI crawlerek elé. Jelenléte
3,2×-esére növeli az AI Overview-megjelenés esélyét
(Frase, 2024)."
// text: max 50 szó, HTML tag nélkül, önállóan érthető
}
},
{
"@type": "Question",
"name": "Hány kérdés kerüljön egy FAQPage schemába?",
"acceptedAnswer": {
"@type": "Answer",
"text": "8–12 kérdés az optimális tartomány.
Kevesebb mint 6 kérdésnél az AI kevés idézhető egységet
talál; 12 felett a minőség rovására megy a mennyiség.
Minden kérdés valós Google-keresési szándékot tükrözzön."
}
},
{
"@type": "Question",
"name": "Hol helyezzük el a FAQPage JSON-LD scriptet?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A dokumentum head szekciójában, script
type=application/ld+json tagben. A Google body-ban is
feldolgozza, de a konvenció és a Rich Results Test
elvárása a head elhelyezés."
}
}
] // mainEntity tömb vége
} Néhány kritikus formai szabály, amelyeket a Google dokumentációja explicit előír:
- A
namemező értéke egyezzen az oldalon látható kérdés szövegével szó szerint - A
textmező ne tartalmazzon HTML tageket — csak sima szöveg megengedett - Minden
namemező egyedi legyen — duplikált kérdések érvénytelenítik a schemát - A
textmező min. 15, max. kb. 200 szó — a rövid és a túl hosszú egyaránt problémás
Implementáció Astro-ban
Astro-ban a FAQPage schemát a frontmatterben definiáljuk JavaScript objektumként, majd a set:html direktívával adjuk át a <script type="application/ld+json"> tagnek. Ez a megközelítés biztonságos — elkerüli a JSX által esetleg módosított karaktereket — és a HubLayout slot="head" mechanizmusán keresztül garantálja a <head>-be kerülést.
---
// src/pages/pelda-oldal.astro
import HubLayout from '../layouts/HubLayout.astro';
// 1. A schema objektum definiálása a frontmatterben
const faqSchema = {
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Mi az a FAQPage schema?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A FAQPage schema egy JSON-LD strukturált adat,
amely 3,2×-esére növeli az AI Overview-megjelenés
valószínűségét (Frase, 2024)."
}
},
{
"@type": "Question",
"name": "Hogyan kerülök be az AI Overview-ba?",
"acceptedAnswer": {
"@type": "Answer",
"text": "FAQPage schema + H2 szekciókban azonnali definíció
+ statisztika 150–200 szavanként + Author schema.
A struktúra és a schema kombinációja a leghatékonyabb."
}
}
// ... további kérdések
]
};
---
<!-- 2. A HubLayout head slotján keresztül injektálás -->
<HubLayout title="..." description="..." ...>
<!-- A script tag a head slotba kerül a set:html direktívával -->
<script
slot="head"
type="application/ld+json"
set:html={JSON.stringify(faqSchema)}
/>
<!-- Az oldal többi tartalma... -->
</HubLayout>
Ha a HubLayout nem biztosít dedikált head slot-ot, a BaseLayout-ot kell kibővíteni, vagy a JSON-LD scriptet közvetlenül a <body> elejére helyezni. A set:html direktíva helyett sosem használj template literal interpolációt ({faqSchema["@type"]} stb.) a script tagen belül — ez nem azonos a teljes objektum szerializálásával.
Az Astro build folyamata a JSON.stringify()-t build time-ban futtatja le, nem kliens oldalon. Ez azt jelenti, hogy a schema statikusan bekerül a generált HTML-be — pontosan az, amit a Google crawler lát és feldolgoz. Nincs szükség client-side JavaScript futtatására a schema megjelenítéséhez.
Implementáció WordPress-ben
WordPress-ben két megközelítés létezik: manuális implementáció a functions.php-n keresztül (teljes kontroll, plugin-függetlenség), vagy plugin-alapú megoldás Rank Math vagy Yoast SEO FAQ blokkkal (gyorsabb, de kevésbé rugalmas). Tartós, pontosan ellenőrizhető implementációhoz a manuális megközelítés javasolt.
1. lehetőség — manuális, functions.php
<?php
// functions.php (child theme vagy plugin)
// A schemát csak a megfelelő oldalon adjuk hozzá
function vz_faqpage_schema() {
// Csak a céloldalon fut le — cseréld ki az ID-t
if ( ! is_page( 'faqpage-schema-implementacio' ) ) {
return;
}
$faq_schema = array(
'@context' => 'https://schema.org',
'@type' => 'FAQPage',
'mainEntity' => array(
array(
'@type' => 'Question',
'name' => 'Hány kérdés kerüljön egy FAQPage schemába?',
'acceptedAnswer' => array(
'@type' => 'Answer',
'text' => '8–12 kérdés az optimális tartomány. Kevesebb mint 6
kérdésnél az AI kevés idézhető egységet talál; 12 felett
a minőség rovására megy a mennyiség.'
)
),
array(
'@type' => 'Question',
'name' => 'Hogyan validálom a FAQPage schemát?',
'acceptedAnswer' => array(
'@type' => 'Answer',
'text' => 'Google Rich Results Test (search.google.com/test/rich-results)
és Schema Markup Validator (validator.schema.org) —
mindkettőt futtasd implementáció után.'
)
)
// ... további kérdések
)
);
echo '<script type="application/ld+json">'
. wp_json_encode( $faq_schema, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES )
. '</script>' . "
";
}
add_action( 'wp_head', 'vz_faqpage_schema' ); 2. lehetőség — Rank Math FAQ blokk
A Rank Math SEO bővítménnyel a Gutenberg szerkesztőben hozzáadhatsz egy FAQ blokkot, amelyet a Rank Math automatikusan FAQPage schemává alakít és a <head>-be injektál. A blokk látható FAQ-ot is renderel, így egyszerre teljesíti a schema-látható HTML egyezés követelményét. A blokk a Rank Math > Blokkok > FAQ menüpontból érhető el a szerkesztőben. Yoast SEO-ban a FAQ block ugyanígy működik, de csak a Yoast SEO Premium verzióban érhető el.
A wp_json_encode() a json_encode() WordPress-specifikus, biztonsági szempontból javított változata. A JSON_UNESCAPED_UNICODE flag nélkül a magyar ékezetes karakterek unicode escape szekvenciaként jelennek meg a kimenetben — ez technikailag valid, de olvashatóságot ront és debugging-ot nehezít.
Implementáció Next.js-ben
Next.js-ben a next/head komponens biztosítja a <head>-be való injektálást. A JSON-LD schemát a komponens dangerouslySetInnerHTML propján keresztül adjuk át — ez a React-konform megközelítés a set:html Astro-beli megfelelője. A Next.js 13+ App Router esetén a metadata API JSON-LD-t nem kezel natívan, ezért a layout-ban közvetlenül kell script taget elhelyezni.
// pages/faqpage-schema-implementacio.js (Pages Router)
import Head from 'next/head';
const faqSchema = {
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Hány kérdés kerüljön egy FAQPage schemába?",
"acceptedAnswer": {
"@type": "Answer",
"text": "8–12 kérdés az optimális tartomány. Kevesebb mint 6
kérdésnél az AI kevés idézhető egységet talál."
}
},
{
"@type": "Question",
"name": "Hogyan validálom a FAQPage schemát?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Google Rich Results Test és Schema Markup Validator —
mindkettőt futtasd implementáció után az URL-lel."
}
}
]
};
export default function FaqSchemaOldal() {
return (
<>
<Head>
{/* JSON-LD schema injektálása — dangerouslySetInnerHTML szükséges */}
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(faqSchema) }}
/>
</Head>
{/* Az oldal tartalma */}
<main>
{/* ... */}
</main>
</>
);
} // app/faqpage-schema-implementacio/page.js (App Router, Next.js 13+)
const faqSchema = {
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Hány kérdés kerüljön egy FAQPage schemába?",
"acceptedAnswer": {
"@type": "Answer",
"text": "8–12 kérdés az optimális tartomány."
}
}
// ... további kérdések
]
};
export default function FaqSchemaOldal() {
return (
<>
{/* App Routerben: script taget közvetlenül a komponensbe, nem Head-be */}
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(faqSchema) }}
/>
<main>
{/* ... */}
</main>
</>
);
}
// metadata export — SEO meta tagekhez (JSON-LD-t NEM kezel)
export const metadata = {
title: 'FAQPage schema implementáció — Astro, WordPress, Next.js',
description: 'A FAQPage schema 3,2×-esére növeli az AI Overview-megjelenés valószínűségét.'
}; A 7 leggyakoribb hiba — és hogyan kerüld el
A Google Rich Results Test és a Search Console rendszeres vizsgálata alapján a következő 7 hiba a leggyakoribb FAQPage schema implementációkban. Mindegyik elkerülhető — de előfordulásuk csökkenti vagy megszünteti a schema pozitív hatását az AI Overview-megjelenésre.
- 1. hiba: A schema kérdése nem egyezik a látható HTML szöveggel
A Google explicit követelménye: a
namemező szó szerint egyezzen az oldalon megjelenő kérdéssel. Ha a schema "Mi az a FAQPage schema?" szöveget tartalmaz, de az oldalon "Mi a FAQPage?" látható, a Rich Results Test figyelmeztetést jelez és a megjelenés elmaradhat. - 2. hiba: Túl rövid válasz (15 szó alatt)
A 15 szónál rövidebb válasz az AI számára nem idézhető egységként — túl kevés kontextust tartalmaz ahhoz, hogy önálló, értelmes kivonat legyen belőle. Minimum 20–25 szó szükséges; 30–50 szó az optimum a legjobb AI Overview idézhetőséghez.
- 3. hiba: HTML tagek a text mezőben
A
acceptedAnswer.textmező csak sima szöveget fogadhat el. A<strong>,<a href>,<br>és más HTML tagek érvénytelen schemát eredményeznek — a Google Rich Results Test errort jelez, és a rich result nem jelenik meg. - 4. hiba: Duplikált kérdések a mainEntity tömbben
Ha két kérdés
namemezője azonos (vagy nagyon hasonló), a Google az egész schemát érvénytelennek tekintheti. Minden kérdés egyedi és önállóan értelmezhető legyen — kerüld az "Hogyan X?" és "Mikor X?" kombinációkat, ha az X teljesen azonos. - 5. hiba: Kitalált kérdések valós keresési szándék nélkül
A kérdéseknek valós Google-keresési szándékot kell tükrözniük — ezért érdemes a Google "People Also Ask" szekciójából, az AlsoAsked.com-ból és a Search Console-ból gyűjteni őket. A kitalált, csak az oldalt kiegészítő kérdések nem kapnak AI Overview citálást, mert senki nem keresi őket.
- 6. hiba: A script tag a body végén van elhelyezve
Bár a Google technikailag feldolgozza a
<body>-ban elhelyezett JSON-LD schemát is, a Google Rich Results Test és a legtöbb validátor a<head>elhelyezést várja el. A<body>végén elhelyezett schema megjelenhet a validátorban hibásnak, és a feldolgozás is lassabb lehet. - 7. hiba: Hiányzó mainEntity tömb (vagy nem tömb)
A
mainEntityértékének JSON tömbnek kell lennie ([ ]), nem objektumnak ({ }). Egyetlen kérdésnél is tömb szükséges:"mainEntity": [{"@type": "Question", ...}]. Objektumként megadva a schema technikailag invalid.
A Google 2024-ben szigorított a FAQPage rich result megjelenítési feltételein: azok az oldalak, amelyeken a schema és a látható tartalom eltér, vagy amelyek nem valódi, keresési szándékon alapuló kérdéseket tartalmaznak, elveszíthetik a rich result megjelenítési jogosultságukat — és ez a büntetés az egész domain FAQPage schemájára kiterjedhet.
Validálás és tesztelés
Implementáció után mindig validáld a schemát két eszközzel. A Google Rich Results Test az AI Overview-ra és a keresési megjelenésre vonatkozó jogosultságot ellenőrzi; a Schema Markup Validator mélyebb JSON-LD strukturális validálást végez.
1. lépés — Google Rich Results Test
Nyisd meg a search.google.com/test/rich-results oldalt. Választhatsz URL-tesztet (a már publikált oldalhoz) vagy kód-tesztet (HTML kód közvetlen beillesztésével, még publikálás előtt is). A teszt megmutatja:
- A schema valid-e, vagy vannak hibák és figyelmeztetések
- Milyen rich result típusra jogosult az oldal (FAQ, HowTo, stb.)
- Konkrét hibaüzenetek: melyik mező hiányzik vagy érvénytelen
- A kinyert kérdések listája — ellenőrizd, hogy mind a 8–12 kérdés megjelenik-e
2. lépés — Schema Markup Validator
A validator.schema.org mélyebb JSON-LD validálást végez. Nem csupán a Google Rich Results szempontjából, hanem a Schema.org specifikáció teljessége alapján is ellenőrzi a schemát. Különösen hasznos, ha:
- A Rich Results Test zöldet mutat, de szeretnél meggyőződni a teljes validitásról
- Egyéni mezőket (
datePublished,authorstb.) is hozzáadtál a schemához - Más schema típusokkal (Article, Person, Organization) kombinálod a FAQPage-et
3. lépés — Google Search Console ellenőrzés
Miután a Googlebot újraindexelte az oldalt (1–4 hét), a Google Search Console Enhancements > FAQ szekciójában megjelenik az oldal — ha a schema valid és a rich result jogosultság fennáll. Ha az oldal nem jelenik meg itt 4 hét után sem, futtasd újra az URL Inspection-t és kattints a "Request Indexing" gombra.
Az indexelés felgyorsítható a Google Search Console "URL Inspection" eszközével: keresd meg az oldalt, majd kattints a "Request Indexing" gombra. Ez nem garantálja az azonnali feldolgozást, de előre sorolja az oldalt a Googlebot crawl-várólistájában. Friss domain esetén 1–2 hétig tarthat, régi, jó authority domaineken akár 1–3 napig.
Kérdések és válaszok
Hány kérdés kerüljön egy FAQPage schemába?
8–12 kérdés az optimális tartomány. Kevesebb mint 6 kérdés esetén az AI Overview-megjelenés valószínűsége csökken — a rendszer kevés idézhető egységet talál. 12-nél több kérdésnél a minőség rovására megy a mennyiség; jobb 8 jó kérdés, mint 15 generikus. Minden kérdés valós Google-keresési szándékot tükrözzön.
Kell-e a FAQPage schema látható HTML FAQ-nak megfelelni?
Igen — ez a Google egyik explicit követelménye. A schema 'name' mezőjének egyeznie kell az oldalon látható kérdés szövegével, az 'acceptedAnswer.text' tartalmának pedig az oldalon látható válasszal. Ha a schema és a látható tartalom eltér, a Google Rich Results Test figyelmeztetést jelez, és a megjelenés elmaradhat.
Hol helyezzük el a FAQPage JSON-LD scriptet?
A <head> szekcióban vagy a <body> elején, a fő tartalom előtt. A Google és a Bing egyaránt képes <body>-ban is feldolgozni, de a konvenció és a Google Rich Results Test elvárása a <head> elhelyezés. Astro-ban a HubLayout slot='head' mechanizmusán keresztül injektálj, Next.js-ben a Head komponensen belül.
Hogyan validálom a FAQPage schemát implementáció után?
Két eszközzel: 1) Google Rich Results Test (search.google.com/test/rich-results) — beírod az oldal URL-jét vagy HTML-jét, és megmutatja, hogy a schema valid-e és milyen rich result-ra jogosult. 2) Schema Markup Validator (validator.schema.org) — mélyebb JSON-LD validáció, warningok és errorok részletezve. Mindkettőt futtasd le implementáció után.
Mennyi idő alatt dolgozza fel a Google az új FAQPage schemát?
Általában 1–4 hét a Googlebot következő crawl-jától számítva. Gyorsítható a Google Search Console 'URL Inspection' eszközével: 'Request Indexing' gomb újraküldi az oldalt feldolgozásra. A Rich Results Test azonnali — de a live SERP-en való megjelenés a crawl-tól függ.
Mi a különbség a FAQPage, a QAPage és az HowTo schema között?
FAQPage: egy-egy kérdés egy fogadott (szerkesztett) válasszal — ideális cikk FAQ-okhoz. QAPage: egy kérdés több felhasználói válasszal és szavazatokkal — fórum-formátumhoz. HowTo: lépéses útmutató, minden lépésnek saját neve/képe/leírása — 'hogyan csináljak X-et' formátumhoz. GEO-szempontból a FAQPage és HowTo schema adja a legjobb AI Overview bekerülési arányt.
Kapcsolódó tartalmak
Ez a cikk az AI-látható weboldal hub egyik spoke cikke, amely a FAQPage schema technikai implementációját dolgozza fel. A témakör más dimenzióit az alábbi tartalmakban részletezem:
GEO Audit — implementálj a szakértővel
Ha szeretnéd, hogy a FAQPage schema és a teljes GEO-struktúra szakszerűen kerüljön a weboldaladra, kérd az auditot — megmutatom, mi hiányzik és hogyan javítható.
GEO audit kérése Kérdezz közvetlenül →