Relative URL’s in WordPress

relative-urls-wordpress
Inhaltsverzeichnis

Du kennst das: Deine WordPress-Seite läuft, aber irgendwie könntest du noch das letzte Quäntchen Performance herauskitzeln. Während alle über Caching und Bildoptimierung sprechen, übersehen die meisten einen simplen Trick, der deinen Code schlanker macht und gleichzeitig deine Ladezeiten verbessert – relative URLs.

Stell dir vor, du könntest mit einer einzigen Änderung hunderte Zeichen aus deinem Quellcode streichen und dabei noch flexibler werden. Genau das versprechen relative URLs. Aber was steckt wirklich dahinter?

Was sind relative URLs überhaupt?

Der Unterschied zwischen absoluten und relativen URLs ist schnell erklärt. Eine absolute URL enthält die komplette Adresse inklusive Domain:

<a href="https://deine-domain.de/artikel/wordpress-tipps"></a>
Code-Sprache: HTML, XML (xml)

Eine relative URL verzichtet dagegen auf die Domain-Angabe:

<a href="/artikel/wordpress-tipps"></a>
Code-Sprache: HTML, XML (xml)

Das „/“ am Anfang signalisiert dem Browser: „Nimm die aktuelle Domain als Basis“. Der Browser ergänzt automatisch die fehlende Domain – du sparst dir die Schreibarbeit und reduzierst deinen Code erheblich.

Die handfesten Vorteile relativer URLs

Performance-Boost durch weniger Code

Jedes eingesparte Zeichen macht deine Seite schneller. Bei einer durchschnittlichen WordPress-Seite mit 50 internen Links sparst du pro Link etwa 20-30 Zeichen. Das summiert sich auf 1000-1500 Zeichen weniger HTML-Code pro Seite. Klingt nach wenig? Bei tausenden Seitenaufrufen täglich macht sich das durchaus bemerkbar.

Domain-Wechsel ohne Kopfschmerzen

Du ziehst mit deiner WordPress-Installation um? Mit relativen URLs musst du keine einzige interne Verlinkung anpassen. Die Links funktionieren auf der neuen Domain genauso wie auf der alten – oder in deiner lokalen Testumgebung.

Entwicklung wird einfacher

Entwickelst du lokal auf localhost:8080 und pushst dann auf den Live-Server? Mit relativen URLs funktionieren deine Links in beiden Umgebungen ohne Anpassung. Kein Suchen und Ersetzen mehr, keine kaputten Links nach dem Deployment.

HTTPS-Migration leicht gemacht

Der Wechsel von HTTP zu HTTPS? Mit relativen URLs ein Kinderspiel. Da das Protokoll nicht in den Links steht, musst du nichts anpassen.

Relative URLs in WordPress implementieren – die Code-Lösung

WordPress nutzt standardmäßig absolute URLs. Mit diesem Code-Snippet in deiner functions.php änderst du das:

function make_href_root_relative($input) { 
    return preg_replace('!http(s)?://' . $_SERVER['SERVER_NAME'] . '/!', '/', $input); 
} 

function root_relative_permalinks($input) { 
    return make_href_root_relative($input); 
}

// Filter für verschiedene Link-Typen
add_filter( 'post_link', 'root_relative_permalinks');
add_filter( 'page_link', 'root_relative_permalinks');
add_filter( 'term_link', 'root_relative_permalinks');
add_filter( 'the_permalink', 'root_relative_permalinks');
add_filter( 'wp_get_attachment_url', 'root_relative_permalinks');
add_filter( 'the_content', 'root_relative_permalinks');Code-Sprache: PHP (php)

Dieser Code wandelt alle internen Links automatisch in relative URLs um. Die Änderung erfolgt nur bei der Ausgabe – in deiner Datenbank bleiben die absoluten URLs erhalten.

Die Plugin-Alternative für Nicht-Coder

Du möchtest lieber ein Plugin nutzen? Diese beiden Optionen funktionieren zuverlässig:

Absolute Relative URLs von Andrew Patterson bietet eine simple Ein-Klick-Lösung. Nach der Aktivierung werden alle internen Links automatisch relativ ausgegeben. Das Plugin hat zwar nur 2000+ aktive Installationen, funktioniert aber seit Jahren zuverlässig.

Bewertungen: 3 (5 Sterne)

download Plugin

Plugin 2: Relative URL von Thunghsiao Liu

Relative URL von Thunghsiao Liu ist mit über 6000 aktiven Installationen die populärere Wahl. Es bietet zusätzliche Optionen zur Feinsteuerung, welche Links konvertiert werden sollen.

aktive Installationen: 6000+ (01.06.2019)

Bewertungen: 22 (4,5 Sterne)

download Plugin

Beide Plugins arbeiten nach demselben Prinzip wie der Code oben – sie filtern die WordPress-Ausgabe und ersetzen absolute durch relative URLs.

Mögliche Stolpersteine und deren Lösung

Probleme mit externen Tools

Manche SEO-Tools und Social-Media-Crawler kommen mit relativen URLs nicht klar. Die Lösung: Nutze für OpenGraph-Tags und strukturierte Daten weiterhin absolute URLs. Das geht mit diesem zusätzlichen Filter:

add_filter('wpseo_opengraph_url', 'make_absolute_url');
function make_absolute_url($url) {
    return home_url($url);
}Code-Sprache: PHP (php)

Plugin-Konflikte vermeiden

Einige Caching-Plugins oder Page-Builder haben Probleme mit relativen URLs. Teste nach der Implementierung gründlich alle Funktionen deiner Seite. Im Zweifel kannst du bestimmte Filter wieder entfernen oder nur für spezifische Bereiche aktivieren.

RSS-Feeds brauchen absolute URLs

RSS-Reader benötigen absolute URLs. Stelle sicher, dass dein Feed weiterhin korrekt funktioniert. WordPress kümmert sich normalerweise automatisch darum, aber prüfe es sicherheitshalber.

Best Practices für den Einsatz relativer URLs

Teste in einer Staging-Umgebung: Bevor du relative URLs auf deiner Live-Seite aktivierst, teste ausgiebig in einer Kopie deiner Installation.

Behalte die Kontrolle: Nutze den Code-Ansatz statt eines Plugins, wenn du genau steuern möchtest, welche Links konvertiert werden.

Dokumentiere die Änderung: Notiere dir, dass du relative URLs nutzt. Das erspart dir später Verwirrung bei der Fehlersuche.

Prüfe externe Dienste: Stelle sicher, dass Newsletter-Tools, CDNs und andere externe Services weiterhin funktionieren.

Monitoring einrichten: Behalte deine Core Web Vitals im Auge, um den Performance-Gewinn zu messen.

Wann relative URLs wirklich Sinn machen

Relative URLs sind perfekt für dich, wenn du häufig zwischen Entwicklungs- und Live-Umgebung wechselst, deine Seite viele interne Links hat, du planst die Domain zu wechseln oder du jedes Byte an Performance-Optimierung mitnehmen möchtest.

Verzichte besser darauf, wenn deine Seite stark auf externe Tools angewiesen ist, die absolute URLs erwarten, du viele unterschiedliche Subdomains nutzt oder du dir unsicher bist und lieber beim WordPress-Standard bleiben möchtest.

Fazit: Klein aber oho

Relative URLs sind keine revolutionäre Neuerung, aber ein cleverer Optimierungsansatz, der oft übersehen wird. Mit minimalem Aufwand reduzierst du deinen Code, machst deine Installation flexibler und verbesserst nebenbei die Performance.

Der nächste Schritt? Implementiere relative URLs testweise in deiner Staging-Umgebung. Miss die Ladezeiten vorher und nachher. Die Ergebnisse werden dich überzeugen – und wenn nicht, ist die Änderung mit einem Klick wieder rückgängig gemacht.

Kann ich relative URLs auch nur für bestimmte Bereiche meiner WordPress-Seite aktivieren?

Ja, das funktioniert problemlos. Entferne einfach die Filter aus dem Code-Snippet, die du nicht brauchst. Willst du beispielsweise nur Beiträge und Seiten mit relativen URLs ausstatten, nutze ausschließlich die Filter ‚post_link‘ und ‚page_link‘. So behältst du die volle Kontrolle darüber, wo relative URLs zum Einsatz kommen.

Funktionieren relative URLs auch mit WordPress Multisite-Installationen?

Bei Multisite-Installationen wird’s knifflig. Relative URLs funktionieren nur innerhalb der jeweiligen Subdomain oder des Unterverzeichnisses. Links zwischen verschiedenen Sites im Netzwerk müssen absolut bleiben. Für einzelne Sites im Multisite-Netzwerk kannst du relative URLs nutzen, aber verzichte besser darauf, wenn du häufig zwischen den Sites verlinkst.

Beeinflussen relative URLs mein SEO-Ranking bei Google?

Google kommt mit relativen URLs problemlos klar – der Crawler ergänzt automatisch die fehlende Domain. Dein Ranking wird weder positiv noch negativ beeinflusst. Die minimal bessere Ladezeit durch den schlankeren Code könnte sich theoretisch positiv auswirken, aber der Effekt ist vernachlässigbar. Wichtig: Canonical-Tags und XML-Sitemaps sollten weiterhin absolute URLs verwenden.

Was passiert mit relativen URLs, wenn ich ein CDN nutze?

DNs (Content Delivery Networks) benötigen in der Regel absolute URLs für Bilder und statische Ressourcen. Die gute Nachricht: Die meisten CDN-Plugins für WordPress kümmern sich automatisch darum und wandeln relative URLs bei Bedarf wieder in absolute um. Teste nach der Aktivierung, ob deine Bilder weiterhin über das CDN ausgeliefert werden.

Muss ich meine Datenbank anpassen, wenn ich auf relative URLs umsteige?

Nein, deine Datenbank bleibt unverändert. Die Code-Lösung und auch die Plugins arbeiten mit Filtern, die nur die Ausgabe verändern. In der Datenbank stehen weiterhin die absoluten URLs. Das ist praktisch: Deaktivierst du die Funktion, sind sofort wieder alle ursprünglichen Links aktiv. Kein Risiko, keine permanenten Änderungen.

Artikel Update: 04.09.2025

Christian Pust
WordPress & Onlinemarketing Experte mit über 15 Jahren Erfahrung. Entwickler & CEO von Trackboxx – der Google Analytics Alternative.

9 Antworten

  1. Hi Christian.

    Danke für die Anleitung!! Muss die geschweifte Klammer hinter „($input);“ nicht ganz ans Ende?

    Woran erkenne ich denn, dass die URLS richtig ersetzt wurden?

    Bei mir sieht alles noch recht unverändert aus. Oder gilt das nur für zukünftige Artikel?

    VG
    Marco

    1. Hi Marco, ich habe das Snippet gerade noch mal getestet – passt und funktioniert. Ganz wichtig, direkt im Quellcode dann prüfen – dort sollte die URL dann entsprechend angepasst sein.
      Das Snippet überarbeitet alle vorhandenen internen links.

      Sollte der hier aufgezeige Code tatsächlich nicht funktionieren, versuch mal bitte noch mal folgenden:

      function make_href_root_relative($input) { return preg_replace(‚!http(s)?://‘ . $_SERVER[‚SERVER_NAME‘] . ‚/!‘, ‚/‘, $input); } function root_relative_permalinks($input) { return make_href_root_relative($input); } add_filter( ‚the_permalink‘, ‚root_relative_permalinks‘ );

      add_filter( ‚day_link‘, ‚root_relative_permalinks‘);
      add_filter( ‚year_link‘, ‚root_relative_permalinks‘);
      add_filter( ‚post_link‘, ‚root_relative_permalinks‘);
      add_filter( ‚page_link‘, ‚root_relative_permalinks‘);
      add_filter( ‚term_link‘, ‚root_relative_permalinks‘);
      add_filter( ‚month_link‘, ‚root_relative_permalinks‘);
      add_filter( ’search_link‘, ‚root_relative_permalinks‘);
      add_filter( ‚the_content‘, ‚root_relative_permalinks‘);
      add_filter( ‚the_permalink‘, ‚root_relative_permalinks‘);
      add_filter( ‚get_shortlink‘, ‚root_relative_permalinks‘);
      add_filter( ‚post_type_link‘, ‚root_relative_permalinks‘);
      add_filter( ‚attachment_link‘, ‚root_relative_permalinks‘);
      add_filter( ‚get_pagenum_link‘, ‚root_relative_permalinks‘);
      add_filter( ‚wp_get_attachment_url‘, ‚root_relative_permalinks‘);
      add_filter( ‚post_type_archive_link‘, ‚root_relative_permalinks‘);
      add_filter( ‚get_comments_pagenum_link‘, ‚root_relative_permalinks‘);

  2. Funktioniert teilweise, aber immerhin. Bei srcset*s klappt es bei mir nicht. Ansonsten ist es natürlich schon fragwürdig wenn eine Seite die sich „FAST“ nennt bei google´s web.dev in der Kategorie „Performance“ bei diesem Artikel nur magere 28% erreicht 😉

  3. Ach wie schön. Kommentare sind erlaubt, aber wenn es auch mal kritisch wird, dann wird ganz schnell zensiert. Ihr habt das Jahr 2019 ja wirklich verstanden. 🙂

    1. Hi Hans, wir schalten hier aufgrund „Spam“ immer noch per Hand jeden einzelnen Kommentar frei…..willkommen in 2019. Auch kritische Kommentare werden veröffentlicht. Soweit nun erst einmal zu deinem 2. Statement.
      Zu deiner 1. Aussage und der Performance. Ich weiß nicht was daran „fragwürdig“ ist. Dieser Blog verwendet ist grundsätzlich auf Performance optimiert. Unabhängig davon verwenden wir PopUps, Google Adsense und weitere Dienste. Du bist angehalten eine WP Seite aufzusetzen die unter Verwendung dieser Dienste eine akzeptable Punktzahl bei Google Page Speed Insights erreicht 🙂 (Ich gehe jetzt nicht noch auf Sinn und Unsinn der Google Page Speed Insights Daten ein)
      Ich persönlich wäre im Deutschen Raum eher dafür zu haben dass weniger „Kritik“ für wirklich nebensächliche Aspekte geäußert wird – das nervt nämlich ungemein. Im Verhältnis wird unglaublich gerne kritisiert (siehe in diesem Beispiel dass wir dir als Blog nicht „grün“ genug bei Google Page Speed Insights sind…), aber dass im Gegenstück – also das auch genauso viele „Danksagungen“ kommen für die mittlerweile über 900 Artikel hier im Blog…dann doch lieber 2 Kommentare wie hier von dir abgegeben…. Sorry, musste mal raus.

    1. bzw. man kann auch direkt die Funktion wp_make_link_relative angeben. Das würde dann so aussehen:
      add_filter(‚day_link‘, ‚wp_make_link_relative‘);
      add_filter(‚year_link‘, ‚wp_make_link_relative‘);
      add_filter(‚post_link‘, ‚wp_make_link_relative‘);
      add_filter(‚page_link‘, ‚wp_make_link_relative‘);
      add_filter(‚term_link‘, ‚wp_make_link_relative‘);
      add_filter(‚month_link‘, ‚wp_make_link_relative‘);
      add_filter(’search_link‘, ‚wp_make_link_relative‘);
      add_filter(‚the_content‘, ‚wp_make_link_relative‘);
      add_filter(‚the_permalink‘, ‚wp_make_link_relative‘);
      add_filter(‚get_shortlink‘, ‚wp_make_link_relative‘);
      add_filter(‚post_type_link‘, ‚wp_make_link_relative‘);
      add_filter(‚attachment_link‘, ‚wp_make_link_relative‘);
      add_filter(‚get_pagenum_link‘, ‚wp_make_link_relative‘);
      add_filter(‚wp_get_attachment_url‘, ‚wp_make_link_relative‘);
      add_filter(‚post_type_archive_link‘, ‚wp_make_link_relative‘);
      add_filter(‚get_comments_pagenum_link‘, ‚wp_make_link_relative‘);

      Das Snippet wurde erfolgreich mit der derzeit aktuellsten WP-Version 5.8 getestet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Das könnte dich auch interessieren

Du benötigst Unterstützung bei deinem WordPress Projekt?

Dein Ansprechpartner
Christian

Du suchst eine DSGVO konforme Alternative zu Google Analytics?