{"id":20609,"date":"2023-03-27T10:04:20","date_gmt":"2023-03-27T10:04:20","guid":{"rendered":"https:\/\/10web.io\/blog\/?p=20609"},"modified":"2026-02-25T18:07:54","modified_gmt":"2026-02-25T18:07:54","slug":"serve-static-assets-with-an-efficient-cache-policy","status":"publish","type":"post","link":"https:\/\/10web.io\/blog\/serve-static-assets-with-an-efficient-cache-policy\/","title":{"rendered":"How to Serve Static Assets With an Efficient Cache Policy"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Websites like <\/span><span style=\"font-weight: 400;\">GTMetrix<\/span><span style=\"font-weight: 400;\">, and <\/span><span style=\"font-weight: 400;\">Google PageSpeed Insights<\/span><span style=\"font-weight: 400;\"> provide suggestions on how to improve the performance of your website. If you are reading this, you are at least aware that every website has opportunities to improve performance, either through manual optimizations or through using plugins like <a href=\"https:\/\/10web.io\/page-speed-booster\/\">10Web Booster<\/a>.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In both tools, you may see a suggestion to <\/span><b>serve static assets with an efficient cache policy<\/b><span style=\"font-weight: 400;\">. This suggestion is to store files locally so that repeat visits to the site are faster. The steps to improve on this recommendation do not improve the initial site visit (there are other improvements for that). Still, all subsequent visits will benefit from leveraging the browser cache.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">It should be noted that the suggestion of serving static assets with an efficient cache policy has also been referred to as leverage browser caching or browser caching in WordPress.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This article explains how to serve static assets with an efficient cache policy and how an efficient cache policy can improve your website&#8217;s performance.\u00a0<\/span><br \/>\n<div class=\"links-list-block\">\n    <p class=\"links-list-block__title\">In This Article<\/p>\n    <div class=\"links-list-block__content\"><\/p>\n<ul>\n<li><a href=\"#how\">How to Serve Static Assets With an Efficient Cache Policy<\/a>\n<ul>\n<li><a href=\"#static_assets\">What Are Static Assets?<\/a><\/li>\n<li><a href=\"#caching\">What Is Caching?<\/a><\/li>\n<li><a href=\"#cacheable\">What Makes a Static Asset Cacheable?<\/a><\/li>\n<li><a href=\"#caching_policy\">What Is a Caching Policy?<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#ux_seo\">How Are UX and SEO Affected by a Cache Policy?<\/a><\/li>\n<li><a href=\"#fix\">How to Fix Serve Static Assets With an Efficient Cache Policy Issue<\/a>\n<ul>\n<li><a href=\"#manually\">Fix Manually<\/a><\/li>\n<li><a href=\"#plugin\">Fix With a WordPress Plugin<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#tips\">Still can&#8217;t fix the issue? Try these Two Tips<\/a><\/li>\n<li><a href=\"#conclusion\">Conclusion<\/a><\/li>\n<li><a href=\"#faq\">FAQ<\/a><\/li>\n<\/ul>\n<p><\/div>\n<\/div>\n<\/p>\n<p><span style=\"font-weight: 400;\">When using <a href=\"https:\/\/gtmetrix.com\/\">GTMetrix<\/a>, the suggestion will look like the example below on the results page. It will highlight potential savings from implementing browser caching.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/image4-4.png\" alt=\"Serve static assets with efficient cache policy issue in GTMetrix\" width=\"1031\" height=\"56\" class=\"alignnone size-full wp-image-20611\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/image4-4.png 1031w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/image4-4-742x40.png 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/image4-4-150x8.png 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/image4-4-768x42.png 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/image4-4-600x33.png 600w\" sizes=\"auto, (max-width: 1031px) 100vw, 1031px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">In <a href=\"https:\/\/pagespeed.web.dev\/\">Google PageSpeed Insights<\/a>, the suggestion looks similar and gives similar information.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/image3-5.png\" alt=\"Serve static assets with efficient cache policy issue in GooglePage Insights\" width=\"1936\" height=\"624\" class=\"alignnone size-full wp-image-20612\" \/><\/p>\n<p><span style=\"font-weight: 400;\">The suggestions are similar because GTMetrix and PageSpeed Insights use the <\/span><a href=\"https:\/\/developer.chrome.com\/docs\/lighthouse\/overview\/\"><span style=\"font-weight: 400;\">Lighthouse<\/span><\/a><span style=\"font-weight: 400;\"> tool for their webpage analysis framework. <\/span><span style=\"font-weight: 400;\">Lighthouse<\/span><span style=\"font-weight: 400;\"> is an open-source tool aimed at improving site performance and can run in many different formats.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Let\u2019s take a moment for a quick refresher to remind ourselves how a website&#8217;s performance is measured by a collection of metrics, the most important of which is the <\/span><a href=\"https:\/\/web.dev\/articles\/vitals\"><span style=\"font-weight: 400;\">Core Web Vitals.<\/span><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Here is a summary:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Largest Contentful Paint (<\/span><a href=\"https:\/\/10web.io\/site-speed-glossary\/largest-contentful-paint\/\"><span style=\"font-weight: 400;\">LCP<\/span><\/a><span style=\"font-weight: 400;\">) &#8211; The measurement of how long it takes for the largest object to load in the page\u2019s viewport.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">First Input Delay (<\/span><a href=\"https:\/\/10web.io\/site-speed-glossary\/first-input-delay\/\"><span style=\"font-weight: 400;\">FID<\/span><\/a><span style=\"font-weight: 400;\">) &#8211; This measures website responsiveness.\u00a0 It measures the time between the user clicking or interacting with the site and the site responding.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Cumulative Layout Shift (<\/span><a href=\"https:\/\/10web.io\/site-speed-glossary\/cumulative-layout-shift\/\"><span style=\"font-weight: 400;\">CLS<\/span><\/a><span style=\"font-weight: 400;\">) &#8211; This measures how much a page\u2019s layout unexpectedly shifts.<\/span><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Core-Web-Vitals.jpg\" alt=\"Core Web Vitals\" width=\"982\" height=\"297\" class=\"alignnone size-full wp-image-20622\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Core-Web-Vitals.jpg 982w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Core-Web-Vitals-742x224.jpg 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Core-Web-Vitals-150x45.jpg 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Core-Web-Vitals-768x232.jpg 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Core-Web-Vitals-600x181.jpg 600w\" sizes=\"auto, (max-width: 982px) 100vw, 982px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">One way to positively impact both LCP and FID is to serve static assets with an efficient cache policy, which means letting the browser know it can locally store a resource for a certain amount of time.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">An efficient cache policy will mean faster load times because no matter how fast your internet speed is, loading from a local cache will be faster and save time.<\/span><span id=\"how\"><\/span><\/p>\n<p><span style=\"font-weight: 400;\">There are a few components, so let\u2019s discuss them in more detail.<\/span><span id=\"static_assets\"><\/span><\/p>\n<h2 style=\"margin-top: 100px;\"><span style=\"font-weight: 400;\">How to Serve Static Assets With an Efficient Cache Policy<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">To understand how to serve static assets with an efficient cache policy, we first need to understand the different aspects, such as static assets, caching, and a caching policy. Let\u2019s break them down here.<\/span><\/p>\n<h3 style=\"margin-top: 100px;\"><span style=\"font-weight: 400;\">What Are Static Assets?<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Static assets are files. When we refer to static assets in this article, we refer to individual files that are not expected to change either soon or often.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Files like images, javascript, CSS files and fonts are files that could be considered static assets. Regarding WordPress, these CSS, javascript, and image and font files would usually be part of a theme, a plugin or user content.<\/span><span id=\"caching\"><\/span><\/p>\n<p><span style=\"font-weight: 400;\">Files and pages that are generated dynamically are not considered static assets. An example of this within WordPress would be the static pages generated by caching plugins. This is elaborated on in the next section.<\/span><\/p>\n<h3 style=\"margin-top: 100px;\"><span style=\"font-weight: 400;\">What Is Caching?<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Caching is the process of storing answers in a cache so that the next time the same question is asked, the answer can be returned quicker.<\/span><\/p>\n<div class=\"colored-block blue_icon\">\n    <img decoding=\"async\" src=\"https:\/\/10web.io\/blog\/wp-content\/themes\/10web-blog\/images\/shortcodes\/\/blue_icon_block_icon.png\" class=\"colored-block-note\" alt=\"Note\">\n            <h4>Related Articles<\/h4>\n\t        <div class=\"colored-block__content\">\n<ul>\n<li><a href=\"https:\/\/10web.io\/blog\/how-to-clear-wordpress-cache\/\">How to Clear WordPress Cache Safely and Efficiently?<\/a><\/li>\n<li><a href=\"https:\/\/10web.io\/blog\/what-is-the-best-cache-plugin-for-wordpress\/\">Find the Best WordPress Caching Plugin with Our Top 5 Picks<\/a><\/li>\n<li><a href=\"https:\/\/10web.io\/blog\/minimize-main-thread-work\/\">6 Tips to Minimize Main Thread Work on WordPress<\/a><\/li>\n<\/ul>\n<p><\/div>\n    <\/div>\n<br \/>\n<span style=\"font-weight: 400;\">If you have worked with WordPress caching plugins before, you may be familiar with full-page caching. Page caching is different from static asset caching.<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">Page caching vs. static asset caching<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">This article looks at specifically static asset (file) caching. This should not be confused with full-page caching, which stores generated pages for later use.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Both page caching and file caching help to improve a site&#8217;s performance. When discussing static asset caching, we refer to specific assets such as javascript, CSS, and image files.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Page caching<\/strong> stores the results of a WordPress dynamically generated page and re-serving that version for a specific amount of time. Page caches are usually stored on a server or edge network such as a CDN, and static assets are stored locally on the user&#8217;s machine.<\/span><span id=\"cacheable\"><\/span><\/p>\n<p><span style=\"font-weight: 400;\">Caching regarding how we <strong>serve static assets<\/strong> with an efficient cache policy means telling the browser how long it can store a resource locally on the browser before having to re-download it.<\/span><\/p>\n<h3 style=\"margin-top: 100px;\"><span style=\"font-weight: 400;\">What Makes a Static Asset Cacheable?<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">According to GTMetrix, an asset is cacheable if it meets the following requirements:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">It is a font, CSS, javascript, or media file.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">It returns a 200, 203, or 206 HTTP status code<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">It does not have an explicit no-cache policy<\/span><\/li>\n<\/ul>\n<p><span id=\"caching_policy\"><\/span><\/p>\n<h3 style=\"margin-top: 100px;\"><span style=\"font-weight: 400;\">What Is a Caching Policy?<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">We have looked at what is a static asset as well as what it means to cache an asset.<\/span><\/p>\n<div class=\"tenweb-quote\">\n\t<\/p>\n<p class=\"quote_content\"><em>A caching policy is simply the rules that determine how long to cache a file for.<\/em><\/p>\n<p><\/div>\n\n\n<p><span style=\"font-weight: 400;\">The terms freshness and stale can be used here to describe the status of a cached file. If a file is okay to be pulled from the cache it could be called <strong>fresh<\/strong>. When it expires, it would be called <strong>stale<\/strong>.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A policy will answer questions such as how long a file is considered fresh and how to check that a file is fresh. The policy states we need to check with the server only after a specific amount of time or let us know to check with the server on every request, but only re-download the file if it has changed.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A few more terms that will be good to understand before we progress further.<\/span><\/p>\n<table class=\"tenweb-table\" style=\"margin: 20px auto;\">\n<tbody>\n<tr>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Origin Server<\/td>\n<td>This is the server where your website is hosted on. It has the original files and is considered the authoritative source.<\/td>\n<\/tr>\n<tr>\n<td>Shared Cache<\/td>\n<td>A shared cache is somewhere between the origin server and the client that might store files as well. An example of this would be a proxy server or a CDN provider.<\/td>\n<\/tr>\n<tr>\n<td>Private Cache<\/td>\n<td>A private cache is the browser&#8217;s cache.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span id=\"ux_seo\"><\/span><\/p>\n<h2 style=\"margin-top: 100px;\">How Are UX and SEO Affected by a Cache Policy?<\/h2>\n<p><span style=\"font-weight: 400;\">User experience (UX) and search engine optimization (SEO) are tightly tied together. According to Google, studies show that users care about site responsiveness, so Google ranks more responsiveness pages higher.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If static assets are cached effectively, the page will render quicker due to the reduced time it takes to load these assets. The reduction in time leads to improvements in core web vitals such as LCP and FID and, ultimately, a higher search engine ranking.<\/span><span id=\"fix\"><\/span><span id=\"manually\"><\/span><\/p>\n<p><span style=\"font-weight: 400;\">You can read more about how core web vitals impact page ranking <a href=\"https:\/\/developers.google.com\/search\/blog\/2020\/05\/evaluating-page-experience\">here<\/a>.<\/span><\/p>\n<h2 style=\"margin-top: 100px;\">How to Fix Serve Static Assets With an Efficient Cache Policy Issue<\/h2>\n<h3 style=\"margin-top: 50px;\"><span style=\"font-weight: 400;\">Fix Manually<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Serving static assets with an efficient cache policy isn\u2019t a WordPress-specific setting, you can set it manually by modifying your webservers configuration file or use a plugin like 10Web Booster hosting to ensure your site is configured with optimized caching settings.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This section will cover editing a web server\u2019s configuration files directly to enable the cache-control and expires HTTP headers on your servers so when it serves static assets it applies HTTP headers in the response.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">When a resource is requested, the web server responds with the resource and some extra information in what are called HTTP headers. Think about HTTP headers as metadata about the connection. In the case of caching, the HTTP headers <\/span><i><span style=\"font-weight: 400;\">Cache-Control<\/span><\/i><span style=\"font-weight: 400;\"> and <\/span><i><span style=\"font-weight: 400;\">Expires<\/span><\/i><span style=\"font-weight: 400;\"> control how we cache an asset.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The <\/span><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Reference\/Headers\/Cache-Control\"><span style=\"font-weight: 400;\">cache-control<\/span><\/a><span style=\"font-weight: 400;\"> header contains instructions on if and\/or how to cache the static asset. There are many directives for cache-control so lets understand some of the most popular ones.<\/span><\/p>\n<table class=\"tenweb-table\">\n<tbody>\n<tr>\n<td><span style=\"font-weight: 400;\">Directive<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Description<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">max-age=N<\/span><\/td>\n<td><span style=\"font-weight: 400;\">This is the amount of time after a request has been made that an asset is considered \u201c<\/span><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Guides\/Caching#fresh_and_stale_based_on_age\"><span style=\"font-weight: 400;\">fresh<\/span><\/a><span style=\"font-weight: 400;\">\u201d.<\/span><br \/>\nIf the original server response is N seconds or less, the static asset is considered fresh.<\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">no-cache<\/span><\/td>\n<td><span style=\"font-weight: 400;\">The name no-cache can be deceiving.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">No-cache does not mean to not cache the file, it means to revalidate the freshness of the file on every request.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">If the file has not changed, the cached version will be used. The server will respond with a 304 Not Modified http response code to indicate the file has not changed.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">no-store<\/span><\/td>\n<td><span style=\"font-weight: 400;\">If you do not want an asset stored, no-store is the directive needed.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">private<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Denotes the file can only be stored in a private (browsers) cache.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">public<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Denotes the file can be stored in a public e.g. CDN, proxy cache.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Here are some examples of what a cache-control header may look like.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Example: cache an asset for seven days<\/span><br \/>\n<code>Cache-Control: max-age=604800 <\/code><\/p>\n<p>Example: Can be stored in a shared cache for up to seven days<br \/>\n<code>Cache-Control: public, max-age=604800<\/code><\/p>\n<p>Example: Can be stored, but must revalidated on each request<br \/>\n<code>Cache-Control: no-cache<\/code><\/p>\n<p>Example: Cannot be cached<br \/>\n<code>Cache-Control: no-store<\/code><\/p>\n<p><span style=\"font-weight: 400;\">The cache-control header is newer and has more options, but in the case that cache-control is not supported, the <\/span><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Reference\/Headers\/Expires\"><span style=\"font-weight: 400;\">expires<\/span><\/a><span style=\"font-weight: 400;\"> HTTP header accomplishes the same header task and instructs how long an asset is valid before needing re-validation. <\/span><i><span style=\"font-weight: 400;\">(Note that the max-age directive in the Cache-Control header takes precedence over Expires)<\/span><\/i><br \/>\n<code>Expires: Wed Feb 13 21:01:38 CST 2023<\/code><\/p>\n<h4 style=\"margin-top: 100px;\"><span style=\"font-weight: 400;\">Modifying a server config directly<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">First, let us look at the \u201chard way\u201d so we understand what happens when we use other tools and services that make it easier for us.<\/span><\/p>\n<p><strong>Apache<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">In the Apache HTTP server, the following snippet could be added to a site definition or a .htaccess file.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Explaining this snippet, it says that any asset where the extension matches .ico or .pdf, etc will have the Cache-Control header set for the asset.<\/span><\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&amp;amp;lt;filesMatch &amp;quot;.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$&amp;quot;&amp;amp;gt;\r\n    Header set Cache-Control &amp;quot;max-age=3600, public&amp;quot;\r\n&amp;amp;lt;\/filesMatch&amp;amp;gt;\r\n<\/pre>\n<p><span style=\"font-weight: 400;\">With Apache, many hosting providers will give you the option to add directives to a .htaccess file. Note that while this is an easy way to add to the server\u2019s config, using .htaccess files is known to impart negative performance hits at the server level.<\/span><br \/>\n<strong>Nginx<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">In Nginx, this snippet can be added to a server block.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Explaining this snippet, it says that any asset where the extension matches .ico or .pdf etc will have both the expires and cache-control headers set.<\/span><\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nlocation ~* \\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$ {\r\n    expires 1h;\r\n    add_header Cache-Control &amp;quot;public, no-transform&amp;quot;;\r\n}\r\n<\/pre>\n<p><span id=\"plugin\"><\/span><span style=\"font-weight: 400;\">For both Apache and Nginx, we are showing how to modify\/add headers. We are showing the particular headers we use for caching, but the method can be used for any other form of caching.<\/span><\/p>\n<h3 style=\"margin-top: 100px;\"><span style=\"font-weight: 400;\">Fix With a WordPress Plugin<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">If the above feels like a lot, it is because it is. Modifying server configs and keeping up to date on manual changes is time-consuming and error-prone.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The 10Web Booster free plan can configure Apache to add headers for static assets, and it also adds headers for cached web pages. If you are not already using 10Web hosting and your host uses Apache, this is a great way to get started on implementing an efficient cache policy.<\/span><\/p>\n<div class=\"youtube_embed without_rel\" data-id=\"oX1FEYIA5xQ\">\n<div id=\"video1\"><\/div>\n<\/div>\n<p><span style=\"font-weight: 400;\">If you need more options or more control over HTTP headers, you can use <a href=\"https:\/\/10web.io\/page-speed-booster\/\">10Web Booster<\/a>. 10Web Booster leverages its Cloudflare. When you use Cloudflare, it adds the cache-control headers to your static assets and cached pages. This bypasses any server configs or restrictions because your visitors are served up the files from Cloudflare directly.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">What makes the 10Web Booster plugin the best choice here is that it does all of this and does it automatically. You do not need to manage any server configs or .htaccess files.<\/span><br \/>\n\r\n<style>\r\n  #ctablocks_inline_70{\r\n          background-color: #000000;\r\n        color: #ffffff;\r\n    border-radius: 6px;\r\n  }\r\n\r\n  #ctablocks_inline_70 p{\r\n    color: #ffffff;\r\n  }\r\n  #ctablocks_inline_70 .button{\r\n        background-color: rgb(51,57,241);\r\n      color: #ffffff;\r\n    border-color: #3339f1 !important;\r\n  }\r\n  #ctablocks_inline_70 .button:hover{\r\n    background: rgba(51,57,241,0.8);\r\n    color: #ffffff;\r\n    opacity: 1;\r\n  }\r\n        #ctablocks_inline_70 .ctablocks_content_info p {\r\n        padding-left: 36px;\r\n      }\r\n      #ctablocks_inline_70 .ctablocks_content_button {\r\n          margin-left: 37px;\r\n      }\r\n  @media screen and (min-width: 768px) and (max-width: 1260px) {\r\n      #ctablocks_inline_70 .ctablocks_content_button {\r\n          margin-left: 37px !important;\r\n      }\r\n  }\r\n  ;\r\n<\/style>\r\n<div id=\"ctablocks_inline_70\" class=\"ctablocks_container inline_type\r\n        \">\r\n\r\n  <div class=\"ctablocks_content clear\">\r\n    <div class=\"ctablocks_content_info\">\r\n      \r\n            <div class=\"title-wrap\">\r\n\t\t\t\t\t                  <img decoding=\"async\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2024\/04\/info-icon-cta.png\" alt=\"Want to speed up your website instantly?\" title=\"Want to speed up your website instantly?\">\r\n\t\t\t\t\t            <h4>Want to speed up your website instantly?<\/h4>\r\n        <\/div>\r\n              <p>Get 90+ PageSpeed Score automatically with 10Web Booster \u26a1 <br class=\"desktop\"> On any hosting!<\/p>\r\n          <\/div>\r\n    <div class=\"ctablocks_content_button\">\r\n              <a href=\"https:\/\/10web.io\/page-speed-booster\/\" class=\"button\"  data-gtag=\"cta-70\" data-buttontype=\"cta-inline\"\r\n\t        >Try for Free<\/a>\r\n            \r\n    <\/div>\r\n  <\/div>\r\n    <\/div>\r\n<\/p>\n<p><span id=\"tips\"><\/span><span style=\"font-weight: 400;\">Alternatively, if you use 10Web Hosting, it <\/span><span style=\"font-weight: 400;\">automatically implements caching and you do not need to worry about adding headers for static assets.<\/span><\/p>\n<h2 style=\"margin-top: 100px;\">Still Can\u2019t Fix the Issue? Try These Two Tips<\/h2>\n<p><span style=\"font-weight: 400;\">If you have implemented the above steps and you are still seeing that service static assets with an efficient cache policy are still showing up in your reports, here are a few more things you can try.<\/span><\/p>\n<h3 style=\"margin-top: 100px;\"><span style=\"font-weight: 400;\">Verifying Files Are Cached<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">If GTMetrix and PageSpeed are still reporting that you should be serving static assets with a cache policy you may want to verify that your implementation actually made the expected changes.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In most browsers, there is an easy way to verify whether files are coming from a cache or not.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In Chrome, under view and Developer, select Developer Tools:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/image1-5.png\" alt=\"verifying the files are cached\" width=\"628\" height=\"455\" class=\"alignnone size-full wp-image-20615\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/image1-5.png 628w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/image1-5-150x109.png 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/image1-5-600x435.png 600w\" sizes=\"auto, (max-width: 628px) 100vw, 628px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Under the Network tab, you will be able to identify files that come from (disk cache) or (memory cache). The difference between disk and memory cache is that memory goes away when the browser is closed, and disk persists when the browser is closed.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/image2-6.png\" alt=\"verifying the files are cached\" width=\"958\" height=\"386\" class=\"alignnone size-full wp-image-20616\" srcset=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/image2-6.png 958w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/image2-6-742x299.png 742w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/image2-6-150x60.png 150w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/image2-6-768x309.png 768w, https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/image2-6-600x242.png 600w\" sizes=\"auto, (max-width: 958px) 100vw, 958px\" \/><\/p>\n<h3 style=\"margin-top: 100px;\"><span style=\"font-weight: 400;\">Increase the Cache Time<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">According to statistics from Lighthouse, an efficient cache policy is one that has a high ratio of cache hits to misses, meaning that the majority of the static assets have a max-age or expires set.\u00a0 For sites that are in production or not changing often, a max-age of three months to even a year is recommended.<\/span><span id=\"conclusion\"><\/span><\/p>\n<p><span style=\"font-weight: 400;\">They recommend starting a policy of around three months (around 7890000 seconds), if you have already set this, it might be worth increasing the max-age to a year or more if your site is live.<\/span><\/p>\n<h2 style=\"margin-top: 100px;\"><span style=\"font-weight: 400;\">Conclusion<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Being able to serve static assets with an efficient cache policy brings speed improvements to your website\u2019s performance.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This article covered what static assets are, what HTTP headers are, and looked at how to enable and verify the caching headers are in place.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We looked at the nuts and bolts of manually enabling the headers by modifying server configs and how we can make it easier using a WordPress plugin like 10Web Booster, and leveraging 10Web\u2019s integration with Cloudflare to have access to set the cache-control HTTP headers.<\/span><span id=\"faq\"><\/span><\/p>\n<p><span style=\"font-weight: 400;\">10Web Booster is so much more than just a caching plugin. You can read more about the many caching and speed optimization features in this <\/span><a href=\"https:\/\/10web.io\/blog\/introducing-10web-booster\/\"><span style=\"font-weight: 400;\">10Web Booster article<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><br \/>\n\r\n<style>\r\n  #ctablocks_inline_70{\r\n          background-color: #000000;\r\n        color: #ffffff;\r\n    border-radius: 6px;\r\n  }\r\n\r\n  #ctablocks_inline_70 p{\r\n    color: #ffffff;\r\n  }\r\n  #ctablocks_inline_70 .button{\r\n        background-color: rgb(51,57,241);\r\n      color: #ffffff;\r\n    border-color: #3339f1 !important;\r\n  }\r\n  #ctablocks_inline_70 .button:hover{\r\n    background: rgba(51,57,241,0.8);\r\n    color: #ffffff;\r\n    opacity: 1;\r\n  }\r\n        #ctablocks_inline_70 .ctablocks_content_info p {\r\n        padding-left: 36px;\r\n      }\r\n      #ctablocks_inline_70 .ctablocks_content_button {\r\n          margin-left: 37px;\r\n      }\r\n  @media screen and (min-width: 768px) and (max-width: 1260px) {\r\n      #ctablocks_inline_70 .ctablocks_content_button {\r\n          margin-left: 37px !important;\r\n      }\r\n  }\r\n  ;\r\n<\/style>\r\n<div id=\"ctablocks_inline_70\" class=\"ctablocks_container inline_type\r\n        \">\r\n\r\n  <div class=\"ctablocks_content clear\">\r\n    <div class=\"ctablocks_content_info\">\r\n      \r\n            <div class=\"title-wrap\">\r\n\t\t\t\t\t                  <img decoding=\"async\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2024\/04\/info-icon-cta.png\" alt=\"Want to speed up your website instantly?\" title=\"Want to speed up your website instantly?\">\r\n\t\t\t\t\t            <h4>Want to speed up your website instantly?<\/h4>\r\n        <\/div>\r\n              <p>Get 90+ PageSpeed Score automatically with 10Web Booster \u26a1 <br class=\"desktop\"> On any hosting!<\/p>\r\n          <\/div>\r\n    <div class=\"ctablocks_content_button\">\r\n              <a href=\"https:\/\/10web.io\/page-speed-booster\/\" class=\"button\"  data-gtag=\"cta-70\" data-buttontype=\"cta-inline\"\r\n\t        >Try for Free<\/a>\r\n            \r\n    <\/div>\r\n  <\/div>\r\n    <\/div>\r\n<\/p>\n<h2 style=\"margin-top: 100px;\"><span style=\"font-weight: 400;\">FAQ<\/span><\/h2>\n<div class=\"faq-shortcode\">\n    <p class=\"faq_title\">Can cached assets cause problems for my website?<\/p>\n    <div class=\"faq_content\"> It is possible that a static asset could change before the local cache expires. This would cause the most recent version of the asset to be different from what is loaded from the cache and has the potential for issues.<\/p>\n<p>One way to avoid this is to set the Cache-Control header to no-cache. The no-cache directive lets the browser know it should check with the server to ensure it has an up-to-date version.<\/p>\n<p>Do not let the no-cache connotation fool you, it still caches the data. No cache means checking with the server every time instead of assuming there is no newer version. <\/div>\n<\/div>\n\n<div class=\"faq-shortcode\">\n    <p class=\"faq_title\">Can I force a refresh of the cached static asset?<\/p>\n    <div class=\"faq_content\"> Currently, there is no way to force clear an asset already stored in a cache. If you know you will be updating assets frequently, one option would be to add a max-age to the cache-control header or explicitly declare the expires header. <\/div>\n<\/div>\n\n<div class=\"faq-shortcode\">\n    <p class=\"faq_title\">What happens if a user clears out their cache?<\/p>\n    <div class=\"faq_content\"> If a user clears out their cache, the static asset will be downloaded again from the server. <\/div>\n<\/div>\n\n<div class=\"faq-shortcode\">\n    <p class=\"faq_title\">How can a user clear out their cache?<\/p>\n    <div class=\"faq_content\"> A user can clear out their cache from their browser\u2019s privacy settings. <\/div>\n<\/div>\n\n<p><div class=\"faq-shortcode\">\n    <p class=\"faq_title\">How do I force a browser to refresh the files in its cache?<\/p>\n    <div class=\"faq_content\"> You can do a shift+Refresh and this will re-download the files regardless of their freshness. <\/div>\n<\/div>\n<br \/>\n\r\n<style>\r\n  #ctablocks_scrollbox-with-icon_93{\r\n            color: #ffffff;\r\n    border-radius: 6px;\r\n  }\r\n\r\n  #ctablocks_scrollbox-with-icon_93 p{\r\n    color: #ffffff;\r\n  }\r\n  #ctablocks_scrollbox-with-icon_93 .button{\r\n          background-color: #3339F1;\r\n        color: #ffffff;\r\n    border-color: #3339F1 !important;\r\n  }\r\n  #ctablocks_scrollbox-with-icon_93 .button:hover{\r\n    background: rgba(51,57,241,0.8);\r\n    color: #ffffff;\r\n    opacity: 1;\r\n  }\r\n  #ctablocks_scrollbox-with-icon_93.ctablocks_container {\r\n    left: 100%;\r\n  }\r\n  @media screen and (max-width: 1300px) {\r\n      #ctablocks_scrollbox-with-icon_93.ctablocks_container {\r\n          left: 0;\r\n          margin: 0 auto;\r\n      }\r\n  }\r\n  #ctablocks_scrollbox-with-icon_93 .ctablocks_content {\r\n      background-color: #000000;\r\n  }\r\n<\/style>\r\n<div id=\"ctablocks_scrollbox-with-icon_93\" class=\"ctablocks_container scrollbox-with-icon_type\r\n      \">\r\n\r\n  <div class=\"ctablocks_content clear\">\r\n    <div class=\"ctablocks_content_info\">\r\n              <h4>Want to speed up your website instantly?<\/h4>\r\n        <h4 class=\"mobile-title\">Speed up your website automatically<\/h4>\r\n              <p>Get 90+ PageSpeed Score automatically with 10Web Booster.\r\nOn any hosting!<\/p>\r\n          <\/div>\r\n    <div class=\"ctablocks_content_button\">\r\n              <a href=\"https:\/\/10web.io\/page-speed-booster\/\" class=\"button\"  data-gtag=\"cta-93\" data-buttontype=\"cta-scrollbox-with-icon\"\r\n\t        >Try for Free<\/a>\r\n            \r\n    <\/div>\r\n  <\/div>\r\n    <span class=\"close_ctablocks\">\r\n      <img decoding=\"async\" class=\"close-icon\" src=\"https:\/\/10web.io\/blog\/wp-content\/plugins\/cta-blocks\/assets\/images\/close_w.svg\" class=\"close\">\r\n      <img decoding=\"async\" class=\"floating-icon\" src=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2024\/04\/Booster_White_Small.png\" alt=\"Want to speed up your website instantly?\" title=\"Want to speed up your website instantly?\">\r\n<!--      <img decoding=\"async\" class=\"arrow-icon white\" src=\"\/cta-blocks\/assets\/images\/arrow-icon.svg\" class=\"close\">\r\n-->      <img decoding=\"async\" class=\"arrow-icon purple\" src=\"https:\/\/10web.io\/blog\/wp-content\/plugins\/cta-blocks\/assets\/images\/arrow-icon-purple.svg\" class=\"close\">\r\n  <\/span>\r\n<\/div>\r\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Websites like GTMetrix, and Google PageSpeed Insights provide suggestions on how to improve the performance of your website. If you are reading this, you are at least aware that every website has opportunities to improve performance, either through manual optimizations or through using plugins like 10Web Booster. In both tools, you may see a suggestion to serve static assets with&#8230;<\/p>\n","protected":false},"author":11,"featured_media":20610,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"two_page_speed":[],"footnotes":"","tenweb_blog_toc":"<ul><li><a href=\"#how-to-serve-static-assets-with-an-efficient-cache-policy\">How to Serve Static Assets With an Efficient Cache Policy<\/a><ul><li><a href=\"#what-are-static-assets\">What Are Static Assets?<\/a><li><a href=\"#what-is-caching\">What Is Caching?<\/a><li><a href=\"#what-makes-a-static-asset-cacheable\">What Makes a Static Asset Cacheable?<\/a><li><a href=\"#what-is-a-caching-policy\">What Is a Caching Policy?<\/a><\/li><\/ul><li><a href=\"#how-are-ux-and-seo-affected-by-a-cache-policy\">How Are UX and SEO Affected by a Cache Policy?<\/a><li><a href=\"#how-to-fix-serve-static-assets-with-an-efficient-cache-policy-issue\">How to Fix Serve Static Assets With an Efficient Cache Policy Issue<\/a><ul><li><a href=\"#fix-manually\">Fix Manually<\/a><li><a href=\"#fix-with-a-wordpress-plugin\">Fix With a WordPress Plugin<\/a><\/li><\/ul><li><a href=\"#still-cant-fix-the-issue-try-these-two-tips\">Still Can\u2019t Fix the Issue? Try These Two Tips<\/a><ul><li><a href=\"#verifying-files-are-cached\">Verifying Files Are Cached<\/a><li><a href=\"#increase-the-cache-time\">Increase the Cache Time<\/a><\/li><\/ul><li><a href=\"#conclusion\">Conclusion<\/a><li><a href=\"#faq\">FAQ<\/a><\/li><\/ul>","tenweb_blog_competitor_type":"","tenweb_blog_competitor_names":"","tenweb_blog_twb_version":0,"tenweb_blog_type":"on"},"categories":[465],"tags":[361,203],"class_list":["post-20609","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-speed","tag-cache","tag-website-speed"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.0 (Yoast SEO v23.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Easy] Serve static assets with an efficient cache policy<\/title>\n<meta name=\"description\" content=\"Learn how to serve static assets with an efficient cache policy and how an efficient cache policy can improve your website&#039;s performance.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/10web.io\/blog\/serve-static-assets-with-an-efficient-cache-policy\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Serve Static Assets With an Efficient Cache Policy\" \/>\n<meta property=\"og:description\" content=\"Learn how to serve static assets with an efficient cache policy and how an efficient cache policy can improve your website&#039;s performance.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/10web.io\/blog\/serve-static-assets-with-an-efficient-cache-policy\/\" \/>\n<meta property=\"og:site_name\" content=\"10Web - Build &amp; Host Your WordPress Website\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/10Web.io\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-27T10:04:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-25T18:07:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Serve-static-assets-with-an-efficient-cache-policy.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1484\" \/>\n\t<meta property=\"og:image:height\" content=\"832\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tigran Nazaryan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@10Web_io\" \/>\n<meta name=\"twitter:site\" content=\"@10Web_io\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tigran Nazaryan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"[Easy] Serve static assets with an efficient cache policy","description":"Learn how to serve static assets with an efficient cache policy and how an efficient cache policy can improve your website's performance.","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:\/\/10web.io\/blog\/serve-static-assets-with-an-efficient-cache-policy\/","og_locale":"en_US","og_type":"article","og_title":"How to Serve Static Assets With an Efficient Cache Policy","og_description":"Learn how to serve static assets with an efficient cache policy and how an efficient cache policy can improve your website's performance.","og_url":"https:\/\/10web.io\/blog\/serve-static-assets-with-an-efficient-cache-policy\/","og_site_name":"10Web - Build &amp; Host Your WordPress Website","article_publisher":"https:\/\/www.facebook.com\/10Web.io\/","article_published_time":"2023-03-27T10:04:20+00:00","article_modified_time":"2026-02-25T18:07:54+00:00","og_image":[{"width":1484,"height":832,"url":"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Serve-static-assets-with-an-efficient-cache-policy.png","type":"image\/png"}],"author":"Tigran Nazaryan","twitter_card":"summary_large_image","twitter_creator":"@10Web_io","twitter_site":"@10Web_io","twitter_misc":{"Written by":"Tigran Nazaryan","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/10web.io\/blog\/serve-static-assets-with-an-efficient-cache-policy\/#article","isPartOf":{"@id":"https:\/\/10web.io\/blog\/serve-static-assets-with-an-efficient-cache-policy\/"},"author":{"name":"Tigran Nazaryan","@id":"https:\/\/10web.io\/blog\/#\/schema\/person\/9466e64f67fc213397b384bbe3af3bd0"},"headline":"How to Serve Static Assets With an Efficient Cache Policy","datePublished":"2023-03-27T10:04:20+00:00","dateModified":"2026-02-25T18:07:54+00:00","mainEntityOfPage":{"@id":"https:\/\/10web.io\/blog\/serve-static-assets-with-an-efficient-cache-policy\/"},"wordCount":2726,"commentCount":0,"publisher":{"@id":"https:\/\/10web.io\/blog\/#organization"},"image":{"@id":"https:\/\/10web.io\/blog\/serve-static-assets-with-an-efficient-cache-policy\/#primaryimage"},"thumbnailUrl":"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Serve-static-assets-with-an-efficient-cache-policy.png","keywords":["cache","website speed"],"articleSection":["Page Speed"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/10web.io\/blog\/serve-static-assets-with-an-efficient-cache-policy\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/10web.io\/blog\/serve-static-assets-with-an-efficient-cache-policy\/","url":"https:\/\/10web.io\/blog\/serve-static-assets-with-an-efficient-cache-policy\/","name":"[Easy] Serve static assets with an efficient cache policy","isPartOf":{"@id":"https:\/\/10web.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/10web.io\/blog\/serve-static-assets-with-an-efficient-cache-policy\/#primaryimage"},"image":{"@id":"https:\/\/10web.io\/blog\/serve-static-assets-with-an-efficient-cache-policy\/#primaryimage"},"thumbnailUrl":"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Serve-static-assets-with-an-efficient-cache-policy.png","datePublished":"2023-03-27T10:04:20+00:00","dateModified":"2026-02-25T18:07:54+00:00","description":"Learn how to serve static assets with an efficient cache policy and how an efficient cache policy can improve your website's performance.","breadcrumb":{"@id":"https:\/\/10web.io\/blog\/serve-static-assets-with-an-efficient-cache-policy\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/10web.io\/blog\/serve-static-assets-with-an-efficient-cache-policy\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/10web.io\/blog\/serve-static-assets-with-an-efficient-cache-policy\/#primaryimage","url":"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Serve-static-assets-with-an-efficient-cache-policy.png","contentUrl":"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2023\/03\/Serve-static-assets-with-an-efficient-cache-policy.png","width":1484,"height":832,"caption":"Serve Static Assets With an Efficient Cache Policy"},{"@type":"BreadcrumbList","@id":"https:\/\/10web.io\/blog\/serve-static-assets-with-an-efficient-cache-policy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/10web.io\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Serve Static Assets With an Efficient Cache Policy"}]},{"@type":"WebSite","@id":"https:\/\/10web.io\/blog\/#website","url":"https:\/\/10web.io\/blog\/","name":"10Web Blog - Build & Host Your WordPress Website","description":"10Web is an All-in-One Website Building Platform, offering Managed WordPress Hosting on Google Cloud, Beautiful Templates, Premium Plugins and Services.","publisher":{"@id":"https:\/\/10web.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/10web.io\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/10web.io\/blog\/#organization","name":"10Web","url":"https:\/\/10web.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/10web.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2025\/04\/Logo-768x686-1.png","contentUrl":"https:\/\/10web.io\/blog\/wp-content\/uploads\/sites\/2\/2025\/04\/Logo-768x686-1.png","width":768,"height":686,"caption":"10Web"},"image":{"@id":"https:\/\/10web.io\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/10Web.io\/","https:\/\/x.com\/10Web_io","https:\/\/www.instagram.com\/10web.io\/","https:\/\/www.linkedin.com\/company\/10web\/mycompany\/","https:\/\/www.youtube.com\/c\/10Web"]},{"@type":"Person","@id":"https:\/\/10web.io\/blog\/#\/schema\/person\/9466e64f67fc213397b384bbe3af3bd0","name":"Tigran Nazaryan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/10web.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ce2393558e7591a237212f11acac58fb?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ce2393558e7591a237212f11acac58fb?s=96&d=mm&r=g","caption":"Tigran Nazaryan"},"description":"Tigran Nazaryan is an experienced science and technology professional. After seeing great potential in the automation of web development, he co-founded and became CInO of 10Web. Tigran is passionate about creating solutions to bring AI automation into web development and turning great ideas into powerful technological achievements.","sameAs":["https:\/\/www.linkedin.com\/in\/tnazaryan\/"],"url":"https:\/\/10web.io\/blog\/author\/tigran\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/posts\/20609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/comments?post=20609"}],"version-history":[{"count":0,"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/posts\/20609\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/media\/20610"}],"wp:attachment":[{"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/media?parent=20609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/categories?post=20609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/10web.io\/blog\/wp-json\/wp\/v2\/tags?post=20609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}