How to fix landmark main is top level on Squarespace
Move the `<main>` element (or `role="main"`) so it is a direct child of `<body>` and not nested inside any other landmark element such as `<header>`, `<nav>`, `<aside>`, or `<footer>`.
Steps for Squarespace
- Squarespace controls its own HTML output; you cannot directly edit the `<main>` tag placement from the standard UI.
- Go to Website → Pages → select a page → Edit. Avoid placing your primary content blocks inside Header or Footer sections, as Squarespace may output those with landmark roles that would wrap your content.
- If your Squarespace template supports Code Injection (Settings → Advanced → Code Injection), review any custom HTML you have added to the Header or Footer injection areas for stray `<main>` or `role="main"` attributes, and remove them.
- For Squarespace 7.1 custom CSS/code, navigate to Website → Design → Custom CSS and ensure no custom layout code is introducing a nested `<main>`.
- Contact Squarespace Support or raise a feature request if the platform's own template is emitting a nested `<main>` — this is a platform-level bug outside your direct control.
- Test with WAVE or axe DevTools to check the current state of your pages.
<!-- ✅ CORRECT: <main> is a top-level sibling of other landmarks -->
<body>
<header>…site logo and branding…</header>
<nav>…navigation links…</nav>
<main>
…unique page content…
</main>
<footer>…footer links…</footer>
</body>
<!-- ❌ INCORRECT: <main> is nested inside <header> -->
<body>
<header>
…site logo and branding…
<main> <!-- wrong! <main> must not live inside <header> -->
…page content…
</main>
</header>
<footer>…</footer>
</body>What is landmark main is top level?
Every webpage should have one clearly defined "main content" region that screen readers and other assistive technologies can jump to directly. In HTML this is the `<main>` element (or any element marked with `role="main"`). The WCAG rule "landmark-main-is-top-level" means that this main region must sit at the top level of the page structure — as a direct child of `<body>` — and must not be wrapped inside another landmark region like `<header>`, `<nav>`, `<aside>`, or `<footer>`. Nesting `<main>` inside another landmark confuses the accessibility tree and breaks the expected page hierarchy that assistive technologies rely on.
Screen reader users — including many people with visual impairments — use keyboard shortcuts to skip straight to the main content of a page, bypassing repetitive navigation menus. When `<main>` is incorrectly nested inside another landmark, that shortcut either fails silently or lands the user in the wrong place, forcing them to tab through every menu item on every page visit. This is a WCAG 2.1 / 2.2 failure (Best Practice, closely tied to Success Criterion 1.3.6 and the bypass-blocks requirement at 2.4.1), which creates legal accessibility risk under ADA Title III in the US, the European Accessibility Act, and similar laws globally. Beyond legal exposure, poor accessibility reduces your potential customer base and signals poor technical quality to search engines that increasingly factor accessibility into crawl quality.
See the complete Landmark main is top level guide for every platform and the full background.
Not sure if your Squarespace store has this?
Run a free SEOLZ audit — we’ll find landmark main is top level and every other issue across your whole site.
Scan my site free