Du har brugt timer på at skabe den perfekte WordPress-side. Indholdet er solidt. Søgeordene er placeret. Dit SEO-plugin viser et grønt flueben.
But open your browser’s developer tools and inspect the heading structure, and you’ll see something that can quietly kill your organic traffic: a broken heading hierarchy. Two H1s. A site title wrapped in `<h1>`. Sections jumping from H2 straight to H4. Or worse — no H1 at all.
This isn’t a begynderfejl. It’s a strukturelt problem baked into how WordPress, themes, page builders, and the Gutenberg editor interact — and most site owners never know it’s happening.
This guide exists to fix that. Whether you’re a WordPress site owner managing your own content, or an agency building sites for dozens of clients, you’ll leave here knowing exactly how to auditerer, diagnosticerer og permanent løser problemet med overskriftsrækkefølgen i WordPress.
Hvad er et H1-tag, og hvorfor betyder det noget i WordPress?
An H1 tag (<h1>) is the top-level HTML heading element. In semantic HTML, it signals to browsers, search engines, and assistive technologies: “This is the primary topic of this page.”
Tænk på overskriftstags som en dokumentoversigt:
H1 – Main page title (only one per page)
├── H2 – First major section
│ ├── H3 – Subsection
│ └── H3 – Another subsection
├── H2 – Second major section
│ ├── H3 – Subsection
│ │ └── H4 – Detail within subsection
└── H2 – Third major section
Skip a level — jumping from H2 to H4 — and you break the outline. Use two H1s and you create structural ambiguity. Use H3 tags for visual styling and you introduce ghost headings that confuse crawlers.
In WordPress specifically, this gets complicated fast. Unlike a static HTML page where you write every tag manually, WordPress generates heading markup from at least four different sources simultaneously: the theme’s header template, the post title, the editor content, and any widgets or page builder modules you’ve added.
Hvad Google faktisk siger om H1-tags
Let’s settle the rangeringsdebatten tidligt.
In July 2026, Google’s Gary Illyes addressed this directly during the SEO Office Hours podcast: arranging headings in semantic order is genuinely helpful for accessibility (especially screen reader users), but it doesn’t significantly impact Google’s ranking algorithms. John Mueller has also stated that multiple H1 tags on a page don’t confuse crawlers and have zero direct SEO impact.
Så betyder noget af dette overhovedet noget?
Yes — but not for the reason most SEO guides say.
De virkelige grunde til at bekymre sig om overskriftsstruktur i WordPress er:
- Overholdelse af tilgængelighed — WCAG 2.1 success criterion 1.3.1 requires information and relationships to be programmatically determinable. Broken heading hierarchies fail this.
- Crawlbarhed og indholdssignaler — While Google can parse messy markup, a clean H1 gives the clearest possible signal about page topic, which matters in ambiguous cases.
- Brugeroplevelse og opholdstid — Readers scan headings. A logical hierarchy helps them navigate and stay longer — both indirect ranking signals.
- Teknisk audit-renhed — For agencies, heading issues surface in every audit tool (Screaming Frog, Ahrefs, SEMrush, Rank Math, Yoast). Client-facing reports look bad even if the direct ranking impact is debated.
Hvordan WordPress genererer overskriftstags: De fire kilder til konflikt
At forstå hvorfor WordPress-overskriftsstrukturen går i stykker, kræver forståelse af de fire steder, den genererer overskrifter fra.
Source 1: The Theme’s Header Template
Most WordPress themes output the site title in the header area. Older and poorly coded themes wrap this in an <h1> tag — on every single page. This means every page on your site starts with the same H1: your brand name.
Derefter, når side- eller indlægstitlen gengives (hvilket burde være H1), bliver den enten en anden H1 eller nedgraderes til H2.
Here’s what this looks like in a broken theme’s header.php:
php
// Broken — site title as H1 on every page
<h1><?php bloginfo('name'); ?></h1>
<h2><?php the_title(); ?></h2> // Post title wrongly demoted
Hvordan det burde se ud:
php
// Correct — site title is a link or span, post title is H1
<p class="site-title"><a href="<?php echo home_url(); ?>"><?php bloginfo('name'); ?></a></p>
<h1><?php the_title(); ?></h1>
This is one of the most common WordPress H1 issues and it’s entirely invisible unless you inspect the page source. You can have an SEO plugin, a green readability score, and perfekt indhold — and still be outputting duplicate H1s on every page.
Kilde 2: Gutenberg-blokeditoren
The WordPress block editor introduced deliberate changes to H1 behavior. By default, Gutenberg de-emphasizes the H1 option in the Heading block — the assumption is that the post title is already rendering as H1, so content-area headings should start at H2.
I praksis skaber dette to problemer:
Problem A: Nogle temaer gør ikke output the post title as H1. If your theme renders the title in a <div> or <h2> for stylistic reasons, and Gutenberg has hidden H1 from the heading block options, you end up with zero H1 tags on the page.
This is exactly the situation flagged in a long-running GitHub issue in the Gutenberg repository — users requesting the ability to remove the H1 option entirely for enterprise and agency setups where the H1 is controlled at the template level. The issue highlights real confusion: the editor’s default behavior and the theme’s template need to be explicitly coordinated, but WordPress provides no automated check for this.
Problem B: Content editors can still select H1 in the block editor by changing the heading level. If your theme already outputs the post title as H1, an editor adding another H1 block inside the content area creates a duplicate — and no warning appears.
Kilde 3: Sidebyggere (Elementor, Divi, Beaver Builder)
Sidebyggere er den største kilde til kaos i overskriftshierarkiet i WordPress.
Here’s why: page builders give you granular visual control. You can drag a text element anywhere, style it any way, and assign any heading level. This is powerful for design. It’s disastrous for structure.
Det typiske problem med sidebygger-overskrifter ser sådan ud:
- Hero-sektion: H1 (korrekt) ✓
- Feature section title: H3 (skipped H2, chosen because it “looks better”) ✗
- Overskrift til widget-område: H2 (ligner en sektionsoverskrift, men er bare en sidebjælke-widget-titel) ✗
- Udtalelses-overskrift: H4 (ingen H3 over den) ✗
- CTA-overskrift: H2 (tilbage til et højere niveau, nu er overblikket fuldstændig ikke-lineært) ✗
The result is a heading structure that’s visually coherent but semantically meaningless. Screen readers and crawlers parsing this get a content outline that jumps around like a broken table of contents.
InspectWP’s documentation identifies this pattern explicitly: authors and page builder users choose heading levels based on how they ser ud rather than their logical meaning — if H3 is the right visual size, they select H3, even with no H2 above it.
Kilde 4: Widgets og temakomponenter
WordPress widget areas — sidebars, footers, header modules — often output their own headings. A “Recent Posts” widget might render as H2. A promotional banner built into the theme might use H3. None of these are part of the content outline, but they appear in the page’s heading structure.
This creates heading “noise” that inflates the apparent complexity of the outline and can push content headings out of their correct hierarchical position.
De 5 mest almindelige problemer med H1 og overskriftshierarki i WordPress
Problem 1: Sidetitlen er pakket ind i H1 på hver side
Hvordan det ser ud: Every page on your site has two H1s — your site name and your post title.
Hvem det påvirker: Sites using older themes, poorly built premium themes, or any theme where the developer used <h1> for the site branding.
Sådan opdager du det: Right-click any page → Inspect → search for <h1 in the Elements panel. If you see your site name wrapped in H1 in the <header> section, you have this problem.
Sådan fikser du det:
Mulighed 1: Redigering af undertema (udviklertilgang) In your child theme’s header.php, find the site title output and change it from <h1> to <p> or <span> with appropriate classes:
php
<p class="site-title">
<a href="<?php echo esc_url(home_url('/')); ?>" rel="home">
<?php bloginfo('name'); ?>
</a>
</p>
Mulighed 2: CSS + aria-label (løsning uden kodning) If you can’t edit theme files, use CSS to reset the H1 styling on the site title:
css
.site-header h1.site-title {
font-size: inherit;
font-weight: inherit;
margin: 0;
}
Bemærk: dette skjuler det visuelle H1 problem but doesn’t fix the structural issue. The H1 tag remains in the markup.
Mulighed 3: Skift til et velstruktureret tema Themes following WordPress coding standards (Twenty Twenty-Four, Kadence, GeneratePress, Astra) handle this correctly out of the box. If your current theme has this issue and you’re not a developer, switching is often the most reliable fix.
Problem 2: Manglende H1 på forsiden
Hvordan det ser ud: Your homepage has zero H1 tags. SEO plugins report “No H1 found.”
Hvem det påvirker: Sites that use a logo image for branding (hiding the site title), sites using a static front page with no title visible, or sites where the theme’s homepage template doesn’t call the_title().
This is a real and recurring issue in the WordPress support forums. The cause is typically this sequence: the site title is set to display in the header, but the user hides it (or replaces it with a logo), removing the only H1 from the page. Since the homepage often doesn’t have a “post title” in the way a blog post does, there’s no automatic H1 generated.
Sådan fikser du det:
Specifikt for forsiden: Tilføj en H1 til din hero-sektion eller sideskabelon. Dette kan være:
- A visible heading (“Your Business Name | Service Category”) that also functions as the H1
- En visuelt skjult H1 tilføjet via CSS (
position: absolute; clip: rect(0 0 0 0);), der giver den semantiske markør uden at forstyrre det visuelle design
I Gutenberg: Tilføj en overskriftsblok øverst på dit forsideindhold, indstil den til H1, og gør den til en del af din hero-besked.
Problem 3: Oversprungne overskriftsniveauer i indhold
Hvordan det ser ud: Indholdsstrukturen springer fra H2 direkte til H4, eller fra H1 direkte til H3.
Hvem det påvirker: Enhver, der skriver langt indhold og bruger overskrifter til visuel formatering frem for semantisk struktur.
Hvorfor det betyder noget: As InspectWP notes, skipping heading levels happens when authors choose levels based on appearance — the H3 looks right, so they use H3, regardless of whether an H2 precedes it.
Sådan opdager du det i Gutenberg: Klik på info-ikonet (ⓘ) i den øverste værktøjslinje i blokeditoren. Panelet Dokumentoversigt viser hver overskrift i rækkefølge og markerer oversprungne niveauer med en advarsel.
Sådan fikser du det:
- Revider din overskriftsstruktur ved hjælp af Dokumentoversigt, før du udgiver
- Set a content style guide for your team: H2 for major sections, H3 for subsections, H4 for sub-subsections — never skip levels
- Use Yoast SEO or Rank Math’s content analysis — both flag heading structure issues
Problem 4: Flere H1-tags fra sidebyggere
Hvordan det ser ud: A page built with Elementor or Divi has three or four H1 tags because each major section has its own hero-style “H1” headline.
Sådan fikser du det:
In Elementor: Edit each heading widget → check the HTML Tag setting → set only the primary page title to H1, and change all others to H2 or H3 as appropriate.
In Divi: Edit heading modules → under Advanced → HTML Tag → change to the correct semantic level.
In Beaver Builder: Each heading module has a “Heading Tag” setting in the Style tab. Audit each one.
Problem 5: Gutenberg H1-synlighedsproblemet
Hvordan det ser ud: Your theme doesn’t output the post title as H1, and Gutenberg has hidden the H1 option in the Heading block. Your pages have no H1.
Sådan fikser du det:
For developers managing a site where the H1 must be placed inside the content area, you can restore the H1 option using a filter in your theme’s functions.php:
php
// Allow H1 in the Heading block
add_filter( 'allowed_block_types_all', function( $allowed_blocks ) {
return $allowed_blocks;
});
Alternatively, switch to the “Edit as HTML” view for the Heading block and manually set <h1> in the markup.
For bureau-opsætninger, hvor du ønsker at forhindre redaktører i at tilføje H1 (fordi skabelonen styrer det), skal du bruge block_editor_settings_all filteret til at begrænse overskriftsniveauer i editoren.
Sådan auditerer du din WordPress-overskriftsstruktur (trin-for-trin)
Metode 1: SkySEOManager gratis plugin
Brug SkySEOManager Plugin indbygget SEO-analysator til at finde alle overskriftsrelaterede problemer.
Læs vores fulde guide: hvordan du auditerer dit WordPress-websted ved hjælp af SkySEOManager for alle SEO-problemer
Metode 2: Brug Siteskyline gratis SEO-analysator
Besøg vores Gratis SEO-analysator og indtast din URL og klik på analyser nu.
It’ll Show you all issue with your headline tags.

WordPress H1-hierarki: Bureau-tjeklisten
If you’re building or maintaining WordPress sites for clients, heading structure needs to be part of your pre-launch and ongoing audit process. Here’s a repeatable checklist:
På tema-niveau:
- Site title in header is NOT wrapped in <h1> (use <p>, <span>, or <div>)
- Post/page title renders as <h1> in <article> or <main> on all post types
- Homepage has exactly one <h1> — either from the site title or the hero section
- Archive pages (category, tag, author) have a descriptive <h1>
- 404 page has an <h1>
På indholdsniveau:
- Each page has exactly one <h1> in the content area (or zero if the theme handles it via the title)
- Major sections use <h2>
- Subsections use <h3> nested within <h2> sections
- Ingen overskriftsniveauer springes over
- Overskrifter bruges ikke kun til visuel styling
På plugin-/builder-niveau:
- Elementor/Divi/Beaver Builder overskriftselementer har korrekte HTML-tag-indstillinger
- Widget areas don’t output accidental H1 or H2 tags
- SEO-plugin H1-advarsler er løst på alle vigtige sider
The Correct WordPress Heading Hierarchy — By Page Type
One pattern doesn’t fit every WordPress page type. Here’s the correct structure for each:
Blogindlæg / Enkelt indlægsside
H1: Post Title (output by theme automatically)
H2: First major section
H3: Subsection
H3: Another subsection
H2: Second major section
H3: Subsection
H4: Detail
H2: Third major section
Forside (Statisk forside)
H1: Primary value proposition or page headline
H2: Service category or feature group
H3: Individual service or feature
H2: Testimonials or social proof section
H2: Call to action section
WooCommerce produktside
H1: Product name (output by WooCommerce template)
H2: Product description heading
H2: Reviews
H2: Related products
Kategori / Arkivside
H1: Category name (e.g., "WordPress SEO Articles")
H2: Post title within loop (if posts are displayed with headings)
Almindelige fejl, der ødelægger WordPress H1-strukturen
Fejl 1: Brug af overskriftstags til at style tekst If you want large bold text that isn’t a section heading, don’t use H2. Add a CSS class to a <p> or <div> and style it visually. Using heading tags for aesthetics pollutes your structural outline.
Fejl 2: Lad redaktører vælge overskriftsniveauer efter øjemål Uden en indholds-stilguide vil redaktører naturligt drages mod overskriftsniveauer, der ser ud right. A brief internal guide — “H2 for sections, H3 for subsections, never use H1 in content” — prevents most issues.
Fejl 3: Installation af et WordPress-tema uden at tjekke overskriftsstrukturen Ikke alle premium WordPress-temaer udsender korrekt overskriftsmarkup. Før du vælger et tema, skal du inspicere et demo-indlæg: Gengives indlægstitlen som H1? Undgår webstedstitlen at være H1 på undersider?
Fejl 4: At antage, at dit SEO-plugin dækker alt Yoast and Rank Math check the post you’re editing. They don’t catch heading issues introduced by your theme’s header template, footer widgets, or archive page templates. A manual audit or Screaming Frog crawl is still necessary.
Fejl 5: Rettelse af visuelt udseende i stedet for HTML-struktur The most common “fix” for the site title H1 problem is adding CSS to make it look smaller. That hides the problem visually but leaves the broken markup in place. Fix the HTML tag, not just the style.



