Hoppa till innehållet
🛠 Hur du lägger till .html-tillägg i WordPress-webbadresser

🛠 Hur du lägger till .html-tillägg i WordPress-webbadresser

Lagt till .html i WordPress-URL:er utan plugins: tre metoder plus säker borttagning med redirects.

Har du flyttat din sajt från Joomla eller statisk HTML till WordPress, och sökmotorerna har redan indexerat hundratals sidor som slutar på .html? Du vill inte tappa ranking, men standardinställningarna för permalänkar erbjuder inte det formatet.

I praktiken handlar .html i en URL inte om utseende. Det är en försäkring mot 404-fel vid en migrering, när den gamla strukturen site.ru/page.html ändras till site.ru/page/. Varje bruten länk i indexet betyder förlorad trafik. Som tur är låter WordPress dig lägga till filändelsen .html inbyggt, utan hacks eller plugins.

Här är tre metoder: via adminpanelen (enklast), via kod i functions.php och för anpassade innehållstyper. Plus säker borttagning av .html med en redirect om du inte längre behöver formatet.

💡 Snabb översikt:

  • Lägg till .html via Inställningar → Permalänkar, 30 sekunder, ingen kod
  • Om den inbyggda metoden inte fungerar, redigera functions.php (3 rader)
  • För anpassade innehållstyper, filtret post_type_link
  • Ta bort .html utan 404-fel, en redirect i .htaccess

Varför WordPress-länkar behöver filändelsen.html

Under den statiska sajt-eran var varje sida en fysisk .html-fil på servern. Webbläsaren begärde site.ru/about.html och fick ett färdigt dokument. WordPress fungerar annorlunda: alla URL:er är virtuella och levereras av index.php via mod_rewrite.

Men vanan med "fil"-ändelser lever kvar. Typiska scenarier där .html verkligen behövs:

  • Omdesign eller migrering från en statisk sajt. De gamla URL:erna finns redan i Googles och Yandex index. Att ändra dem utan redirect garanterar ett rankingtapp i 2-4 månader.
  • Migrering från Joomla, Drupal, ModX. Många äldre CMS genererade .html i slutet av adressen som standard.
  • Kundkrav. Kunden "vill ha det som det var", punkt slut. Det tar längre tid att argumentera än att bara göra det.

WordPress hanterar alla tre fallen utan ett enda plugin.

Metod ett: via adminpanelen

Den snabbaste vägen. Gå till Inställningar → Permalänkar och välj alternativet "Anpassad struktur".

I strukturfältet lägger du till .html i slutet av mallen. Till exempel:

1/%category%/%postname%.html

Eller om du inte behöver kategorier:

1/%postname%.html

Klicka på "Spara ändringar". Klart. Alla nya och befintliga inläggs-URL:er får ändelsen .html. Den här metoden påverkar inte sajtens sidor (page); de behöver koden från nästa avsnitt.

Obs: om sajten redan har indexerade länkar utan .html skapar WordPress INTE automatiskt en redirect från de gamla URL:erna till de nya. Du behöver ett separat redirect-plugin eller regler i .htaccess.

Metod två: via functions.php

Ibland levererar inte adminpanelen: temat eller ett annat plugin skriver över länkstrukturen. Då går vi in i koden.

Lägg till detta i ditt barntemas functions.php eller via tillägget Code Snippets:

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});

Vad som händer här: kroken init körs vid varje WordPress-laddning och lägger till .html i sid-URL-strukturen via egenskapen page_structure i det globala objektet $wp_rewrite. Kontrollen strpos förhindrar dubbel tilläggning om koden skulle infogas två gånger.

Efter att du lagt till koden, se till att gå till Inställningar → Permalänkar och klicka på "Spara ändringar". Utan detta steg bygger inte WordPress om cachen för omskrivningsregler, och de nya URL:erna fungerar inte, du får en 404.

Om den inbyggda metoden och koden inte hjälper kan du använda pluginet Permalink Manager Lite. Det har över 100 000 aktiva installationer, 5 stjärnor i betyg och stöder omskrivningsregler för alla innehållstyper, inklusive taxonomier och WooCommerce.

Hur du lägger till.html för anpassade innehållstyper (CPT)

Din sajt har en portfölj, testimonials, produkter eller en annan innehållstyp skapad via register_post_type. Den vanliga skärmen "Permalänkar" påverkar inte dem. Vi arbetar via filtret post_type_link:

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);

Efter att du infogat koden, gå igen till Inställningar → Permalänkar → Spara ändringar. Filtret post_type_link fungerar i farten: WordPress bygger URL:en, du fångar upp den för önskad innehållstyp och lägger till .html.

Om CPT:n är registrerad med en anpassad slug ('rewrite' => array('slug' => 'works')), använd den i home_url() istället för det vanliga typnamnet.

Hur du tar bort.html utan att förstöra indexeringen

Har du bestämt dig för att gå tillbaka till rena URL:er utan filändelser? Att bara ta bort .html från inställningarna räcker inte. De gamla länkarna som redan finns i sökmotorernas index blir 404:or.

Steg att ta:

  • Ta bort .html från fältet "Anpassad struktur" i Inställningar → Permalänkar och spara.
  • Ta bort koden från functions.php om du lade till den.
  • Lägg till en redirect i .htaccess (i sajtroten, före blocket # BEGIN WordPress):
1RewriteEngine On
2RewriteCond %{REQUEST_FILENAME} !-f
3RewriteRule ^portfolio/(.+)\.html$ /portfolio/$1 [R=301,L]

För vanliga inlägg och sidor är regeln liknande, ersätt bara /portfolio/ med det nödvändiga segmentet. R=301 talar om för sökmotorerna att flytten är permanent: länkkraft förs över till den nya URL:en.

Kontrollera resultatet: öppna den gamla .html-adressen i en webbläsare, den ska omdirigera till versionen utan filändelse. Kolla sedan Google Search Console om ett par veckor och bekräfta att antalet indexerade 404:or minskar.

Video: lägga till.html på 2 minuter

En kort demo av alla tre metoderna på en live WordPress-sajt:

⁉️🤔 FAQ

Fungerar metoden med taxonomier, kategorier och taggar?

Den vanliga permalänkskärmen rör inte taxonomier. Kategorier och taggar skulle behöva egna omskrivningsregler via add_rewrite_rule() eller funktionaliteten i Permalink Manager Pro. Men i praktiken används .html sällan i kategori-URL:er: sökmotorer hanterar /category/seo/ utmärkt utan filändelse.

Vad händer med gamla länkar utan.html efter att strukturen ändrats?

WordPress skapar ingen automatisk redirect från gamla URL:er till nya. Om sajten redan är indexerad kommer de gamla länkarna att börja returnera 404:or efter strukturändringen. Lösning: ett redirect-plugin (t.ex. Redirection) med automatisk spårning av permalänksändringar. Det kommer ihåg den gamla slugen och tillämpar en 301 automatiskt.

Kan jag använda.php,.htm eller en annan filändelse?

Tekniskt sett ja, WordPress behandlar vilken sträng som helst i fältet "Anpassad struktur". Men ur ett sökmotorperspektiv ser .php misstänkt ut (det avslöjar oftast serverteknik), och .htm är ett föråldrat format från Windows 3.1-eran. Filändelsen .html är neutral, välbekant och väcker inga frågor från vare sig användare eller sökrobotar.

Hjälper detta när man flyttar en blogg från Blogger till WordPress?

Ja, detta är ett klassiskt scenario. Blogger serverade URL:er i formatet /2024/06/post-title.html som standard. Vid import till WordPress via det inbyggda verktyget bryts strukturen till /2024/06/post-title/. Att lägga till .html i permalänksinställningarna bevarar kompatibiliteten, alla gamla adresser fortsätter att fungera utan manuella redirects.

Ska du lägga till.html: sammanfattningen

Kort sagt: för ett helt nytt WordPress-projekt behövs inte .html. Rena URL:er som site.ru/post-name/ är standarden som både användare och sökmotorer förstår.

Men det finns två scenarier där .html är fullt motiverat: migrering från en statisk sajt eller ett annat CMS, och migrering från Blogger. I båda fallen bevarar du dina sökrankingar och sparar veckor av manuella redirects.

Den mest pålitliga vägen är den inbyggda inställningen via adminpanelen. Om den inte fungerar, functions.php. För CPT:er, filtret post_type_link. Alla tre metoder kräver inga plugins och tillför ingen belastning på sajten. Och när .html inte längre behövs för .htaccess med en 301-redirect över länkkraften rent till de nya URL:erna.