How well do the world’s websites handle the basics of SEO? We crawled the home pages of the top 1,000,000 domains in the Tranco ranking, from Google to sites with a few hundred visitors a day. 82.9% responded, 666,503 returned an HTML page, and after removing parked domains, error pages and empty pages, we analyzed 613,473 real websites: their titles, meta descriptions, headings, canonical tags, structured data, sitemaps, robots.txt, llms.txt and more.
Key findings
- Most sites fail at least one basic. Only 52.4% have a title between 30 and 65 characters, 52.6% have exactly one H1 and 34.4% have none at all. 78.4% have a meta description, and 64.9% a canonical tag.
- Popularity barely changes the picture. 54.3% of sites ranked 1 to 100,000 have a title of the recommended length, compared with 51.3% of sites ranked 900,001 to 1,000,000. Canonical tags go from 66.4% to 66.4%. Big sites are not systematically better optimized.
- The platform matters more than the size. 91.1% of WordPress sites and 99.1% of Shopify stores have a canonical tag, compared with 51.1% of sites with no detectable CMS. Structured data: 76% on WordPress, 67% on Shopify and 32.2% on sites without a known platform.
- llms.txt is a platform story. 15.1% of all websites serve an llms.txt file, but 95.5% of Shopify stores do, compared with 17.4% of WordPress sites and 6.9% of sites without a known CMS.
- WordPress powers 21.7% of the websites in our sample, followed by Next.js (5.5%) and Shopify (4.5%). 57.8% use no CMS we could detect.
- AI crawlers are named in 15.5% of robots.txt files across the million, with gambling and news sites leading.
The SEO basics, one by one
HTTPS and mobile viewports are almost universal: the web has fixed the problems that browsers and Google made impossible to ignore. Everything that depends on editorial care, such as titles of the right length, meta descriptions, a single H1 and structured data, is still missing on a large share of sites.
How many websites pass the SEO basics
% of 613,473 home pages
- Titles: 0.7% have no title at all, and the median title is 46 characters long. Many are either a bare brand name or a long list of keywords.
- Meta descriptions: 78.4% have one, but only 48.1% are between 70 and 160 characters.
- Images: 12.1% of images on home pages have no alt attribute.
- noindex: 1.5% of home pages tell search engines not to index them, usually by mistake after a launch or migration.
Popular sites are not better optimized
We split the million domains into ten bands of 100,000 by Tranco rank. If SEO quality grew with popularity, the lines would fall steadily from the top band to the last. They do not: the share of sites with a well-sized title or a canonical tag stays within a few points across the whole ranking. The bands from 700,000 to 900,000 are slightly weaker and have more parked domains, but the top 100,000 are not far ahead of the middle of the ranking.
SEO basics barely change with popularity
% of home pages in each band of the Tranco ranking
Bands of 100,000 domains, from the most popular (top) to rank 1,000,000.
The likely reason is that the basics depend on how a site is built, not on how big it is. Large sites are often custom-built, with many teams and legacy code, while small sites run on platforms that handle the basics automatically.
Your platform does half of your technical SEO
The biggest differences in our data appear between platforms. WordPress (usually with an SEO plugin such as Yoast or Rank Math) and Shopify add canonical tags and structured data by default. Sites with no detectable CMS, usually custom builds, are much less consistent: only 51.1% have a canonical tag and 32.2% have structured data.
The platform decides the technical SEO
% of home pages on each platform
JavaScript frameworks sit in the middle. Next.js sites have meta descriptions on 95.3% of home pages, but canonical tags on only 72.7% and structured data on 51.3%: the framework makes metadata easy, but it does not add it for you.
llms.txt: adopted by default, not by choice
llms.txt, the proposed file that tells AI systems what a site is about, looks widely adopted at first sight: 15.1% of the websites in our sample serve one. But the adoption comes almost entirely from platforms that generate it automatically. 95.5% of Shopify stores have one, while among sites without a known CMS the figure is 6.9%. Few site owners are writing llms.txt files by hand.
llms.txt adoption is driven by platforms
% of websites on each platform that serve an llms.txt file
Want your own? Create or validate one with our free llms.txt generator, and read what llms.txt is and whether you need it.
AI crawlers and categories
We also classified every website by topic. Gambling (29.3%) and news and media sites (29.2%) are the most likely to name AI crawlers such as GPTBot or ClaudeBot in their robots.txt, followed by lifestyle sites (25.3%). Government sites are the least likely (6.8%). For the top 10,000 sites in detail, see our study of AI bots and the top 10,000 websites.
Who names AI crawlers in robots.txt
% of websites in each category whose robots.txt names at least one major AI crawler
Lifestyle (68%) and news sites (64%) use structured data the most, followed by business services, food and ecommerce. Government sites (20.5%), search portals and social networks use it the least.
Structured data by category
% of websites in each category with JSON-LD structured data
What this means for your website
- Check the basics before anything advanced. Half the web misses a well-sized title or a single H1. Audit any page for free with our SEO Audit Tool and preview your title with the SERP Snippet Preview.
- If you run a custom site, do what platforms do for free. Add canonical tags, structured data and a sitemap to your templates once, and every page benefits. Generate JSON-LD with our Schema Generator and check your sitemap with the Sitemap Validator.
- Do not assume big competitors are doing it right. Popular sites miss the basics almost as often as small ones, which is an opportunity.
- Decide your AI strategy on purpose. Check how your robots.txt treats AI crawlers with the AI Bot Checker, and see what AI models say about your brand with the AI Visibility Checker.
Methodology
We started from the top 1,000,000 domains of the Tranco list 8PX8V and requested each home page over HTTPS (falling back to HTTP), following redirects, between October 19 and 22, 2026. For each site we read up to 400 KB of HTML and also requested robots.txt, the sitemap declared there or /sitemap.xml, and /llms.txt. 829,288 domains responded and 666,503 returned an HTML page with status 200; many domains in the ranking are infrastructure, API or CDN domains with no website, and some sites block automated requests. We excluded parked domains, default server pages and pages with no content, leaving 613,473 websites.
Indicators were extracted from the HTML: a title of the recommended length means 30 to 65 characters, a meta description of the recommended length 70 to 160. The CMS was detected from fingerprints in the HTML (for example wp-content paths for WordPress or cdn.shopify.com for Shopify); sites where we found none are labeled “No CMS detected” and include custom builds and platforms we do not detect. Topic categories were assigned by an AI model (OpenAI gpt-4.1-nano) from the domain, title and meta description, with fixed rules for government and education domains and for parked pages. Automatic classification is approximate: about a third of the sites did not fit a clear category and are labeled other, and they are excluded from the category charts. “Names AI crawlers” means the robots.txt mentions at least one major AI crawler by name; it does not always mean a full block. We analyzed home pages only, which may differ from the rest of a site.
How to cite: SEOOn.page (2026). The SEO of 1 Million Websites (2026). https://seoon.page/research/seo-of-1-million-websites-2026/

