WordPress speed optimization is a crucial factor and affects our search ranking and decrease user engagement. We only get five seconds to engage a visitor. 54 percent of users don’t return to a site which is slow to load. Using more plugins, themes, and unoptimized images can make your site heavy. However, some WordPress speed optimization plugins and caching plugins can help you improve your page load time, but you can speed up your site by adding some codes to your site’s .htaccess file, here I’ll be providing the best code for optimizing your site.

WordPress Speed Optimization With .htaccess

Just check your site’s page speed score here, if your site isn’t optimized then you are more likely to see suggestions like Enable compression, Leverage browser caching, Optimize images and Eliminate render-blocking JavaScript and CSS in above-the-fold content. Adding this code will fix the issues Enable compression and Leverage browser caching. To get started use the file manager provided by your web host or use an FTP client to access the root of your site, then you can see “.htaccess” file there, backup that first then edit it and add the code below to it.

# Begin WordPress Speed Optimization Code by WPDeve.com

<IfModule mod_mime.c>
AddCharset UTF-8 .atom .css .js .json .rss .vtt .xml

# FileETag None is not enough for every server.
<IfModule mod_headers.c>
Header unset ETag

# Since we're sending far-future expires, we don't need ETags for static content.
# developer.yahoo.com/performance/rules.html#etags
FileETag None

<IfModule mod_alias.c>
<FilesMatch "\.(html|htm|rtf|rtx|txt|xsd|xsl|xml)$">
<IfModule mod_headers.c>
Header unset Pragma
Header append Cache-Control "public"
Header unset Last-Modified

<FilesMatch "\.(css|htc|js|asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|json|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$">
<IfModule mod_headers.c>
Header unset Pragma
Header append Cache-Control "public"

# Expires headers (for better cache control)
<IfModule mod_expires.c>
ExpiresActive on

# Perhaps better to whitelist expires rules? Perhaps.
ExpiresDefault                          "access plus 1 month"

# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
ExpiresByType text/cache-manifest       "access plus 0 seconds"

# Your document html
ExpiresByType text/html                 "access plus 0 seconds"

# Data
ExpiresByType text/xml                  "access plus 0 seconds"
ExpiresByType application/xml           "access plus 0 seconds"
ExpiresByType application/json          "access plus 0 seconds"

# Feed
ExpiresByType application/rss+xml       "access plus 1 hour"
ExpiresByType application/atom+xml      "access plus 1 hour"

# Favicon (cannot be renamed)
ExpiresByType image/x-icon              "access plus 1 week"

# Media: images, video, audio
ExpiresByType image/gif                 "access plus 1 month"
ExpiresByType image/png                 "access plus 1 month"
ExpiresByType image/jpeg                "access plus 1 month"
ExpiresByType video/ogg                 "access plus 1 month"
ExpiresByType audio/ogg                 "access plus 1 month"
ExpiresByType video/mp4                 "access plus 1 month"
ExpiresByType video/webm                "access plus 1 month"

# HTC files  (css3pie)
ExpiresByType text/x-component          "access plus 1 month"

# Webfonts
ExpiresByType application/x-font-ttf    "access plus 1 month"
ExpiresByType font/opentype             "access plus 1 month"
ExpiresByType application/x-font-woff   "access plus 1 month"
ExpiresByType application/x-font-woff2  "access plus 1 month"
ExpiresByType image/svg+xml             "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"

# CSS and JavaScript
ExpiresByType text/css                  "access plus 1 year"
ExpiresByType application/javascript    "access plus 1 year"


# Gzip compression
<IfModule mod_deflate.c>
# Active compression
SetOutputFilter DEFLATE
# Force deflate for mangled headers
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
# Don't compress images and other uncompressible content
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png|rar|zip|exe|flv|mov|wma|mp3|avi|swf|mp?g)$ no-gzip dont-vary

# Compress all output labeled with one of the following MIME-types
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE application/atom+xml \
                              application/javascript \
                              application/json \
                              application/rss+xml \
                              application/vnd.ms-fontobject \
                              application/x-font-ttf \
                              application/xhtml+xml \
                              application/xml \
                              font/opentype \
                              image/svg+xml \
                              image/x-icon \
                              text/css \
                              text/html \
                              text/plain \
                              text/x-component \
<IfModule mod_headers.c>
Header append Vary: Accept-Encoding

# End WordPress Speed Optimization Code by WPDeve.com


This code enables Browser caching and Gzip compression for your site. When browser cache is enabled, in the initial load of your website, your website and its static files will be cached on the visitor’s browser so that the next time when your page is loaded then most contents will be directly fetched from the visitor’s browser and thereby speeds up your website. And enabling Gzip compression will simply compress and reduce size of your website. We tried this on Point theme with WP Super Cache enabled and found the results below 


As you see from from the image, there is a little improvement but this depends for your theme and some external files may not be optimized with this code. Mostly this code can give +10 score and beyond this you can minify , use a cache plugin and use a CDN to get better results. We will cover on a full WordPress speed optimization is upcoming posts . If you have any queries regarding this WordPress speed optimization guide then leave a comment below or ask the community here.

Subscribe to our Weekly
WPDeve WordPress Forum

Leave a Comment