nginx: unknown directive pagespeed after Plesk 18.0.79
Last updated Edit this page View as Markdown
Plesk Obsidian 18.0.79 removed ngx_pagespeed from its nginx. How to get nginx starting again, and the options for PageSpeed afterwards.
On this page
If nginx stopped starting or reloading after a Plesk update, with a message like
unknown directive "pagespeed", this page explains what changed and how to get
nginx running again.
What changed
Plesk’s release notes record the change in two steps:
- Plesk Obsidian 18.0.77 (31 March 2026) announced that support for the
ngx_pagespeed.somodule would be deprecated and removed from thesw-nginxpackage. - Plesk Obsidian 18.0.79 (23 June 2026) removed the module from nginx. Plesk’s announcement gives the reason as a security vulnerability in the PSOL library (libwebp).
Sources: the Plesk Obsidian change log and the 18.0.79 announcement.
The update removes the module but not your configuration. Any pagespeed
directive left in an nginx configuration now refers to a module that is no
longer loaded, and nginx refuses a configuration that contains a directive it
does not know. That is why the whole server fails to start or reload, not only
the sites that used PageSpeed.
Get nginx running again
-
Find every place that still refers to the module:
sudo grep -rn "pagespeed" /etc/nginxDirectory layout differs between installations, and a panel may keep per-domain configuration elsewhere. Widen the search to wherever your configuration lives. Per-domain directives are often visible only in the panel, so check there too.
-
Remove or comment out what you find:
- every
pagespeed ...;directive, not onlypagespeed on;. Directives such aspagespeed FileCachePathfail the same way. - any
load_moduleline that points at a missing module file.
Remove them where they were entered. A panel can generate parts of the web server configuration, so make the change in the panel’s per-domain nginx settings rather than in generated files, and in any custom include file you created yourself. See Plesk’s own documentation for how your version handles custom nginx directives.
- every
-
Test the configuration, then reload nginx:
sudo nginx -t sudo systemctl reload nginxIf your host has more than one nginx, run
nginx -twith the binary your server actually uses.
Your sites serve normally again, without PageSpeed optimization.
Options going forward
These are independent choices. None of them is required to get nginx running.
Do without it. Leave the lines out. Pages are served unoptimized.
Use mod_pagespeed with Apache. The maintained mod_pagespeed has an Apache module. Our documentation covers stock Apache on Debian, Ubuntu and the RHEL family. It does not cover Apache as installed and managed by Plesk, and we have not tested it there, so we cannot say whether it works in that setup. If you try it, treat it as unverified and test on a staging domain first. We would like to hear how it goes through the contact page.
Run nginx with our module outside Plesk’s nginx. The
nginx module loads into the
nginx that your distribution ships. For nginx.org’s stable nginx there is a
separate package, nginx-module-pagespeed-nginxorg, built for one nginx
version at a time (currently 1.30.6), for amd64 on Debian 13, Ubuntu 24.04 and
Enterprise Linux 9. It cannot be installed together with the distribution
package. The module does not load into a different nginx build, and we have
not documented or tested it for the sw-nginx package. We make no claim that
it works there. Running our module means running one of those supported nginx
builds yourself, outside the panel’s nginx, and you own that setup and its
upgrades.
If you are replacing another ngx_pagespeed build, see
Migrate from ngx_pagespeed: your
pagespeed directives carry over to the maintained module, except seven
deprecated names: 2.8.2 refuses them, so delete them before you install it. The
next release accepts them with a deprecation warning.
Plesk is a trademark of its owner. This page is not affiliated with or endorsed by Plesk.
Frequently asked questions
Why does nginx report unknown directive "pagespeed" after updating Plesk?
Plesk Obsidian 18.0.79 (23 June 2026) removed the ngx_pagespeed module from its nginx. nginx stops with an unknown directive error when a configuration still contains pagespeed lines and the module that defines them is gone. Remove or comment out those lines.
Does mod_pagespeed support the nginx that Plesk ships?
No. We have not documented or tested our module for Plesk’s own nginx package, and we make no support claim for it.