Page Speed generates its results based on the state of the page at the time you run the tool. To ensure the most accurate results, you should wait until the page finishes loading before running Page Speed. Otherwise, Page Speed may not be able to fully analyze resources that haven't finished downloading.
Alternatively, enable the Automatically run at onload option to have Page Speed automatically start the analysis after any page is properly loaded. See Advanced options below for details.
To profile a page with Page Speed:


For each rule, Page Speed gives specific suggestions for improvement, and gives the page a "score" according to a heuristic that weighs a number of factors. Those factors include the potential impact of the rule (based on our experience); the difficulty of implementation; and the severity of the page's variance from the rule. The last factor varies according to the specific rule, but consists of some quantitative measure of the "failure" of the page to apply the rule; for example, it might be a percentage of the total number of files tested.
Here's how to interpret the scores:
Tip: If your results show a large number of informational messages, this is likely because you tried to analyze the page before it was fully loaded. Click Analyze Performance to rerun the analysis.
The Page Speed Activity panel shows a timeline of all browser activities, including network events and JavaScript processing. You can use the panel to further analyze your pages and correlate Page Speed's performance analysis results with actual timing data.
Note: The Page Speed Activity feature is incompatible with HTTPWatch. Before using it, make sure to disable HTTPWatch: in Firefox, go to Tools > Add-ons, and from the list of add-ons, click Disable for HTTPWatch.
Note that the Page Speed Activity panel shows browser events for all open browser sessions. Use the procedure below to record activity for a single page.
To record activity for one page:


Tip: You can also
use
the following keyboard shortcuts to start and stop recording: Ctrl-R on
Linux and Mac OS X, Alt-R on Windows.
Tip: To see the absolute URL of any resource, hover the mouse over the resource to display a tooltip.
The Activity panel shows browser events along a timeline, for each resource required for the page being recorded. Events are represented in time slices of 10 milliseconds. If the browser event doesn't take the entire 10 milliseconds, the event is shown in a lighter shade. Segments in the timeline in which no colored event is displayed indicate that the browser is occupied with other processing, such as DOM and CSS parsing, Flash ActionScript processing, painting, operating system activities and so on.
The following table describes the event types in more detail.
| Network events | Description | ||
|---|---|---|---|
|
|
DNS | The browser is performing a DNS lookup for this resource | |
|
|
Wait | The browser is waiting to establish a network (TCP) connection with the web server. Because the browser limits the number of connections it can keep open, if it has reached its maximum, it must wait until one is closed to begin a new one. (For information on browser connections, see Parallel downloads across hostnames.) This event shows the time the browser waits until another completes. | |
|
|
Connect | The browser is establishing a network (TCP) connection with the web server. This event only appears for new connections; not for connections that are reused. | |
|
|
Send | The browser has sent the HTTP request. Only GET requests are shown. | |
|
|
Connected | The browser is waiting for data over the network. The event ends when the browser ends the TCP connection. Resources that show lengthy Connected events may benefit from optimization to reduce payload size, such as compression | |
| Local events | Description | ||
|
|
Cache Hit | The browser has successfully located the resource in its cache. | |
|
|
Data Available | Data has been made available to the browser for parsing. As web servers send out data in chunks, many of these events may appear for a single resource, if it is a large file. | |
|
|
Paint | The browser is rendering elements on the page. | |
|
|
JS Parse | The browser is parsing JavaScript. This event can overlap with other events; where it does, it is shown in a sub-row for that resource. | |
|
|
JS Execute | The browser is executing JavaScript. This event can overlap with other events; where it does, it is shown in a sub-row for that resource. If you see a substantial delay between the JS Parse and JS Execute events, this indicates that the resource contains functions that may be deferrable. | |
By default, Page Speed Activity collects shallow call graphs that contain the entry and exit times for the function at the bottom of each call stack. This minimizes the observer effect, improving the accuracy of the timeline.
However, you may want to collect complete call graphs that record every function invocation. The Show Uncalled Functions option allows you to:
For example, the following screen shot was taken at 7800 ms, and shows a list of functions that had not been called at that point, as well as the time at which they were parsed:

The following screen shot was also taken at 7800 ms, and shows all the functions that had been called by that point, sorted from the most to least delayable; that is, from the largest to smallest difference between parsing time and first invocation:

To record activity and collect complete call graphs for one page:
Tip: To see the full definition of any function, hover the mouse over the function in the Source column to display a tooltip.
Starting in Page Speed 1.3 with Firefox 3.5 and higher, the Activity Panel can also display snapshots of the browser's progressive rendering of a page. When paint snapshots are enabled, and you record activity, Page Speed highlights in yellow each element in a page as it is rendered by the browser. Elements shown in grey are parts of the page that are not viewable in the current browser window without scrolling. You can use these snapshots to help debug progressive rendering problems, and to optimize rendering of elements on the page; for tips, see the article Capturing and analyzing browser paint events using Page Speed Activity.
For example, the following screen shot shows the text and icon elements being painted, followed by the form input field, followed by the form buttons:
To view additional Page Speed options, select the Page Speed tab, and click the down arrow to display an options pop-up menu*:

Each is described below.
*In Firebug 1.3, this menu is available by clicking on the Options link on the right-hand side of the Firebug window.
This option causes Page Speed to automatically analyze a page as soon the page loads. As long as the option is enabled, Page Speed will run automatically for all subsequent pages you visit.
To automatically run Page Speed when a page is loaded:
This
option runs the test for deferred
loading of JavaScript and is disabled by
default. This test gathers JavaScript coverage data from the Firefox
JavaScript Debugger Service to determine which functions a page has
called (or
not) by the time the onload
event is triggered. The Debugger Service tracks the state of the entire
Firefox session in a single
global space in memory; that is, the state is not per page load, and it
is not
cleared after a page reload. This means that if you run the profiler
the first time you visit the page in a Firefox session, the score will
be accurate for that visit. But if you continue to use the page, and
additional JS is loaded and executed, profiling the page at that point
will not report accurate results. Furthermore, if more than one page
references the same external JS file, the profiler only reports results
for the first page
visited.
To guarantee that your performance score on this
test is accurate, be sure to run it when you first start Firefox:
Note: This option significantly slows down browsing and can cause Firefox to hang, especially if you open multiple browser tabs. We recommend that you keep the option disabled until you are ready to use it, and disable it when you finish using it.
Page Speed automatically optimizes JavaScript, CSS, and image files referenced from a page when you run the analysis. By default, the optimized files are saved to the following directories:
However, you can change the directory to which Page Speed should save the files. To do so:
Page Speed generates scores based on the page loaded by Firefox. However, to work around differences in browser behavior, some websites serve different content based on the user's browser. Web servers determine which browser is making the current request based on a user agent string that the browser sends with each request. If your site serves different content based on the user agent string, and you want Page Speed to grade the content served to a specific browser, you can use the Set User Agent option.
Note that a page that works in another browser may not work in Firefox, so it is possible that a page you profile with a different user agent is not exactly the same as what a user of that browser would see. However, often the differences are only cosmetic, and Page Speed's recommendations are still valid.
To select a different user agent:
Note: The user agent options can cause Firefox to hang for some web pages. We recommend that you keep the Default Value setting for basic usage.
To uninstall Page Speed, on all platforms: