10/06/2026
Self-Host Google Fonts: License, Speed and Setup
Short answer: you can serve a font from your own server, instead of linking to Google's, when the font's license allows web use. Fonts under the SIL Open Font License do. You download the font files, add them to your site and describe them in CSS with @font-face. Check the license shown for each individual font, because the license belongs to the font, not to the service.
Hosted by you or linked
Self-hosted
You control the files, the cache headers and the fallback. You do the updates and the license check.
Linked from the font service
Less to maintain. Visitors' browsers fetch from another host, and you depend on it being reachable.
What the license says
The Open Font License FAQ says that webfonts loaded dynamically with CSS @font-face declarations are a much better method than asking visitors to install a font. It also says the referenced fonts "can be hosted on the same server as other site assets and content, or loaded from a separate webfont service" (SIL Open Font License FAQ, version 1.1-update7, November 2023). The same FAQ says you may not sell the fonts on their own, and that a modified version cannot use a reserved font name.
That covers fonts released under the OFL. We did not check any individual font on this page, so read the license for the specific one you plan to host, and keep the copyright and license text that came with the download.
What changed about shared caching
Years ago, a common argument for linking a font from a shared address was that a visitor might already have it cached from another site. Chrome 86 changed the HTTP cache so that resources are no longer shared between sites. Chrome's announcement says services that serve "large volumes of highly cacheable resources across many sites (such as fonts and popular scripts)" may see more traffic (Chrome for Developers: HTTP cache partitioning, October 6, 2020). So a visitor to your site loads the font for your site either way. We have not measured the speed difference on a live site, so test your own pages before and after.
The setup
- Download the font files for the families and weights you use. Prefer the
woff2format. - Put them on your server, for example in
/fonts/. - Declare each one:
@font-face {
font-family: "Example Sans";
src: url("/fonts/example-sans-400.woff2") format("woff2");
font-weight: 400;
font-style: normal;
font-display: swap;
}
body {
font-family: "Example Sans", system-ui, sans-serif;
}
- Remove the old
<link>to the external stylesheet.
font-display: swap matters. MDN says it "gives the font face an extremely small block period and an infinite swap period", so text shows in a fallback font right away and switches when your font arrives (MDN: font-display, last modified September 10, 2026). The default, auto, leaves the choice to the browser.
What you take on
- Updates. A font you host does not update itself. If the designer releases a fix, you replace the file.
- Files. Each weight and style is another file. Ship only what the page uses.
- Your own caching. Serve the files with a long cache lifetime and a changed file name when you replace one.
FAQ
Can I self-host Google Fonts?
Yes, when the font's license allows web use. Fonts under the SIL Open Font License do. Check the license for the specific font and keep its notices.
Do shared font caches still speed up my site?
Not across sites in Chrome. Since Chrome 86 the HTTP cache is partitioned, so a font cached for another site is not reused for yours.
What does font-display swap do?
It shows text in a fallback font immediately and swaps in your font when it has loaded, instead of hiding the text for a period.
Researched and drafted with AI, then reviewed and edited by the site's editors.