Shopifont

Guide

How to choose a font for your Shopify store

A custom font is one of the cheapest brand changes you can ship on a Shopify store and one of the easiest to get wrong. This guide is the framework we use to pick fonts for storefront installs — six axes, with the trade-offs ecommerce stores specifically need to weigh.

1. Brand fit comes first

The font is a brand decision before it's a design decision. A premium leather-goods store and a science-backed wellness brand can both use a sans-serif, but the personalities they project are different — and the wrong type face works against the rest of your storefront, no matter how well-executed it is.

Three rough categories that fit most stores:

  • Geometric / neutral sans (Inter, Manrope, Public Sans, Outfit). Reads as modern, utilitarian, trustworthy. Default-safe for tech-adjacent brands, marketplaces, and anywhere clarity outranks personality.
  • Humanist sans (IBM Plex Sans, Source Sans, Lato). Warmer than geometric, better for body copy at small sizes. Good for brands that want to feel human without losing credibility.
  • Display / serif (Fraunces, EB Garamond, Playfair Display, Söhne for premium). Higher personality, more risk — works for fashion, beauty, food, and curated-goods brands where the type itself is part of the brand.

If you're unsure, mock up your hero headline + a real product card in three candidates and compare against your existing storefront for an hour. Most fit problems show up in that hour.

2. Set a performance budget before you fall in love with anything

Shopify stores live or die by Core Web Vitals — every 100ms of extra LCP measurably hurts conversion at scale. Custom fonts are one of the most common LCP regressions because they block the largest visible text from rendering until the file loads.

Three rules of thumb:

  • Total font weight under 100KB. One regular plus one bold weight in WOFF2 should land in that envelope. If your total is north of 200KB you're paying a real LCP penalty for a font most of your visitors won't consciously notice.
  • Always include WOFF2. WOFF2 covers ~97% of modern traffic and is roughly 30% smaller than WOFF for the same glyph set. Skipping it because “the foundry sent us TTF” leaves real money on the table — you can convert TTF→WOFF2 with google/woff2 or any online converter.
  • Always use font-display: swap.Without it the browser invisibly stalls text rendering until the font arrives. With it, the system fallback paints first, and your custom font swaps in once it's ready — with size-adjust matching you can keep the swap from causing layout shift.

3. Verify the license actually allows ecommerce use

Most foundries split licensing into desktop (use in design software), web (embed on your own site), and app/server (broader redistribution). For a Shopify store you need a web license at minimum. Some web licenses are also tiered by monthly pageviews — if your store does 500K monthly pageviews and you bought a 100K-tier license, you're technically out of compliance.

Two clean paths:

  • Google Fonts are released under SIL Open Font License. You can self-host the WOFF2 files in your theme without restriction, including for commercial use.
  • Marketplaces with commercial licenses included.

    Don't have a font yet? Creative Fabrica has 30,000+ web fonts with commercial licenses included — drop one into the @font-face block above and you're live. (affiliate)

    ships every web font with a commercial license bundled, which removes the tier-by-pageview math entirely.

If you're buying directly from a foundry, read their EULA. The thirty seconds it takes is far cheaper than a takedown notice three months in.

4. Pick the minimum number of weights you actually need

Each weight is a separate file. Loading the full 100→900 family is a 600KB+ regression for almost no visible benefit on a storefront — most pages use Regular (400) for body and Semi Bold (600) or Bold (700) for headings. That's it.

Audit your existing storefront before installing: which weights does the theme actually use today? Match those, plus an italic if you have body copy with emphasis. Skip the rest until you need them.

5. Pair your heading and body fonts (or use one for both)

You have two reasonable options:

  • One face for everything. Pick a typeface with enough range — at least 400 + 700, ideally a full 100→900 superfamily — and use it for both. Cleanest performance budget, fewest decisions, hardest to mess up.
  • Display for headings, neutral for body. A high-personality display face for H1 / H2 paired with a neutral sans (Inter, Public Sans) for paragraph and product copy. The body face does the legibility work; the display face does the brand work.

Don't pair two display faces. Don't pair two faces from the same category (two geometric sans look almost identical and you've doubled your file weight for no visual gain).

6. Multilingual stores need extra care

If your store ships in more than English, check the font's glyph coverage before you commit. A face designed for Latin scripts often falls back to the system font for Cyrillic, Greek, CJK, or Arabic — which means your Polish or Korean storefront looks visually inconsistent compared to the English version.

Google's Noto family is built for multilingual coverage. IBM Plex and Inter both have Cyrillic and Greek subsets. For CJK you almost always need a different face entirely — load it conditionally per locale rather than shipping it to your English visitors.

Once you've picked, install it cleanly

The Shopifont generator outputs the three code blocks Shopify expects — @font-face CSS with the Liquid asset_url filter, the settings_schema.json snippet, and the CSS variable overrides — for any font you pick. If it doesn't work out, the uninstall guide walks through the clean reversal in five steps.