How to fix skip link on WordPress.org

Add a valid, matching target ID to every skip-navigation link so keyboard and assistive-technology users can bypass repeated header content and jump directly to the main content area.

Steps for WordPress.org

  1. In wp-admin go to Appearance → Theme File Editor (or edit files locally via FTP/SSH — recommended for safety).
  2. Open header.php of your active (child) theme. Verify a skip link exists immediately after <body>: `<a class='skip-link screen-reader-text' href='#primary'>Skip to content</a>`. The exact fragment id varies by theme.
  3. Find the element in header.php, page.php, or index.php that opens the main content area and confirm it has the matching id (e.g. `<main id='primary' tabindex='-1'>`). Add the id and tabindex if missing.
  4. If you use a block theme (Full Site Editing), go to Appearance → Editor → Templates → edit the template part that wraps the Query Loop or Page Content block, switch to Code Editor view, and add the id attribute to the <main> tag.
Official WordPress.org documentation ↗
<!-- 1. Skip link — place as the very first element inside <body> -->
<a class="skip-link" href="#main-content">Skip to main content</a>

<!-- 2. Target — the opening tag of your main content area -->
<main id="main-content" tabindex="-1">
  <!-- page content here -->
</main>

<!-- 3. Minimum CSS to show the link only on keyboard focus -->
<style>
  .skip-link {
    position: absolute;
    top: -9999px;
    left: 0;
    z-index: 9999;
  }
  .skip-link:focus {
    top: 0;
    padding: 8px 16px;
    background: #000;
    color: #fff;
    text-decoration: none;
  }
</style>

What is skip link?

A "skip link" is a hidden (or visually shown on focus) hyperlink placed at the very top of a webpage that lets keyboard and screen-reader users jump past the navigation menu straight to the main content. It looks like `<a href="#main-content">Skip to main content</a>` and works by pointing to an element with a matching `id`, for example `<main id="main-content">`. The "no skip link target" issue means the skip link exists in your HTML but the element it points to — the `id` it references — is either missing, mismatched, or not present in the page at all, so the link goes nowhere.

Without a working skip link, anyone who navigates your store using only a keyboard (or a screen reader) must tab through every menu item, logo link, search box, and utility icon on every single page before reaching a product listing or article — a frustrating experience that can cause them to abandon your site entirely. This directly affects customers with motor disabilities, visual impairments, and anyone who relies on assistive technology. Under WCAG 2.1 Success Criterion 2.4.1 (Bypass Blocks, Level A — the lowest, most required level), a broken skip link is a conformance failure that can expose your business to accessibility complaints or legal action in jurisdictions that require web accessibility (including the US ADA, UK Equality Act, and EU EAA). Fixing it also signals technical quality to Google's crawlers and improves perceived page experience.

See the complete Skip link guide for every platform and the full background.

Not sure if your WordPress.org store has this?

Run a free SEOLZ audit — we’ll find skip link and every other issue across your whole site.

Scan my site free

Fix skip link on another platform