improving website performance

Home / stuff / improving website performance

a never ending story for all webmasters – resulting in a plethora of tipps and tricks…

here is what i did:

  • reduce the number of installed plugins and inclusions of external resources to the absolute minimum
  • use the lightweight yet mighty plugin “cachify” by sergej müller
    after manual creation of the cache folder and some adjustments of .htaccess (both described in the cachify manual) hdd caching works now due to some technical limitations at HDD cache did not work properly, so i switched to database caching; minify is enabled for html and js.
  • enable compression and expiry headers via .htaccess in wordpress root as described by viktor dite in this article on i enhanced my .htaccess with the following code:
    # Deflate Compression by FileType
    <IfModule mod_deflate.c>
     AddOutputFilterByType DEFLATE text/plain
     AddOutputFilterByType DEFLATE text/html
     AddOutputFilterByType DEFLATE text/xml
     AddOutputFilterByType DEFLATE text/css
     AddOutputFilterByType DEFLATE text/javascript
     AddOutputFilterByType DEFLATE application/xml
     AddOutputFilterByType DEFLATE application/xhtml+xml
     AddOutputFilterByType DEFLATE application/rss+xml
     AddOutputFilterByType DEFLATE application/atom_xml
     AddOutputFilterByType DEFLATE application/javascript
     AddOutputFilterByType DEFLATE application/x-javascript
     AddOutputFilterByType DEFLATE application/x-shockwave-flash
    # turns cache on for 1 month
    <IfModule mod_expires.c>
     ExpiresActive On
     ExpiresByType text/css "access plus 1 month"
     ExpiresByType text/javascript "access plus 1 month"
     ExpiresByType text/html "access plus 1 month"
     ExpiresByType application/javascript "access plus 1 month"
     ExpiresByType application/x-javascript "access plus 1 month"
     ExpiresByType application/xhtml-xml "access plus 600 seconds"
     ExpiresByType application/x-shockwave-flash "access plus 1 month"
     ExpiresByType image/gif "access plus 1 month"
     ExpiresByType image/jpeg "access plus 1 month"
     ExpiresByType image/jpg "access plus 1 month"
     ExpiresByType image/png "access plus 1 month"
     ExpiresByType image/x-icon "access plus 1 month"
    <ifmodule mod_headers.c>
     <filesmatch "\\.(ico|jpe?g|png|gif|swf)$">
      Header set Cache-Control "max-age=2592000, public"
     <filesmatch "\\.(css)$">
      Header set Cache-Control "max-age=604800, public"
     <filesmatch "\\.(js)$">
      Header set Cache-Control "max-age=216000, private"
     <filesmatch "\\.(x?html?|php)$">
      Header set Cache-Control "max-age=600, private, must-revalidate"
    # gzip Compression if available
    <IfModule mod_gzip.c>
     mod_gzip_on       Yes
     mod_gzip_dechunk  Yes
     mod_gzip_item_include file      \.(html?|txt|css|js|php|pl)$
     mod_gzip_item_include handler   ^cgi-script$
     mod_gzip_item_include mime      ^text/.*
     mod_gzip_item_include mime      ^application/x-javascript.*
     mod_gzip_item_exclude mime      ^image/.*
     mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
  • preload the statistics images like e.g. the uptime monitor in the footer and the pingdom results on the statistics page via cronjob as described by tocki in this article.

still on my wishlist is a good caching mechanism for google’s webfonts. i’ve already tried some things but results were not as good as expected. might happen that i delete the google webfonts from this site altogether…

share this via:

Leave a Reply

Your email address will not be published. Required fields are marked *

WordPress Cookie Plugin by Real Cookie Banner