One Megabyte Website

The web development community was missing a page size reference. This site is that reference—the International Prototype of the Kilogram, but for web.

The transfer size of this website is precisely 1 MB or 1,000,000 bytes, by definition. Transfer size is the amount of data that must be transferred over the network to the browser in order to display the page fully.

The exact resources that constitute a web page are not fixed since clients are not obliged to fetch all of them. In this case the 1 MB transfer size is reached if the browser downloads all linked images, JavaScript, CSS, as the vast majority of browsers do. The 1 MB transfer size includes the size of the response headers from the web server in its totals, as these are part of the cost of fetching a page.

Note: Previous versions of this page used the base-2 version of the megabyte (220 or 1,048,576 bytes), more correctly called the mebibyte (MiB). The 220 version of the megabyte was common and is still the standard that Windows uses but is falling out of usage in favour of the SI unit. The Wikipedia mebibyte article details how different operating systems use megabyte vs. mebibyte.

If your web test tool reports anything other than exactly 1 MB as the size of this page it is either incorrect or is measuring something different. There are some valid reasons for a difference of opinion:

There are two less justifiable reasons why page weight measurement tools make mistakes:


The 1 MB Website is a mobiForge project project created as part of a three-part series on web page weight: Understanding page weight, Measuring page weight, Reducing page weight.

The page is served using HTTP 1.1. As is normally the case, HTML, JavaScript and CSS resources are gziped before transfer, JPEG images are not.

This page uses a fairly typical mix of HTML, CSS, images and JavaScript. There are no deliberately tricky elements designed to confuse test tools. No responsive image markup is utilised to ensure that the page weight is invariant, regardless of browser and device. User agent request headers are not included in the 1 MB total because this component of the whole is controlled by the browser rather than the server. No AJAX requests are utilised to keep things simple.

Images are Creative Commons licensed, sourced from Wikimedia Commons and Flickr.

The static source for this site is available on GitHub.