{"id":4593,"date":"2026-05-05T23:18:11","date_gmt":"2026-05-05T20:18:11","guid":{"rendered":"https:\/\/fastpixel.io\/?p=4593"},"modified":"2026-05-05T23:20:11","modified_gmt":"2026-05-05T20:20:11","slug":"how-to-fix-serve-static-assets-with-an-efficient-cache-policy-in-wordpress","status":"publish","type":"post","link":"https:\/\/fastpixel.io\/fr\/blog\/how-to-fix-serve-static-assets-with-an-efficient-cache-policy-in-wordpress\/","title":{"rendered":"How to Fix &#8216;Serve Static Assets with an Efficient Cache Policy&#8217; in WordPress"},"content":{"rendered":"<p>PageSpeed Insights loves to dress up simple problems in complicated language. This warning is one of them.<\/p>\n\n\n\n<p>If you&#8217;re seeing the &#8220;Serve static assets with an efficient cache policy&#8221; warning in WordPress, it usually means your static files need better browser caching headers. In other words, your server isn&#8217;t telling browsers how long to keep your files. So every time a returning visitor lands on your site, their browser pulls down the same logo, the same CSS, the same JavaScript bundle. Files that haven&#8217;t changed in months. Maybe years.<\/p>\n\n\n\n<p>The fix takes about five minutes. Sometimes less. If you&#8217;re already running <a href=\"https:\/\/wordpress.org\/plugins\/fastpixel-website-accelerator\/\">FastPixel<\/a>, this is handled automatically. If you&#8217;d rather fix it manually, the steps below walk through it on Apache and Nginx.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #000000;color:#000000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #000000;color:#000000\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/fastpixel.io\/fr\/blog\/how-to-fix-serve-static-assets-with-an-efficient-cache-policy-in-wordpress\/#what-this-warning-means\" >What this warning means<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/fastpixel.io\/fr\/blog\/how-to-fix-serve-static-assets-with-an-efficient-cache-policy-in-wordpress\/#find-the-broken-files\" >Find the broken files<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/fastpixel.io\/fr\/blog\/how-to-fix-serve-static-assets-with-an-efficient-cache-policy-in-wordpress\/#the-easiest-fix-fastpixel\" >The easiest fix: FastPixel<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/fastpixel.io\/fr\/blog\/how-to-fix-serve-static-assets-with-an-efficient-cache-policy-in-wordpress\/#use-a-caching-plugin\" >Use a caching plugin<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/fastpixel.io\/fr\/blog\/how-to-fix-serve-static-assets-with-an-efficient-cache-policy-in-wordpress\/#edit-htaccess-on-apache\" >Edit .htaccess on Apache<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/fastpixel.io\/fr\/blog\/how-to-fix-serve-static-assets-with-an-efficient-cache-policy-in-wordpress\/#edit-the-config-on-nginx\" >Edit the config on Nginx<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/fastpixel.io\/fr\/blog\/how-to-fix-serve-static-assets-with-an-efficient-cache-policy-in-wordpress\/#dont-forget-the-cdn\" >Don&#8217;t forget the CDN<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/fastpixel.io\/fr\/blog\/how-to-fix-serve-static-assets-with-an-efficient-cache-policy-in-wordpress\/#third-party-scripts\" >Third-party scripts<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/fastpixel.io\/fr\/blog\/how-to-fix-serve-static-assets-with-an-efficient-cache-policy-in-wordpress\/#verify\" >Verify<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/fastpixel.io\/fr\/blog\/how-to-fix-serve-static-assets-with-an-efficient-cache-policy-in-wordpress\/#wrapping-up\" >Wrapping up<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/fastpixel.io\/fr\/blog\/how-to-fix-serve-static-assets-with-an-efficient-cache-policy-in-wordpress\/#faqs\" >FAQs<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/fastpixel.io\/fr\/blog\/how-to-fix-serve-static-assets-with-an-efficient-cache-policy-in-wordpress\/#boost-core-web-vitals-and-performance-with-fastpixel\" >Boost Core Web Vitals and performance with FastPixel!<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"what-this-warning-means\"><\/span><strong>What this warning means<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Static assets are files that don&#8217;t change between page loads. Your CSS, your JavaScript, your images, your fonts, your favicon. Browser caching tells the visitor&#8217;s browser to hold onto these for a while instead of re-downloading them.<\/p>\n\n\n\n<p>That instruction comes through HTTP headers. Two of them: Cache-Control and Expires. When they&#8217;re missing, or when they&#8217;re set to something silly like 600 seconds, PageSpeed flags it.<\/p>\n\n\n\n<p>Google&#8217;s threshold is 30 days minimum. A year is the standard recommendation, which is max-age=31536000 if you&#8217;re writing it manually.<\/p>\n\n\n\n<p>This used to be called &#8220;Leverage Browser Caching&#8221; before Lighthouse took over PSI. Same warning, new name.<\/p>\n\n\n\n<p>One thing worth flagging: this diagnostic doesn&#8217;t directly affect your score the way performance metrics do, but the underlying issue can still slow down repeat visits. So while ignoring it won&#8217;t tank your numbers, fixing it improves the actual user experience.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"find-the-broken-files\"><\/span><strong>Find the broken files<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Run <a href=\"https:\/\/pagespeed.web.dev\/\">PageSpeed Insights<\/a> on your URL. Expand the warning. You&#8217;ll see a list of every file that&#8217;s caching badly, with its current TTL.<\/p>\n\n\n\n<p>Two columns matter. The path tells you what type of file it is. The domain tells you whose problem it is.<\/p>\n\n\n\n<p>Files on your own domain? Yours to fix. Files on fonts.googleapis.com, connect.facebook.net, www.google-analytics.com? Not yours. Different problem, covered later.<\/p>\n\n\n\n<p>For a closer look, Chrome DevTools works fine. Right-click, Inspect, Network tab, reload, click any file. Look at Response Headers. If you don&#8217;t see Cache-Control with a long max-age, that file is part of the problem.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"the-easiest-fix-fastpixel\"><\/span><strong>The easiest fix: FastPixel<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><a href=\"https:\/\/wordpress.org\/plugins\/fastpixel-website-accelerator\/\">FastPixel<\/a> automatically sets efficient browser cache headers for static assets and delivers them through its CDN. It also handles image optimization, Critical CSS, minification, and page caching, so you&#8217;re not editing server files or stitching together separate plugins to cover each piece.<\/p>\n\n\n\n<p>In most cases, install it, configure it once, and the cache policy warning is handled automatically.<\/p>\n\n\n\n<p>If you&#8217;d rather set things up manually, the next sections show how. Otherwise, skip to verification.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"use-a-caching-plugin\"><\/span><strong>Use a caching plugin<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>A caching plugin is the simplest way to handle browser headers without touching server files. Setup varies depending on which one you go with. Some add the rules to .htaccess automatically when activated. Others expose a TTL slider somewhere in the settings, often buried under a &#8220;Browser Cache&#8221; submenu, sometimes requiring you to configure each file type (CSS, JS, fonts, images) one by one.<\/p>\n\n\n\n<p>The important thing is choosing a solution that handles browser caching together with the rest of your performance stack: page caching, asset optimization, image delivery, and CDN. A plugin that only sets cache headers leaves you wiring up the other pieces yourself, which usually means more plugins, more conflicts, and more time spent troubleshooting.<\/p>\n\n\n\n<p>This is exactly where FastPixel fits in. It sets browser cache headers automatically and pairs them with image optimization, Critical CSS, minification, page caching, and CDN delivery in a single plugin. One install, one configuration, and the entire performance stack is covered.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"edit-htaccess-on-apache\"><\/span><strong>Edit .htaccess on Apache<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>If you&#8217;re on shared hosting, you&#8217;re almost certainly running Apache. The configuration lives in .htaccess, in the same folder as wp-config.php.<\/p>\n\n\n\n<p>Back up that file before you change anything. A bad edit kills the site, and the fastest fix is uploading the original.<\/p>\n\n\n\n<p>Drop this in:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>## BROWSER CACHING ##\n&lt;IfModule mod_expires.c>\n  ExpiresActive On\n\n  # Images\n  ExpiresByType image\/jpeg \"access plus 1 year\"\n  ExpiresByType image\/png \"access plus 1 year\"\n  ExpiresByType image\/gif \"access plus 1 year\"\n  ExpiresByType image\/webp \"access plus 1 year\"\n  ExpiresByType image\/svg+xml \"access plus 1 year\"\n  ExpiresByType image\/x-icon \"access plus 1 year\"\n\n  # Fonts\n  ExpiresByType font\/ttf \"access plus 1 year\"\n  ExpiresByType font\/woff \"access plus 1 year\"\n  ExpiresByType font\/woff2 \"access plus 1 year\"\n  ExpiresByType application\/font-woff \"access plus 1 year\"\n  ExpiresByType application\/font-woff2 \"access plus 1 year\"\n\n  # CSS and JavaScript\n  ExpiresByType text\/css \"access plus 1 year\"\n  ExpiresByType application\/javascript \"access plus 1 year\"\n  ExpiresByType application\/x-javascript \"access plus 1 year\"\n\n  # Others\n  ExpiresByType application\/pdf \"access plus 1 month\"\n  ExpiresByType text\/html \"access plus 0 seconds\"\n\n  ExpiresDefault \"access plus 2 days\"\n&lt;\/IfModule>\n\n&lt;IfModule mod_headers.c>\n  &lt;FilesMatch \"\\.(js|css|png|jpg|jpeg|gif|webp|svg|woff|woff2|ttf|ico)$\">\n    Header set Cache-Control \"public, max-age=31536000, immutable\"\n  &lt;\/FilesMatch>\n&lt;\/IfModule>\n## BROWSER CACHING ##<\/code><\/pre>\n\n\n\n<p>A few notes.<\/p>\n\n\n\n<p>The &lt;IfModule&gt; checks keep the rules from breaking your site if mod_expires or mod_headers aren&#8217;t loaded. If those modules are missing, the block gets ignored without an error.<\/p>\n\n\n\n<p>HTML is set to zero on purpose. Pages contain dynamic content, so browsers should fetch them fresh every time.<\/p>\n\n\n\n<p>The immutable flag is small but useful. It tells the browser not to ping the server with revalidation requests during the cache window. Faster loads on repeat visits, especially on slow networks.<\/p>\n\n\n\n<p>Watch out for one thing: if you already have a caching plugin writing to .htaccess, you might end up with two mod_expires blocks fighting each other. Open the file and search before you paste. Conflicting rules cause weird, hard-to-diagnose behavior.<\/p>\n\n\n\n<p>The Htaccess File Editor plugin lets you do this through the admin dashboard if you&#8217;d rather not touch FTP.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"edit-the-config-on-nginx\"><\/span><strong>Edit the config on Nginx<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Nginx ignores .htaccess. Completely. The rules go in the server config, usually at \/etc\/nginx\/sites-enabled\/default though it depends on the setup.<\/p>\n\n\n\n<p>Inside the server block:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>location ~* \\.(js|css|png|jpg|jpeg|gif|webp|svg|ico|woff|woff2|ttf)$ {\n    expires 365d;\n    add_header Cache-Control \"public, no-transform\";\n}<\/code><\/pre>\n\n\n\n<p>Test the syntax, then reload:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nginx -t\nsudo systemctl reload nginx<\/code><\/pre>\n\n\n\n<p>Managed hosts don&#8217;t usually give you root access to edit Nginx configs. That&#8217;s normal. Open a support ticket and ask them to extend the static asset TTL. It&#8217;s a routine request.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"dont-forget-the-cdn\"><\/span><strong>Don&#8217;t forget the CDN<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>A lot of cache policy problems come from the CDN, not the server. If you&#8217;re using one, check its browser TTL setting before doing anything else.<\/p>\n\n\n\n<p>Cloudflare puts it under <strong>Caching \u2192 Configuration \u2192 Browser Cache TTL<\/strong>. Set it to a year.<\/p>\n\n\n\n<p>BunnyCDN has it under <strong>Pullzone \u2192 Cache \u2192 Browser Cache Expiration<\/strong>. Same idea.<\/p>\n\n\n\n<p><a href=\"https:\/\/fastpixel.io\/fr\/blog\/fastpixel-vs-other-optimization-plugins\/\">FastPixel ships with CDN delivery<\/a> baked in. No separate setup needed.<\/p>\n\n\n\n<p>Now, the gotcha. CDNs generally respect what your origin server sends. If Cloudflare is set to a year but your server is sending max-age=600, your visitors will get the 600-second cache. Origin wins.<\/p>\n\n\n\n<p>So fix the server first. Then fix the CDN. Otherwise you&#8217;ll think you&#8217;ve solved the problem and PSI will keep flagging the same files.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"third-party-scripts\"><\/span><strong>Third-party scripts<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Google Analytics, Tag Manager, Facebook Pixel, and similar third-party scripts often use shorter cache lifetimes by design. The script vendors keep them brief so updates to tracking code can propagate quickly across every site using them.<\/p>\n\n\n\n<p>But Lighthouse doesn&#8217;t care who hosts the file. Anything with a TTL under 30 days gets the warning. Which means Google&#8217;s own tool will tell you Google&#8217;s own analytics script has poor caching, forever.<\/p>\n\n\n\n<p>You can&#8217;t change headers on someone else&#8217;s server. What you can do:<\/p>\n\n\n\n<p>FastPixel can hold off loading these scripts until the user scrolls or clicks. The script still runs, but it&#8217;s no longer part of the initial page load that PSI audits.<\/p>\n\n\n\n<p>Or host it locally. Plugins like CAOS download the GA script and serve it from your domain. You control the headers, but you also have to keep the local copy current with whatever Google ships.<\/p>\n\n\n\n<p>In practice, the first option is what most sites go with. Don&#8217;t lose hours trying to perfect third-party caching. Get your own files cached properly first. In many cases, the cache-policy warning itself is less important than when and how those scripts load.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"verify\"><\/span><strong>Verify<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Clear everything: caching plugin, CDN, browser. Hard refresh with <strong>Ctrl+F5<\/strong> or <strong>Cmd+Shift+R<\/strong>.<\/p>\n\n\n\n<p>Re-run PageSpeed Insights. Either the warning is gone or only third-party scripts remain.<\/p>\n\n\n\n<p>For a manual check, DevTools again. Look at Response Headers on any static file. You want to see max-age=31536000 or a far-future Expires date.<\/p>\n\n\n\n<p>Still flagged? Quick checklist:<\/p>\n\n\n\n<p><strong>Conflicting rules in .htaccess.<\/strong> When Cache-Control and Expires say different things, Cache-Control wins. Two mod_expires blocks from different plugins will cancel each other out in unpredictable ways.<\/p>\n\n\n\n<p><strong>CDN overriding origin.<\/strong> Some CDNs respect origin headers, some don&#8217;t. Check both ends.<\/p>\n\n\n\n<p><strong>mod_expires<\/strong><strong> not enabled.<\/strong> Without that Apache module, the entire &lt;IfModule&gt; block does nothing. No error, no warning, just silently skipped. Ask your host.<\/p>\n\n\n\n<p><strong>Two caching plugins active at the same time.<\/strong> This happens more than people admit. Pick one.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"wrapping-up\"><\/span><strong>Wrapping up<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The whole warning comes down to one missing piece of configuration: HTTP headers on your static files.<\/p>\n\n\n\n<p>Set them once, leave them alone. A year for CSS, JS, images, <a href=\"https:\/\/fastpixel.io\/fr\/blog\/optimize-wordpress-fonts\/\">fonts<\/a>. Zero for HTML. Match the CDN to the origin. Done.<\/p>\n\n\n\n<p>Want to fix this without editing .htaccess or Nginx configs? FastPixel handles browser cache headers, CDN delivery, image optimization, Critical CSS, and page caching automatically, so your WordPress site loads faster with less setup.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"faqs\"><\/span><strong>FAQs<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><strong>Does this warning lower my PageSpeed score?<\/strong><\/p>\n\n\n\n<p>Not directly. It lives in the diagnostics section, which is informational rather than scored. It does not directly affect Core Web Vitals either, but better caching can still improve the experience for returning visitors. The reason to fix it is the actual performance gain, not the score on the report.<\/p>\n\n\n\n<p><strong>Cache-Control or Expires?<\/strong><\/p>\n\n\n\n<p>Cache-Control is the modern one. Expires is the older one. If both exist, Cache-Control takes priority. Setting both is the standard recommendation, mostly for compatibility with older proxies and clients.<\/p>\n\n\n\n<p><strong>Won&#8217;t a one-year cache cause problems when I update files?<\/strong><\/p>\n\n\n\n<p>WordPress handles this. CSS and JS files get a version query string (like ?ver=6.5). Update the file, the version bumps, the browser sees a new URL and fetches the new copy. Cached versions get bypassed automatically.<\/p>\n\n\n\n<p><strong>Do these rules cover images uploaded through the WordPress media library?<\/strong><\/p>\n\n\n\n<p>Yes. The matching is by file extension, so anything in \/wp-content\/uploads\/ falls under the same rules. JPEGs, PNGs, WebPs, all covered.<\/p>\n\n\n\n<p><strong>Why is Google flagging Google&#8217;s own scripts?<\/strong><\/p>\n\n\n\n<p>Google sets short cache durations on tracking scripts on purpose, so changes to tracking code propagate fast. Lighthouse flags anything under 30 days. The two policies contradict each other. The practical workaround is to delay the script or host a local copy.<\/p>\n\n\n\n<div class=\"wp-block-group has-border-color has-palette-color-4-border-color has-palette-color-6-background-color has-background is-vertical is-content-justification-left is-layout-flex wp-container-core-group-is-layout-e21fc307 wp-block-group-is-layout-flex\" style=\"border-width:1px;border-radius:20px;margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60);padding-top:var(--wp--preset--spacing--60);padding-right:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--60)\">\n<h3 class=\"wp-block-heading\" style=\"margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\"><span class=\"ez-toc-section\" id=\"boost-core-web-vitals-and-performance-with-fastpixel\"><\/span>Boost Core Web Vitals and performance with FastPixel!<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Optimize loading times, enhance user experience, and give your website the performance edge it needs.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/wordpress.org\/plugins\/fastpixel-website-accelerator\/\" target=\"_blank\" rel=\"noreferrer noopener\">Commencer<\/a><\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>PageSpeed Insights loves to dress up simple problems in complicated language. This warning is one of them. If you&#8217;re seeing the &#8220;Serve static assets with an efficient cache policy&#8221; warning in WordPress, it usually means your static files need better browser caching headers. In other words, your server isn&#8217;t telling browsers how long to keep [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":4594,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[10],"tags":[],"class_list":["post-4593","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-website-optimization"],"blocksy_meta":[],"uagb_featured_image_src":{"full":["https:\/\/fastpixel.io\/wp-content\/uploads\/2026\/05\/How-to-Fix-Serve-Static-Assets-with-an-Efficient-Cache-Policy-in-WordPress.png",1500,850,false],"thumbnail":["https:\/\/fastpixel.io\/wp-content\/uploads\/2026\/05\/How-to-Fix-Serve-Static-Assets-with-an-Efficient-Cache-Policy-in-WordPress-150x150.png",150,150,true],"medium":["https:\/\/fastpixel.io\/wp-content\/uploads\/2026\/05\/How-to-Fix-Serve-Static-Assets-with-an-Efficient-Cache-Policy-in-WordPress-300x170.png",300,170,true],"medium_large":["https:\/\/fastpixel.io\/wp-content\/uploads\/2026\/05\/How-to-Fix-Serve-Static-Assets-with-an-Efficient-Cache-Policy-in-WordPress-768x435.png",768,435,true],"large":["https:\/\/fastpixel.io\/wp-content\/uploads\/2026\/05\/How-to-Fix-Serve-Static-Assets-with-an-Efficient-Cache-Policy-in-WordPress-1024x580.png",1024,580,true],"1536x1536":["https:\/\/fastpixel.io\/wp-content\/uploads\/2026\/05\/How-to-Fix-Serve-Static-Assets-with-an-Efficient-Cache-Policy-in-WordPress.png",1500,850,false],"2048x2048":["https:\/\/fastpixel.io\/wp-content\/uploads\/2026\/05\/How-to-Fix-Serve-Static-Assets-with-an-Efficient-Cache-Policy-in-WordPress.png",1500,850,false],"trp-custom-language-flag":["https:\/\/fastpixel.io\/wp-content\/uploads\/2026\/05\/How-to-Fix-Serve-Static-Assets-with-an-Efficient-Cache-Policy-in-WordPress-18x10.png",18,10,true],"betterdocs-category-thumb":["https:\/\/fastpixel.io\/wp-content\/uploads\/2026\/05\/How-to-Fix-Serve-Static-Assets-with-an-Efficient-Cache-Policy-in-WordPress-360x204.png",360,204,true]},"uagb_author_info":{"display_name":"Bianca Rus","author_link":"https:\/\/fastpixel.io\/fr\/blog\/author\/bianca\/"},"uagb_comment_info":0,"uagb_excerpt":"PageSpeed Insights loves to dress up simple problems in complicated language. This warning is one of them. If you&#8217;re seeing the &#8220;Serve static assets with an efficient cache policy&#8221; warning in WordPress, it usually means your static files need better browser caching headers. In other words, your server isn&#8217;t telling browsers how long to keep\u2026","_links":{"self":[{"href":"https:\/\/fastpixel.io\/fr\/wp-json\/wp\/v2\/posts\/4593","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fastpixel.io\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fastpixel.io\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fastpixel.io\/fr\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/fastpixel.io\/fr\/wp-json\/wp\/v2\/comments?post=4593"}],"version-history":[{"count":2,"href":"https:\/\/fastpixel.io\/fr\/wp-json\/wp\/v2\/posts\/4593\/revisions"}],"predecessor-version":[{"id":4596,"href":"https:\/\/fastpixel.io\/fr\/wp-json\/wp\/v2\/posts\/4593\/revisions\/4596"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fastpixel.io\/fr\/wp-json\/wp\/v2\/media\/4594"}],"wp:attachment":[{"href":"https:\/\/fastpixel.io\/fr\/wp-json\/wp\/v2\/media?parent=4593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fastpixel.io\/fr\/wp-json\/wp\/v2\/categories?post=4593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fastpixel.io\/fr\/wp-json\/wp\/v2\/tags?post=4593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}