New Monthly plans from $39/mo. No contracts, cancel anytime. See pricing →

Website Language Statistics 2026: English, German, Spanish and Japanese Across the Web

25.6% of the web sets no content language at all: 40,632,351 of the 158,455,698 live websites whose pages we read. Across the 117,823,347 that do set one, English is 65.5%, which works out at 48.7% of the whole web. Every figure below is about what a website says it is, not what it is written in.

Published 13 September 2026 · 25 min read
Melanie Cohen
Melanie writes about web infrastructure measurement at StackScan, working from the crawl that reads the HTML of every website on the internet.
Key findings
  1. English is 65.5% of every website that sets a content language, 77,225,929 of 117,823,347. Against the whole readable web, including the quarter that sets nothing, that is 48.7%. Every language share in this report uses the first base, the 117,823,347.
  2. 25.6% of the web sets no language at all, 40,632,351 of the 158,455,698 websites whose pages we read. No lang attribute, no og:locale, no Content-Language header, nothing.
  3. German is the second language of the web at 5.1%, or 3.8% of the whole web, on 5,970,807 websites. Spanish follows at 3.5%, Chinese 3.3%, French 3.0% and Japanese 2.8%. English is 65.5% and nothing else reaches even 6%.
  4. A generic domain is English 73.7% of the time against 44.0% on a country's own, while both set a language at the same rate, 74.3% and 74.4%. The habit is identical; the language is not.
  5. Squarespace leaves the language empty on more than half its websites. It sets one on 41.9% of 23,677,732 sites, against 98.1% for WordPress and 98.8% for the GoDaddy Website Builder.
  6. The website builders are the English ones. The GoDaddy Website Builder is English on 92.6% of the sites where it sets a language, Weebly 94.2% and Squarespace 94.4%, against 52.5% for WordPress. Tilda, a Russian builder, is 13.6%.
  7. English falls steadily down the ranking, from 88.9% of the top thousand to 60.0% across every ranked domain. The internet as a whole then comes out higher, at 65.5%, because 13.1% of it came off a hosted website builder against 1.0% of the ranked web.
  8. Japan's domain is the least English place on the internet. .jp is English 5.1% of the time against 98.7% for .uk, 99.6% for .au and 90.9% for .ca. Japanese takes 94.0% of .jp on its own.
  9. 47,619,139 websites ship a Twitter card. 192,855 of them put a language in it, 0.4%. Open Graph has the same field and 29,513,090 websites fill it in.
  10. 29,145,386 websites fill in both the html element and og:locale, and the two agree 98.5% of the time. A further 367,704 fill in Open Graph and leave the html element empty.
117,823,347websites with a content language set, 74.4% of the web
77,225,929are English, 65.5% of those and 48.7% of the web
40,632,351have no language set at all, 25.6% of the web
908distinct values published in the language field

English is 65.5% of the web's content languages

Every language the web is set to
Every language on at least 100,000 websites, against both bases: the 117.8 million with a language set, and all 158.5 million readable websites
Every language the web is set toEnglish65.5% (77,225,929)German5.1% (5,970,807)Spanish3.5% (4,093,137)Chinese3.3% (3,865,069)French3.0% (3,548,016)Japanese2.8% (3,264,498)Portuguese2.5% (2,955,110)Russian2.4% (2,855,597)Italian1.7% (2,016,486)Dutch1.5% (1,768,849)Indonesian1.2% (1,367,351)Turkish1.0% (1,125,343)Polish0.9% (1,038,722)Vietnamese0.6% (683,256)Korean0.5% (588,167)Czech0.5% (551,456)Swedish0.4% (470,743)Arabic0.3% (386,536)Persian0.3% (337,204)Thai0.3% (334,358)Danish0.2% (297,192)Hungarian0.2% (296,043)Bengali0.2% (238,696)Finnish0.2% (209,832)Slovak0.2% (208,207)Romanian0.2% (196,582)Ukrainian0.2% (189,577)Hebrew0.2% (172,152)Greek0.1% (167,667)Bulgarian0.1% (108,821)Norwegian Bokmal0.1% (106,182)Every other value in the field1.0% (1,185,762)
The first share column adds up to a hundred; the second adds up to 74.4%, the rest of the web being the 40.6 million with nothing set. Those are not in this table, and nor are the codes that name a country rather than a language, which have a section of their own further down. A website counts once, under whatever its html element says.
Embed this figure
<a href="https://www.stackscan.com/blog/website-language-statistics#fig-table"><img src="https://content.stackscan.com/charts/website-language-statistics-table.webp" alt="Every language the web is set to" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/website-language-statistics#fig-table">StackScan content language analysis</a></p>

77,225,929 websites are set to English, 65.5% of the 117,823,347 that carry a content language at all, and 48.7% of every readable website. Nothing else is close. German is second at 5,970,807 and 5.1%, and nothing other than English reaches even 6%.

That is every language on at least a hundred thousand websites, thirty-one of them. Read down it once and the shape is clear enough. One language takes two thirds. The next thirty together take under a third. Everything below the hundred-thousand line, the remainder of 908 distinct values, comes to 1.0%.

Everything in this report is what a website says it is, not what it is written in, and every language share below is taken over those 117,823,347 websites. The 40,632,351 with an empty field are a separate question with a section of their own, never folded into a language's share. To put any figure here on the whole readable web instead, multiply it by 74.4%: English becomes 48.7%, German 3.8%.

The order after English is the order of the internet's large economies rather than the order of its large languages. Chinese is 3.3%, Spanish 3.5%, Dutch 1.5%, and Hindi does not reach the chart at all.

This is not a measurement of what languages people write in. It is a measurement of what websites say about themselves, which is the only thing that can be counted across the whole internet, and the distance between the two is a running theme of this report.

A quarter of the web leaves the field empty

From every domain we crawled to the languages in this report
The 158.5 million websites that returned a page we could read, and what their language field holds
From every domain we crawled to the languages in this report 158,455,698 websites returned a page we could read What the language field holds, across all of them Including the empty quarter, which is the part most published language figures leave out of the base. What the language field holds on those 158,455,698 websites English 48.7% Other 25.6% None 25.6% 77,225,929 are set to English 40,597,418 hold one of the other 907 values 40,632,351 hold nothing anywhere: no lang attribute, no og:locale, no header
Embed this figure
<a href="https://www.stackscan.com/blog/website-language-statistics#fig-lang-funnel"><img src="https://content.stackscan.com/charts/website-language-statistics-lang-funnel.webp" alt="From every domain we crawled to the languages in this report" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/website-language-statistics#fig-lang-funnel">StackScan content language analysis</a></p>

40,632,351 websites, 25.6% of the web, say nothing about their language anywhere: no lang attribute on the html element, no og:locale, no Content-Language header, nothing.

The bar above splits three ways and two of the pieces are the same size. The websites set to some language other than English come to 40,597,418, and the websites set to nothing come to 40,632,351. For every website on the internet that says it is in a language other than English, there is another that says nothing at all.

This section is the only one taken over the whole web, because it is the only question about the whole web. Everything after it is about the 117,823,347 with a language set, and this quarter never appears inside one of those shares. Fold it in and you are treating an empty field as if it were a language, which is how two correct figures for English, 65.5% and 48.7%, end up looking like a contradiction.

A .com and a .de are two different internets

A generic domain and a country's own domain are two different internets
The two halves of the domain name space. Language set is a share of each half; English is a share of the websites in that half that have one
Kind of domain nameWebsitesLanguage setEnglish
Generic, .com and the rest114,882,29374.3%73.7%
A country's own43,573,40574.4%44.0%
Embed this figure
<a href="https://www.stackscan.com/blog/website-language-statistics#fig-segments"><img src="https://content.stackscan.com/charts/website-language-statistics-segments.webp" alt="A generic domain and a country's own domain are two different internets" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/website-language-statistics#fig-segments">StackScan content language analysis</a></p>

114,882,293 websites sit on a generic domain and 43,573,405 on a country's own. They fill the field in at almost exactly the same rate, 74.3% against 74.4%, and they put completely different things in it: a generic domain is English 73.7% of the time against 44.0% on a country one.

Whether the field is filled in is a property of the software. What goes in it is a property of the owner. Splitting the web this way separates the two cleanly, and everything below is inside one half or the other.

Inside the country-code web

Inside the country-code web
Country-code domains with more than 250,000 readable websites. English and Most used are both shares of the websites on that domain with a language set
Top level domainWebsitesLanguage setEnglishMost usedThen
.de6,725,83168.6%26.8%German 72.3%Dutch, Polish, French
.ru2,934,05670.8%19.8%Russian 79.6%Italian, German, Spanish
.uk2,914,51276.5%98.7%English 98.7%Indonesian, German, Dutch
.nl2,035,06778.4%34.9%Dutch 64.3%German, Vietnamese, Indonesian
.fr1,639,37685.8%21.4%French 76.8%Italian, German, Dutch
.br1,634,36580.9%17.3%Portuguese 82.1%Spanish, Indonesian, Turkish
.it1,560,45381.0%27.6%Italian 70.5%German, Czech, French
.ch1,429,34179.2%32.1%German 51.5%French, Italian, Dutch
.cn1,373,37545.8%32.5%Chinese 66.0%Italian, German, Japanese
.au1,282,83774.4%99.6%English 99.6%Chinese, Indonesian, Japanese
.pl1,255,69977.0%19.5%Polish 79.5%German, French, Russian
.jp1,077,37779.9%5.1%Japanese 94.0%Chinese, Korean, Italian
.ca978,87478.7%90.9%English 90.9%French, Indonesian, Chinese
.eu941,35472.3%47.1%English 47.1%German, Italian, Dutch
.se926,62358.6%36.1%Swedish 61.4%German, Danish, Finnish
.in823,57080.3%96.7%English 96.7%Hindi, Vietnamese, Indonesian
.cz711,96475.2%21.2%Czech 76.1%Slovak, German, Polish
.es665,65383.0%23.2%Spanish 72.3%Italian, Catalan, German
.be614,52575.6%33.0%Dutch 45.0%French, German, Italian
.co593,78676.4%75.7%English 75.7%Spanish, French, Chinese
.at579,54279.0%21.8%German 77.0%Dutch, Czech, Italian
.us579,11476.4%96.1%English 96.1%Spanish, Chinese, German
.dk553,21768.7%35.8%Danish 62.7%German, Swedish, Norwegian Bokmal
.za543,04671.4%99.2%English 99.2%German, Indonesian, French
Then lists the next three after the most used one, English excluded because it has its own column, and only codes we can name a language for.
Embed this figure
<a href="https://www.stackscan.com/blog/website-language-statistics#fig-cctld"><img src="https://content.stackscan.com/charts/website-language-statistics-cctld.webp" alt="Inside the country-code web" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/website-language-statistics#fig-cctld">StackScan content language analysis</a></p>
A dockside sign in Fort-de-France greeting arrivals in French, English, Spanish and Creole
One greeting, four languages, on a dock in Martinique. A quarter of the web names no language at all, and the ones that do name exactly one. Photo: Skimel, CC BY-SA 4.0, via Wikimedia Commons.

A country-code domain is a choice, and the language that follows it is mostly the country's own. .jp is English 5.1% of the time, .br 17.3% and .ru 19.8%.

The English-speaking country domains sit at the other end and go almost all the way: 98.7% for .uk and 99.6% for .au. What separates those countries from the rest is not that some of their websites are in another language, it is that a quarter of them leave the field empty. .uk fills it on 76.5% and .au on 74.4%.

Switzerland and Belgium behave like the multilingual countries they are, and the Most used column is where that shows. German leads .ch on 51.5% against 72.3% for German on .de, with French and Italian behind it; Dutch leads .be on only 45.0%. A leading language at half is a different country from a leading language at four fifths, which is why that column carries a share and not just a name.

Everywhere else the leader is the obvious one and the share is the story: Portuguese takes 82.1% of .br, Russian 79.6% of .ru, Japanese 94.0% of .jp and French 76.8% of .fr.

China's domain is the outlier on a different axis. Only 45.8% of .cn websites carry one at all, the lowest rate of any large domain here, against 74.4% across the web.

Inside the generic web

Inside the generic web
Generic domains with more than 400,000 readable websites. English and Most used are both shares of the websites on that domain with a language set
Top level domainWebsitesLanguage setEnglishMost usedThen
.com81,595,82574.6%74.8%English 74.8%Spanish, Chinese, Japanese
.org6,101,82474.5%80.2%English 80.2%Indonesian, Spanish, French
.net5,208,35368.4%67.4%English 67.4%Japanese, Indonesian, German
.shop1,688,24677.6%74.6%English 74.6%Portuguese, Chinese, Spanish
.info1,601,29371.7%72.5%English 72.5%German, Japanese, Italian
.online1,581,30069.4%65.1%English 65.1%Russian, Portuguese, Spanish
.xyz1,356,96172.1%78.2%English 78.2%Chinese, Indonesian, Turkish
.top1,315,77963.8%60.7%English 60.7%Chinese, Russian, Portuguese
.site971,66979.3%64.6%English 64.6%Indonesian, Portuguese, Japanese
.store936,04064.1%67.7%English 67.7%Russian, Spanish, Indonesian
.app893,74685.0%76.2%English 76.2%Spanish, Vietnamese, Portuguese
.pro565,91677.8%59.3%English 59.3%Russian, Chinese, Spanish
.vip537,72759.9%60.2%English 60.2%Chinese, Vietnamese, Thai
.biz464,98366.8%64.0%English 64.0%Japanese, German, Russian
Then lists the next three after the most used one, English excluded because it has its own column, and only codes we can name a language for.
Embed this figure
<a href="https://www.stackscan.com/blog/website-language-statistics#fig-gtld"><img src="https://content.stackscan.com/charts/website-language-statistics-gtld.webp" alt="Inside the generic web" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/website-language-statistics#fig-gtld">StackScan content language analysis</a></p>

.com is English 74.8% of the time across 81,595,825 readable websites, close enough to the generic average of 73.7% to say that .com is the generic web.

The newer names sort themselves by who bought them. .app carries a language on 85.0% of its websites, the highest rate in either table, because the people registering .app are developers who ship the attribute. .top and .vip carry one least often, 63.8% and 59.9%, and after English their most used is Chinese.

Squarespace fills the field in on 41.9% of its sites

What each platform fills in on its customers' behalf
Websites built on each platform, what share of them have a language set, and what share of those are English
PlatformWebsitesLanguage setEnglishNext three languages
WordPress31,669,96098.1%52.5%German, Spanish, Japanese
Squarespace23,677,73241.9%94.4%German, French, Spanish
Wix18,987,82874.8%71.3%German, French, Portuguese
Shopify9,602,07498.0%78.8%Spanish, French, German
GoDaddy Website Builder6,494,36898.8%92.6%Spanish, German, Thai
WooCommerce4,848,49399.2%52.5%Persian, Spanish, Russian
Tilda2,289,41216.6%13.6%Russian, Ukrainian, German
Hostinger Website Builder693,75899.7%76.5%Spanish, Portuguese, French
Joomla682,51696.6%29.9%German, Russian, Italian
Duda672,22675.0%65.8%Spanish, Italian, German
Webflow570,21462.3%78.7%German, French, Chinese
Zyro Website Builder547,159100.0%73.1%Spanish, Portuguese, French
Weebly469,85097.6%94.2%German, French, Dutch
MyWebsite Creator443,416100.0%23.6%German, French, Spanish
Framer381,12783.3%76.3%German, French, Spanish
Drupal349,39995.0%48.7%French, German, Russian
Language set is a share of every website on the platform. English is a share of the ones that have one, which is why a platform can fill the field in rarely and be overwhelmingly English when it does.
Embed this figure
<a href="https://www.stackscan.com/blog/website-language-statistics#fig-platforms"><img src="https://content.stackscan.com/charts/website-language-statistics-platforms.webp" alt="What each platform fills in on its customers' behalf" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/website-language-statistics#fig-platforms">StackScan content language analysis</a></p>

The single largest fact about language on the web is that most websites do not choose. A platform ships the attribute or it does not, and the customer never sees the field.

Squarespace fills it in on 41.9% of its 23,677,732 websites. WordPress does on 98.1%, the GoDaddy Website Builder on 98.8% and Zyro on 100.0%, which is every site it has ever built. Three platforms ship the attribute as a matter of course and one ships it on fewer than half. That is a product decision, not twenty-three million individual ones.

Tilda is the other end of both columns: it fills the field on 16.6% of its websites and only 13.6% of those are English, the lowest of any platform here, because its customers are Russian speakers using a Russian product.

The builders are the English ones. The GoDaddy Website Builder is English on 92.6% of the sites where it fills the field, Weebly 94.2% and Squarespace 94.4%, against 52.5% for WordPress and 29.9% for Joomla. A hosted builder sold mainly in one market builds mainly one language of website, and Squarespace is the sharpest case: it fills the field on fewer sites than anyone, and when it does the answer is almost always English.

English falls down the ranking, then the builders put it back

Language against where a website sits in the ranking
Each row is every website down to that rank, so a row can be read against the one below it without subtracting anything
Where the website sitsWebsitesLanguage setEmptyMost usedSecond
Top 1,00064680.8%19.2%English 88.9%Russian 2.7%
Top 10,0007,24483.0%17.0%English 73.6%Japanese 3.3%
Top 100,00075,31982.3%17.7%English 68.0%Russian 4.0%
Top 500,000382,96982.5%17.5%English 66.3%Russian 4.7%
Top million782,25983.4%16.6%English 63.7%Russian 4.5%
Every ranked domain3,167,02581.4%18.6%English 60.0%Russian 6.7%
The entire internet158,455,69874.4%25.6%English 65.5%German 5.1%
The tiers are cumulative. Most used and Second are shares of the websites in that tier that have a language set, and the Tranco list holds 4,360,305 domains, so a top five million tier would be the same rows as every ranked domain.
Embed this figure
<a href="https://www.stackscan.com/blog/website-language-statistics#fig-tiers"><img src="https://content.stackscan.com/charts/website-language-statistics-tiers.webp" alt="Language against where a website sits in the ranking" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/website-language-statistics#fig-tiers">StackScan content language analysis</a></p>

The tiers are cumulative, so each row is every website down to that rank and can be read straight against the one below it. English takes 88.9% of the top thousand, 73.6% of the top ten thousand, 63.7% of the top million and 60.0% once every ranked domain is in. The most visited part of the web is its most English part, and the further down you go the less true that gets.

Then the last row breaks the line. The internet as a whole comes out at 65.5%, higher than the ranked web above it, and the reason is what built the tail rather than who writes it. 13.1% of the whole came off a hosted website builder against 1.0% of the ranked web, and those builders as a group fill the field with English 85.8% of the time, 13,270,171 websites. The rise is not a return of English speakers, it is GoDaddy, Squarespace, Wix and Weebly answering for people who never saw the question.

The second language changes with the tier, and the change is worth pulling apart rather than repeating. Japanese is second in the top ten thousand. Russian takes the position from the top hundred thousand down, at 6.7% across the ranked web, and German only takes it back once the unranked tail is counted. Russian is the fourth language of the internet as a whole, so that is a real inversion and it does not mean what it looks like.

It is not that the Russian web is concentrated at the top. It is concentrated at the bottom of the list. 83.2% of ranked Russian websites sit beyond a millionth place, against 75.0% of German ones, and a Russian website is ranked at all 6.06% of the time against 1.77% for German. Three and a half times the chance of appearing on the list, mostly in its last three million places.

What those sites sit on says the rest. 21.5% of ranked Russian websites use one of the cheap top level domains that bulk registration favours, .top, .buzz, .xyz and their neighbours, against 0.8% of German, 0.7% of French and 5.9% of English. A fifth of the Russian entry into the ranked web is on domains that cost a dollar, which is what a network looks like rather than an audience. Read the Russian row as a fact about the ranking list, not about readers.

Filling the field in at all runs the other way and barely moves: 83.0% in the top ten thousand against 74.4% across the internet. Whether a website has a language set has almost nothing to do with how important it is and almost everything to do with what built it.

Where a website says what language it is

Where a website says what language it is
Websites carrying each of them, as a share of all 158.5 million
Where the answer sitsWebsitesShare of the web
The lang attribute on the html element117,823,34774.4%
og:locale, the Open Graph field29,513,09018.6%
The Content-Language response header9,679,1616.1%
A meta tag named language1,380,9600.9%
dc.language, the Dublin Core field260,1700.2%
twitter:locale, inside a Twitter card192,8550.1%
A meta http-equiv of content-language165,3400.1%
A website can carry several. The shares are not exclusive and do not add up.
Embed this figure
<a href="https://www.stackscan.com/blog/website-language-statistics#fig-surfaces"><img src="https://content.stackscan.com/charts/website-language-statistics-surfaces.webp" alt="Where a website says what language it is" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/website-language-statistics#fig-surfaces">StackScan content language analysis</a></p>
117,823,347set it on the html element, 74.4% of the web
29,513,090set it in og:locale, 18.6%
9,679,161send a Content-Language header, 6.1%
192,855set it in a Twitter card, 0.1%

There are seven places a website can say what language it is in and one of them is used. The lang attribute on the html element covers 74.4% of the web. og:locale, the Open Graph field, reaches 18.6%. The Content-Language response header, the oldest of the three, is on 6.1%.

Everything else is a rounding error. A <meta name="language"> tag appears on 0.87% of the web, Dublin Core's dc.language on 0.16% and the http-equiv form of Content-Language on 0.10%.

Then the one that stands out. 47,619,139 websites ship a Twitter card, 30.0% of the web, and 192,855 of them fill in the locale, 0.4%. The field exists, thirty percent of the internet ships the card that carries it, and nobody uses it. Open Graph put its locale field next to the fields people actually wanted and got 29,513,090 websites to fill it in.

When a page and its Open Graph disagree

Websites that give two different answers
A selection of the disagreements between the html element and og:locale, largest first
The page saysOpen Graph saysWebsites
EnglishSpanish20,782
PortugueseEnglish19,929
EnglishChinese15,550
EnglishFrench14,596
EnglishGerman13,399
EnglishPortuguese11,250
GermanEnglish9,992
FrenchEnglish9,835
Embed this figure
<a href="https://www.stackscan.com/blog/website-language-statistics#fig-disagree"><img src="https://content.stackscan.com/charts/website-language-statistics-disagree.webp" alt="Websites that give two different answers" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/website-language-statistics#fig-disagree">StackScan content language analysis</a></p>

29,145,386 websites fill in both places. They agree 98.5% of the time, which is the best evidence that either field is worth reading. A further 367,704 fill in Open Graph and leave the html element empty, so the Open Graph field is the only answer available.

The 440,938 that contradict themselves are mostly what a translation looks like when only half of it landed: a page rebuilt in Portuguese with the English Open Graph left in place, or the other way round. Every pair in the table has English on one side of it.

The pattern is worth more than the pairs. A website whose own two fields disagree is a website where nobody read either of them, and at this scale that is almost always one generator shipping one combination across a large number of sites rather than a person making a mistake.

908 values, and some of them are countries

The codes that are not languages
Values in the language field that name a country, or nothing at all, out of the 117.8 million that hold something
The code publishedWebsitesWhat it actually is
zx149,064zxx, the code for "no linguistic content", folded to two characters by our own field
cn86,719the country code for China; the language is zh
jp26,400the country code for Japan; the language is ja
ua13,000the country code for Ukraine; the language is uk
x12,405a single letter, which is not a code at all
cz9,108the country code for Czechia; the language is cs
us6,776the country code for the United States, which is not a language
se3,908the country code for Sweden; the language is sv
gb3,782the country code for the United Kingdom, which is not a language
dk1,849the country code for Denmark; the language is da
Embed this figure
<a href="https://www.stackscan.com/blog/website-language-statistics#fig-oddities"><img src="https://content.stackscan.com/charts/website-language-statistics-oddities.webp" alt="The codes that are not languages" width="880" style="max-width:100%"></a> <p>Source: <a href="https://www.stackscan.com/blog/website-language-statistics#fig-oddities">StackScan content language analysis</a></p>

The language field takes an ISO 639 code. 908 distinct values appear across the 117,823,347 websites that fill it in, and 151,542 of them hold a code that is not a language.

They are country codes, and that is the mistake the field invites. The author is thinking about a locale, a market or an audience, and a locale is written en_US, so the country is the half that feels like the answer. cn is on 86,719 websites when Chinese is zh, jp on 26,400 when Japanese is ja, ua on 13,000 when Ukrainian is uk, cz on 9,108 when Czech is cs. us and gb are not languages under any reading and appear on 6,776 and 3,782 websites between them.

The largest row in the table is not a mistake anybody made. 149,064 websites appear under zx, and zx is not a code anybody typed: the field we store holds the first two characters of the declaration, so zxx, the code that means "no linguistic content", arrives folded. The three letter codes fold the same way, which is why this report names no language that needs three letters. The methodology says what that costs.

Then the ones that are not letters at all. 8,362 websites publish a value containing something other than a letter, and 914 of those publish an unrendered template variable, {{ and whatever followed it, because the templating engine never ran over that attribute. A handful publish <? or <%, which is the same failure in another language.

None of this is large enough to move a share in this report. It is worth counting because it answers what the field is in practice: a slot in a template that somebody filled in once, and sometimes did not.

Frequently asked questions

What percentage of websites are in English?

65.5% of the websites that declare a content language declare English, 77,225,929 of 117,823,347. Counted against every readable website, including the quarter that declares nothing, the same websites are 48.7%.

What is the second most common language on the internet?

German, at 5.1% of the websites with a language set, or 3.8% of the whole web, ahead of Spanish at 3.5% and Chinese at 3.3%. English is 65.5% and nothing else reaches even 6%.

How many websites have no language set?

40,632,351, 25.6% of the web. No lang attribute, no og:locale, no Content-Language header and no Twitter locale.

Does this measure the language a website is written in?

No. It measures what a website declares about itself, which is a different thing and the only one that can be measured at this scale. A page written in French that declares English is counted as English here, and the distance between the two is one of the findings rather than an error in it.

Which country domain is the least English?

Japan's. 5.1% of .jp declarations are English, against 98.7% of .uk, 99.6% of .au and 90.9% of .ca.

How many websites are multilingual?

We cannot say, and no figure for it appears in this report. hreflang, the mechanism a translated site uses, is stored only for the 22,171,556 websites we extracted links from, and that set is biased towards sites that carry it. The Open Graph alternate-locale tag covers every website but misses most multilingual sites, so neither number is worth publishing.

Does this show which languages people use on the internet?

No. This counts websites, one per domain, so a platform where a hundred million people read and write to each other counts once, the same as a forum with four posts. A language whose speakers mostly sit inside a few large platforms comes out low here however many of them there are, and Chinese is the clearest case at 3.3% of the field. What people search for and read is a different question that a website census cannot answer.

Where should a website set its language?

On the html element. 74.4% of the web already does, and it is the declaration search engines and screen readers agree on. og:locale reaches 18.6% of the web and a Content-Language header 6.1%, and neither replaces the attribute.

Methodology and sources

Population. 158,455,698 domains whose most recent crawl returned a page we could read.

Two questions, two bases, and which is which is never left to the reader. How many websites carry a content language at all is a question about the web, so it is a share of all 158,455,698: 74.4% do and 25.6% do not. Which language they carry is a question about the ones that have one, so every language share in this report, in every cut, is taken over the 117,823,347 with a language set. A figure never mixes the two, and every figure's subtitle names the base it is using.

That choice moves the headline. English is 65.5% on the first base and 48.7% on the second, and both are the same 77,225,929 websites. The first is the useful number because the alternative silently treats an empty field as if it were a language; the second is here so the conversion is never more than one multiplication away. Any language figure in the report goes onto the whole-web base by multiplying it by 74.4%.

A cut's share is taken inside that cut. When a table says a top level domain or a platform is some percentage English, the denominator is that domain's or that platform's own declarations, not its websites and not the web. It is why Squarespace can declare on 41.9% of its sites and be 94.4% English in the same row: those are answers to different questions about the same platform.

Declared, not detected. Every language figure here is what a website says about itself, read from the lang attribute on its html element. Nothing here inspects the text of a page. We checked the field against the live web on a sample of 400 websites that had declared something: 302 still answered, and of those 90.1% declare the same code today, 4.0% declare a different one and 6.0% now declare nothing. The disagreements are sites rebuilt since the crawl rather than misreadings, so read every share here as a floor on agreement rather than a precise one.

The field holds two characters. The declaration is stored as its first two characters, which is why en-US and en-GB both appear as en and why this report has nothing to say about regional variants. It also folds the three letter ISO 639-2 codes into their first two letters, so zxx appears as zx, and a language that needs three letters cannot be separated from the two letter code it collides with. Those codes are rare enough on the web not to move any share above, and common enough that no three letter language is named in this report.

Where the declaration can sit. Seven places are counted: the lang attribute, og:locale, the Content-Language response header, a <meta name="language"> tag, dc.language, twitter:locale and the http-equiv form of Content-Language. A website can carry several, so those shares are not exclusive and do not add up. The main language figures use the html attribute alone.

What is not here: how multilingual the web is. There is no figure in this report for the share of websites available in more than one language, and the reason is that we cannot count it. hreflang, the mechanism a translated site actually uses, is stored only for the 22,171,556 websites we extracted links from, a seventh of the web, and that seventh is not random with respect to the tag: a rate taken from it puts the top thousand at 39.2% against 23.2% when the same tier is fetched and read one page at a time. og:locale:alternate does cover the whole population, 742,278 websites carry it, and checking against live pages says that count is right. It is the wrong measure rather than a wrong number. Fetching 185 websites we record as not carrying the tag, 6 of them turned out to be in more than one language by their own hreflang links. Six of 185 is too thin to put a rate on, and it does not need to be: at any value in that range the tag is missing most of what it is supposed to find. Reliable about a tag and far too low about the thing the tag stands for is not worth publishing as either.

Platforms. A website's platform comes from the same technology detection the CMS report uses, joined domain by domain. A platform's row counts every website we detect it on, and both of its shares are taken over that row's own total, so the two columns can be read against each other.

The ranking. Rank comes from the Tranco list, which is built from several ranking providers rather than one. A website with no rank is counted as unranked rather than dropped.

A tier is what we could read of it. The top thousand row counts 646 websites, not a thousand: the rest of that tier is content delivery hosts, API endpoints and other names that never return a page to read. The same is true further down, a little less severely, and every share in the ranking table is taken over the websites in the row rather than over the tier.

This counts websites, not people. One row per domain. A platform where a hundred million people read and write to each other is one website: QQ is one, VK is one, Facebook is one, and a forum with four posts is also one. So a language whose speakers mostly live inside a small number of large platforms comes out low here however many of them there are, and a language whose speakers run a lot of small sites comes out high. Chinese is the obvious illustration at 3.3% of the field, but that is an illustration and not a measurement: we hold no audience data and this report makes no claim about how many people read in any language. It is a count of how many web servers answer in each language, which is a different question with a different answer.

Limits. A page that answered once is a page; nothing here follows a redirect chain to a different language, and a site that serves different languages by geography is counted as whatever it served us. A platform running only on a subfolder or a subdomain is not counted, so the platform totals are floors. Rank comes from a list, and a list is a sample of the web's attention rather than a measurement of it: the Russian row in the ranking table is the worked example of what that costs.

Figures may be reproduced with attribution to StackScan and a link to this page.