PageSpeed Module — automatyczna optymalizacja wydajności stron
Opublikowano: 10 kwietnia 2026 · Kategoria: Hosting / Wydajność
PageSpeed Module (ngx_pagespeed dla Nginx, mod_pagespeed dla Apache) to moduł od Google, który automatycznie optymalizuje strony WWW na poziomie serwera — bez zmian w kodzie aplikacji. Kompresuje obrazy, minimizuje CSS/JS, konwertuje do WebP, odkłada JavaScript i łączy pliki. Idealne rozwiązanie dla stron których kodu nie możesz łatwo zmodyfikować.
Co PageSpeed Module robi automatycznie?
| Kategoria | Filtr | Efekt |
|---|---|---|
| Obrazy | rewrite_images, convert_to_webp_lossless | Kompresja, zmiana rozmiaru, WebP |
| CSS | combine_css, inline_css, move_css_to_head | Łączenie plików, inline małych CSS |
| JavaScript | combine_javascript, defer_javascript | Łączenie plików, async/defer |
| HTML | collapse_whitespace, remove_comments | Minifikacja HTML |
| Zasoby | insert_dns_prefetch, preload_images | DNS prefetch, preload LCP |
Apache mod_pagespeed — instalacja
Apache ma gotowe pakiety od Google — znacznie prostsze niż ngx_pagespeed:
# Ubuntu/Debian — pobranie i instalacja pakietu wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb dpkg -i mod-pagespeed-stable_current_amd64.deb apt-get install -f # naprawienie zależności # CentOS/RHEL wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm rpm -U mod-pagespeed-stable_current_x86_64.rpm # Sprawdzenie instalacji apachectl -M | grep pagespeed # Oczekiwane: pagespeed_module (shared)
# /etc/apache2/mods-available/pagespeed.conf
<IfModule pagespeed_module>
ModPagespeed on
ModPagespeedFileCachePath /var/cache/mod_pagespeed/
# Poziom optymalizacji: CoreFilters (stabilny)
ModPagespeedRewriteLevel CoreFilters
# Dodatkowe filtry ponad CoreFilters
ModPagespeedEnableFilters convert_to_webp_lossless
ModPagespeedEnableFilters defer_javascript
ModPagespeedEnableFilters insert_dns_prefetch
# Wyłącz ryzykowne filtry
ModPagespeedDisableFilters inline_javascript
ModPagespeedDisableFilters move_css_above_scripts
# Cache — 1 dzień dla optymalizowanych zasobów
ModPagespeedFileCacheCleanIntervalMs 3600000
ModPagespeedFileCacheSizeKb 102400
# Domain mapping (jeśli CDN)
# ModPagespeedMapReqestDomain cdn.example.com example.com
<Location /mod_pagespeed_statistics>
Order allow,deny
Allow from localhost
</Location>
</IfModule> a2enmod pagespeed apache2ctl configtest && systemctl restart apache2 # Weryfikacja — nagłówek X-Mod-Pagespeed curl -sI http://localhost/ | grep -i x-mod-pagespeed # Oczekiwane: X-Mod-Pagespeed: 1.14.x.x-0
Nginx ngx_pagespeed — instalacja
ngx_pagespeed wymaga kompilacji. Najszybszą metodą jest użycie skryptu automatycznego lub Docker:
# Automatyczny skrypt budowania (Ubuntu/Debian)
apt install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip uuid-dev
# Pobranie ngx_pagespeed i PSOL library
NPS_VERSION=1.14.36.1
cd /tmp
wget https://github.com/apache/incubator-pagespeed-ngx/archive/v${NPS_VERSION}-stable.tar.gz
tar -xzvf v${NPS_VERSION}-stable.tar.gz
cd incubator-pagespeed-ngx-${NPS_VERSION}-stable
# Pobranie PSOL (precompiled library)
NPS_RELEASE_NUMBER=${NPS_VERSION/beta/}
NPS_RELEASE_NUMBER=${NPS_RELEASE_NUMBER/stable/}
psol_url=https://dl.google.com/dl/page-speed/psol/${NPS_RELEASE_NUMBER}.tar.gz
wget ${psol_url}
tar -xzvf ${NPS_RELEASE_NUMBER}.tar.gz # Kompilacja Nginx z ngx_pagespeed
NGINX_VERSION=1.25.3
cd /tmp
wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
tar -xvzf nginx-${NGINX_VERSION}.tar.gz
cd nginx-${NGINX_VERSION}/
./configure \
--add-dynamic-module=/tmp/incubator-pagespeed-ngx-${NPS_VERSION}-stable \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_v3_module \
--with-http_gzip_static_module
make
make install # /etc/nginx/nginx.conf — konfiguracja ngx_pagespeed
http {
pagespeed on;
pagespeed FileCachePath /var/cache/ngx_pagespeed/;
# Poziom optymalizacji
pagespeed RewriteLevel CoreFilters;
# Dodatkowe filtry
pagespeed EnableFilters convert_to_webp_lossless;
pagespeed EnableFilters defer_javascript;
pagespeed EnableFilters insert_dns_prefetch;
# Cache lock
pagespeed CreateSharedMemoryMetadataCache "/var/cache/ngx_pagespeed/" 51200;
}
server {
listen 443 ssl;
server_name example.com;
pagespeed on;
# Statystyki — tylko z localhost
location /ngx_pagespeed_statistics {
allow 127.0.0.1;
deny all;
}
location /ngx_pagespeed_message {
allow 127.0.0.1;
deny all;
}
} Rewrite Levels — zakres optymalizacji
- PassThrough — brak filtrów (domyślny stan). Dobry punkt startu — dodawaj filtry ręcznie.
- CoreFilters — stabilne filtry z niskim ryzykiem złamania strony: minifikacja HTML, kompresja obrazów, łączenie CSS, WebP. Zalecany dla nowych instalacji.
- OptimizeForBandwidth — agresywna kompresja, bez inlinowania i modyfikowania kolejności zasobów. Bezpieczniejszy niż CoreFilters dla skomplikowanych stron.
- AllFilters — wszystkie filtry. Ryzykowny — może złamać JavaScript. Tylko do testów.
PageSpeed Module vs ręczna optymalizacja
| Aspekt | PageSpeed Module | Ręczna optymalizacja |
|---|---|---|
| Czas wdrożenia | Kilka godzin (instalacja + config) | Dni/tygodnie (zmiany w kodzie) |
| Wpływ na kod | Brak — działa on-the-fly | Wymaga zmian w HTML/CSS/JS |
| CPU overhead | Tak — przetwarzanie każdej odpowiedzi | Brak (pre-processed) |
| Elastyczność | Ograniczona — filtry prefabrykowane | Pełna kontrola |
| Ryzyko regresji | Średnie (filtry mogą złamać JS) | Niskie (kontrolujesz każdą zmianę) |
| Wynik PageSpeed | Poprawa 10-40 punktów | Poprawa 20-60 punktów |