Frequently Asked Questions

I updated my javascript/css/images, why do I still get the old version?

Css, javascript, images and other assets will be fetched over http by default, and will cached by IISpeed for the specified expiry time specified in the response headers.
IISpeed will check back at the expiry time by default (which can be shortened or lengthened through configuration), which is when IISpeed will notice any changes.
One way to work around this, is by configuring LoadFromFile.
Using LoadFromFile allows IISpeed to detect and reprocess files immediately after they are updated, and has other benefits as well.

Why aren't my resources combined, optimized, etc?

By default, IIS imposes thight limits on urls for security reasons. A drawback of this, is that IISpeed is limited on the length of urls it can generate when combining resources. The default URL length allowed in IIS7.5 is 260. Adding the following key to the registry:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters \UrlSegmentMaxLength with a value of for example 750 . Combined with increasing MaxUrlSegmentLength in the root iiswebspeed.config file, this allows IISpeed to generate longer urls. That has the benefit of being able to combine more assets into a single request.
Note that the registry change only takes effect after the HTTP service is restarted (not part of IIS) using "net stop http" and then "net start http", followed by starting IIS again.

Wy do I get a partially optimized response on the first request

This is by design - IISpeed works under a tight deadline when rewriting html, and will send a partially optimized or unoptimized response when it would take too long to wait for optimizations to complete. By default IISpeed will wait for 50 ms. After a few refreshes, optimizations should be cached and ready, and you will get a fully optimized response. The deadline can be changed using RewriteDeadlinePerFlushMs value_in_milliseconds, where a value equal to or smaller then 0 will cause IISpeed to wait indefinitely until completion.
Also, IISpeed will usually only optimize cacheable assets (css/js/images), so make sure your expiration headers are set.

What is the CPU overhead of IISpeed?

Short answer: the typical overhead is 10 ms per optimized html request.
Google's PageSpeed team is currently actively working on two fronts related to this:

  • There are optimization opportunities to speed up the html parser
  • Allowing the optimized html to be cacheable

A more in-depth discussion can be found here

Can I remove X-IISpeed / X-Page-Speed from the response headers?

We don't recommend doing so, because these headers are used internally to avoid fetching loops.

Why are rewritten pages sending POSTs back to my server?

Certain filters need to determine things about the page: in particular, the lazyload_images, inline_preview_images, and inline_images filters need to determine which images are above the fold, and the prioritize_critical_css filter needs to determine the CSS actually used by the page.

To do this, the filters inject JavaScript into the rewritten HTML that analyzes the page in the browser and sends data back to mod_pagespeed using a POST method. The default target is /pagespeed_beacon but that can be changed using theBeaconUrl directive.

How do I purge PageSpeed's Cache?

See the Purge documentation for clearing PageSpeed's Cache. Clearing the filesystem cache directory manually will not work.

Server errors after installing / configuring the module

Any server errors after setting up IISpeed are usually due to permission problems. Make sure that IIS is able to read and execute the IISWebSpeed.dll files, and any configured FileCachePath's should be read/writeable by the relevant application pools that are servicing the websites that have IISpeed enabled.

Plesk: after installing IISpeed plesk sites won't work or give an error.

See the entry about permissions above. Pleks will periodically enforce and change permissions. Read how to install IISpeed on a plesk server.

Question not listed?

If your question is not listed here, please check Google's FAQ