
Element Code: HR-023
What this check actually means
The "Missing Language Selector" flag fires when a site runs more than one language or region version but gives users no on-page control to move between them. You have a French page and an English page and a German page, but a visitor sitting on the wrong one is stuck. Their only escape is the back button or a fresh search, and plenty of them will take it.
This is separate from your hreflang setup. Hreflang tells search engines which version to serve. A language selector serves the human who slipped through anyway: someone who followed a shared link, someone whose browser language does not match their reading preference, someone on a VPN, or someone your geo-logic guessed wrong about. Both need to exist. One does not replace the other.
Why a missing selector costs you
The damage is quiet but real. When a French speaker lands on your English page with no way out, they bounce. Google reads that bounce as a relevance problem with the page, not as a routing problem with your site. Over time that drags the whole language cluster down. You also lose the users who would have converted if they could have just found their own language in two clicks.
There is a crawl angle too. A properly built selector is a set of real anchor links between your language versions. Those links help crawlers discover and connect the alternate URLs, reinforcing the same relationships your hreflang annotations declare. Skip the selector and you lean entirely on hreflang and sitemaps, which is a thinner internal linking story than you want for international sites.
How users end up on the wrong version
How to detect a missing or broken selector
Detection is mostly manual, backed by a crawl to confirm the links are real. Here is the routine I use on international audits.
- Eyeball the templates. Load your home page and a deep product or article page in each language. Look for a visible selector in the header or footer. If you cannot find it in five seconds, neither can a frustrated visitor.
- Crawl with Screaming Frog. Point it at one language version and check whether it discovers the alternate-language URLs through in-page links, not just through hreflang. If the only path to the French site is the hreflang tag, your selector is missing or is JavaScript-only.
- Disable JavaScript and reload. Many selectors are pure JS dropdowns that vanish without scripts and leave nothing for crawlers. If the selector disappears, treat it as missing for SEO purposes.
- Check Search Console. The International Targeting and page indexing reports will surface hreflang errors, which often travel alongside a weak or absent selector.
- Read server logs. If you see users hitting a language version then immediately requesting the home page of another version, that is people manually hunting for the door you forgot to build.
How to fix it, step by step
- Add a persistent selector in the header or footer of every template, on every language version. Consistency matters more than cleverness.
- Use real anchor links. Each option must point to the actual translated URL of the current page where possible, or the language home page as a fallback. Plain
<a href>tags, crawlable without JavaScript. - Label options in their own language. "Deutsch" not "German", "Francais" not "French". A user who cannot read the current page can still recognize their own language name.
- Separate language from region when you sell into multiple regions that share a language. Let a user pick English plus Canada versus English plus Australia if those are genuinely different sites.
- Never auto-redirect and trap. Suggest a version based on browser or geo, but always let the user override and stay. Forced redirects with no manual selector are the exact problem this check exists to catch.
- Keep it accessible. Keyboard reachable, screen-reader labeled, and visible without a hover on touch devices.
What good looks like
| Aspect | Weak | Good |
|---|---|---|
| Discoverability | Buried or JS-only | Visible header or footer, every page |
| Links | onclick handlers | Crawlable anchor tags |
| Target | Always the home page | Same page in the other language |
| Labels | Flags only | Native language names, flags optional |
| Behavior | Forced redirect | Suggest, never trap |
One quick note on flags: a flag represents a country, not a language. Spanish is not the Spanish flag to a Mexican reader, and Arabic is not any single flag at all. Use language names as the primary label and treat flags as decoration only.
- Place the selector in a consistent, visible spot on every template
- Link to the equivalent page in each language, not just the home page
- Label each option in its own language
- Keep links crawlable without JavaScript
- Let users override any auto-suggested version and stay put
- Rely on flags alone to signal a language
- Hide the whole thing behind a hover-only JS dropdown
- Force a geo-redirect with no manual escape
- Dump every user onto the wrong-language home page
- Assume hreflang makes a selector optional
FAQ
Isn't hreflang enough on its own?
Can I just auto-detect language and redirect?
Header or footer, which is better?
Should the selector link to the same page or the home page?
Running an international site and not sure your setup holds up?
A proper audit checks hreflang, selectors, canonicals, and crawl paths together, because international SEO breaks at the seams between them. If you want a second set of eyes on it, our Advanced SEO Audit digs into the details.
Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.
About SEO ProCheck
Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.
Work With Me
Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.







