Here is a quick checklist that you can use in order to get more performance out of your Sitecore Media Library’s delivery.

  1. Ensure data/item/prefetch caches are of a sufficient size.

  2. Ensure client caching is properly configured (MediaResponse.XXX settings).

  3. Media Library structure – make sure the tree is balanced.
  4. Change MediaLinkPrefix from ~/media to something else, for example "-/media":
  • set the value of the “Media.MediaLinkPrefix” to alternative prefix: >
    <setting name="Media.MediaLinkPrefix" value="-/media" /> 
    -add the following line to the customHandlers section, don’t remove the existing one mapped to “~/media”:
      <handler trigger="-/media/" handler="sitecoremedia.ashx" /> 
      <handler trigger="~/media/" handler="sitecoremedia.ashx" />
    This really helps for high traffic websites. Apparently tilde in the path forces different way of resolving the system permissions on a resource on Windows Server.
  • Consider IIS kernel and/or output caching, but keep in mind this consideration6. Consider adding other edge caching options in front of the web servers.
  • Leverage CDN like AKAMAI.

Some links and food for thought:

Some great stuff here:

Thanks to the guys from our brilliant customer service for helping me to come up with a more complete list.

Updated 2/8/2012. Confusing typo fixed.