SEOFX – SEO Agentur Nürnberg
WordPress SEO

WordPress Schema Markup ohne Plugin einbinden

4 Min. Lesezeit

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, JobPosting die 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:

  1. Prüfen Sie mit dem Rich Results Test welches Schema Yoast generiert
  2. Fügen Sie nur Markup hinzu das Yoast nicht abdeckt
  3. 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.

Schema Markup professionell implementieren.

Wir implementieren vollständiges, valides Schema.org-Markup auf Ihrer WordPress-Website – für bessere Rich Snippets und höhere Klickraten.

WordPress SEO anfragen

Weitere Artikel zu WordPress SEO