↑ ↓ auswählen, Enter öffnen, Esc schließen

CSS-, JS- und SVG-Dateien mit gzip und Brotli vorkomprimieren

Vorsicht: Dieser Befehl verändert das System. Vor dem Ausführen verstehen, was er tut.

Werte anpassen, der Befehl aktualisiert sich live
user@server
find /var/www/vhosts/example.com/httpdocs/wp-content/themes -type f \( -name '*.css' -o -name '*.js' -o -name '*.svg' \) -exec gzip -k -9 -f {} + -exec brotli -k -f {} +

Erzeugt mit höchster Kompressionsstufe eine datei.css.gz und eine datei.css.br neben dem Original, das erhalten bleibt (-k). nginx liefert solche Dateien mit gzip_static on direkt aus, ohne bei jeder Anfrage neu zu komprimieren. Bereits vorhandene komprimierte Versionen werden überschrieben (-f).

Hinweis: Paket brotli gegebenenfalls nachinstallieren. Für .br braucht nginx das Brotli-Modul mit brotli_static. Nach jeder Änderung an den Originalen erneut ausführen, sonst liefert der Server veraltete Versionen aus.

Auch gesucht als

  • gzip_static Dateien erzeugen
  • Brotli Dateien vorab erstellen
  • statische Kompression vorbereiten
  • css.gz und js.br anlegen

Ersparnis durch gzip und Brotli für eine URL messen

$for e in identity gzip br; do curl -s -o /dev/null -H "Accept-Encoding: $e" -w "$e: %{size_download} Bytes\n" https://example.com/; done
harmlosBilder und Performance

Prüfen, ob eine Website gzip oder Brotli ausliefert

$curl -s -o /dev/null -D - -H "Accept-Encoding: br, gzip" https://example.com/ | grep -i "^content-encoding"
harmlosnginx

Bilder rekursiv nach AVIF umwandeln

$find /var/www/vhosts/example.com/httpdocs/wp-content/uploads -type f \( -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.png' \) -exec sh -c 'for f; do [ -e "$f.avif" ] || avifenc -s 6 "$f" "$f.avif" >/dev/null; done' sh {} +
vorsichtBilder und Performance

Bilder rekursiv nach WebP umwandeln

$find /var/www/vhosts/example.com/httpdocs/wp-content/uploads -type f \( -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.png' \) -exec sh -c 'for f; do [ -e "$f.webp" ] || cwebp -quiet -q 80 "$f" -o "$f.webp"; done' sh {} +
vorsichtBilder und Performance

Große Bilder in wp-content/uploads finden

$find /var/www/vhosts/example.com/httpdocs/wp-content/uploads -type f \( -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.png' -o -iname '*.gif' -o -iname '*.webp' \) -size +500k -printf '%s\t%p\n' | sort -rn | head -50 | numfmt --field=1 --to=iec
harmlosBilder und Performance

JPEG-Bilder verlustfrei mit jpegoptim optimieren

$find /var/www/vhosts/example.com/httpdocs/wp-content/uploads -type f \( -iname '*.jpg' -o -iname '*.jpeg' \) -exec jpegoptim --strip-all --preserve {} +
vorsichtBilder und Performance

Erst lesen, dann ausführen.

Die Befehle auf myline.de greifen direkt in Server, Dateien und Datenbanken ein. Ein falscher Pfad oder Platzhalter kann Daten unwiderruflich löschen oder einen Server unerreichbar machen.

  • Alle Befehle werden ohne Gewähr bereitgestellt und sind nicht auf jedem System getestet.
  • Vor dem Ausführen verstehen, was ein Befehl tut, und jeden Platzhalter prüfen.
  • Vorher ein Backup anlegen und möglichst zuerst auf einem Testsystem ausprobieren.
  • Die Ausführung erfolgt auf eigene Verantwortung. Eine Haftung für Schäden ist ausgeschlossen, soweit gesetzlich zulässig.