Published On: 26.08.2024Kategorien: WordPress Tipps

WordPress XML-Sitemap anpassen: Eine Anleitung für Entwickler

WordPress XML-Sitemaps sind ein integraler Bestandteil der Suchmaschinenoptimierung (SEO). Seit der Einführung von WordPress 5.5 ist eine native XML-Sitemap-Funktionalität standardmäßig integriert. Diese Funktion erleichtert Suchmaschinen das Crawlen und Indexieren Ihrer Website. Manchmal erfordert es jedoch spezielle Anforderungen, die eine Anpassung dieser Sitemaps notwendig machen. In diesem Artikel erfahren Sie, wie Sie die WordPress-XML-Sitemap-Funktion mithilfe von Actions und Filtern anpassen können, einschließlich der Entfernung der Kategorie-Sitemap.

Grundlagen der XML-Sitemap in WordPress

Die XML-Sitemap listet alle relevanten URLs Ihrer Website auf, um Suchmaschinen wie Google bei der Indexierung Ihrer Seiten zu unterstützen. In WordPress besteht die Sitemap aus verschiedenen Sitemaps, die jeweils unterschiedliche Inhaltstypen wie Beiträge, Seiten oder benutzerdefinierte Post Types (Custom Post Types) abdecken.

Der Aufbau einer XML-Sitemap folgt einem bestimmten Format, das Suchmaschinen das einfache Auslesen und Interpretieren der Daten ermöglicht. Jede URL, die in der Sitemap enthalten ist, wird in einem -Tag dargestellt. Innerhalb dieses Tags gibt es mehrere Untertags, die zusätzliche Informationen zur URL bereitstellen, wie:

  • : Die vollständige URL der Seite.
  • : Das Datum der letzten Änderung der Seite. Dies hilft Suchmaschinen, Änderungen an Ihren Seiten effizient zu erkennen.
  • : Eine Empfehlung an Suchmaschinen, wie häufig die Seite voraussichtlich geändert wird. Mögliche Werte sind daily, weekly, monthly usw.
  • : Eine Prioritätseinstufung (zwischen 0.0 und 1.0), die anzeigt, wie wichtig diese Seite im Verhältnis zu anderen Seiten auf Ihrer Website ist. Standardmäßig ist dieser Wert auf 0.5 gesetzt.

Mehr zu Aufbau der XML-Sitemaps finden Sie hier: https://www.sitemaps.org/

WordPress generiert diese Sitemaps dynamisch und passt sie an, sobald neue Inhalte hinzugefügt oder bestehende Inhalte geändert werden. Die Sitemap-Funktion in WordPress ist so konzipiert, dass sie den Indexierungsprozess für Suchmaschinen optimiert, indem sie eine strukturierte und hierarchisch organisierte Liste aller relevanten Inhalte bereitstellt.

Zusätzlich besteht die WordPress-XML-Sitemap aus mehreren Unter-Sitemaps, die jeweils eine bestimmte Art von Inhalten abdecken. Zum Beispiel gibt es separate Sitemaps für Beiträge, Seiten, Kategorien und Tags. Diese Aufteilung erleichtert es Suchmaschinen, gezielt bestimmte Inhalte zu crawlen und zu indexieren, was die Effizienz und Genauigkeit des Crawlings erhöht.

Anpassung der XML-Sitemap mit Filtern

WordPress stellt verschiedene Filter bereit, mit denen Sie die Standard-Sitemaps nach Ihren Wünschen anpassen können. Im Folgenden zeigen wir Ihnen einige gängige Beispiele.

1. Hinzufügen eines benutzerdefinierten Post Types zur Sitemap

Standardmäßig werden alle öffentlichen Custom Post Types zur Sitemap hinzugefügt. Wenn Sie jedoch einen benutzerdefinierten Post Type manuell hinzufügen möchten, können Sie den wp_sitemaps_post_types-Filter verwenden:


function custom_sitemap_post_types( $post_types ) {
    $post_types[] = 'mein_custom_post_type';
    return $post_types;
}
add_filter( 'wp_sitemaps_post_types', 'custom_sitemap_post_types' );
        

2. Ausschließen eines bestimmten Post Types aus der Sitemap

Wenn Sie einen bestimmten Post Type von der Sitemap ausschließen möchten, können Sie ebenfalls den wp_sitemaps_post_types-Filter nutzen:


function exclude_sitemap_post_type( $post_types ) {
    unset( $post_types['unwanted_post_type'] );
    return $post_types;
}
add_filter( 'wp_sitemaps_post_types', 'exclude_sitemap_post_type' );
        

3. Ausschließen bestimmter Beiträge oder Seiten aus der Sitemap

Um zu verhindern, dass bestimmte Beiträge oder Seiten in der Sitemap erscheinen, können Sie den wp_sitemaps_posts_query_args-Filter verwenden:


function exclude_posts_from_sitemap( $args, $post_type ) {
    if ( 'post' === $post_type ) {
        $args['post__not_in'] = array( 1, 2, 3 ); // IDs der auszuschließenden Beiträge
    }
    return $args;
}
add_filter( 'wp_sitemaps_posts_query_args', 'exclude_posts_from_sitemap', 10, 2 );
        

4. Hinzufügen einer benutzerdefinierten Sitemap

Neben den Standard-Sitemaps können Sie auch eigene Sitemaps erstellen. Verwenden Sie hierfür den wp_sitemaps_add_provider-Filter.


function custom_sitemap_provider( $providers ) {
    require_once get_template_directory() . '/inc/class-custom-sitemap-provider.php';
    $providers['custom'] = new Custom_Sitemap_Provider();
    return $providers;
}
add_filter( 'wp_sitemaps_add_provider', 'custom_sitemap_provider' );
        

class Custom_Sitemap_Provider extends WP_Sitemaps_Provider {

    public function __construct() {
        parent::__construct( 'custom' );
    }

    public function get_url_list( $page_num, $post_type ) {
        $urls = array();

        // Beispiel für das Hinzufügen einer benutzerdefinierten URL zur Sitemap
        $urls[] = array(
            'loc' => home_url( '/custom-page/' ),
            'lastmod' => current_time( 'Y-m-d H:i:s' ),
        );

        return $urls;
    }
}
        

5. Entfernen der Kategorie-Sitemap

Es gibt mehrere Gründe, warum Sie die Kategorie-Sitemap aus Ihrer WordPress-XML-Sitemap entfernen möchten. Beispielsweise könnten Sie die Kategorien nicht indexieren lassen wollen oder eine optimierte Sitemap ohne Kategorien bevorzugen. Um die Kategorie-Sitemap zu entfernen, können Sie den Filter wp_sitemaps_taxonomies verwenden.

Hier ist der Code, den Sie Ihrer functions.php-Datei hinzufügen müssen:


function remove_category_sitemap( $taxonomies ) {
    unset( $taxonomies['category'] ); // 'category' ist der Taxonomie-Slug für Kategorien
    return $taxonomies;
}
add_filter( 'wp_sitemaps_taxonomies', 'remove_category_sitemap' );
        

Anpassung der XML-Sitemap mit Actions

Neben den Filtern bietet WordPress auch Actions, um bestimmte Sitemap-Funktionen zu beeinflussen.

1. Hinzufügen von benutzerdefinierten Informationen zu den Sitemaps

Wenn Sie beispielsweise zusätzliche Informationen wie priority oder changefreq für bestimmte URLs festlegen möchten, können Sie den folgenden Code verwenden:


function add_custom_sitemap_entry( $url, $post ) {
    if ( 'post' === $post->post_type ) {
        $url['priority'] = 0.8;
        $url['changefreq'] = 'monthly';
    }
    return $url;
}
add_filter( 'wp_sitemaps_posts_entry', 'add_custom_sitemap_entry', 10, 2 );
        

Fazit

Die Anpassung der WordPress XML-Sitemap mithilfe von Actions und Filtern bietet eine flexible Möglichkeit, die Sitemap an Ihre spezifischen Bedürfnisse anzupassen. Ob Sie benutzerdefinierte Post Types hinzufügen, bestimmte Beiträge ausschließen oder sogar die Kategorie-Sitemap entfernen möchten – mit den hier gezeigten Beispielen können Sie Ihre Sitemap genau nach Ihren Wünschen gestalten.

Über den Autor

Jürgen Aloy

Jürgen Aloy, Geschäftsführer der yoonic GmbH ist mit über 15 Jahren Erfahrung in Consulting, Webentwicklung, eCommerce, Hosting und SEO. Er gründete 2015 die yoonic GmbH und war zuvor Geschäftsführer der yoonic.uk Limited und eines Einzelunternehmens. Seine Ausbildung schloss er an der BHAK Wien 10 mit der Spezialisierung „Wirtschaftsinformatik / Digital Business“ ab und hat die Zertifizierung "Fundamentals of Digital Marketing" von der Google Digital Garage und Zertifizierungen der yoast SEO academy sowie die Zertifizierung "Certified eCommerce & Social Media Consultant" abgeschlossen. Er ist leidenschaftlich an digitalem Marketing interessiert und hilft seinen Lesern durch maßgeschneiderte digitale Lösungen und nachhaltiges Online-Wachstum. Jürgen Aloy verfügt über umfassende Kenntnisse in den Bereichen Technologie und Online-Marketing.

Kommentare

Fragen, Ideen oder Anregungen? Schreib uns was Du denkst!

Hinterlasse ein Kommentar

Bewertung

0
(0)

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.