{"id":701678,"date":"2018-06-12T14:00:21","date_gmt":"2018-06-12T12:00:21","guid":{"rendered":"https:\/\/wp-rocket.me\/?p=701678"},"modified":"2024-07-05T10:50:36","modified_gmt":"2024-07-05T08:50:36","slug":"guide-web-font-optimization","status":"publish","type":"post","link":"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/","title":{"rendered":"A Guide to Web Font Optimization"},"content":{"rendered":"<p>Typography is fundamental to good web design \u2013 readability, legibility, accessibility and well-crafted branding are crucial in successfully delivering your message. Webfonts enable all of this, allowing text to be selectable, searchable and zoomable, while at the same time providing consistent and sharp rendering regardless of screen size and resolution.<\/p><p>However, this improved user experience can come at a performance cost: each font you use is an additional resource that visitors must download when accessing your site, adding to the time it takes to load your pages.<\/p><p>But using web fonts doesn\u2019t mean your pages have to be slow. In fact, using optimized fonts together with a prudent strategy for how they are loaded and applied to your site can help reduce total page size and improve page speed. What&#8217;s more, <a href=\"https:\/\/wp-rocket.me\/google-core-web-vitals-wordpress\/\">optimizing web fonts will improve the Core Web Vitals grades<\/a> &#8211; in particular, the <a href=\"https:\/\/wp-rocket.me\/google-core-web-vitals-wordpress\/improve-cumulative-layout-shift\/\">CLS metric<\/a>.<\/p><h2 class=\"wp-block-heading\">What Are Web Fonts?<\/h2><p>There are two basic types of fonts used on the web:<\/p><ul class=\"wp-block-list\"><li><strong>Web-safe fonts<\/strong>: These are standard fonts that come pre-installed on devices, including as Times New Roman, Arial, and Courier.<\/li>\n\n<li><strong>Webfonts<\/strong>: These are fonts that are not pre-installed and must be downloaded by the browser before they are displayed.<\/li><\/ul><p>To the casual eye, webfonts are a collection of letters of the alphabet, at least to us English speakers. But delve deeper and they are actually a collection of glyphs, and each glyph is a vector shape that describes a letter or symbol in many languages, not just English.<\/p><p>Two variables determine the size of a particular font file: the complexity of the vector paths of each glyph and the number of glyphs in a particular font. For example, Open Sans, a popular webfont, contains 897 glyphs, including Latin, Greek and Cyrillic characters.<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/open-sans.jpg\" alt=\"\" class=\"wp-image-701709\"\/><\/figure><\/div><p class=\"has-text-align-center aligncenter\">&nbsp;<em>Open Sans contains hundreds of glyphs.<\/em><\/p><h2 class=\"wp-block-heading\">Hosting and Delivering Web Fonts<\/h2><p>When you choose to use a web font, it has to be stored somewhere. There are two options for hosting web fonts:<\/p><ul class=\"wp-block-list\"><li><strong>Self-hosting<\/strong>: Hosting font resources on your web server together with the rest of your website files.<\/li>\n\n<li><strong>Third-party hosting<\/strong>: Using a font service like Adobe Typekit, Fonts.com or Google Fonts.<\/li><\/ul><p>There are advantages and disadvantages that come with each of these options. While using a third-party solution might be simpler to set up, it means you have no control over performance and security, or even if the service goes down. In 2015 when <a href=\"https:\/\/www.wired.co.uk\/article\/typekit-down-fontpocalypse\" target=\"_blank\" rel=\"noopener noreferrer\">Typekit\u2019s servers crashed<\/a>, sites the world over were forced to make do with Arial and Georgia.<\/p><p>But if you\u2019re not concerned about outages \u2013 Typekit was only down for four hours \u2013 speed or delivery, third-party hosting might be your preferred option if you don\u2019t want to deal with self-hosting font resources.<\/p><h2 class=\"wp-block-heading\">Tips for Optimizing Fonts<\/h2><p>Web font optimization is a complex topic and there are many different ways to optimize the delivery of fonts. Exactly how you optimize your fonts will depend on your hosting preferences, your site\u2019s design and server, your technical abilities, and how far you are willing to go to improve the performance of your fonts.<\/p><p>Before getting started optimizing your fonts, it\u2019s a good idea to know exactly how many you\u2019re using. An easy way to do this is to run your website through speed testing tools, like <a href=\"https:\/\/wp-rocket.me\/blog\/page-speed-benchmark-wordpress-site\/\" target=\"_blank\" rel=\"noopener noreferrer\">GTmetrix<\/a><a href=\"https:\/\/wp-rocket.me\/blog\/page-speed-benchmark-wordpress-site\/\" target=\"_blank\" rel=\"noopener noreferrer\"> or Pingdom<\/a>, so you can analyze the resulting waterfall chart and view your HTTP requests. Sometimes, plugins and themes might be using fonts that you\u2019re not aware of.<\/p><p>Here are some steps you can take to optimize the delivery of your fonts.<\/p><h3 class=\"wp-block-heading\">1. Audit and Monitor Font Use<\/h3><p>With browser support for the CSS @font-face rule now widespread, the use of custom webfonts has exploded. According to the HTTP Archive, <a href=\"https:\/\/httparchive.org\/reports\/state-of-the-web?start=latest#fonts\" target=\"_blank\" rel=\"noopener noreferrer\">67% of web pages now use custom fonts<\/a>, with websites averaging a median of four font HTTP requests.<\/p><p>The jury\u2019s out on exactly how many fonts is too many, though the general rule of thumb is that <a href=\"https:\/\/engageinteractive.co.uk\/blog\/how-many-fonts-is-too-many-fonts\" target=\"_blank\" rel=\"noopener noreferrer\">three\u2019s a crowd and it\u2019s best to stick with two<\/a> \u2013 one for your headings and one for body copy.<\/p><p>Not only does minimizing the number of webfonts you use help reduce the overall number of HTTP requests, it also ensures a more streamlined and consistent site design. Take <a href=\"https:\/\/www.lingscars.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">LINGsCARS<\/a>, for instance. It has so many fonts and other ridiculous elements it makes me want to scratch my eyes out. Fortunately, it uses only web safe fonts to make it load faster.<\/p><p>It\u2019s also important to take into account variations, such as italics, bold and other weights. Each font variations add weight to the file size, so try to avoid adding those you\u2019re not planning to use.<\/p><h3 class=\"wp-block-heading\">2. Subset Font Resources<\/h3><p>Unless you provide translations across your site, it\u2019s best to keep character sets to a minimum. This means only delivering characters for the languages you need.<\/p><p>As Google Web Perf Guru Ilya Grigorik explains, many fonts can be subset or even split into multiple Unicode ranges to deliver only the characters needed for a particular page. Using @font-face, you can use the <a href=\"http:\/\/www.w3.org\/TR\/css-fonts-3\/#descdef-unicode-range\" target=\"_blank\" rel=\"noopener noreferrer\">Unicode-range descriptor<\/a> to specify a list of range values, which can be set out in three different forms:<\/p><ul class=\"wp-block-list\"><li><strong>Single codepoint (for example, U+416)<\/strong>: indicates a single character.<\/li>\n\n<li><strong>Interval range (for example, U+400-4ff)<\/strong>: indicates the start and end codepoints of a range of characters.<\/li>\n\n<li><strong>Wildcard range (for example, U+4??)<\/strong>: ? characters indicate any hexadecimal digit.<\/li><\/ul><p>For example, here\u2019s how you would split the Awesome Font family into Latin and Japanese subsets, each of which the browser would download as-needed by the user:<\/p><div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-css code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-css code-embed-code\">@font-face {<br\/>font-family: &#039;Awesome Font&#039;;<br\/>font-style: normal;<br\/>font-weight: 400;<br\/>src: local(&#039;Awesome Font&#039;),<br\/>url(&#039;\/fonts\/awesome-l.woff2&#039;) format(&#039;woff2&#039;),<br\/>url(&#039;\/fonts\/awesome-l.woff&#039;) format(&#039;woff&#039;),<br\/>url(&#039;\/fonts\/awesome-l.ttf&#039;) format(&#039;truetype&#039;),<br\/>url(&#039;\/fonts\/awesome-l.eot&#039;) format(&#039;embedded-opentype&#039;);<br\/>unicode-range: U 000-5FF; \/* Latin glyphs *\/<br\/>}<br\/><br\/>@font-face {<br\/>font-family: &#039;Awesome Font&#039;;<br\/>font-style: normal;<br\/>font-weight: 400;<br\/>src: local(&#039;Awesome Font&#039;),<br\/>url(&#039;\/fonts\/awesome-jp.woff2&#039;) format(&#039;woff2&#039;),<br\/>url(&#039;\/fonts\/awesome-jp.woff&#039;) format(&#039;woff&#039;),<br\/>url(&#039;\/fonts\/awesome-jp.ttf&#039;) format(&#039;truetype&#039;),<br\/>url(&#039;\/fonts\/awesome-jp.eot&#039;) format(&#039;embedded-opentype&#039;);<br\/>unicode-range: U 3000-9FFF, U ff??; \/* Japanese glyphs *\/<br\/>}<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div><p>Grigorik says when defining subsets, it\u2019s important to optimize for font reuse. For instance, don\u2019t download a different by overlapping set of characters on each page. It\u2019s good practice to subset based on a script, such as Latin, Cyrillic, etc.<\/p><p>If the sole purpose of a Google webfont is for displaying your site title, here\u2019s a tip: only download the specific characters used in the title. You can do this by adding &amp;text= followed by the specific letters you wish to download to the end of a Google Fonts URL.<\/p><p>For example, if you want to load the word Blog using Montserrat, you would do so using the following:<\/p><div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-markup code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-markup code-embed-code\">&lt;link href=&#039;\/\/fonts.googleapis.com\/css?family=Montserrat&amp;text=Blog&#039; rel=&#039;stylesheet&#039;&gt;<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div><p>This link tells the Google Fonts CDN to deliver only the uppercase letter B and the lowercase letters l, o, and g, while ignoring all other characters.<\/p><h3 class=\"wp-block-heading\">3. Deliver optimized font formats to each browser<\/h3><p>There are four font container formats in use on the web: EOT, TTF, WOFF and WOFF2.<\/p><ul class=\"wp-block-list\"><li><strong>Embedded Open Type (EOT)<\/strong>: Microsoft designed this format, which is now only used by IE browsers.<\/li>\n\n<li><strong>True Type Font (TTF)<\/strong>: A format that\u2019s been around since the late 1980s that has partial IE support.<\/li>\n\n<li><strong>Web Open Font Format (WOFF)<\/strong>: A format developed in 2009, which is essentially OpenType or TrueType with compression and additional metadata. It enjoys widespread support but is not available in some older browser.<\/li>\n\n<li><strong>Web Open Font Format (WOFF2)<\/strong>: An improvement on WOFF that provides, on average, a 30% reduction in file size. Support is still a work in progress for many browsers.<\/li><\/ul><p>Unfortunately, there isn\u2019t a single format that works in all browsers, which means you need to deliver multiple formats. When deciding exactly which formats to use, it\u2019s helpful to check your Google Analytics to see which browsers and devices are most popular amongst your visitors.<\/p><p>If your visitors are mostly using modern browsers, you could get away with specifying just two formats, like so:<\/p><div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-css code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-css code-embed-code\">@font-face {<br\/>font-family: &#039;Montserrat&#039;;<br\/>src: local(&#039;Montserrat&#039;), local(&#039;Montserrat&#039;),<br\/>url(&#039;fonts\/Montserrat.woff2&#039;) format(&#039;woff2&#039;),<br\/>url(&#039;fonts\/Montserrat.woff&#039;) format(&#039;woff&#039;);<br\/>}<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div><p>The first format, WOFF2, gives you the advantage of extra compression. It browser don\u2019t support WOFF2, it falls back on WOFF, which also has good compression along with support across the latest versions of all major browsers. However, there\u2019s lack of support for Opera Mini, IE8 and older Android browsers. While this might be a concern, these browsers would automatically default to web safe fonts.<\/p><h3 class=\"wp-block-heading\">4. Give Precedence to local() in src List<\/h3><p>While you\u2019d expect a site visitor to have web safe fonts pre-installed on their computer, it\u2019s impossible to predict whether they already have a particular webfont. Take me, for instance. I have dozens of webfonts installed on my computer, so when I visit websites it doesn\u2019t make sense that I should have to download a webfont I already have.<\/p><p>Another drawback is that a blank space (Flash of Invisible Text, aka FOIT) or unstyled text (Flash of Unstyled Content, aka FOUC), is displayed as the font is loaded into the browser. This is absolutely unnecessary for users who already have the font locally installed on their computer.<\/p><p>The way to get around this is quite simple: use local() to check if a font is already on the user\u2019s system. Listing local(&#8216;Font Name&#8217;) first in your src list ensures that HTTP requests aren\u2019t made for fonts that already exist.<\/p><h3 class=\"wp-block-heading\">5. Put the Font Request Early<\/h3><p>By default, @font-face lazy loads fonts. This means font requests are delayed until after your page content is loaded. This is a good thing as far as speed and performance are concerned, and if you appreciate progressive enhancement techniques.<\/p><p>But if the user experience is a priority and you don\u2019t like the jarring experience of FOIT, you might want to override this behavior for particular fonts, such as your title text, for instance.<\/p><p>You can customize font loading and rendering using <a href=\"https:\/\/developers.google.com\/web\/fundamentals\/performance\/resource-prioritization\" target=\"_blank\" rel=\"noopener noreferrer\">&lt;link rel=&#8221;preload&#8221;&gt;<\/a>, <a href=\"https:\/\/css-tricks.com\/font-display-masses\/\" target=\"_blank\" rel=\"noopener noreferrer\">font-display<\/a>, or the <a href=\"https:\/\/drafts.csswg.org\/css-font-loading\/\" target=\"_blank\" rel=\"noopener noreferrer\">Font Loading API<\/a>.<\/p><p>&lt;link rel=&#8221;preload&#8221;&gt; tells the browser that a font is going to be needed soon, but doesn\u2019t say how to use it. Here\u2019s <a href=\"https:\/\/developers.google.com\/web\/fundamentals\/performance\/optimizing-content-efficiency\/webfont-optimization#preload_your_webfont_resources\" target=\"_blank\" rel=\"noopener noreferrer\">how to use it<\/a>:<\/p><p>HTML:<\/p><div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-markup code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-markup code-embed-code\">&lt;head&gt;<br\/>&lt;!-- Other tags... --&gt;<br\/>&lt;link rel=&quot;preload&quot; href=&quot;\/fonts\/awesome-l.woff2&quot; as=&quot;font&quot;&gt;<br\/>&lt;\/head&gt;<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div><p>CSS:<\/p><div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-css code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-css code-embed-code\">@font-face {<br\/>font-family: &#039;Awesome Font&#039;;<br\/>font-style: normal;<br\/>font-weight: 400;<br\/>src: local(&#039;Awesome Font&#039;),<br\/>url(&#039;\/fonts\/awesome-l.woff2&#039;) format(&#039;woff2&#039;), \/* will be preloaded *\/<br\/>url(&#039;\/fonts\/awesome-l.woff&#039;) format(&#039;woff&#039;),<br\/>url(&#039;\/fonts\/awesome-l.ttf&#039;) format(&#039;truetype&#039;),<br\/>url(&#039;\/fonts\/awesome-l.eot&#039;) format(&#039;embedded-opentype&#039;);<br\/>unicode-range: U 000-5FF; \/* Latin glyphs *\/<br\/>}<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div><p>In general, it\u2019s best to put your @font-face declaration above all &lt;script&gt; tags.<\/p><p>For more on how to use font-display, check out CSS-Tricks\u2019s <a href=\"https:\/\/css-tricks.com\/font-display-masses\/\" target=\"_blank\" rel=\"noopener noreferrer\">`font-display` for the Masses<\/a>.<\/p><h3 class=\"wp-block-heading\">6. Proper Caching is a Must<\/h3><p>Since fonts are static resources that aren\u2019t frequently updated, they can be cached locally in the browser, saving users having to download your fonts again the next time they access your site. This way, the amount of data the user\u2019s browser has to download, as well as the number of HTTP requests, are reduced.<\/p><p>Google\u2019s Web Fundamentals guide recommends making sure your servers provide a long-lived max-age timestamp and a revalidation token to allow for efficient font reuse between different pages on your site. You should also avoid storing fonts using <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Window\/localStorage\" target=\"_blank\" rel=\"noopener noreferrer\">localStorage<\/a> or <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/IndexedDB_API\" target=\"_blank\" rel=\"noopener noreferrer\">IndexedDB<\/a> since each of these has its own set of performance issues.<\/p><p>Note that browser caching can only be applied to fonts you serve from your own domain or CDN &#8211; you don\u2019t have control over the browser caching of fonts served from 3rd parties, like Google Fonts etc.<\/p><div id=\"om-nyrydv5iync8zrrulm5i-holder\"><\/div>\n\t<script>(function (d, u, ac) {\n\t\t\tvar s = d.createElement('script')\n\t\t\ts.type = 'text\/javascript'\n\t\t\ts.src = 'https:\/\/a.omappapi.com\/app\/js\/api.min.js'\n\t\t\ts.async = true\n\t\t\ts.dataset.user = u\n\t\t\ts.dataset.campaign = ac\n\t\t\td.getElementsByTagName('head')[0].appendChild(s)\n\t\t})(document, 20440, 'nyrydv5iync8zrrulm5i')<\/script><h2 class=\"wp-block-heading\">Conclusion<\/h2><p>As I mentioned earlier, webfont optimization is a hugely complex topic. There are so many techniques you could employ to better deliver your fonts, and this article only scratches the surface. So I encourage you to learn more and work out which optimization methods work best for you and your website. By optimizing web fonts, it&#8217;s likely you&#8217;ll also improve the Cumulative Layout Shift, one of the Core Web Vitals scores.<\/p><p>Here are some additional webfont optimization resources.<\/p><ul class=\"wp-block-list\"><li><a href=\"https:\/\/developers.google.com\/web\/fundamentals\/performance\/optimizing-content-efficiency\/webfont-optimization\" target=\"_blank\" rel=\"noopener noreferrer\">Web Font Optimization<\/a> &#8211; Google Web Fundamentals<\/li>\n\n<li><a href=\"https:\/\/varvy.com\/pagespeed\/web-font-options.html\" target=\"_blank\" rel=\"noopener noreferrer\">Webfont Options and Speed<\/a> &#8211; varvy.com<\/li>\n\n<li><a href=\"https:\/\/medium.com\/@francis.john\/web-font-optimization-at-nerdwallet-6a447be9b570\" target=\"_blank\" rel=\"noopener noreferrer\">Web Font Optimization<\/a> &#8211; NerdWallet<\/li>\n\n<li><a href=\"https:\/\/www.keycdn.com\/blog\/web-font-performance\" target=\"_blank\" rel=\"noopener noreferrer\">Case Study \u2013 Analyzing Web Font Performance<\/a> &#8211; KeyCDN<\/li>\n\n<li><a href=\"https:\/\/kinsta.com\/blog\/web-font-optimization\/\" target=\"_blank\" rel=\"noopener noreferrer\">A Guide on Web Font Optimization in WordPress<\/a> &#8211; Kinsta<\/li><\/ul><p><em>How many fonts do you use? Have you considered webfont optimization? Leave a comment below!<\/em><\/p>","protected":false},"excerpt":{"rendered":"<p>Typography is fundamental to good web design but can have a negative impact on performance. Learn how to better optimize the delivery of your fonts in this comprehensive, hands-on guide.<\/p>\n","protected":false},"author":47285,"featured_media":1520174,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"kia_subtitle":"","footnotes":""},"categories":[63],"tags":[],"class_list":["post-701678","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress-cache"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>A Guide to Web Font Optimization<\/title>\n<meta name=\"description\" content=\"Learn how to better optimize the delivery of your fonts in this comprehensive, hands-on guide.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Guide to Web Font Optimization\" \/>\n<meta property=\"og:description\" content=\"Learn how to better optimize the delivery of your fonts in this comprehensive, hands-on guide.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/\" \/>\n<meta property=\"og:site_name\" content=\"WP Rocket\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/pages\/WP-Rocket\/631942253526829\" \/>\n<meta property=\"article:published_time\" content=\"2018-06-12T12:00:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-05T08:50:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/typography-feature-image-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1100\" \/>\n\t<meta property=\"og:image:height\" content=\"460\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Raelene Morey\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@wp_rocket\" \/>\n<meta name=\"twitter:site\" content=\"@wp_rocket\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Raelene Morey\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/\"},\"author\":{\"name\":\"Raelene Morey\",\"@id\":\"https:\/\/wp-rocket.me\/#\/schema\/person\/916d553a975868ce90654f343fa25d73\"},\"headline\":\"A Guide to Web Font Optimization\",\"datePublished\":\"2018-06-12T12:00:21+00:00\",\"dateModified\":\"2024-07-05T08:50:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/\"},\"wordCount\":1925,\"commentCount\":5,\"publisher\":{\"@id\":\"https:\/\/wp-rocket.me\/#organization\"},\"image\":{\"@id\":\"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/typography-feature-image-1.jpg\",\"articleSection\":[\"Page speed and caching\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/\",\"url\":\"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/\",\"name\":\"A Guide to Web Font Optimization\",\"isPartOf\":{\"@id\":\"https:\/\/wp-rocket.me\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/typography-feature-image-1.jpg\",\"datePublished\":\"2018-06-12T12:00:21+00:00\",\"dateModified\":\"2024-07-05T08:50:36+00:00\",\"description\":\"Learn how to better optimize the delivery of your fonts in this comprehensive, hands-on guide.\",\"breadcrumb\":{\"@id\":\"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/#primaryimage\",\"url\":\"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/typography-feature-image-1.jpg\",\"contentUrl\":\"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/typography-feature-image-1.jpg\",\"width\":1100,\"height\":460,\"caption\":\"Web Fonts Optimization - Typography on Green Background\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/wp-rocket.me\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Page speed and caching\",\"item\":\"https:\/\/wp-rocket.me\/blog\/wordpress-cache\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"A Guide to Web Font Optimization\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/wp-rocket.me\/#website\",\"url\":\"https:\/\/wp-rocket.me\/\",\"name\":\"WP Rocket\",\"description\":\"Plugin d&#039;optimisation de sites WordPress\",\"publisher\":{\"@id\":\"https:\/\/wp-rocket.me\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/wp-rocket.me\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/wp-rocket.me\/#organization\",\"name\":\"WP Rocket\",\"url\":\"https:\/\/wp-rocket.me\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/wp-rocket.me\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/logo-wp-rocket-paypal-2.png\",\"contentUrl\":\"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/logo-wp-rocket-paypal-2.png\",\"width\":150,\"height\":41,\"caption\":\"WP Rocket\"},\"image\":{\"@id\":\"https:\/\/wp-rocket.me\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/pages\/WP-Rocket\/631942253526829\",\"https:\/\/x.com\/wp_rocket\",\"https:\/\/www.youtube.com\/channel\/UC1ozThXHd1IWIZ5wkshgp_Q\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/wp-rocket.me\/#\/schema\/person\/916d553a975868ce90654f343fa25d73\",\"name\":\"Raelene Morey\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/wp-rocket.me\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/fa33964c6065acf9d0348d177213ec83?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/fa33964c6065acf9d0348d177213ec83?s=96&d=mm&r=g\",\"caption\":\"Raelene Morey\"},\"description\":\"Raelene Morey is the Co-Founder of Words By Birds, a digital writing agency that helps busy WordPress with writing articles, content strategies, lead magnets and other word-related things. A former journalist and editor, Raelene has been developing WordPress sites for over 10 years.\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A Guide to Web Font Optimization","description":"Learn how to better optimize the delivery of your fonts in this comprehensive, hands-on guide.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/","og_locale":"en_US","og_type":"article","og_title":"A Guide to Web Font Optimization","og_description":"Learn how to better optimize the delivery of your fonts in this comprehensive, hands-on guide.","og_url":"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/","og_site_name":"WP Rocket","article_publisher":"https:\/\/www.facebook.com\/pages\/WP-Rocket\/631942253526829","article_published_time":"2018-06-12T12:00:21+00:00","article_modified_time":"2024-07-05T08:50:36+00:00","og_image":[{"width":1100,"height":460,"url":"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/typography-feature-image-1.jpg","type":"image\/jpeg"}],"author":"Raelene Morey","twitter_card":"summary_large_image","twitter_creator":"@wp_rocket","twitter_site":"@wp_rocket","twitter_misc":{"Written by":"Raelene Morey","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/#article","isPartOf":{"@id":"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/"},"author":{"name":"Raelene Morey","@id":"https:\/\/wp-rocket.me\/#\/schema\/person\/916d553a975868ce90654f343fa25d73"},"headline":"A Guide to Web Font Optimization","datePublished":"2018-06-12T12:00:21+00:00","dateModified":"2024-07-05T08:50:36+00:00","mainEntityOfPage":{"@id":"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/"},"wordCount":1925,"commentCount":5,"publisher":{"@id":"https:\/\/wp-rocket.me\/#organization"},"image":{"@id":"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/#primaryimage"},"thumbnailUrl":"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/typography-feature-image-1.jpg","articleSection":["Page speed and caching"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/","url":"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/","name":"A Guide to Web Font Optimization","isPartOf":{"@id":"https:\/\/wp-rocket.me\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/#primaryimage"},"image":{"@id":"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/#primaryimage"},"thumbnailUrl":"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/typography-feature-image-1.jpg","datePublished":"2018-06-12T12:00:21+00:00","dateModified":"2024-07-05T08:50:36+00:00","description":"Learn how to better optimize the delivery of your fonts in this comprehensive, hands-on guide.","breadcrumb":{"@id":"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/#primaryimage","url":"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/typography-feature-image-1.jpg","contentUrl":"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/typography-feature-image-1.jpg","width":1100,"height":460,"caption":"Web Fonts Optimization - Typography on Green Background"},{"@type":"BreadcrumbList","@id":"https:\/\/wp-rocket.me\/blog\/guide-web-font-optimization\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wp-rocket.me"},{"@type":"ListItem","position":2,"name":"Page speed and caching","item":"https:\/\/wp-rocket.me\/blog\/wordpress-cache\/"},{"@type":"ListItem","position":3,"name":"A Guide to Web Font Optimization"}]},{"@type":"WebSite","@id":"https:\/\/wp-rocket.me\/#website","url":"https:\/\/wp-rocket.me\/","name":"WP Rocket","description":"Plugin d&#039;optimisation de sites WordPress","publisher":{"@id":"https:\/\/wp-rocket.me\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wp-rocket.me\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/wp-rocket.me\/#organization","name":"WP Rocket","url":"https:\/\/wp-rocket.me\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wp-rocket.me\/#\/schema\/logo\/image\/","url":"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/logo-wp-rocket-paypal-2.png","contentUrl":"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/logo-wp-rocket-paypal-2.png","width":150,"height":41,"caption":"WP Rocket"},"image":{"@id":"https:\/\/wp-rocket.me\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/pages\/WP-Rocket\/631942253526829","https:\/\/x.com\/wp_rocket","https:\/\/www.youtube.com\/channel\/UC1ozThXHd1IWIZ5wkshgp_Q"]},{"@type":"Person","@id":"https:\/\/wp-rocket.me\/#\/schema\/person\/916d553a975868ce90654f343fa25d73","name":"Raelene Morey","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wp-rocket.me\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/fa33964c6065acf9d0348d177213ec83?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fa33964c6065acf9d0348d177213ec83?s=96&d=mm&r=g","caption":"Raelene Morey"},"description":"Raelene Morey is the Co-Founder of Words By Birds, a digital writing agency that helps busy WordPress with writing articles, content strategies, lead magnets and other word-related things. A former journalist and editor, Raelene has been developing WordPress sites for over 10 years."}]}},"_links":{"self":[{"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/posts\/701678"}],"collection":[{"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/users\/47285"}],"replies":[{"embeddable":true,"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/comments?post=701678"}],"version-history":[{"count":0,"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/posts\/701678\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/media\/1520174"}],"wp:attachment":[{"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/media?parent=701678"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/categories?post=701678"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/tags?post=701678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}