Best Font Sizes for Readability: 16px Body, 1.5 Line-Height, 50–75 Char Lines (2026)
What Is the Best Font Size for Readability?
For body text, use 16px minimum on both desktop and mobile, with a line-height of 1.4–1.6 and a line length of 50–75 characters. 16px is the long-standing browser default, the size Google's mobile-friendly guidance explicitly recommends, and the threshold below which Lighthouse and PageSpeed Insights start flagging text as too small. Going larger (18–20px) often improves long-form readability without any downside.
Key Facts (TL;DR)
- 16px is the browser default for body text in every major browser, and Google's mobile-friendliness guidance recommends it as the minimum for readable copy.
- Lighthouse / PageSpeed Insights flags small fonts under the "Document uses legible font sizes" audit when text under 12px CSS pixels covers more than ~60% of the page.
- Line-height 1.4–1.6 is the standard recommendation from W3C and the Web Content Accessibility Guidelines (WCAG 2.2 SC 1.4.12 requires line-height of at least 1.5 to be supported).
- Line length 50–75 characters per line is the optimum from Robert Bringhurst's "The Elements of Typographic Style" — fewer breaks rhythm, more strains the eye returning to the next line.
- WCAG 1.4.4 (Level AA) requires text to be resizable up to 200% without loss of content or function. Do not block this with
user-scalable=noin your viewport meta. - Mobile inputs < 16px trigger auto-zoom in Safari iOS when focused — a UX regression that breaks form layouts.
Recommended Font Sizes by Element
| Element | Recommended (desktop) | Recommended (mobile) | Minimum acceptable |
|---|---|---|---|
| Body text | 16–18px (long-form: 18–20px) | 16px | 16px |
| H1 | 32–48px | 28–36px | 24px |
| H2 | 24–32px | 22–26px | 20px |
| H3 | 20–24px | 18–20px | 18px |
| Captions / metadata | 14px | 14px | 14px |
| Form inputs | 16px | 16px (avoid iOS auto-zoom) | 16px |
| Buttons / CTAs | 16–18px | 16–18px | 16px |
| Footnotes / legal | 14px | 14px | 12px |
| Anything content-bearing | — | — | Never below 12px |
Why Font Size Is an SEO Concern, Not Just a UX One
Font size affects three measurable SEO signals:
- Lighthouse "Document uses legible font sizes".This audit is part of Lighthouse's SEO category. It fails when more than ~40% of the page's text is under 12px. A failing audit lowers the SEO score reported in PageSpeed Insights.
- Mobile usability.Google's mobile-first index evaluates every page primarily on its mobile rendering. Pages that require pinch-zoom to read are penalized as "not mobile-friendly" in Search Console's Mobile Usability report.
- Engagement signals. Hard-to-read pages have shorter dwell times and higher pogo-sticking back to search results — both correlated with lower rankings (although Google does not confirm direct use of these signals).
How to Set Font Sizes Correctly
Use rem for typography, not px
rem scales with the user's root font size, so people who increase their browser default for accessibility get larger text everywhere. Using fixed px ignores that preference.
html { font-size: 100%; } /* respects user setting (default 16px) */
body { font-size: 1rem; line-height: 1.6; } /* 16px body */
h1 { font-size: 2.25rem; line-height: 1.2; } /* 36px */
h2 { font-size: 1.75rem; line-height: 1.25; } /* 28px */
h3 { font-size: 1.25rem; line-height: 1.3; } /* 20px */
small { font-size: 0.875rem; } /* 14px */Cap line length with max-width on the prose container
Bringhurst's 50–75 character optimum corresponds roughly to a max-width of 32–40rem on body text. Setting it on a <article> or content wrapper protects readability on wide screens.
.article-content {
max-width: 38rem; /* ~65 characters at 16px */
margin-inline: auto;
line-height: 1.6;
}Do not block user zoom in your viewport meta
Setting user-scalable=no or maximum-scale=1 in your viewport meta violates WCAG 1.4.4 and is one of the most common accessibility regressions in older codebases. Use the standard form:
<meta name="viewport" content="width=device-width, initial-scale=1" />Form inputs need 16px on iOS specifically
Safari on iOS automatically zooms the page when the user focuses a text input under 16px. The zoom does not zoom back out — it leaves the layout in a broken state. Set font-size: 16px (or 1rem) on every input, textarea, and select.
The Six Mistakes That Break Readability
1. Using 12–14px body text on desktop because "it looks designed"
Designers working on 4K monitors at 200% scaling routinely ship body text that is under 14px on real users' 1080p screens. The browser default is 16px because that is what Bringhurst-style typography research has settled on. Anything smaller is a regression.
2. Letting body text scale only with viewport units (vw)
font-size: 1.2vw looks clever but produces unreadable text on narrow phones and absurdly large text on wide monitors. It also breaks user zoom in some browsers. Use clamp() with a min of 1rem instead.
p { font-size: clamp(1rem, 0.9rem + 0.4vw, 1.125rem); }3. Tight line-height (1.0–1.2) on body copy
Designers often borrow heading line-height (1.1–1.2) for body text. The result is dense, unscannable paragraphs. WCAG 2.2 SC 1.4.12 specifically requires that 1.5 line-height be supportable without breaking layout.
4. Full-width prose on a 1920px screen
Without a max-width cap, body text on a wide monitor becomes 150+ characters per line. Eye-tracking research (Nielsen Norman Group) shows reading speed drops sharply past 80 characters per line.
5. Light-grey body text (low contrast at small sizes)
color: #999 on white is below WCAG AA (4.5:1) contrast at any size. Smaller fonts demand more contrast, not less. Use #444 or darker for body copy on white.
6. Form inputs at 14px on mobile
Triggers Safari iOS auto-zoom. The page zooms in on focus and never zooms back out, leaving fixed headers and modals misaligned. Always 16px on inputs.
How to Audit Your Site's Typography
- Run Lighthouse / PageSpeed Insights.Look for the SEO audit "Document uses legible font sizes". A failing audit lists the offending elements and what percentage of the page's text is below 12px.
- Check Search Console > Mobile Usability.The error "Text too small to read" flags the exact URLs where Googlebot's mobile rendering found unreadable copy.
- Use DevTools > Rendering > Emulate vision deficiencies. Combined with mobile device emulation, this surfaces low-contrast and small-font problems quickly.
- Test browser zoom to 200%. WCAG 1.4.4 requires the page to remain functional. If layout breaks, your typography is using fixed pixel sizes where rems would scale cleanly.
- Measure line length on the widest breakpoint. Open the article on a 1440px screen and count characters. If you're past 80, add a
max-widthto the prose container.
FAQ
Why does Google recommend 16px for body text?
16px has been the default body font size in every major browser since the early 2000s and is the size at which the "Document uses legible font sizes" Lighthouse audit passes. Google's mobile-friendliness guidance points at it as the minimum for body copy specifically because anything smaller forces pinch-zoom on phone screens.
Is 16px too small for long-form articles?
Not technically, but 18–20px is often more comfortable for sustained reading. Medium and many publishing platforms default to 18–21px for article body text. The lower bound is 16px; the upper bound is whatever still keeps lines under 75 characters.
What is the minimum font size that passes Lighthouse?
Lighthouse's "Document uses legible font sizes" audit passes when at least 60% of the page's text (by character count) is at least 12px. In practice, "at least 16px for body, 14px for captions, never below 12px" passes comfortably.
Should I use px, em, or rem for font sizes?
Use rem for typography. rem scales with the user's root font-size preference, which is critical for accessibility. em compounds (an em inside an em multiplies), which makes nested components hard to predict. px ignores user zoom entirely.
Does line-height affect SEO?
Not directly. But WCAG 2.2 SC 1.4.12 requires that pages support 1.5 line-height without breaking, and broken layouts at increased line-height count as accessibility failures — which feed into the broader page experience signal.
Why do my mobile forms zoom in when I tap an input?
Safari on iOS auto-zooms when a form field has font-size below 16px. The fix is to set font-size: 16px (or 1rem) on every input, textarea, and select. This is the most common and most under-diagnosed mobile UX bug in production sites.
How long should a line of text be?
50–75 characters per line is the optimum from Bringhurst's "The Elements of Typographic Style" — long enough to maintain reading rhythm, short enough that the eye finds the next line easily. 65 is the most-cited single number.
Is using user-scalable=no ever acceptable?
No. It violates WCAG 1.4.4 (Level AA), removes the user's ability to zoom for accessibility, and is widely flagged by accessibility audits. The viewport meta tag should always allow user scaling.
Conclusion
Readable typography is not subjective at the bottom end — 16px body, 1.4–1.6 line-height, 50–75 characters per line, and never blocking user zoom are the floor. Hit those numbers and Lighthouse, Search Console's Mobile Usability report, and WCAG all stop complaining at once. Beyond that floor, you can scale up (18–20px body for long-form) without any cost — readability and SEO move in the same direction.
