Part 20 of 22

Accessibility and SEO: one job, two rewards

A search crawler is functionally a blind user with a fast connection: it doesn't see your design, it parses your document structure. That's why almost everything accessibility demands — semantics, hierarchy, text alternatives, meaningful link names — is simultaneously an SEO input. And since June 2025 the European Accessibility Act (EAA) makes accessibility a legal requirement for most consumer-facing digital services in the EU: what used to be "nice to have" now carries fines.

The overlap: one fix, two beneficiaries

  • Heading hierarchy (h1h2h3, no skips, one h1) is the document outline screen readers navigate by — and the structure crawlers and AI engines use to extract and quote sections.
  • Semantic landmarks (<nav>, <main>, <article>, <footer>) tell assistive tech and parsers alike what each region is. A <div> soup ranks worse and fails audits.
  • Alt text serves screen readers and image search with the same string.
  • Link names: "click here" fails WCAG (links must make sense out of context) and wastes anchor-text signal. One rewrite fixes both.
  • lang attributes — on <html> and on inline foreign-language fragments — feed both screen-reader pronunciation and language detection for your hreflang setup.
  • CLS is an accessibility problem before it's a metric: layout jumps hit motor- and vision-impaired users hardest. Fixing Core Web Vitals is accessibility work.

Accessibility isn't a direct ranking factor, but its artifacts — parseable structure, lower bounce, wider usable audience — all are.

Next.js: enforce it in the pipeline

// .eslintrc — jsx-a11y catches missing alt, bad roles, unlabeled controls at PR time
{
  "extends": ["next/core-web-vitals", "plugin:jsx-a11y/recommended"]
}
  • next/image already requires alt — don't launder it with alt="" on meaningful images.
  • Set <html lang={locale}> from your route param in the root layout.
  • Run Lighthouse accessibility alongside performance in CI — same tooling you already have for monitoring, one more score gate.
  • Automated checks catch ~30–40% of WCAG issues; keyboard-only navigation of your top flows catches most of the rest. If you can't reach it with Tab, a crawler may not reach it with links either.

EAA: the deadline that ends the debate

Since June 28, 2025, the EAA applies to e-commerce, banking, transport, e-books and most consumer digital services sold in the EU (micro-enterprises under 10 staff and €2M are exempt). Enforcement is national and complaint-driven — an inaccessible checkout is now a legal exposure, not a backlog item. The practical bar is WCAG 2.1 AA (via EN 301 549), which is exactly the standard the fixes above target.

Checklist:

  • One h1 per page; heading levels never skip; landmarks used semantically
  • Every meaningful image has real alt; every link makes sense out of context
  • lang set from the locale on <html> and foreign-language fragments
  • jsx-a11y in ESLint + Lighthouse a11y gate in CI; top flows tested keyboard-only
  • EAA applicability assessed; consumer flows meet WCAG 2.1 AA

Want this handled for you?

I audit and fix technical SEO on Next.js sites — indexing, performance, hreflang and AI visibility.

Technical SEO service