Landmark no duplicate banner

Moderate effort

Found on 4% of audited stores.

Ensure your page has only one banner landmark (a single `<header>` element or `role="banner"`) so assistive technologies can navigate your site correctly.

What it is

A "banner landmark" is the special region at the top of a webpage that identifies the site header — the area containing your logo, main navigation, and site-wide branding. In HTML, it is created by a top-level `<header>` element or any element with `role="banner"`. Screen readers and other assistive technologies use landmarks like this to help users jump quickly to key sections of a page. The WCAG rule "landmark-no-duplicate-banner" means your page currently has more than one element claiming to be the site banner, which confuses assistive technology users who expect only one.

Why it matters

When a page has two or more banner landmarks, screen reader users who rely on landmark navigation get confused about which one is the real site header — or may find themselves trapped in a loop. This is a WCAG 2.1 failure (specifically related to Success Criterion 1.3.6 and landmark best practices) that exposes your store to accessibility-related legal risk, particularly in jurisdictions like the US (ADA), UK (Equality Act), and the EU (EAA). Beyond legal exposure, accessible sites perform better: screen reader users abandon inaccessible stores entirely, and Google uses accessibility signals as part of its overall page quality assessment. Fixing duplicate banners is a small code change with meaningful impact on both compliance and customer trust.

How to fix it

  1. Audit your page's HTML: open browser DevTools (F12), go to the Elements tab, and search (Ctrl+F / Cmd+F) for '<header' and 'role="banner"' to find every occurrence on the page.
  2. Identify which element is the true, site-wide page header (typically wrapping your logo, site name, and primary navigation). This one should keep the banner role — either as a top-level <header> or with role="banner".
  3. For every other <header> element or role="banner" that is NOT the site-wide header (e.g. a card header, article header, section header, widget header, or a sticky bar added by an app), replace <header> with a semantically appropriate element such as <div>, <section>, or <article>, and remove any role="banner" attribute.
  4. If a secondary <header> element is inside an <article>, <aside>, <main>, <nav>, or <section> element, it is automatically scoped to that parent and does NOT create a banner landmark — so wrapping it properly in one of those sectioning elements is another valid fix.
  5. Re-test using a free tool such as the axe DevTools browser extension or the WAVE accessibility checker to confirm only one banner landmark is reported.
  6. Test manually with a screen reader (NVDA + Firefox on Windows, VoiceOver + Safari on Mac) by using the landmark navigation shortcut to verify you land on one banner and one only.
<!-- ✅ CORRECT: One top-level banner landmark -->
<header role="banner"> <!-- or just <header> at the top level -->
  <a href="/"><img src="logo.png" alt="Acme Store home"></a>
  <nav aria-label="Primary navigation">...</nav>
</header>

<main>
  <article>
    <!-- ✅ CORRECT: <header> inside <article> is NOT a banner landmark -->
    <header>
      <h2>Article Title</h2>
    </header>
    <p>Content...</p>
  </article>

  <!-- ✅ CORRECT: a card header using <div>, not <header> -->
  <div class="card-header">
    <h3>Featured Product</h3>
  </div>
</main>

<!-- ❌ WRONG: second top-level <header> outside any sectioning element -->
<!-- <header><h2>Promotions Bar</h2></header> -->

Fix it on your platform

Pick your platform for the exact steps.

How to fix landmark no duplicate banner on Shopify
  1. Go to Online Store → Themes → click 'Customize' on your active theme.
  2. To edit raw HTML: from the Themes list, click the '…' (Actions) menu → Edit code.
  3. Open 'layout/theme.liquid'. Search for every '<header' and 'role="banner"' tag.
  4. Ensure only ONE top-level <header> (or role="banner") exists outside any sectioning element. This is usually the main site header wrapping your logo and nav.
  5. Any secondary <header> tags used inside announcement bars, promotional sections, or app-injected blocks should be changed to <div> (and any role="banner" removed).
  6. If a third-party app (e.g. a sticky header or announcement bar app) is injecting an extra <header>, check the app's own settings for an option to change the element tag, or contact the app developer.
  7. Save changes, then verify with the axe DevTools browser extension.
How to fix landmark no duplicate banner on WooCommerce
  1. In your WordPress admin, go to Appearance → Theme File Editor (or use a child theme via FTP/SSH).
  2. Open header.php (your active or child theme's file). Search for '<header' and 'role="banner"'.
  3. Confirm only one top-level <header role="banner"> or <header> exists for the site header.
  4. If your theme outputs a second <header> (e.g. inside a widget area or block), wrap it inside a <section> or <article> element, or change it to a <div>.
  5. If using a block theme (FSE), go to Appearance → Editor → Templates. Select the template, click the wrapping header block, and in the Block Settings sidebar check its HTML element — change duplicate ones to 'div' via the 'Additional CSS class' and block HTML settings.
  6. Install the free 'axe DevTools' Chrome extension and re-scan to confirm the fix.
How to fix landmark no duplicate banner on BigCommerce
  1. Go to Storefront → My Themes → click 'Advanced' → Edit Theme Files (or download the theme to edit locally).
  2. Open 'templates/layout/base.html' and any partial templates in 'templates/components/'. Search for '<header' and 'role="banner"'.
  3. Keep only one top-level <header> (or role="banner"`) for the site header. Change all others to <div> or wrap them inside a sectioning element.
  4. Check 'templates/components/header.html' specifically — this is the canonical site header file in most Stencil themes.
  5. Any secondary headers added via Page Builder widgets should be inspected; use Page Builder → drag-and-drop editing to remove or reassign HTML wrapper tags where the widget allows it.
  6. Publish changes and validate with the axe browser extension.
How to fix landmark no duplicate banner on Wix
  1. Wix generates its HTML automatically; you cannot directly edit the HTML element tags for built-in header sections.
  2. In the Wix Editor, ensure you have only ONE 'Header' section (the very first section at the top of the page marked as 'Header' in the Layers panel).
  3. If you have added an additional section at the top of the page (e.g. an announcement bar or sticky strip) that Wix is rendering as a second <header>, convert it: click the strip → Settings → change its section type to a regular section rather than a Header.
  4. Remove any duplicate Header sections via the Pages & Menu panel or Layers panel.
  5. For Wix Studio: open the Layers panel, identify any element with a 'Header' role, and ensure there is only one. Change any secondary ones to a regular section.
  6. Use the WAVE browser extension to verify only one banner landmark remains after publishing.
How to fix landmark no duplicate banner on Wix Studio
  1. Open your project in Wix Studio and open the Layers panel (left sidebar).
  2. Identify all elements marked as 'Header' — only ONE should exist site-wide.
  3. Click any secondary 'Header' element → open its Settings/Properties panel → change its semantic role or element type to a regular 'Section' or 'Div'.
  4. If the duplicate is coming from a custom-coded widget or Velo (JavaScript) component, edit the component's HTML in the Velo code panel: change any <header> tag to <div> and remove role="banner".
  5. Publish the site and verify with the axe DevTools browser extension.
How to fix landmark no duplicate banner on Squarespace
  1. Squarespace controls most structural HTML automatically. Go to Pages → select any page → click Edit.
  2. Ensure you do not have a second 'Header' section added as a manual page section at the very top of the page (separate from the global site Header).
  3. Go to Design → Site Header to configure the ONE official site header. Do not add a duplicate header-style banner block inside page content.
  4. If you have injected custom HTML that includes a <header> tag or role="banner", go to Settings → Advanced → Code Injection (Page Header or Footer), or to a Content Block with custom HTML, and change <header> to <div> and remove any role="banner".
  5. For Developer Mode / custom templates, edit the relevant .region or .block file to remove the duplicate <header> element.
  6. Publish and verify with the axe DevTools browser extension.
How to fix landmark no duplicate banner on Webflow
  1. Open your project in the Webflow Designer. In the Navigator panel (left sidebar), expand your page structure.
  2. Identify all elements with a 'Header' tag (shown as 'Header' in the Navigator with an HTML tag of <header>).
  3. Only ONE top-level Header element should exist. Click any additional Header elements → in the right-side Settings panel, change the element tag from 'Header' to 'Div Block' (this changes <header> to <div> in the output).
  4. For any element with a custom attribute role="banner" that is NOT the main site header, select the element → Settings → Custom Attributes → delete the role="banner" attribute.
  5. Check if any Symbols (components) contain a <header> tag that gets repeated across pages — edit the Symbol to use a <div> if it is not the true site header.
  6. Publish and verify with axe DevTools or WAVE.
How to fix landmark no duplicate banner on Adobe Commerce (Magento)
  1. SSH or FTP into your server and navigate to your active theme directory: app/design/frontend/<Vendor>/<theme>/Magento_Theme/templates/ (or the equivalent path in the default Luma/Blank theme at vendor/magento/theme-frontend-luma).
  2. Open root.phtml (or html/head.phtml, default.phtml). Search for '<header' and 'role="banner"' across all layout XML and template .phtml files.
  3. Ensure only the main site header block (typically wrapping the logo, search, and navigation) carries the <header role="banner"> or top-level <header> tag.
  4. Any secondary <header> elements in widgets, CMS blocks, or product listing blocks should be changed to <div> or wrapped inside an <article> or <section>.
  5. Run bin/magento cache:flush and bin/magento setup:static-content:deploy after saving changes.
  6. Validate with the axe DevTools browser extension on the live or staging store.
How to fix landmark no duplicate banner on Magento Open Source
  1. Follow the same steps as Adobe Commerce (Magento) above — template paths and CLI commands are identical for Magento Open Source.
  2. If using a third-party theme from Marketplace, create a theme override in app/design/frontend/<YourVendor>/<YourTheme>/ rather than editing the vendor files directly, then apply the same <header>-to-<div> change in your override template.
How to fix landmark no duplicate banner on PrestaShop
  1. Via FTP or your hosting file manager, go to themes/<your-theme>/templates/layouts/ and open layout-full-width.tpl (or whichever layout your store uses).
  2. Search for '<header' and 'role="banner"'. Ensure only one top-level <header> exists for the site header.
  3. Change any duplicate <header> elements (in module template files under modules/<module-name>/views/templates/) to <div> and remove role="banner".
  4. Clear PrestaShop's cache: Back Office → Advanced Parameters → Performance → Clear cache.
  5. Verify with axe DevTools.
How to fix landmark no duplicate banner on OpenCart
  1. In the OpenCart admin, go to Design → Theme Editor, or access the files directly via FTP at catalog/view/theme/<your-theme>/template/common/header.tpl (or header.twig for OpenCart 3+).
  2. Open header.twig/header.tpl and search for '<header' and 'role="banner"'. There should be only one.
  3. Identify any module or extension that is injecting a second <header> (check catalog/view/theme/<theme>/template/ for module templates).
  4. Change duplicate <header> elements to <div> and remove role="banner" from any that are not the primary site header.
  5. Refresh the OpenCart cache under Admin → Dashboard → (gear icon) → Refresh, then verify with axe DevTools.

Does your site have this issue?

Run a free SEOLZ audit to find landmark no duplicate banner — and every other issue — across your whole site in minutes.

Scan my site free

Frequently asked questions

What is Landmark no duplicate banner?

A "banner landmark" is the special region at the top of a webpage that identifies the site header — the area containing your logo, main navigation, and site-wide branding. In HTML, it is created by a top-level `<header>` element or any element with `role="banner"`. Screen readers and other assistive technologies use landmarks like this to help users jump quickly to key sections of a page. The WCAG rule "landmark-no-duplicate-banner" means your page currently has more than one element claiming to be the site banner, which confuses assistive technology users who expect only one.

Why does landmark no duplicate banner matter?

When a page has two or more banner landmarks, screen reader users who rely on landmark navigation get confused about which one is the real site header — or may find themselves trapped in a loop. This is a WCAG 2.1 failure (specifically related to Success Criterion 1.3.6 and landmark best practices) that exposes your store to accessibility-related legal risk, particularly in jurisdictions like the US (ADA), UK (Equality Act), and the EU (EAA). Beyond legal exposure, accessible sites perform better: screen reader users abandon inaccessible stores entirely, and Google uses accessibility signals as part of its overall page quality assessment. Fixing duplicate banners is a small code change with meaningful impact on both compliance and customer trust.

How do I fix landmark no duplicate banner?

Ensure your page has only one banner landmark (a single `<header>` element or `role="banner"`) so assistive technologies can navigate your site correctly.

Authoritative references

Related Accessibility (WCAG) issues