Skip to main content

Guide to host fonts on a CDN

Learn how to host web fonts on a Content Delivery Network (CDN) to improve performance, scalability, and reliability while remaining compliant with your font licenses.

Written by Supriya Bisht

This article is adapted from Monotype's “How to host fonts on a CDN: step-by-step guide.” article.

A Content Delivery Network (CDN) is a distributed network of servers that delivers assets from locations closest to website visitors. Hosting font files on a CDN can:

  • Improve font loading performance globally

  • Reduce latency and page load times

  • Lower bandwidth demand on origin servers

  • Support better Core Web Vitals scores (through more efficient font rendering and caching)

  • Provide reliable and scalable font delivery

Important: CDN hosting does not automatically mean you can distribute font files publicly. Always ensure your hosting method complies with your Monotype font licensing (EULA).


Before you begin

Verify that your font license permits web use and the delivery model you intend to use.

Common delivery models

Delivery method

Description

License posture

Monotype font delivery service

Monotype-operated web font delivery (authorized embed or product CDN)

Covered when your agreement includes Monotype delivery

Self-hosting / Authorized Hosting Provider

You serve fonts from infrastructure you control or an approved third-party service.

Often permitted under a standard Monotype web font license when delivery stays within that scope

Public CDN distribution

Fonts are published on open CDNs or package repositories.

This is generally not permitted for commercial Monotype font software.

A desktop license does not grant permission for website font delivery. Use a valid web font license and review your agreement for reporting or tracking requirements.


Steps to get your licensed fonts on CDN

The steps below focus on self-hosting via your own origin or an authorized host provider. They are not instructions for publishing commercial Monotype font software on a public open CDN.

See also: Monotype Font Delivery vs. Self-Hosting in the reference repository.

Prerequisite: Before you start, know which license you have, Desktop, Standard web font, Monotype web font, or Monotype font delivery. Your license decides which steps below apply to you.

Match your license to a delivery path

A desktop license doesn't cover browser delivery. Self-hosting on infrastructure you control (including an authorized host CDN scoped to your domains) is usually fine. However, a public, open CDN is not recommended.


Seven steps to a compliant, fast setup

Step 1: Confirm your license covers this delivery

Check whether your license allows web embedding and the delivery method you're planning, including any usage reporting or tracking-script requirement for self-hosted fonts.

  • Covered: your own CDN or an authorized host, scoped to your licensed domains.

  • Not covered: a public or open CDN where unrelated sites can fetch the files.

Step 2: Optimize your font files

Serve WOFF2 as your primary format which is about 30% smaller than WOFF. Subset each file to only the characters and styles your site uses, and keep WOFF or TTF only as an optional fallback.

Step 3: Upload to your CDN

Choose infrastructure that matches your license, then upload optimized files to your storage or origin and point the CDN at them.

Approach

Best for

Status

Commercial CDN or static host you control (Cloudflare, CloudFront, Bunny, Azure)

Production sites that self-host

Scoped & covered

Monotype font delivery service

Foundry-operated delivery

If included in license

Public open CDN or package host (jsDelivr, unpkg)

Freely redistributable fonts

Not recommended

Step 4: Configure caching and compression

  • Set a long TTL with hashed filenames (up to one year for edge and browser caches)

  • Enable Gzip or Brotli for font MIME types such as font/woff2 and application/font-woff

  • Re-deploy when a file's hash changes for browsers to pick up the update

Step 5: Set up Cross-Origin Resource Sharing (CORS) headers

A missing or incorrect CORS header makes the browser drop the font silently. So, inspect DevTools → Network → Font and the rendered typeface, and not just the console.

Access-Control-Allow-Origin: https://www.yourdomain.com
  • Origin scoped to your licensed page origin — not*

  • Vary: Origin set when serving more than one origin

  • Fonts tested in multiple browsers after a cache purge

  • CDN cache invalidated after any header or file update

Step 6: Implement cache-busting with hashed filenames

Add a content hash to each updated filename, then update every @font-face reference to match.

@font-face {   font-family: 'BrandSans';   src: url('https://cdn.example.com/fonts/brand-sans-regular.a1b2c3.woff2') format('woff2');   font-weight: 400;   font-style: normal;   font-display: swap; }

Step 7: Add resource hints

Preconnect to your CDN early, then preload the font that renders above the fold.

<link rel="preconnect" href="https://cdn.example.com">
<link rel="preload" href="https://cdn.example.com/fonts/brand-sans-regular.a1b2c3.woff2" as="font" type="font/woff2" crossorigin="anonymous">

Warning

Don't publish commercial Monotype font files on a public or open CDN. Once they're there, any site can fetch them, regardless of your font license terms.

A compliant, fast setup checks your license and reporting requirements, optimizes and subsets your files, hosts them where your license allows, and adds caching, CORS, and resource hints on top.


Suggested readings

Did this answer your question?