Admin Console
mod_pagespeed 1.1 admin console: statistics, cache inspection, message history, and config. Setup for nginx, Apache, IIS — accessible at /pagespeed_admin/.
Overview
mod_pagespeed 1.1 includes built-in admin pages for monitoring, configuration inspection, and cache management. Access them at /pagespeed_admin/
on your server.
Two endpoints are exposed: /pagespeed_admin
is the per-vhost admin handler, and /pagespeed_global_admin
is the process-wide handler and the license/trial console. Both are read-write (cache purge, license apply) and warrant the same access restrictions in production.

See it live:explore the mod_pagespeed 1.1 admin console running on our public Apache demo — live statistics, caches, histograms, and message history, no install required.
Admin pages
| Page | URL | Description |
|---|---|---|
|
Statistics
|
/pagespeed_admin/statistics
|
Filter activity, cache hit rates, latency |
|
Configuration
|
/pagespeed_admin/config
|
Active filters and directive values |
|
Histograms
|
/pagespeed_admin/histograms
|
Page load time, rewrite latency distributions |
|
Caches
|
/pagespeed_admin/cache
|
Cache status, inspection, and purge |
|
Console
|
/pagespeed_admin/console
|
Historical graphs (requires StatisticsLogging) |
|
Messages
|
/pagespeed_admin/message_history
|
Recent log messages |
Setup
Add handler paths and corresponding location blocks:
pagespeed
StatisticsPath /ngx_pagespeed_statistics;
pagespeed
GlobalStatisticsPath /ngx_pagespeed_global_statistics;
pagespeed
MessagesPath /ngx_pagespeed_message;
pagespeed
ConsolePath /pagespeed_console;
pagespeed
AdminPath /pagespeed_admin;
pagespeed
GlobalAdminPath /pagespeed_global_admin;
Location blocks for the admin paths must appear before the .pagespeed.
resource regex in your config.
Restrict access at the location layer. The =
(exact) and ^~
(prefix) matchers run against the request path after
nginx normalizes it, which defuses common path-rewriting bypasses (see URL-path ACLs are brittle
below):
# Restrict mod_pagespeed admin endpoints to localhost.
# Widen explicitly (e.g. add `allow <admin-CIDR>;`) for ops access.
# Use `location =` exact-match: nginx normalizes the request path before
# this match, defeating common path-bypass tricks (//, /./, %2e, case).
location
=
/pagespeed_admin
{
allow
127.0.0.1
;
allow
::1;
deny
all
;
}
location
^~
/pagespeed_admin/
{
allow
127.0.0.1
;
allow
::1;
deny
all
;
}
# Repeat for /pagespeed_global_admin (license/trial console — at least as sensitive).
location
=
/pagespeed_global_admin
{
allow
127.0.0.1
;
allow
::1;
deny
all
; }
location
^~
/pagespeed_global_admin/
{
allow
127.0.0.1
;
allow
::1;
deny
all
; }
<
Location
/pagespeed_admin
>
Order
allow,deny
Allow
from
localhost
Allow
from
127
.
0
.
0
.
1
SetHandler
pagespeed_admin
</
Location
>
<
Location
/pagespeed_global_admin
>
Order
allow,deny
Allow
from
localhost
Allow
from
127
.
0
.
0
.
1
SetHandler
pagespeed_global_admin
</
Location
>
Add admin path directives to your pagespeed.config
:
pagespeed AdminPath /pagespeed_admin
pagespeed GlobalAdminPath /pagespeed_global_admin
pagespeed StatisticsPath /pagespeed_statistics
pagespeed GlobalStatisticsPath /pagespeed_global_statistics
pagespeed MessagesPath /pagespeed_message
pagespeed ConsolePath /pagespeed_console
By default, admin pages are accessible only from localhost
. To allow access from other hosts:
pagespeed InfoUrlsLocalOnly off
Use this setting with caution in production — restrict access at the network level (firewall rules) when exposing admin pages to non-local clients.
Windows Event Viewer
The 1.1 IIS module logs warnings and errors to the Windows Event Viewer automatically. Open Event Viewer and look under Windows Logs > Applicationfor entries from the mod_pagespeed source.
Event Viewer captures module startup/shutdown messages, configuration errors, and runtime warnings without any additional configuration.
Access control
Restrict admin page access by domain using domain-level ACLs:
pagespeed
AdminDomains Allow localhost;
pagespeed
AdminDomains Allow 10.0.0.*;
ModPagespeedAdminDomains
Allow
localhost
ModPagespeedAdminDomains
Allow
10
.
0
.
0
.*
pagespeed AdminDomains Allow localhost
pagespeed AdminDomains Allow 10.0.0.*
On IIS, the InfoUrlsLocalOnly
directive provides an additional layer of access control. When set to on
(the default), admin URLs are only accessible from the local machine regardless of the AdminDomains
setting.
Available ACL directives: StatisticsDomains
, GlobalStatisticsDomains
, MessagesDomains
, ConsoleDomains
, AdminDomains
, GlobalAdminDomains
.
Default is Allow *
. Once any Allow
is specified, all other domains are implicitly denied. Wildcards are supported.
Statistics
Statistics are enabled by default and required for features like image rewrite concurrency limiting and background fetch rate limiting. Do not disable them.
pagespeed
Statistics
on
;
pagespeed
UsePerVhostStatistics
on
;
ModPagespeedStatistics
on
ModPagespeedUsePerVhostStatistics
on
pagespeed Statistics on
pagespeed UsePerVhostStatistics on
Per-vhost statistics are enabled by default on IIS. Each website gets its own set of counters, accessible at /pagespeed_admin/statistics
on that site; site-wide aggregates remain at /pagespeed_global_admin/statistics
.
UsePerVhostStatistics
enables per-virtual-host stats while still exposing aggregates at the global admin path.
Console (historical graphs)
The console requires StatisticsLogging
to record data over time:
pagespeed
StatisticsLogging
on
;
pagespeed
LogDir /var/log/pagespeed;
ModPagespeedStatisticsLogging
on
ModPagespeedLogDir /var/log/pagespeed
pagespeed StatisticsLogging on
pagespeed LogDir %ProgramData%\We-Amp\IISWebSpeed\Logs
The log directory must be writable by the IIS app pool identity.
Message history
Set the message buffer size to enable recent log message viewing:
pagespeed
MessageBufferSize
100000
;
ModPagespeedMessageBufferSize
100000
pagespeed MessageBufferSize 100000
Messages are collected globally from all IIS worker processes and accessible at /pagespeed_global_admin/message_history
.
Default is 0 (disabled).
URL-path ACLs are brittle
A WAF or upstream filter that blocks the admin endpoint by string-matching the literal URL is easy to bypass. Common evasion techniques target path normalization differences between the filter and the origin web server:
- Duplicate slashes (
//pagespeed_admin/) - Path segments (
/./pagespeed_admin/,/foo/../pagespeed_admin/) - Percent-encoded characters (
/%70agespeed_admin/,/pagespeed_admin/%2e./statistics) - Mixed case (
/PageSpeed_Admin/) - Trailing slash present/absent
- Path parameters (
/pagespeed_admin;param=x/statistics)
Gate access at the web server’s normalized location/handler layer — location =
/ ^~
on nginx, <Location>
on Apache, the handler-bound check on IIS — not at a separate filter that operates on the raw URL string. The web server runs its match against the same normalized path the handler will see.
Important notes
-
pagespeed_adminandpagespeed_global_adminare read-write (can purge cache; the global handler also drives license activation). Other handlers are read-only. - Always restrict admin page access in production.
See also
- Caching — cache purging via the admin interface
- Configuration — general configuration reference

