Yoast SEO und Rank Math generieren automatisch Schema.org-Markup – aber nicht für jeden Anwendungsfall. Wenn Sie spezifisches Markup brauchen das kein Plugin anbietet, müssen Sie es manuell einbinden. Dieser Artikel zeigt wie Sie JSON-LD Schema Markup direkt in WordPress implementieren, ohne auf Plugin-Grenzen zu stoßen.
Warum manuelles Schema Markup?
Plugins wie Yoast und Rank Math decken die häufigsten Markup-Typen ab (Article, Organization, Breadcrumb, FAQ). Für spezifischere Anforderungen stoßen Sie aber an Grenzen:
- Benutzerdefinierte Post Types: Markup für eigene CPTs (z.B. Veranstaltungen, Rezepte, Produkte)
- Lokale Unterseiten: Standortspezifisches
LocalBusiness-Markup pro Seite - Erweiterte Typen:
HowTo,Event,JobPostingdie kein Standard-Plugin vollständig unterstützt - Plugin-Konflikte: Wenn das SEO-Plugin Schema generiert das mit einem anderen Plugin kollidiert
Google empfiehlt JSON-LD als bevorzugtes Format für strukturierte Daten. Es ist einfacher zu implementieren und zu warten als Microdata und stört das HTML-Markup nicht.
Methode 1: Schema in functions.php
Die sauberste Methode für seitenweites Markup:
function add_organization_schema() {
$schema = [
'@context' => 'https://schema.org',
'@type' => 'LocalBusiness',
'name' => get_bloginfo('name'),
'url' => home_url('/'),
'telephone' => '+49 911 12345',
'address' => [
'@type' => 'PostalAddress',
'streetAddress' => 'Musterstraße 1',
'addressLocality' => 'Nürnberg',
'postalCode' => '90402',
'addressCountry' => 'DE'
]
];
echo '<script type="application/ld+json">'
. wp_json_encode($schema, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)
. '</script>';
}
add_action('wp_head', 'add_organization_schema');
Sicherheitshinweis: Nutzen Sie wp_json_encode() statt json_encode() – das ist WordPress-spezifisch und verarbeitet Sonderzeichen korrekt.
Methode 2: Post-spezifisches Markup via Template
Für Schema Markup das von Post-Inhalten abhängt (z.B. Artikel-Datum, Autor):
function add_article_schema() {
if (is_single()) {
global $post;
$schema = [
'@context' => 'https://schema.org',
'@type' => 'Article',
'headline' => get_the_title(),
'datePublished' => get_the_date('c'),
'dateModified' => get_the_modified_date('c'),
'author' => [
'@type' => 'Person',
'name' => get_the_author()
],
'publisher' => [
'@type' => 'Organization',
'name' => get_bloginfo('name')
]
];
echo '<script type="application/ld+json">'
. wp_json_encode($schema, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)
. '</script>';
}
}
add_action('wp_head', 'add_article_schema');
Nutzen Sie bedingte Tags (is_single(), is_page(), is_post_type_archive()) um Markup nur auf relevanten Seiten einzubinden. Schema auf jeder Seite einzubinden ist nicht falsch, aber saubereres Markup hilft bei der Fehlersuche.
Methode 3: Custom Fields für dynamisches Markup
Wenn Redakteure Schema-Inhalte selbst pflegen sollen, nutzen Sie Custom Fields (ACF oder native WordPress Meta-Felder):
function add_event_schema() {
if (is_singular('event')) {
global $post;
$start_date = get_post_meta($post->ID, 'event_start_date', true);
$location = get_post_meta($post->ID, 'event_location', true);
if ($start_date) {
$schema = [
'@context' => 'https://schema.org',
'@type' => 'Event',
'name' => get_the_title(),
'startDate' => $start_date,
'location' => [
'@type' => 'Place',
'name' => $location
]
];
echo '<script type="application/ld+json">'
. wp_json_encode($schema, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)
. '</script>';
}
}
}
add_action('wp_head', 'add_event_schema');
Markup validieren
Nach der Implementierung unbedingt validieren:
Google Rich Results Test: Gibt direkt Feedback ob Google das Markup korrekt interpretiert und ob Rich Snippets berechtigt sind.
Schema.org Validator: Prüft ob das Markup Schema.org-Standard-konform ist.
Google Search Console: Zeigt nach einigen Wochen ob strukturierte Daten erkannt wurden und ob es Fehler gibt.
Korrekt implementiertes Schema Markup erhöht die Klickrate in den Suchergebnissen um durchschnittlich 20–30 % – Rich Snippets (Sternebewertungen, FAQ-Accordeons, Breadcrumbs) fallen im SERP deutlich mehr auf als normale Suchergebnisse.
Konflikte mit Plugin-Schema vermeiden
Wenn Yoast SEO bereits Schema generiert und Sie zusätzliches Markup hinzufügen wollen:
- Prüfen Sie mit dem Rich Results Test welches Schema Yoast generiert
- Fügen Sie nur Markup hinzu das Yoast nicht abdeckt
- Vermeiden Sie duplikates Markup desselben Typs auf derselben Seite
Für eine Übersicht welche Markup-Typen für lokale Unternehmen relevant sind, lesen Sie unseren Artikel über Rich Snippets und Schema.org.