Zum Inhalt springen
🛠 So fügen Sie eine .html-Erweiterung zu WordPress-URLs hinzu

🛠 So fügen Sie eine .html-Erweiterung zu WordPress-URLs hinzu

Added .html to WordPress URLs without plugins: three methods plus safe removal with redirects.

Haben Sie Ihre Website von Joomla oder statischem HTML zu WordPress migriert und Suchmaschinen haben bereits Hunderte Seiten mit der Endung .html indexiert? Sie möchten keine Rankings verlieren, aber die standardmäßigen Permalink-Einstellungen bieten dieses Format nicht an.

In der Praxis geht es bei .html in einer URL nicht um Optik. Es ist eine Absicherung gegen 404-Fehler während einer Migration, wenn die alte Struktur site.ru/page.html zu site.ru/page/ wird. Jeder defekte Link im Index bedeutet Traffic-Verlust. Glücklicherweise erlaubt WordPress Ihnen, die .html-Erweiterung nativ hinzuzufügen, ohne Hacks oder Plugins.

Nachfolgend drei Methoden: über das Admin-Panel (die einfachste), über Code in functions.php und für benutzerdefinierte Beitragstypen. Plus die sichere Entfernung von .html mit einer Weiterleitung, falls Sie das Format nicht mehr benötigen.

💡 Kurzüberblick:

  • .html hinzufügen über Einstellungen → Permalinks, 30 Sekunden, kein Code
  • Falls die native Methode nicht funktioniert, functions.php bearbeiten (3 Zeilen)
  • Für benutzerdefinierte Beitragstypen den post_type_link-Filter
  • .html ohne 404-Fehler entfernen, eine Weiterleitung in .htaccess

In der Ära statischer Websites war jede Seite eine physische .html-Datei auf dem Server. Der Browser forderte site.ru/about.html an und erhielt ein fertiges Dokument. WordPress funktioniert anders: Alle URLs sind virtuell und werden von index.php via mod_rewrite ausgeliefert.

Aber die Gewohnheit der „Datei"-Endungen ist noch lebendig. Typische Szenarien, in denen .html wirklich benötigt wird:

  • Relaunch oder Migration von einer statischen Website. Die alten URLs sind bereits im Index von Google und Yandex. Sie ohne Weiterleitung zu ändern, garantiert einen Ranking-Verlust für 2-4 Monate.
  • Migration von Joomla, Drupal, ModX. Viele ältere CMS generierten standardmäßig .html am Ende der Adresse.
  • Kundenanforderung. Der Kunde „möchte es so wie es war", Punkt. Zu diskutieren dauert länger, als es einfach umzusetzen.

WordPress bewältigt alle drei Fälle ohne ein einziges Plugin.

Methode eins: über das Admin-Panel

Der schnellste Weg. Gehen Sie zu Einstellungen → Permalinks und wählen Sie die Option „Individuelle Struktur".

Fügen Sie im Strukturfeld .html am Ende der Vorlage hinzu. Zum Beispiel:

1/%category%/%postname%.html

Oder falls Sie keine Kategorien benötigen:

1/%postname%.html

Klicken Sie auf „Änderungen speichern". Fertig. Alle neuen und bestehenden Beitrags-URLs erhalten die Endung .html. Diese Methode betrifft keine Seiten (page); diese benötigen den Code aus dem nächsten Abschnitt.

Hinweis: Falls die Website bereits indexierte Links ohne .html hat, leitet WordPress NICHT automatisch von den alten URLs auf die neuen um. Sie benötigen ein separates Weiterleitungs-Plugin oder Regeln in .htaccess.

Methode zwei: via functions.php

Manchmal liefert das Admin-Panel nicht das gewünschte Ergebnis: Das Theme oder ein anderes Plugin überschreibt die Linkstruktur. Dann gehen wir in den Code.

Fügen Sie dies zur functions.php Ihres Child-Themes oder über das Code Snippets-Plugin hinzu:

1/**
2 * Adds .html to the end of WordPress page URLs.
3 * After inserting the code, go to Settings → Permalinks
4 * and click "Save Changes" to flush the rewrite rules cache.
5 */
6add_action('init', function() {
7 global $wp_rewrite;
8 if (! strpos($wp_rewrite->get_page_permastruct(), '.html')) {
9 $wp_rewrite->page_structure .= '.html';
10 }
11});

Was hier passiert: Der init-Hook wird bei jedem WordPress-Aufruf ausgelöst und fügt .html zur Seiten-URL-Struktur hinzu, über die Eigenschaft page_structure des globalen $wp_rewrite-Objekts. Die strpos-Prüfung verhindert eine doppelte Hinzufügung, falls der Code zweimal eingefügt wird.

Gehen Sie nach dem Hinzufügen des Codes unbedingt zu Einstellungen → Permalinks und klicken Sie auf „Änderungen speichern". Ohne diesen Schritt baut WordPress den Rewrite-Rules-Cache nicht neu auf und die neuen URLs funktionieren nicht, Sie erhalten einen 404-Fehler.

Falls die native Methode und der Code nicht helfen, können Sie das Plugin Permalink Manager Lite verwenden. Es hat über 100.000 aktive Installationen, eine 5-Sterne-Bewertung und unterstützt Rewrite-Regeln für jeden Inhaltstyp, einschließlich Taxonomien und WooCommerce.

So fügen Sie.html zu benutzerdefinierten Beitragstypen (CPT) hinzu

Ihre Website hat ein Portfolio, Referenzen, Produkte oder einen anderen Inhaltstyp, der via register_post_type erstellt wurde. Der Standard-Bildschirm „Permalinks" wirkt sich nicht auf diese aus. Wir arbeiten mit dem post_type_link-Filter:

1/**
2 * Adds .html extension to the URL of the custom post type "portfolio".
3 * Replace 'portfolio' with your CPT slug.
4 */
5function sdstudio_cpt_html_permalink($post_link, $post) {
6 if ($post->post_type === 'portfolio') {
7 return home_url('/portfolio/' . $post->post_name . '.html');
8 }
9 return $post_link;
10}
11add_filter('post_type_link', 'sdstudio_cpt_html_permalink', 10, 2);

Gehen Sie nach dem Einfügen des Codes erneut zu Einstellungen → Permalinks → Änderungen speichern. Der post_type_link-Filter arbeitet dynamisch: WordPress erstellt die URL, Sie fangen sie für den gewünschten Beitragstyp ab und hängen .html an.

Falls der CPT mit einem benutzerdefinierten Slug registriert ist ('rewrite' => array('slug' => 'works')), verwenden Sie diesen in home_url() anstelle des Standard-Typnamens.

So entfernen Sie.html ohne die Indexierung zu beschädigen

Sie haben sich entschieden, zu sauberen URLs ohne Erweiterungen zurückzukehren? Einfach .html aus den Einstellungen zu entfernen, reicht nicht aus. Die alten Links, die bereits in den Suchmaschinen-Indizes sind, werden zu 404-Fehlern.

Durchzuführende Schritte:

  • Entfernen Sie .html aus dem Feld „Individuelle Struktur" unter Einstellungen → Permalinks und speichern Sie.
  • Löschen Sie den Code aus functions.php, falls Sie ihn hinzugefügt haben.
  • Fügen Sie eine Weiterleitung in .htaccess hinzu (im Wurzelverzeichnis der Website, vor dem Block # BEGIN WordPress):
1RewriteEngine On
2RewriteCond %{REQUEST_FILENAME} !-f
3RewriteRule ^portfolio/(.+)\.html$ /portfolio/$1 [R=301,L]

Für normale Beiträge und Seiten ist die Regel ähnlich, ersetzen Sie einfach /portfolio/ durch das benötigte Segment. R=301 teilt Suchmaschinen mit, dass der Umzug dauerhaft ist: Die Link-Power geht auf die neue URL über.

Prüfen Sie das Ergebnis: Öffnen Sie die alte .html-Adresse in einem Browser, sie sollte auf die Version ohne Erweiterung weiterleiten. Prüfen Sie dann in ein paar Wochen die Google Search Console und bestätigen Sie, dass die Anzahl der indexierten 404-Fehler sinkt.

Video:.html in 2 Minuten hinzufügen

Eine kurze Demo aller drei Methoden auf einer Live-WordPress-Website:

⁉️🤔 FAQ

Funktioniert die Methode mit Taxonomien, Kategorien und Schlagwörtern?

Der Standard-Permalink-Bildschirm betrifft Taxonomien nicht. Kategorien und Schlagwörter würden eigene Rewrite-Regeln via add_rewrite_rule() oder die Funktionalität von Permalink Manager Pro benötigen. In der Praxis wird .html in Kategorie-URLs jedoch selten verwendet: Suchmaschinen kommen mit /category/seo/ auch ohne Erweiterung problemlos zurecht.

Was passiert mit alten Links ohne.html nach der Änderung der Struktur?

WordPress erstellt keine automatische Weiterleitung von alten URLs auf neue. Falls die Website bereits indexiert ist, liefern die alten Links nach der Strukturänderung 404-Fehler. Lösung: ein Weiterleitungs-Plugin (z. B. Redirection) mit automatischer Verfolgung von Permalink-Änderungen. Es merkt sich den alten Slug und wendet automatisch einen 301 an.

Kann ich.php,.htm oder eine andere Erweiterung verwenden?

Technisch ja, WordPress verarbeitet jede Zeichenkette im Feld „Individuelle Struktur". Aus Suchmaschinensicht sieht .php jedoch verdächtig aus (es verrät meist die Servertechnologie) und .htm ist ein veraltetes Format aus der Windows-3.1-Ära. Die Erweiterung .html ist neutral, vertraut und wirft weder bei Nutzern noch bei Such-Bots Fragen auf.

Hilft das bei einem Umzug eines Blogs von Blogger zu WordPress?

Ja, das ist ein klassisches Szenario. Blogger lieferte URLs standardmäßig im Format /2024/06/post-title.html aus. Beim Import zu WordPress mit dem nativen Tool bricht die Struktur auf /2024/06/post-title/ um. Das Hinzufügen von .html in den Permalink-Einstellungen erhält die Kompatibilität, alle alten Adressen funktionieren ohne manuelle Weiterleitungen weiter.

Sollten Sie.html hinzufügen: das Fazit

Kurz gesagt: Für ein brandneues WordPress-Projekt wird .html nicht benötigt. Saubere URLs wie site.ru/post-name/ sind der Standard, den sowohl Nutzer als auch Suchmaschinen verstehen.

Es gibt jedoch zwei Szenarien, in denen .html voll gerechtfertigt ist: die Migration von einer statischen Website oder einem anderen CMS und die Migration von Blogger. In beiden Fällen bewahren Sie Ihre Suchmaschinen-Rankings und sparen sich wochenlange manuelle Weiterleitungen.

Der zuverlässigste Weg ist die native Einstellung über das Admin-Panel. Falls das nicht funktioniert, functions.php. Für CPTs der post_type_link-Filter. Alle drei Methoden benötigen keine Plugins und verursachen keine zusätzliche Last auf der Website. Und wenn .html nicht mehr benötigt wird, leitet .htaccess mit einem 301-Redirect die Power sauber auf die neuen URLs um.