{"id":15888,"date":"2022-06-30T12:29:56","date_gmt":"2022-06-30T12:29:56","guid":{"rendered":"https:\/\/newblog.siteground.com\/en\/?p=15888"},"modified":"2025-06-03T06:38:29","modified_gmt":"2025-06-03T06:38:29","slug":"leverage-browser-caching-in-wordpress","status":"publish","type":"post","link":"https:\/\/academy.siteground.com\/en\/leverage-browser-caching-in-wordpress\/","title":{"rendered":"How to Leverage Browser Caching in WordPress to Optimize Page Load Time"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Optimizing a website for speed is a never ending quest. There is always something you can tweak to shame milliseconds off each load. While that might not sound like a lot, each tweak ads up.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I\u2019ve talked about caching before, but that was all <a href=\"https:\/\/www.siteground.com\/kb\/what-is-cache\/\" data-type=\"URL\" data-id=\"https:\/\/www.siteground.com\/kb\/what-is-cache\/\">server-side caching<\/a>. That\u2019s the low-hanging fruit because you can control it a lot more and it will make a bigger overall difference.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once you\u2019ve plucked the low-hanging fruit though, there are still things you can do to speed things up. One of those things is taking advantage of browser caching.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"differences-between-browser-caching-and-server-caching\"><\/span><strong>Differences Between Browser Caching And Server Caching<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Previously we discussed <strong><a href=\"https:\/\/www.siteground.com\/kb\/what-is-cache\/\" data-type=\"URL\" data-id=\"https:\/\/www.siteground.com\/kb\/what-is-cache\/\">server-side caching<\/a><\/strong>. That is, saving off the results of expensive operations so that we don\u2019t execute them on every page load. API calls and complex database queries are good examples of things that should be cached server side. Our <a rel=\"noopener\" href=\"https:\/\/www.youtube.com\/watch?v=DYTE2qYboYQ\" target=\"_blank\">video on <strong>object caching<\/strong><\/a> can help you figure out this better:<\/p>\n\n\n\n<iframe width=\"560\" height=\"315\" data-cookieblock-src=\"https:\/\/www.youtube.com\/embed\/DYTE2qYboYQ?si=DR4wp2J--MP4u7Iu\" data-cookieconsent=\"marketing\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen=\"\"><\/iframe>\n\n\n\n<p class=\"wp-block-paragraph\">On the contrary, <strong>browser caching<\/strong> has nothing to do with \u201cexpensive operations\u201d and is all about reducing the actual number of bytes that are pulled across the wire each time someone loads a page from your website.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"what-is-browser-caching\"><\/span><strong>What Is Browser Caching?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">All modern browsers set aside a portion of your file system to temporarily store things. This is called its cache. Modern websites are made of a lot of different pieces of content:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>HTML<br><\/li><li>Images<br><\/li><li>CSS<br><\/li><li>JavaScript<br><\/li><li>Other media<br><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Some of these pieces of content are static<\/strong>, in that they never or rarely change. For example, your company\u2019s logo probably won\u2019t change often. Storing the graphic of your company\u2019s logo in the browser\u2019s cache means that\u2019s one less thing that has to actually be fetched from your server for your image to paint.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>How Browser Caching Works In WordPress<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When a user types a URL into a browser, it starts a conversation between the browser and the server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Browser: <\/strong>Hey, do you host this page?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Server:<\/strong> Yes, here\u2019s the HTML<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Browser:<\/strong> [Reads HTML and builds a list of the things it needs to request to display the page]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Browser:<\/strong> Ok, here\u2019s the list of other things I need to display the page<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Server:<\/strong> Here ya go&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Server:<\/strong> Here ya go&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Server:<\/strong> Here ya go&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The server keeps going until it has given the browser all the things it has requested. Sometimes these are small graphics, other times these are large JavaScript files or CSS files. Regardless of what they are, <strong>without browser caching, the browser has to ask for each and every one of these items<\/strong>, every time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What if a user is visiting your shop and browsing? They may click 5,10,15 pages. Most of the pieces of these pages are the same thing over and over again. Your base CSS, your JavaScript, your company\u2019s logo\u2026 never change between pages. But the browser has to ask for it each time and the server has to send it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Browser caching lets the browser decide to temporarily store some of these pieces<\/strong> and reuse them. This shortens the conversation between the browser and the server. After the server hands the browser the HTML of the page, the browser builds its list of things it needs to display the page. With browser caching, it then looks at the list of things it already has and strikes them from the list before continuing the discussion with the server.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"255\" src=\"https:\/\/academy.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/06\/inline-image_1480x368-1-1024x255.jpg\" alt=\"How browser caching works\" class=\"wp-image-15891\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Controlling The Browser Cache<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The problem is that <strong>browsers aren\u2019t that bright<\/strong>. Left to their own devices, they would simply cache everything and never request anything. While this would make the user experience very fast, eventually the browser would be showing the user old data.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Can you imagine your browser storing the current score of your favorite sports-ball match? No matter how much time passed or how many times you hit refresh, the score would never change because the browser has cached the score already.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So obviously <strong>we need some way to tell the browser what can and cannot be cached<\/strong>. Even for the things that can be cached, we want to tell the browser when it\u2019s no longer any good so it knows to ask for a new copy. <strong>For that, we use \u201cHeaders\u201d<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the conversation between the browser and the server, there is data that is passed both ways on each request, these are called <strong>\u201c<\/strong>headers<strong>\u201d<\/strong>. Users never see headers but they can affect the content that the user sees.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Servers send different headers to the browser<\/strong> to help it figure out what it can cache and where. There are several different headers and values that the server and browser can exchange to control caching- For the most part,<strong> it boils down to these 2<\/strong>:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">1. Cache-Control<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The Cache-Control header <strong>is the first one looked at by the browser<\/strong>. It tells the browser what it can do with the entity it just received. The most important possible values are:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>no-cache<\/strong><br>This tells the browser it\u2019s ok to cache this resource but it has to check with the server to make sure it has the most recent version.<br><\/li><li><strong>public<\/strong><br>This tells the browser &#8211; or an intermediary like a CDN &#8211; that it\u2019s ok to cache this resource.<br><\/li><li><strong>private<\/strong><br>This means that this is a cacheable resource but only by the browser. CDNs canc\u2019e cache this resource.&nbsp;<br><\/li><li><strong>no-store<\/strong><br>This tells the browser that this resource should never be cached.<br><\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">2. Expires<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">This header <strong>tells the browser when this resource should be considered \u201cstale\u201d<\/strong>. This means that after this date and time, the browser needs to request a new copy of the resource.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With these 2 headers, a browser can now make an intelligent decision about caching any given resource.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So really, the only thing <strong>we need to know now<\/strong> is <strong>how to set the headers that our server sends to a browser<\/strong>.<\/p>\n\n\n<p><\/p>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"how-to-leverage-browser-caching-in-wordpress\"><\/span><strong>How To Leverage Browser Caching In WordPress?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As with everything in WordPress, there\u2019s the hard way and the easy way to do it. The hard way is usually the way we used to do it before someone figured out the easy way. The hard way almost always involves editing a file manually and usually involves hiring a developer to help you. The easy way almost always involves installing and configuring a plugin.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Hard Way: Leveraging Browser Caching By Setting Caching Headers Manually<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If you are dead-set on doing things the hard way, this involves modifying a file in the root of your website named \u201c.htaccess\u201d.&nbsp; (The leading dot is important)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you open this file in an editor, you can add \u201cExpiresByType\u201d lines to define how long a specific type of resource should be cached.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For instance:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>ExpiresByType text\/css &#8220;access 1 month&#8221;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This tells the server to tell the browser that any given CSS resource can be cached in the browser\u2019s cache for 1 month before requesting a new copy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You need to make this decision for every type of resource that you serve and add a record into the file for it. This is a time-consuming process and you have to remember you did it this way in case you want to manually adjust the times.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here is a common set of headings you can use in your .htaccess file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&lt;IfModule mod_expires.c&gt;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&nbsp;&nbsp;ExpiresActive On<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&nbsp;&nbsp;ExpiresByType image\/jpg &#8220;access 1 year&#8221;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&nbsp;&nbsp;ExpiresByType image\/jpg &#8220;access 1 year&#8221;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&nbsp;&nbsp;ExpiresByType image\/gif &#8220;access 1 year&#8221;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&nbsp;&nbsp;ExpiresByType image\/png &#8220;access 1 year&#8221;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&nbsp;&nbsp;ExpiresByType text\/css &#8220;access 1 month&#8221;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&nbsp;&nbsp;ExpiresByType application\/pdf &#8220;access 1 month&#8221;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&nbsp;&nbsp;ExpiresByType application\/javascript &#8220;access 1 month&#8221;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&nbsp;&nbsp;ExpiresByType application\/x-javascript &#8220;access 1 month&#8221;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&nbsp;&nbsp;ExpiresByType application\/x-shockwave-flash &#8220;access 1 month&#8221;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&nbsp;&nbsp;ExpiresByType image\/x-icon &#8220;access 1 year&#8221;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&nbsp;&nbsp;ExpiresDefault &#8220;access 2 days&#8221;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&lt;\/IfModule&gt;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That covers most types of resources that your server will serve.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The upside to the hard way is that it gives you absolute control over the caching on the browser.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Personally, this is my preferred way to set caching headers. That having been said, I am a programmer and enjoy doing things the hard way. You may want to look at a plugin to leverage browser caching easily.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Easy Way: Leveraging Browser Caching Using A WordPress Plugin<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">As with everything in WordPress, \u201cthere\u2019s a plugin for that\u201d. Leveraging the browser cache is no exception. Many of the most popular caching plugins have options that you can use to fine-tune the browser cache headers. By default, WordPress will add \u201cCache-Control\u201d headers to all static resources (CSS, JS, etc) The plugins will add them to more than just that as well as give you more granular control.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>If SiteGround is your hosting partner, you don\u2019t need to worry about this<\/strong>. These headers are already configured for you. Nevertheless, <strong>If you are not yet hosting your WordPress site with SiteGround<\/strong>, you can <strong>use the<\/strong> <a href=\"https:\/\/www.siteground.com\/wordpress-plugins\/siteground-optimizer\" data-type=\"URL\" data-id=\"https:\/\/www.siteground.com\/wordpress-plugins\/siteground-optimizer\" target=\"_blank\" rel=\"noopener\"><strong>SiteGround Optimizer plugin<\/strong><\/a> to insert the caching headers into your .htaccess file for you.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you already have the SiteGround Optimizer plugin installed &#8211; and you should &#8211; Select the \u201c<strong>Environment<\/strong>\u201d menu option from the main menu or click on \u201c<strong>Go To Environment<\/strong>\u201d on the dashboard page.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/academy.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/06\/Screen-Shot-2022-04-27-at-18.19.37-1-1024x559-1.png\" alt=\"Leverage Browser Caching with SiteGround Optimizer Plugin\" class=\"wp-image-15893\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">There, you will find \u201c<strong>Browser Caching<\/strong>&#8221; in the middle of the page. Click the slider to green and you are good to go. This option won\u2019t be visible in the SiteGround Optimizer plugin installed on websites, hosted with us, because we manage this for our clients.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/academy.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/06\/Screenshot-2022-04-19-at-18.36.59-1-1024x168-1.png\" alt=\"Leverage browser caching functionality in SiteGround Optimizer plugin\" class=\"wp-image-15894\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"cache-busting\"><\/span>Cache Busting<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Regardless of how you set your cache headers, sometimes you want to tell the browser \u201cHey, I know I said hold on to this resource for a month, but I\u2019ve got a new copy and you need to ask for it.\u201d This is called \u201c<strong>Cache Busting<\/strong>\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In WordPress,<strong> the way we bust caches is to append a version number to the name of the file<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&lt;script src=\u201d\/js\/jquery.js\u201d \/&gt;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Regardless of how many times we update jquery.js, the browser isn\u2019t going to request a new copy until this one expires based on the rules we set. That is why most resources that are loaded in WordPress include a version number as part of the query string.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&lt;script src=\u201d\/js\/jquery.min.js?ver=3.6.0\u201d \/&gt;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The browser stores the complete file name <strong>jquery.min.js?ver=3.6.0 <\/strong>as the key for this resource. So if we change the ver= part, it thinks it\u2019s a new resource and requests it regardless of the status of the caching headers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&lt;script src=\u201d\/js\/jquery.min.js?ver=3.6.1\u201d \/&gt;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That\u2019s how we bust caches and request fresh resources even if the ones we have haven\u2019t expired.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"speed-results-after-leveraging-browser-caching\"><\/span>Speed Results After Leveraging Browser Caching<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">So does all of this make any difference? A lot of that depends on your other optimizations already implemented. For one of my production sites, I had<strong> implemented all the SG Optimizer plugin recommendations<\/strong>. This took me to a Google Page Score of 87.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/academy.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/06\/Screenshot-2022-04-06-131816.png\" alt=\"Google score of 87 without using SiteGround Optimizer\" class=\"wp-image-15895\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Then, I <strong>added the caching headers<\/strong> described above to my .htaccess file. This was the only change I made to the site. Now when I run SG Optimizer Speed Test, I get a score of 92!<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/academy.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/06\/Screenshot-2022-04-06-131612.png\" alt=\"Google Score of 92 after using SiteGround Optimizer to leverage browser caching in WordPress\" class=\"wp-image-15896\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">So yes, five points on Google Page Speed score was worth the 2 minutes it took me to leverage browser caching.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I hope your results are even better!<\/p>\n\n\n\n<div class=\"post-page__colored-blocks post-page__colored-blocks--tip\"><h3 class=\"title title--regular title--size-medium title--weight-bold color-darkest\">\ud83d\ude80 Get SiteGround Optimizer for FREE<\/h3><p class=\"text text--size-medium color-darkest\"><a href=\"https:\/\/www.siteground.com\/wordpress-plugins\/siteground-optimizer\" data-type=\"URL\" data-id=\"https:\/\/www.siteground.com\/wordpress-plugins\/siteground-optimizer\" target=\"_blank\" rel=\"noopener\">&#8211;&gt; Click here to learn more and download the plugin<\/a><\/p><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">[subscribe_cta]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Optimizing a website for speed is a never ending quest. There is always something you can tweak to shame milliseconds off each load. While that might not sound like a lot, each tweak ads up. I\u2019ve talked about caching before, but that was all server-side caching. That\u2019s the low-hanging fruit because you can control it &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/academy.siteground.com\/en\/leverage-browser-caching-in-wordpress\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;How to Leverage Browser Caching in WordPress to Optimize Page Load Time&#8221;<\/span><\/a><\/p>\n","protected":false},"author":35,"featured_media":15889,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-15888","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v28.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to Leverage Browser Caching in WordPress to Optimize Page Load Time - SiteGround Academy<\/title>\n<meta name=\"description\" content=\"Learn the easiest and most effective way to leverage browser caching in WordPress with the free plugin SiteGround Optimizer \ud83d\ude80\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/academy.siteground.com\/en\/leverage-browser-caching-in-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Leverage Browser Caching in WordPress to Optimize Page Load Time\" \/>\n<meta property=\"og:description\" content=\"Learn the easiest and most effective way to leverage browser caching in WordPress with the free plugin SiteGround Optimizer \ud83d\ude80\" \/>\n<meta property=\"og:url\" content=\"https:\/\/academy.siteground.com\/en\/leverage-browser-caching-in-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"SiteGround\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/siteground\" \/>\n<meta property=\"article:published_time\" content=\"2022-06-30T12:29:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-03T06:38:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/academy.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/06\/Blog_header_1200x628-1-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Cal Evans\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"How to Leverage Browser Caching in WordPress to Optimize Page Load Time\" \/>\n<meta name=\"twitter:description\" content=\"Learn the easiest and most effective way to leverage browser caching in WordPress with the free plugin SiteGround Optimizer \ud83d\ude80\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/academy.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/06\/Blog_header_1200x628-1-1.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@siteground\" \/>\n<meta name=\"twitter:site\" content=\"@siteground\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Cal Evans\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/leverage-browser-caching-in-wordpress\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/leverage-browser-caching-in-wordpress\\\/\"},\"author\":{\"name\":\"Cal Evans\",\"@id\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/#\\\/schema\\\/person\\\/ac2ec9d82232836e1c87de042cfea852\"},\"headline\":\"How to Leverage Browser Caching in WordPress to Optimize Page Load Time\",\"datePublished\":\"2022-06-30T12:29:56+00:00\",\"dateModified\":\"2025-06-03T06:38:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/leverage-browser-caching-in-wordpress\\\/\"},\"wordCount\":1929,\"commentCount\":8,\"publisher\":{\"@id\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/leverage-browser-caching-in-wordpress\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/06\\\/Blog_header_1200x628-2.jpg\",\"articleSection\":[\"WordPress\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/academy.siteground.com\\\/en\\\/leverage-browser-caching-in-wordpress\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/leverage-browser-caching-in-wordpress\\\/\",\"url\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/leverage-browser-caching-in-wordpress\\\/\",\"name\":\"How to Leverage Browser Caching in WordPress to Optimize Page Load Time - SiteGround Academy\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/leverage-browser-caching-in-wordpress\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/leverage-browser-caching-in-wordpress\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/06\\\/Blog_header_1200x628-2.jpg\",\"datePublished\":\"2022-06-30T12:29:56+00:00\",\"dateModified\":\"2025-06-03T06:38:29+00:00\",\"description\":\"Learn the easiest and most effective way to leverage browser caching in WordPress with the free plugin SiteGround Optimizer \ud83d\ude80\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/leverage-browser-caching-in-wordpress\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/academy.siteground.com\\\/en\\\/leverage-browser-caching-in-wordpress\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/leverage-browser-caching-in-wordpress\\\/#primaryimage\",\"url\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/06\\\/Blog_header_1200x628-2.jpg\",\"contentUrl\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/06\\\/Blog_header_1200x628-2.jpg\",\"width\":1200,\"height\":600,\"caption\":\"How to Leverage Browser Caching in WordPress\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/leverage-browser-caching-in-wordpress\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Leverage Browser Caching in WordPress to Optimize Page Load Time\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/\",\"name\":\"SiteGround Academy\",\"description\":\"The SiteGround academy provides a wide variety of tips, tools, and resources related to WordPress, web performance, website optimization and site security.\",\"publisher\":{\"@id\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/#organization\",\"name\":\"SiteGround\",\"url\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2025\\\/01\\\/Siteground-Logo-on-white.jpg\",\"contentUrl\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2025\\\/01\\\/Siteground-Logo-on-white.jpg\",\"width\":1200,\"height\":400,\"caption\":\"SiteGround\"},\"image\":{\"@id\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/siteground\",\"https:\\\/\\\/x.com\\\/siteground\",\"https:\\\/\\\/www.instagram.com\\\/siteground\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@siteground\"],\"description\":\"The SiteGround academy provides a wide variety of tips, tools, and resources related to WordPress, web performance, website optimization and site security.\",\"foundingDate\":\"2004-03-22\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"501\",\"maxValue\":\"1000\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/#\\\/schema\\\/person\\\/ac2ec9d82232836e1c87de042cfea852\",\"name\":\"Cal Evans\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6db3157414eef0b296f19e7ee76dffbe3280ba0e04d11c3a23c2db4523fd4948?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6db3157414eef0b296f19e7ee76dffbe3280ba0e04d11c3a23c2db4523fd4948?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6db3157414eef0b296f19e7ee76dffbe3280ba0e04d11c3a23c2db4523fd4948?s=96&d=mm&r=g\",\"caption\":\"Cal Evans\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/calevans\\\/\"],\"url\":\"https:\\\/\\\/academy.siteground.com\\\/en\\\/author\\\/calevans\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Leverage Browser Caching in WordPress to Optimize Page Load Time - SiteGround Academy","description":"Learn the easiest and most effective way to leverage browser caching in WordPress with the free plugin SiteGround Optimizer \ud83d\ude80","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:\/\/academy.siteground.com\/en\/leverage-browser-caching-in-wordpress\/","og_locale":"en_US","og_type":"article","og_title":"How to Leverage Browser Caching in WordPress to Optimize Page Load Time","og_description":"Learn the easiest and most effective way to leverage browser caching in WordPress with the free plugin SiteGround Optimizer \ud83d\ude80","og_url":"https:\/\/academy.siteground.com\/en\/leverage-browser-caching-in-wordpress\/","og_site_name":"SiteGround","article_publisher":"https:\/\/www.facebook.com\/siteground","article_published_time":"2022-06-30T12:29:56+00:00","article_modified_time":"2025-06-03T06:38:29+00:00","og_image":[{"width":1200,"height":600,"url":"https:\/\/academy.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/06\/Blog_header_1200x628-1-1.jpg","type":"image\/jpeg"}],"author":"Cal Evans","twitter_card":"summary_large_image","twitter_title":"How to Leverage Browser Caching in WordPress to Optimize Page Load Time","twitter_description":"Learn the easiest and most effective way to leverage browser caching in WordPress with the free plugin SiteGround Optimizer \ud83d\ude80","twitter_image":"https:\/\/academy.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/06\/Blog_header_1200x628-1-1.jpg","twitter_creator":"@siteground","twitter_site":"@siteground","twitter_misc":{"Written by":"Cal Evans","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/academy.siteground.com\/en\/leverage-browser-caching-in-wordpress\/#article","isPartOf":{"@id":"https:\/\/academy.siteground.com\/en\/leverage-browser-caching-in-wordpress\/"},"author":{"name":"Cal Evans","@id":"https:\/\/academy.siteground.com\/en\/#\/schema\/person\/ac2ec9d82232836e1c87de042cfea852"},"headline":"How to Leverage Browser Caching in WordPress to Optimize Page Load Time","datePublished":"2022-06-30T12:29:56+00:00","dateModified":"2025-06-03T06:38:29+00:00","mainEntityOfPage":{"@id":"https:\/\/academy.siteground.com\/en\/leverage-browser-caching-in-wordpress\/"},"wordCount":1929,"commentCount":8,"publisher":{"@id":"https:\/\/academy.siteground.com\/en\/#organization"},"image":{"@id":"https:\/\/academy.siteground.com\/en\/leverage-browser-caching-in-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/academy.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/06\/Blog_header_1200x628-2.jpg","articleSection":["WordPress"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/academy.siteground.com\/en\/leverage-browser-caching-in-wordpress\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/academy.siteground.com\/en\/leverage-browser-caching-in-wordpress\/","url":"https:\/\/academy.siteground.com\/en\/leverage-browser-caching-in-wordpress\/","name":"How to Leverage Browser Caching in WordPress to Optimize Page Load Time - SiteGround Academy","isPartOf":{"@id":"https:\/\/academy.siteground.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/academy.siteground.com\/en\/leverage-browser-caching-in-wordpress\/#primaryimage"},"image":{"@id":"https:\/\/academy.siteground.com\/en\/leverage-browser-caching-in-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/academy.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/06\/Blog_header_1200x628-2.jpg","datePublished":"2022-06-30T12:29:56+00:00","dateModified":"2025-06-03T06:38:29+00:00","description":"Learn the easiest and most effective way to leverage browser caching in WordPress with the free plugin SiteGround Optimizer \ud83d\ude80","breadcrumb":{"@id":"https:\/\/academy.siteground.com\/en\/leverage-browser-caching-in-wordpress\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/academy.siteground.com\/en\/leverage-browser-caching-in-wordpress\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/academy.siteground.com\/en\/leverage-browser-caching-in-wordpress\/#primaryimage","url":"https:\/\/academy.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/06\/Blog_header_1200x628-2.jpg","contentUrl":"https:\/\/academy.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2022\/06\/Blog_header_1200x628-2.jpg","width":1200,"height":600,"caption":"How to Leverage Browser Caching in WordPress"},{"@type":"BreadcrumbList","@id":"https:\/\/academy.siteground.com\/en\/leverage-browser-caching-in-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/academy.siteground.com\/en\/"},{"@type":"ListItem","position":2,"name":"How to Leverage Browser Caching in WordPress to Optimize Page Load Time"}]},{"@type":"WebSite","@id":"https:\/\/academy.siteground.com\/en\/#website","url":"https:\/\/academy.siteground.com\/en\/","name":"SiteGround Academy","description":"The SiteGround academy provides a wide variety of tips, tools, and resources related to WordPress, web performance, website optimization and site security.","publisher":{"@id":"https:\/\/academy.siteground.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/academy.siteground.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/academy.siteground.com\/en\/#organization","name":"SiteGround","url":"https:\/\/academy.siteground.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/academy.siteground.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/academy.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2025\/01\/Siteground-Logo-on-white.jpg","contentUrl":"https:\/\/academy.siteground.com\/en\/wp-content\/uploads\/sites\/2\/2025\/01\/Siteground-Logo-on-white.jpg","width":1200,"height":400,"caption":"SiteGround"},"image":{"@id":"https:\/\/academy.siteground.com\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/siteground","https:\/\/x.com\/siteground","https:\/\/www.instagram.com\/siteground\/","https:\/\/www.youtube.com\/@siteground"],"description":"The SiteGround academy provides a wide variety of tips, tools, and resources related to WordPress, web performance, website optimization and site security.","foundingDate":"2004-03-22","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"501","maxValue":"1000"}},{"@type":"Person","@id":"https:\/\/academy.siteground.com\/en\/#\/schema\/person\/ac2ec9d82232836e1c87de042cfea852","name":"Cal Evans","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/6db3157414eef0b296f19e7ee76dffbe3280ba0e04d11c3a23c2db4523fd4948?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/6db3157414eef0b296f19e7ee76dffbe3280ba0e04d11c3a23c2db4523fd4948?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6db3157414eef0b296f19e7ee76dffbe3280ba0e04d11c3a23c2db4523fd4948?s=96&d=mm&r=g","caption":"Cal Evans"},"sameAs":["https:\/\/www.linkedin.com\/in\/calevans\/"],"url":"https:\/\/academy.siteground.com\/en\/author\/calevans\/"}]}},"_links":{"self":[{"href":"https:\/\/academy.siteground.com\/en\/wp-json\/wp\/v2\/posts\/15888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/academy.siteground.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/academy.siteground.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/academy.siteground.com\/en\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/academy.siteground.com\/en\/wp-json\/wp\/v2\/comments?post=15888"}],"version-history":[{"count":2,"href":"https:\/\/academy.siteground.com\/en\/wp-json\/wp\/v2\/posts\/15888\/revisions"}],"predecessor-version":[{"id":23613,"href":"https:\/\/academy.siteground.com\/en\/wp-json\/wp\/v2\/posts\/15888\/revisions\/23613"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/academy.siteground.com\/en\/wp-json\/wp\/v2\/media\/15889"}],"wp:attachment":[{"href":"https:\/\/academy.siteground.com\/en\/wp-json\/wp\/v2\/media?parent=15888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/academy.siteground.com\/en\/wp-json\/wp\/v2\/categories?post=15888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/academy.siteground.com\/en\/wp-json\/wp\/v2\/tags?post=15888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}