Quantcast
Channel: WordPress.org Forums » All Topics
Viewing all articles
Browse latest Browse all 59525

Pre-compressed Gzip – Speed boost!

$
0
0

Replies: 2

I checked recently the FVM generated files found in [cache directory]/fvm/out/ and discovered 3 files generated for each resource (css or js).

  • 1. The merged file .css/.js (used for browser)
  • 2. The plugin info file .txt (used on FVM Status tab)
  • 3. The 3rd file .gz (gzip) I believe is generated by the cache plugin WP Super Cache – likely its htaccess directives. I have the setting selected “Compress pages so they’re served more quickly to visitors”.

What a bonus I thought, pre-compressed gzip FVM css/js files!

Go and check the directory [cache directory]/fvm/out/ and if it contains the pre-compressed gzip files, you can take advantage of those and get another 10%+ page load speed!

The following htaccess directives will make sure the resources are served as content-encoding: gzip, whether they are pre-compressed or not, and set appropriate cache control – expires & security – headers too. If the gzip files exist, it will load page/resources just that little bit faster…
Just add the following to the document root .htaccess file to get the added boost:

# ===== BEGIN GZIP =====
# ===== Cache Control and Enable CORS =====
<FilesMatch "\.(js|css|jpg|gif|png|pdf|swf|svg|svgz|ico|ttf|ttc|otf|eot|woff|woff2|webp)$">
 <IfModule mod_headers.c>
    ExpiresActive On
    ExpiresDefault  "access plus 1 month"
    Header set Cache-Control "public, immutable, max-age=2628000, s-maxage=2628000"
    Header set Access-Control-Allow-Origin "*"
 </IfModule>
</FilesMatch>
# Compression by Type
# text/html removed to allow cached gzip compression by Supercache (add below if required)
<ifmodule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/css text/javascript text/plain text/xml application/javascript
</ifmodule>
<IfModule mod_headers.c>
# Serve gzip compressed CSS files if they exist and the client accepts gzip.
    RewriteCond "%{HTTP:Accept-encoding}" "gzip"
    RewriteCond "%{REQUEST_FILENAME}\.gz" -s
    RewriteRule "^(.*)\.css" "$1\.css\.gz" [QSA]
# Serve gzip compressed JS files if they exist and the client accepts gzip.
    RewriteCond "%{HTTP:Accept-encoding}" "gzip"
    RewriteCond "%{REQUEST_FILENAME}\.gz" -s
    RewriteRule "^(.*)\.js" "$1\.js\.gz" [QSA]
# Serve correct content types, and prevent mod_deflate double gzip.
    RewriteRule "\.css\.gz$" "-" [T=text/css,E=no-gzip:1]
    RewriteRule "\.js\.gz$" "-" [T=text/javascript,E=no-gzip:1]
# Serve correct encoding type, and cache control
    <FilesMatch "(\.js\.gz|\.css\.gz)$">
    Header append Content-Encoding gzip
    ExpiresActive On
    ExpiresDefault  "access plus 1 month"
    Header set Cache-Control "public, immutable, max-age=2628000, s-maxage=2628000"
    Header set Access-Control-Allow-Origin "*"
    </FilesMatch>
</IfModule>
# ===== END GZIP =====

To test on your browser, right-click on a web page, select Inspect or Inspect Element then click the “Network” tab at top. Load/reload page then…
Scroll thru the files list and click on CSS or JS file to view headers. Should include:
content-encoding: gzip
vary: Accept-Encoding
expires: [future date]

All good!


Viewing all articles
Browse latest Browse all 59525

Trending Articles