Bulk website language checker: which language does each site declare?
In short: Paste a lead list's domains and read the language each home page declares (html lang, the Content-Language header, og:locale) with its hreflang alternates, so you can split the list by language. Limit: Reads declarations only, not the text, so a wrong template default reads as that language.
A bulk website language checker opens each site's home page and reads the language it declares: the html lang attribute, the Content-Language header, the content-language meta tag and og:locale, plus any hreflang alternates. Paste up to 100 domains, emails or URLs, or 500 after a free Google sign-in, and split the list by language before you write. It reads declarations only, not the text. CSV out.
Price: this tool is free. Checking a whole email list is from $9/mo, and the first 100 checks are free with Google, no card. Check your list free nowSee pricing
Sample result
acme.example declares German (Switzerland) and also offers French and Italian versions.
- Site
- acme.example
- Declared in
- html lang
- hreflang
- de-CH, fr-CH, it-CH
What this means for you
Write to each prospect in the language their site declares; the hreflang list shows the alternatives.
- html lang, Content-Language, meta, og:locale
- hreflang alternates listed
- Conflicting declarations flagged
- Filter by language; CSV out
- html lang
- hreflang
- Lead segments
By SimpleVerifier Team · Last updated
Also in: Português (Brasil) · Español · Deutsch · Français · Türkçe · 简体中文 · Русский · Nederlands · Italiano · Tiếng Việt · Bahasa Indonesia · Polski · العربية · Українська · Čeština · Magyar · 日本語 · 한국어
Splitting a lead list by language before a campaign?
- Writing in each prospect's language helps replies, but only if the email arrives. Upload each segment at /verify to remove addresses that would bounce before you send.
- The first 100 email checks are free with a Google sign-in, no card. To split the same list by country code instead, use the email list by country tool.
How do I find the language of many websites at once?
- Paste domains, email addresses or URLs, one per line, up to 100 a run or 500 after a free Google sign-in. Addresses are reduced to their domain.
- Press Check languages. Each home page is requested once over HTTPS (plain HTTP if HTTPS doesn't answer), following up to five redirects, 10 sites a request.
- Read each row: the declared language, where it was declared, the other languages the site offers through hreflang, and a flag when two declarations disagree.
- Filter by language and download the CSV to split your list.
Example
- You enter
- Three sites:
acme.example(html lang="de-CH" with fr and it hreflang versions),globex.example(no declaration) andinitech.example(lang="en"). - You get
- acme.example: German (Switzerland), also offers fr and it. globex.example: Not declared. initech.example: English. Filter by language and download the CSV.
- Limits
- Up to 100 a run without an account and 500 when signed in with Google, counted over a minute. 10 sites a request, one GET of each home page, at most 60 requests a minute to one host.
Where does a website declare its language?
In four places this tool reads. The lang attribute on the <html> tag is the main one: HTML uses it for screen readers, translation and search. The Content-Language response header and the older <meta http-equiv="content-language"> tag say the same at the HTTP level, and the Open Graph og:locale tag says which locale the page was written for.
Values are language tags from BCP 47, such as en, en-GB, de-CH or pt-BR. The tool shows the tag and its English name, and uses the html lang first, then the meta tag, the header and og:locale.
What are the hreflang alternates?
Sites with several language versions list them with <link rel="alternate" hreflang="..."> tags, as Google describes. The tool lists those tags from the home page, so you can see that a site declared in English also has German and French versions, and write to a Swiss prospect in the right one.
Does it detect the language of the text?
No. It reads what the site declares, which is almost always right, but a template can leave lang="en" on a page written in Spanish. Not declared means the page loaded without any of the four declarations. Disagree means the declarations name different languages, for example html lang en and Content-Language de; open the site to check.
Pages that build themselves with JavaScript usually still set html lang in the first response, which is all the tool reads (up to 128 KB).
How are the sites protected from heavy use?
Each site gets one GET request for its home page, with redirects followed, from a request that identifies itself as SimpleVerifier, sends no cookies, uses only ports 80 and 443 and never connects to private addresses. The tool sends at most 60 requests a minute to any one host across all users. Sites that refuse automated requests can answer 403 or time out here and still load in a browser.
Who uses this tool, and for what?
- Cold emailers
- Split a European lead list into English, German, French and Spanish campaigns before writing.
- SDR teams
- Route prospects to the rep who speaks the language their company's site uses.
- SEO teams
- Audit html lang and hreflang across a portfolio of sites in one run.
- Agencies
- Check which client sites still declare the template's default language.
What can’t this tool tell you?
- Reads declarations only, not the text, so a wrong template default reads as that language.
- Only the home page is checked; other pages can declare other languages.
- Sites that block automated or cloud traffic can answer 403, 429 or time out.
- Up to 100 sites a run without an account, 500 signed in, and at most 60 requests a minute to one host.
Common questions
- How do I check the language of a list of websites?
- Paste the domains into a bulk website language checker like this one. It reads each home page's html lang, Content-Language, meta tag and og:locale, lists hreflang alternates, and gives you a CSV.
- Is this bulk website language checker free?
- Yes. Up to 100 sites a run without an account, and up to 500 a run when you sign in with Google, with no card.
- Can I paste email addresses?
- Yes. Each address is reduced to its domain and that domain's home page is checked. Free mail domains like gmail.com tell you nothing about the person, so remove them first.
- Why does a site show Not declared?
- Its home page loaded without an html lang attribute, a Content-Language header, the meta tag or og:locale. Open it to see the language.
- Does the tool translate or read the page text?
- No. It reads only the language declarations in the page's HTML and headers, never the text, and stores nothing from the page.
- Why does a site answer 403 here but load in my browser?
- Many sites refuse automated requests. A 403 or a timeout here doesn't mean the site is down; open it in a browser to check.
Sources
A tidy list can still be full of dead addresses.
Extracting, deduplicating and syntax checks all work on the text of an address. None of them can tell whether the mailbox exists. Only the server that hosts it can answer that, through an SMTP check, and that is what the paid product does.
- Upload the cleaned file as it is: CSVs up to 100,000 rows
- A real SMTP mailbox check on every row, with catch-all detection
- Small list? Starter at $9/mo covers 2,500 emails a month, cancel anytime
Plans from $9 a month, cancel anytime, no contract. Sign in with Google and your first 100 email checks are free, no card. The free tools stay free either way.