For people located in Australia, sites hosted outside of Australia often suffer poor performance due to an issue called latency.
Latency is the time taken for a round trip of information over a specific distance; it cannot be reduced as it’s a limitation of the speed of light. Within Australia latency is typically 10-40ms, whereas from the US to Australia it is typically 200-300ms. Therefore unless one has discovered a way to increase the speed of light (I would be interested in speaking to you if you have!), the only way to improve latency is to reduce the distance between the web server and those accessing it.
While at first it appears that a user won’t notice the difference between 10ms and 200ms as the values are small, there is a little known side effect that has a large bearing. The latency applies at least once to each request (typically 1 request = 1 file/resource), and a typical webpage may require 10-20 requests in order to display a page the first time it is visited.
Gross Simplificiation, but Practical Example
Doing some calculations on a sample site with 15 files (we will assume they are 10KB) which are required to render the first page and assume a typical 1.5Mbit (150KB/s) ADSL Connection:
@10ms latency, 15 requests would take at least 150ms + 15 * (10/150) = 375ms
@300ms latency, 15 requests would take at least 4500ms + 15 * (10/150) = 4735ms
The reason that this is a gross simplification is that many browsers will download files in parallel, which means that the effect of latency isn't perfectly linear. The type of file in some browsers can also block these parallel downloads. Using different hostnames can increase the degree of parallelism.
Still, in the 'simple case', less than half a second, compared to a page load that takes almost 5 seconds, all due to utilising local (Australian based for me and my clients) hosting is compelling enough reason for me (and them).
Global Implications
Many local sites are geotargetted to their local region, particularly those whom are clients of my company. However not every website is intended to be viewed only in one small local area. For US visitors to sites hosted in Australia (like this blog), the same latency issues apply unfortunately.
Chose a location closest to their target customer base, use separate local datacentres at each location (very expensive and complicated), or use a CDN (Content Delivery Network) for static resources.
The latter option, using a CDN, allows you to push many of the static files onto a network which will automatically minimise latency to wherever your clients are located. So instead of every request having 300ms latency, maybe only 3 out of 15 requests will need to travel across the globe to the remote datacentre, and 12 out of 15 requests could be delivered by a local CDN network.
Even just utilising a shared CDN resources for things like JQuery (which is available on many free CDNs), is a step in the right direction, and if the user has already visited a site that accessed the shared resource, it will be in their cache and save the request completely!