Typography is the foundation of web content consumption. The fonts you choose, how you size them, and how you load them affect readability, engagement metrics, page performance, and accessibility, all of which influence SEO outcomes. Poor typography drives users away from otherwise excellent content, while thoughtful typography keeps them reading, engaging, and converting. At Growth Nuts, we have seen typography improvements alone increase average time on page by 15 to 25 percent for content-heavy sites.
Font Selection for Web Performance
Every custom font adds HTTP requests and bytes to your page load. A typical font family with four weights (regular, bold, italic, bold italic) can add 100 to 400 kilobytes to your page weight. Limit your font selection to two families maximum: one for headings and one for body text. If a system font stack provides adequate visual quality for your brand, it eliminates font loading entirely. System fonts like -apple-system, Segoe UI, and Roboto render instantly because they are already installed on the user device.
If custom fonts are essential for your brand, use variable fonts that contain multiple weights and styles in a single file. A variable font file is typically smaller than loading multiple static font files and provides greater flexibility in weight and width selection. Subset your fonts to include only the character sets your content requires, removing unused glyphs that add unnecessary file size.
Font Loading Strategies and Performance
How you load fonts affects both perceived performance and Cumulative Layout Shift. The default browser behavior hides text until the font loads, creating a flash of invisible text (FOIT) that delays content visibility. Use font-display: swap in your @font-face declarations to show text immediately in a fallback font and swap to the custom font when it loads. This creates a flash of unstyled text (FOUT) but ensures content is readable immediately.
Preload your most critical font files using link rel=preload to prioritize them in the loading waterfall. This reduces the time before the custom font is available, minimizing the visual disruption of the font swap. Host fonts locally rather than loading from Google Fonts or other CDNs to eliminate the additional DNS lookup and connection time.
Self-hosting fonts with font-display: swap and preloading the primary weight eliminates 200-400ms of render delay compared to loading from external font CDNs like Google Fonts.
Body Text Sizing and Line Height
Body text should be a minimum of 16 pixels on all devices. Smaller text forces mobile users to zoom, which is a negative usability signal. For content-focused pages like blog posts and articles, 18 or 20 pixels improves readability and time on page. Use relative units like rem for font sizing so text scales consistently across your design system and respects user browser settings for text size.
Line height (leading) should be 1.5 to 1.75 for body text. Tighter line spacing makes dense paragraphs feel overwhelming and harder to read. More generous spacing improves scanning and reduces reading fatigue. Line length (measure) should stay between 50 and 75 characters for optimal readability. Wider text columns cause readers to lose their place when jumping to the next line.
Heading Hierarchy and Content Structure
Headings communicate content structure to both users and search engines. Use a clear heading hierarchy from H1 through H4, with each level visually distinct from the others. Size alone is not sufficient for distinction. Use a combination of size, weight, color, and spacing to create clear hierarchy. The visual hierarchy should match the semantic hierarchy so users can scan the page structure at a glance.
From an SEO perspective, heading hierarchy helps Google understand content organization and topic relationships. Your H1 should contain the primary keyword, H2 elements should mark major sections with secondary keywords, and H3 elements should label subsections with supporting terms. This structured approach strengthens topical relevance signals while improving user comprehension.
Contrast and Color in Typography
Body text should use near-black or dark gray on white or light backgrounds for maximum readability. Pure black on pure white creates harsh contrast that causes eye fatigue during extended reading. A slightly softened combination like 333333 on FFFFFF provides excellent readability with less visual strain. Ensure all text meets WCAG AA contrast ratios of 4.5:1 for normal text and 3:1 for large text.
Use color purposefully in typography to indicate interactive elements, highlight important information, or create visual hierarchy. But never rely on color alone to convey meaning, as this fails users with color blindness. Links should be underlined or otherwise visually distinct beyond their color difference from body text.
Paragraph Length and Content Formatting
Short paragraphs of two to four sentences work best for web content. Long paragraph blocks create visual walls of text that discourage reading. Break content into scannable chunks with frequent subheadings, bullet lists, and visual separation between sections. On mobile devices, even a four-sentence paragraph can fill the entire screen, so be especially concise for mobile-first content.
Use formatting elements like bold text, bullet points, and numbered lists to break up text density and guide attention. These elements also help search engines identify key points within your content. Strategic use of bold text on important phrases reinforces keyword signals while improving scanability.
Web Font Licensing and Compliance
Ensure your font licenses cover web usage. Desktop font licenses do not automatically include web distribution rights. Google Fonts provides free web fonts with open licenses. Adobe Fonts requires an active subscription. Commercial font foundries sell web licenses separately from desktop licenses, typically based on pageview volume. Using fonts without proper web licenses exposes your business to legal liability and potential takedown requests.
Sites that increase body text from 14px to 18px and add 1.6 line height see average time-on-page increases of 15-20%. Readability directly translates to engagement metrics that influence rankings.
Ready to Improve Your SEO?
Get a free audit and actionable recommendations for your business.
Get in Touch