Je winkelwagen is leeg
Producten die je toevoegt, verschijnen hier.
Producten die je toevoegt, verschijnen hier.

Alles wat je moet weten over domeinnamen en hoe ze werken
Producten die je toevoegt, verschijnen hier.
XML is een opmaaktaal die gebruikt wordt om gestructureerde data uit te wisselen tussen systemen.
De meeste handleidingen laten je de FAQ-schema handmatig overtypen naast de zichtbare vraag en antwoord op de pagina, met als gevolg dat de twee na een tekstwijziging uit elkaar gaan lopen (precies de mismatch waar Google op afrekent, zie hierna). Slimmer: lees de FAQ-items rechtstreeks uit de gerenderde content, met DOMDocument, zodat schema en zichtbare tekst per definitie gelijk zijn en je nooit iets dubbel onderhoudt. Deze builder zoekt naar dezelfde .ai-faq-item-structuur die dit artikel voor zijn eigen FAQ-sectie gebruikt.
add_filter( 'ko_schema_graph', 'ko_schema_faq_from_content' );
function ko_schema_faq_from_content( $graph ) {
if ( ! is_single() ) {
return $graph;
}
$content = get_the_content();
if ( false === strpos( $content, 'ai-faq-item' ) ) {
return $graph; // geen FAQ-blok op deze pagina
}
$dom = new DOMDocument();
libxml_use_internal_errors( true ); // negeer HTML5-warnings van DOMDocument
$dom->loadHTML( '<?xml encoding="utf-8" ?>' . apply_filters( 'the_content', $content ) );
libxml_clear_errors();
$xpath = new DOMXPath( $dom );
$items = $xpath->query( "//div[contains(@class,'ai-faq-item')]" );
$questions = array();
foreach ( $items as $item ) {
$q = $xpath->query( './/h3', $item )->item( 0 );
$a = $xpath->query( ".//p[contains(@class,'with-margin')]", $item )->item( 0 );
if ( ! $q || ! $a ) {
continue;
}
$questions[] = array(
'@type' => 'Question',
'name' => trim( $q->textContent ),
'acceptedAnswer' => array(
'@type' => 'Answer',
'text' => trim( $a->textContent ),
),
);
}
if ( empty( $questions ) ) {
return $graph;
}
$graph[] = array(
'@type' => 'FAQPage',
'mainEntity' => $questions,
);
return $graph;
}
Laat je Yoast of Rank Math actief draaien voor andere taken, en voeg je zelf ook JSON-LD toe, dan ontstaat al snel dubbele of conflicterende schema: twee Organization-blokken, of een Article vanuit de plugin naast jouw eigen versie[12]. Google negeert dat niet automatisch; het kan de parser in verwarring brengen en rich results juist blokkeren in plaats van opleveren.
Samenvatting: hreflang instellen in WordPress
Hreflang is een signaal dat Google vertelt welke taal of regiovariant van een pagina bij welke bezoeker hoort. Het is geen rankingfactor, maar voorkomt dat de verkeerde taalversie in de zoekresultaten verschijnt. Je stelt het in via HTML head tags, een XML sitemap of een HTTP header, waarbij je er een kiest en nooit mixt. WPML, Polylang en TranslatePress automatiseren dit in WordPress. Toch heeft 75% van meertalige sites minstens een kritieke hreflang fout[1], dus test na implementatie altijd in Google Search Console.
Hreflang instellen is onmisbaar zodra je WordPress-site content in meerdere talen aanbiedt. Nederland heeft de hoogste WordPress-dichtheid ter wereld: 33,3 WordPress-sites per 1.000 inwoners, samen zo'n 591.000 sites[2]. Veel van die sites groeien op enig moment internationaal en gaan content in meerdere talen aanbieden. Zonder hreflang loopt dat mis: Google toont een Duitse bezoeker soms de Nederlandse pagina, of behandelt je Belgische en Nederlandse variant als dubbele content. In dit artikel lees je wat hreflang instellen precies inhoudt, hoe je het doet met of zonder plugin, welke fouten het vaakst voorkomen en hoe je het test. Ook leggen we uit waarom dit onderwerp met de opkomst van AI-zoekmachines (nog) relevanter is geworden.
p=none (alleen monitoren), p=quarantine (spam), of p=reject (weigeren). Alleen p=reject beschermt effectief.p=none en voeg een rua= rapportage-adres toe. Je ontvangt dan dagelijkse XML-rapporten over wie e-mail verstuurt namens jouw domein.p=quarantine als de rapporten laten zien dat legitieme e-mail correct wordt geauthenticeerd.