how to cache my site background image?
The default drupal .htaccess settings should have your browser cache this image for 2 weeks. If this is not working I recommend installing the mod_expires module &amp; the mod_headers module on your server. If 2 weeks is not long enough, you will need to modify your .htaccess file to set the expires &amp; cache control headers for this file. An example of that below:

&lt;FilesMatch "my-big-image\.jpg$"&gt;
  &lt;IfModule mod_expires.c&gt;
    # Enable expiration.
    ExpiresActive On

    # Cache this file for 1 year after access (A).
    ExpiresDefault A31556926
  &lt;/IfModule&gt;
  &lt;IfModule mod_headers.c&gt;
    # Make this file publicly cacheable.
    Header append Cache-Control "public"
  &lt;/IfModule&gt;
&lt;/FilesMatch&gt;


At a bare minimum, you can try adding this line to the bottom of your .htaccess file. This doesn't require any apache modules to be installed and it should have your sever send back a small 304 instead of a large 200.

FileETag MTime Size