WooCommerce Produktkategorie Slug ändern

Beim Navigieren in der Kundenansicht von WooCommerce fällt auf, dass die URL-Struktur gelegentlich inkonsistent erscheint. Ein konkretes Beispiel: Ein Produkt könnte unter der URL „https://2b.onl/shop/domains/de-domain/“ verfügbar sein, während die zugehörige Kategorie unter „https://2b.onl/produkt-kategorie/domains/“ aufgerufen wird. Diese Uneinheitlichkeit kann nicht nur SEO-Herausforderungen mit sich bringen, sondern auch das Benutzererlebnis beeinträchtigen.

Warum die WooCommerce Produktkategorie durchgängig sein sollte

In dem obigen Beispiel wird deutlich, dass die URL-Strukturen für Produkte und ihre jeweiligen Produktkategorien variieren. Trotz derselben Produktkategorie erhalten wir für den Produktlink und die Kategorie-URL unterschiedliche Adressen:

Produkt: https://2b.onl/shop/domains/de-domain/ Kategorie: https://2b.onl/produkt-kategorie/domains/

Kürzt ein Kunde den Produktlink „de-domain“ unter https://2b.onl/shop/domains/de-domain/ weg, könnte man intuitiv erwarten, zur übergeordneten Produktkategorie „domains“ weitergeleitet zu werden. Allerdings leitet die tatsächliche Kategorie-URL zu https://2b.onl/produkt-kategorie/domains/ um. Dies birgt 404-Fehler und SEO-Herausforderungen, da Suchmaschinen Schwierigkeiten haben könnten, die Website-Struktur korrekt zu interpretieren. Eine empfohlene Lösung wäre die Anpassung dieser URL-Strukturen. Leider existiert keine einfache Einstellungsoption dafür. Eine Möglichkeit wäre das kostenpflichtige Plugin „Custom Permalinks for WooCommerce„, von dem wir jedoch abraten würden.

Die Magie der functions.php

Damit dein WooCommerce Shop auch die Struktur https://2b.onl/shop/domains/ und https://2b.onl/shop/domains/de-domain/ versteht und unterstützt, musst du einfach nur einen kleinen Code in der functions.php deiner WordPress Theme-Datei hinterlegen:

add_filter( 'term_link', 'custom_product_cat_permalink', 10, 3 );
function custom_product_cat_permalink( $url, $term, $taxonomy ) {
    if ( 'product_cat' !== $taxonomy ) {
        return $url;
    }
    
    // Die Permalink-Struktur neu definieren
    $url = trailingslashit( home_url( 'shop/' . $term->slug ) );

    return $url;
}

add_action( 'init', 'rewrite_product_cat_rule' );
function rewrite_product_cat_rule() {
    add_rewrite_rule( '^shop/([^/]+)/?$', 'index.php?product_cat=$matches[1]', 'top' );
}

Wechsle danach in deiner WordPress Administration auf Einstellungen > Permalinks und speichere einmal die Einstellungen. Das sollte es gewesen sein. Dein WooCommerce Shop unterstützt ab sofort eine strukturierte URL-Basis. Die WooCommerce Produktkategorie ist identisch, der hinterlegten WooCommerce Produktdetailseite.

Wie das ganze aussieht kannst du übrigens in unserem Online-Shop testen. Die Produktdetailseiten und die Produktkategorien (in der Navigationsleiste) haben die gleiche Struktur.

PS: Mit diesem Tipp hast du bereits 50,- EUR pro Jahr gespart! Hast du gewusst, dass der Wert unserer Webhosting-Pakete und unseres Services weit über diese Einsparungen hinausgeht? Entdecke jetzt, was wir noch für dich tun können!