PageSpeed suggestion: Leverage browser caching… How To?

I have a wordpress website with a custom theme that I created myself. Currently, I am working on suggestions from “Google PageSpeed Insights”, to improve user-experience on my website.

PageSpeed is suggesting “Leverage Browser Caching”. Below are the results:

Read More
**Leverage browser caching**

Setting an expiry date or a maximum age in the HTTP headers for static resources
instructs the browser to load previously downloaded resources from local disk 
rather than over the network.
Leverage browser caching for the following cacheable resources:
  http:.//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js (60 minutes)
  http:.//pagead2.googlesyndication.com/pagead/osd.js (60 minutes)
  http:.//www.google.com/…callback%22%3A%22__gcse.sacb%22%7D%5D%7D (60 minutes)

So, basically, it is suggesting me to set “expiry-time” for cache of the Adsense scripts to 60 minutes.

I tried to check the caching status of my website via REDbot. Below are the results:

General

The server’s clock is correct.

Content Negotiation

The resource doesn’t send Vary consistently.

Content negotiation for gzip compression is supported, saving 72%.

Caching

This response allows all caches to store it.

This response allows a cache to assign its own freshness lifetime.

My understanding of the results is that my website allows caching and that it allows a cache to assign its own refresh time. I am not using any HTML “meta” tags for caching so basically, my server is configured this way.

Now my question is: how would I manually set the “expitry-time” for the scripts to 60 minutes.
I know how to use “.htaccess” file to set caching duration for various file types ((using FilesMatch)). But, presumably, this method works for File types, not individual scripts within “.php” files.
So, how can I change the caching expiry-time of adsense scripts?

((This is my first stackoverflow question, so if there is any mistake or deficiency, please point it out for me.. Thanks))

UPDATE:

After the answer from “Andrew”, I added the following to my .htaccess file.

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 hour"
ExpiresByType image/jpeg "access plus 1 hour"
ExpiresByType image/gif "access plus 1 hour"
ExpiresByType image/png "access plus 1 hour"
ExpiresByType text/css "access plus 1 hour"
ExpiresByType text/html "access plus 1 hour"
ExpiresByType text/x-javascript "access plus 1 hour"
ExpiresByType image/x-icon "access plus 1 hour"
ExpiresDefault "access plus 1 hour"
</IfModule>
## EXPIRES CACHING ##

But it gave me strange results. Pagespeed now decreased my score and has the following suggestions now:

Leverage browser caching Setting an expiry date or a maximum age in
the HTTP headers for static resources instructs the browser to load
previously downloaded resources from local disk rather than over the
network. Leverage browser caching for the following cacheable
resources:

http.://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js (60 minutes)
http.://pagead2.googlesyndication.com/pagead/osd.js (60 minutes)
http.://www.google.com/…callback%22%3A%22__gcse.sacb%22%7D%5D%7D (60 minutes)
http.://www.mananatomy.com/…heme/images/mananatomy_logo_modified.jpg (60 minutes)
http.://www.mananatomy.com/…mages/mananatomy_logo_modified_small.jpg (60 minutes)
http.://www.mananatomy.com/…s/mananatomy-theme/images/sidebar_bg.jpg (60 minutes)
http.://www.mananatomy.com/…ontent/themes/mananatomy-theme/style.css (60 minutes)
http.://www.mananatomy.com/…t/uploads/2010/12/basic-anatomy-logo.jpg (60 minutes)
http.://www.mananatomy.com/…nt/uploads/2010/12/body-systems-logo.jpg (60 minutes)
http.://www.mananatomy.com/…ntent/uploads/2010/12/histology-logo.jpg (60 minutes)

So it got even more confusing. Any help ???

Related posts

Leave a Reply

5 comments

  1. read here:

        Leverage browser caching for the following cacheable resources:
      http:.//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js (60 minutes)
      http:.//pagead2.googlesyndication.com/pagead/osd.js (60 minutes)
      http:.//www.google.com/…callback%22%3A%22__gcse.sacb%22%7D%5D%7D (60 minutes)
    

    Its not your resources not being cached!

  2. The bracket in front like (60 minutes) is NOT a suggestion by google to set cache by that amount. It is actually google telling you that Cache is set to very low (60 minutes) i.e. 1 hour

    For images and other static files, set your cache to at least 1 month!

    About google’s JS files, you cant do anything.. you cant cache EXTERNAL links (esp javascript) without messing your website up

  3. I have used some code for leverage browser caching issue to increase website speed performance and got nice result in it.

    Step 1: To make Prefetch on Google Analytics. Just put bellow code into website body code.

    Step 2: Then Added some code into .htaccess file to keep remember browser cache history for 1 year or 1 month.

    EXPIRES CACHING

    ExpiresActive On

    ExpiresByType image/jpg “access 1 year”

    ExpiresByType image/jpeg “access 1 year”

    ExpiresByType image/gif “access 1 year”

    ExpiresByType image/png “access 1 year”

    ExpiresByType text/css “access 1 month”

    ExpiresByType text/html “access 1 month”

    ExpiresByType application/pdf “access 1 month”

    ExpiresByType text/x-javascript “access 1 month”

    ExpiresByType application/x-shockwave-flash “access 1 month”

    ExpiresByType image/x-icon “access 1 year”

    ExpiresDefault “access 1 month”

    EXPIRES CACHING

    Step 3: After put the above code then added some extra code into your .htaccess file.

    Header set Cache-Control “max-age=2592000, public”

    This code will help Control Cache in your website and Up website performance as high situation

  4. This is the ultimate header code that covers all the things you need to cover
    add this code in your .htacess file which you will find in the site root directory.

    <IfModule mod_mime.c>
    AddType text/css .css
    AddType text/x-component .htc
    AddType application/x-javascript .js
    AddType application/javascript .js2
    AddType text/javascript .js3
    AddType text/x-js .js4
    AddType video/asf .asf .asx .wax .wmv .wmx
    AddType video/avi .avi
    AddType image/bmp .bmp
    AddType application/java .class
    AddType video/divx .divx
    AddType application/msword .doc .docx
    AddType application/vnd.ms-fontobject .eot
    AddType application/x-msdownload .exe
    AddType image/gif .gif
    AddType application/x-gzip .gz .gzip
    AddType image/x-icon .ico
    AddType image/jpeg .jpg .jpeg .jpe
    AddType image/webp .webp
    AddType application/json .json
    AddType application/vnd.ms-access .mdb
    AddType audio/midi .mid .midi
    AddType video/quicktime .mov .qt
    AddType audio/mpeg .mp3 .m4a
    AddType video/mp4 .mp4 .m4v
    AddType video/mpeg .mpeg .mpg .mpe
    AddType video/webm .webm
    AddType application/vnd.ms-project .mpp
    AddType application/x-font-otf .otf
    AddType application/vnd.ms-opentype ._otf
    AddType application/vnd.oasis.opendocument.database .odb
    AddType application/vnd.oasis.opendocument.chart .odc
    AddType application/vnd.oasis.opendocument.formula .odf
    AddType application/vnd.oasis.opendocument.graphics .odg
    AddType application/vnd.oasis.opendocument.presentation .odp
    AddType application/vnd.oasis.opendocument.spreadsheet .ods
    AddType application/vnd.oasis.opendocument.text .odt
    AddType audio/ogg .ogg
    AddType application/pdf .pdf
    AddType image/png .png
    AddType application/vnd.ms-powerpoint .pot .pps .ppt .pptx
    AddType audio/x-realaudio .ra .ram
    AddType image/svg+xml .svg .svgz
    AddType application/x-shockwave-flash .swf
    AddType application/x-tar .tar
    AddType image/tiff .tif .tiff
    AddType application/x-font-ttf .ttf .ttc
    AddType application/vnd.ms-opentype ._ttf
    AddType audio/wav .wav
    AddType audio/wma .wma
    AddType application/vnd.ms-write .wri
    AddType application/font-woff .woff
    AddType application/font-woff2 .woff2
    AddType application/vnd.ms-excel .xla .xls .xlsx .xlt .xlw
    AddType application/zip .zip
    </IfModule>
    <IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType text/css A31536000
    ExpiresByType text/x-component A31536000
    ExpiresByType application/x-javascript A31536000
    ExpiresByType application/javascript A31536000
    ExpiresByType text/javascript A31536000
    ExpiresByType text/x-js A31536000
    ExpiresByType video/asf A31536000
    ExpiresByType video/avi A31536000
    ExpiresByType image/bmp A31536000
    ExpiresByType application/java A31536000
    ExpiresByType video/divx A31536000
    ExpiresByType application/msword A31536000
    ExpiresByType application/vnd.ms-fontobject A31536000
    ExpiresByType application/x-msdownload A31536000
    ExpiresByType image/gif A31536000
    ExpiresByType application/x-gzip A31536000
    ExpiresByType image/x-icon A31536000
    ExpiresByType image/jpeg A31536000
    ExpiresByType image/jpg A31536000
    ExpiresByType image/webp A31536000
    ExpiresByType application/json A31536000
    ExpiresByType application/vnd.ms-access A31536000
    ExpiresByType audio/midi A31536000
    ExpiresByType video/quicktime A31536000
    ExpiresByType audio/mpeg A31536000
    ExpiresByType video/mp4 A31536000
    ExpiresByType video/mpeg A31536000
    ExpiresByType video/webm A31536000
    ExpiresByType application/vnd.ms-project A31536000
    ExpiresByType application/x-font-otf A31536000
    ExpiresByType application/vnd.ms-opentype A31536000
    ExpiresByType application/vnd.oasis.opendocument.database A31536000
    ExpiresByType application/vnd.oasis.opendocument.chart A31536000
    ExpiresByType application/vnd.oasis.opendocument.formula A31536000
    ExpiresByType application/vnd.oasis.opendocument.graphics A31536000
    ExpiresByType application/vnd.oasis.opendocument.presentation A31536000
    ExpiresByType application/vnd.oasis.opendocument.spreadsheet A31536000
    ExpiresByType application/vnd.oasis.opendocument.text A31536000
    ExpiresByType audio/ogg A31536000
    ExpiresByType application/pdf A31536000
    ExpiresByType image/png A31536000
    ExpiresByType application/vnd.ms-powerpoint A31536000
    ExpiresByType audio/x-realaudio A31536000
    ExpiresByType image/svg+xml A31536000
    ExpiresByType application/x-shockwave-flash A31536000
    ExpiresByType application/x-tar A31536000
    ExpiresByType image/tiff A31536000
    ExpiresByType application/x-font-ttf A31536000
    ExpiresByType application/vnd.ms-opentype A31536000
    ExpiresByType audio/wav A31536000
    ExpiresByType audio/wma A31536000
    ExpiresByType application/vnd.ms-write A31536000
    ExpiresByType application/font-woff A31536000
    ExpiresByType application/font-woff2 A31536000
    ExpiresByType application/vnd.ms-excel A31536000
    ExpiresByType application/zip A31536000
    </IfModule>
    <IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/html text/richtext text/plain text/xsd text/xsl text/xml image/bmp application/java application/msword application/vnd.ms-fontobject application/x-msdownload image/x-icon image/webp application/json application/vnd.ms-access video/webm application/vnd.ms-project application/x-font-otf application/vnd.ms-opentype application/vnd.oasis.opendocument.database application/vnd.oasis.opendocument.chart application/vnd.oasis.opendocument.formula application/vnd.oasis.opendocument.graphics application/vnd.oasis.opendocument.presentation application/vnd.oasis.opendocument.spreadsheet application/vnd.oasis.opendocument.text audio/ogg application/pdf application/vnd.ms-powerpoint image/svg+xml application/x-shockwave-flash image/tiff application/x-font-ttf application/vnd.ms-opentype audio/wav application/vnd.ms-write application/font-woff application/font-woff2 application/vnd.ms-excel
    <IfModule mod_mime.c>
    # DEFLATE by extension
    AddOutputFilter DEFLATE js css htm html xml
    </IfModule>
    </IfModule>
    <FilesMatch ".(css|htc|less|js|js2|js3|js4|CSS|HTC|LESS|JS|JS2|JS3|JS4)$">
    FileETag MTime Size
    <IfModule mod_headers.c>
    Header unset Set-Cookie
    </IfModule>
    </FilesMatch>
    <FilesMatch ".(html|htm|rtf|rtx|txt|xsd|xsl|xml|HTML|HTM|RTF|RTX|TXT|XSD|XSL|XML)$">
    FileETag MTime Size
    <IfModule mod_headers.c>
    Header append Vary User-Agent env=!dont-vary
    </IfModule>
    </FilesMatch>
    <FilesMatch ".(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|webp|json|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|webm|mpp|otf|_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|_ttf|wav|wma|wri|woff|woff2|xla|xls|xlsx|xlt|xlw|zip|ASF|ASX|WAX|WMV|WMX|AVI|BMP|CLASS|DIVX|DOC|DOCX|EOT|EXE|GIF|GZ|GZIP|ICO|JPG|JPEG|JPE|WEBP|JSON|MDB|MID|MIDI|MOV|QT|MP3|M4A|MP4|M4V|MPEG|MPG|MPE|WEBM|MPP|OTF|_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|_TTF|WAV|WMA|WRI|WOFF|WOFF2|XLA|XLS|XLSX|XLT|XLW|ZIP)$">
    FileETag MTime Size
    <IfModule mod_headers.c>
    Header unset Set-Cookie
    </IfModule>
    </FilesMatch>
    <FilesMatch ".(bmp|class|doc|docx|eot|exe|ico|webp|json|mdb|webm|mpp|otf|_otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|pot|pps|ppt|pptx|svg|svgz|swf|tif|tiff|ttf|ttc|_ttf|wav|wri|woff|woff2|xla|xls|xlsx|xlt|xlw|BMP|CLASS|DOC|DOCX|EOT|EXE|ICO|WEBP|JSON|MDB|WEBM|MPP|OTF|_OTF|ODB|ODC|ODF|ODG|ODP|ODS|ODT|OGG|PDF|POT|PPS|PPT|PPTX|SVG|SVGZ|SWF|TIF|TIFF|TTF|TTC|_TTF|WAV|WRI|WOFF|WOFF2|XLA|XLS|XLSX|XLT|XLW)$">
    <IfModule mod_headers.c>
    Header unset Last-Modified
    </IfModule>
    </FilesMatch>
    <IfModule mod_headers.c>
    Header set Referrer-Policy "no-referrer-when-downgrade"
    </IfModule>

  5. You will have a solution of that problem by following below steps:

    1. create .htpasswd file by going to htaccesstools.com/htpasswd-generator/ and generate username and password
    2. upload .htpasswd file to your WordPress wp-admin folder

    3. add the following code to your .htaccess file

      ErrorDocument 401 default
      
      AuthType Basic
      AuthName "Restricted Area"
      AuthUserFile /home/public_html/wp-admin/.htpasswd
      require valid-user