Hvordan rydde opp i WordPress header (RSS, emojis, generator)

Hvordan rydde opp i WordPress header (RSS, emojis, generator)

Sist verifisert: 22. september 2026
8 min lesetid
Guide
Full-stack-utvikler

Åpne kildekoden til siden din (Ctrl+U / Cmd+Option+U). Se på <head>-seksjonen. Ser du dusinvis av kodelinjer du ikke forstår? De fleste av dem er unødvendige i 2026: legacy-manifester, kommentarfeeds, emoji-polyfills og generator-metatagger fra tiden da Windows Live Writer fortsatt var relevant.

Dette er ikke kosmetikk. Hver unødvendige <link> og hvert skript koster bytes, parsing-tid og noen ganger DNS-oppslag. På en WooCommerce-butikk med mange plugins hoper taggene seg raskt opp. Et ryddig wp_head()-output gjør feilsøking enklere og reduserer angrepsflaten via versjonslekkasje.

Referanser: wp_head(), WordPress Developer Handbook og web.dev om LCP.

#Problemet: head-bloat i WordPress

En fersk WordPress-installasjon med standardtema leverer typisk blant annet:

  • RSS-lenker for innlegg, kategorier, tagger og kommentarer
  • wlwmanifest for Windows Live Writer
  • Really Simple Discovery (rsd_link)
  • meta name="generator" med core-versjonen
  • Emoji-detection-skript pluss stiler
  • Shortlink-tagger (?p=123)
  • Adjacent-post-lenker (rel="prev" / rel="next")
  • REST- og oEmbed-discovery-lenker
ElementNytte i 2026Risiko ved fjerning
KommentarfeedSvart lavLav
Hovedfeed /feed/Middels (nyhetsbrev, lesere)Middels
wlwmanifest / RSDLegacyLav
Generator-metaIngen (lekkasje)Lav
Emoji-skriptNettlesere nativtLav
REST-discoveryHøy ved headless / appHøy hvis du bruker API
ShortlinkLavLav

Tabellen er beslutningsgrunnlaget: ikke riv ut alt, fjern legacy og lekkasje, behold API bevisst.

#Hvorfor rydde i head?

#Ytelse

For opprydding ser du ofte 10–20 ekstra tagger og et emoji-skript fra s.w.org. Etter opprydding synker HTML-størrelsen, mindre parser-arbeid, og i PageSpeed-spor mangler de overflødige requestene. Effekten er tydeligere på mobilnett i Norge enn på fiber på kontoret.

#Sikkerhet og informasjonslekkasje

meta name="generator" content="WordPress x.y.z" avslorer core-versjonen. Det er ikke et exploit i seg selv, men en invitasjon for scannere til a sjekke kjente CVE-er. Det samme gjelder versjonsquery på tema-CSS. Fjern generatoren; patch core, tema og plugins uansett.

#Vedlikehold

En slank head gjør staging-diffs lesbare. Når et plugin plutselig legger inn tre prefetch-hints, ser du det med en gang. I revisjoner for norske SMB-kunder er «ren head» ofte første raske gevinst for man går los på Redis eller objektcache.

#1. RSS for kommentarer og ekstra feeds

WordPress genererer en separat RSS-feed for hvert innlegg, kategori, tag og kommentarer. Hvis du ikke driver et nyhetsnettsted der folk abonnerer på kommentartradar via RSS-leser, er det bare ressursslosing.

// Fjern RSS-lenker for kommentarer
add_filter( 'feed_links_show_comments_feed', '__return_false' );

// Fjern ekstra feeds (kategorier, tagger, forfattere)
remove_action( 'wp_head', 'feed_links_extra', 3 );

// Bare hvis du virkelig ikke trenger hovedfeeden:
// remove_action( 'wp_head', 'feed_links', 2 );

La feed_links sta hvis Mailchimp, Buttondown eller et podkastoppsett leser site-feeden. Kommentar- og ekstra feeds kan du som regel skru av på bedriftssider.

#2. Windows Live Writer og RSD

Når brukte du sist Windows Live Writer til a blogge? WordPress legger fortsatt til manifest-lenken. Really Simple Discovery var ment for remote publishing og er irrelevant for moderne workflows.

remove_action( 'wp_head', 'wlwmanifest_link' );
remove_action( 'wp_head', 'rsd_link' ); // Really Simple Discovery

Dette fjerner typisk:

  • <link rel="wlwmanifest" type="application/wlwmanifest+xml" ...>
  • <link rel="EditURI" type="application/rsd+xml" ...>

#3. WP emoji

WordPress laster JS og CSS for a konvertere tegn som :) til bilder. Moderne nettlesere har innebygd emoji-stotte. Skriptet er bare en ekstra HTTP-foresporsel pluss DNS-prefetch til s.w.org.

remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );

Hvis redaksjonen bruker mye emoji i e-post og Outlook-visning er kritisk, test mail-filtrene enkeltvis. For frontend-ytelse holder wp_head- og style-hooks.

#4. WordPress-versjon (generator)

Av sikkerhetsgrunner bor du ikke vise versjonen i frontend.

remove_action( 'wp_head', 'wp_generator' );
add_filter( 'the_generator', '__return_empty_string' );

Dette toner også generator-tagger i feeds. Det erstatter ikke oppdateringer: core, temaer og plugins skal fortsatt patches. Du fjerner bare skiltet på ytterdoren.

Shortlinks (?p=123) og rel="prev" / rel="next" i head brukes sjelden av moderne crawlere på en nyttig mate. De blaser opp HTML.

remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );
remove_action( 'template_redirect', 'wp_shortlink_header', 11 );
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );
remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'index_rel_link' );
remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );

#6. REST og oEmbed: bestem bevisst

// Fjern bare hvis frontend ikke trenger discovery:
// remove_action( 'wp_head', 'rest_output_link_wp_head', 10 );
// remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
// remove_action( 'template_redirect', 'rest_output_link_header', 11 );

Headless-oppsett, mobilapper og mange page builders forventer REST-discovery. På en klassisk bedriftsblogg med lite API-bruk kan du fjerne lenkene. På headless WordPress med Next.js eller Astro som frontend lar du dem sta.

#Ferdig «clean head»-snippet

Legg dette heller som must-use-plugin under wp-content/mu-plugins/wppoland-clean-head.php enn bare i parent-temaets functions.php.

<?php
/**
 * Plugin Name: WPPoland Clean Head
 * Description: Fjerner legacy-tagger fra wp_head.
 * Author: wppoland.com
 */

function wppoland_cleanup_head() {
	remove_action( 'wp_head', 'rsd_link' );
	remove_action( 'wp_head', 'wlwmanifest_link' );
	remove_action( 'wp_head', 'wp_generator' );
	remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );
	remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );
	remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );
	remove_action( 'wp_head', 'index_rel_link' );
	remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );
	remove_action( 'wp_head', 'feed_links_extra', 3 );
	remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
	remove_action( 'wp_print_styles', 'print_emoji_styles' );

	add_filter( 'feed_links_show_comments_feed', '__return_false' );
	add_filter( 'the_generator', '__return_empty_string' );
}
add_action( 'init', 'wppoland_cleanup_head' );

#Betinget opprydding på spesifikke maler

Noen ganger vil du beholde feeds bare på forsiden:

add_action( 'wp', function () {
	if ( ! is_front_page() ) {
		remove_action( 'wp_head', 'feed_links', 2 );
	}
} );

Eller drepe emojis bare i frontend og la dem sta i admin. Betinget logikk holder snippeten vedlikeholdbar, i stedet for a stable fem overlapping clean-up-plugins.

#Test etter deploy

  1. Åpne inkognito, sjekk kildekode: generator, wlwmanifest, emoji-script borte?
  2. Network-fane: ingen request til wp-emoji-release.min.js.
  3. Hovedfeed /feed/ fortsatt tilgjengelig hvis onsket.
  4. Gutenberg-editor og REST-kall (lagre innlegg) fortsatt gronne.
  5. WooCommerce-checkout raskt gjennom klikket hvis butikk er aktiv.

I norske prosjekter med streng CSP ser du ofte mindre console-stoy etter opprydding fordi emoji-CDN og prefetch-hints forsvinner. Det er en bieffekt, ikke erstatning for en ekte CSP-policy.

#Det du ikke bor fjerne

  • viewport og charset-meta (tema)
  • Canonical og hreflang (SEO-plugin / tema)
  • Kritiske preloads du har satt bevisst
  • Cookie- og samtykkeskript (juridisk nødvendig)
  • Schema/application/ld+json når du bruker det

Head-opprydding betyr legacy ut, ikke «slett alt usynlig».

#Samspill med caching og CDN

Head-opprydding og full-page-cache forsterker hverandre. Faerre tagger betyr mindre HTML i edge-cachen. Toem HTML-cachen etter deploy (ikke bare nettleseren), ellers sjekker du fortsatt den gamle generator-linjen. Med Cloudflare eller en norsk hoster med Varnish: hold cache-nokler slik at innloggede brukere ikke blander Cleanup-output med anonyme besok.

Plugin-cleaner og MU-plugin samtidig er redundant. Velg en kilde til sannhet. I revisjoner for byråer i Oslo og Bergen ser vi ofte tre cleanup-plugins pluss temakode: plugin A fjerner REST-lenker, plugin B legger dem tilbake for oEmbed, og ingen vet hvorfor head vokser igjen.

#Redaksjonell sjekkliste for go-live

  1. Speil staging mot produksjonsplugins (ikke bare standardtema).
  2. Sammenlign kildekode for forside, innlegg og eventuell butikkside.
  3. Test feed-URL manuelt i en reader hvis marked bruker den.
  4. Redaktor lagrer et Gutenberg-innlegg uten REST-feil.
  5. Monitoring: notér HTML-størrelse på / for/etter opprydding (enkel diff i ticketet).

Disse fem stegene tar under en time og stopper den typiske «vi drepte emojis og nyhetsbrevet døde»-regresjonen. På nettbutikker med Vipps eller Klarna i checkout: klikk gjennom betaling på staging etter head-endringer, sa ingen tredjepartsskript ble fjernet ved et uhell. Noter HTML-bytes for og etter i deploy-ticketet; da har du bevis når noen spor om gevinsten var verd risikoen. Samme sjekk etter hvert cache-plugin-update.

#Neste steg

Hvis du vil ta head-bloat, tredjepartsskript og Core Web Vitals samlet, ta kontakt via kontaktsiden. Mer om hastighet: WordPress-hastighetsoptimalisering.

Neste steg

Gjør artikkelen om til faktisk implementering

Denne blokken styrker intern lenking og sender leseren videre til de mest relevante tjenestene og innholdet.

Vil du få dette implementert på nettstedet ditt?

Hvis problemet er Core Web Vitals, treg rendering eller tung WordPress-kjoring, kan jeg definere og gjennomfore optimaliseringen.

Artikkel-FAQ

Ofte stilte spørsmål

Praktiske svar for å bruke temaet i faktisk arbeid.

SEO-readyGEO-readyAEO-ready3 Q&A
Kan jeg fjerne feed_links helt?#
Bare hvis ingen trenger hovedfeeden. Nyhetsbrevverktoy og podkastoppsett leser ofte /feed/. Kommentarfeeds og ekstra feeds kan du som regel skru av.
Odelegger head-opprydding Gutenberg?#
Nei, sa lenge du ikke skrur av REST-API og admin-hooks. Snippets her treffer frontend-wp_head, ikke wp-admin.
Hvor bor snippeten?#
I child-theme functions.php, eller bedre i et lite must-use-plugin, sa et temabyte ikke sletter oppryddingen.

Trenger du FAQ tilpasset bransje og marked? Vi lager en versjon som støtter dine forretningsmål.

Ta kontakt

Relaterte artikler