Zur Übersicht
Jürgen Schwind 18 Feb 2026 PHP, CSS, Performance, Bootstrap, Composer, Optimierung
css-purger: Unbenutztes CSS mit PHP entfernen – schlank, schnell, kontrollierbar

css-purger: Unbenutztes CSS mit PHP entfernen – schlank, schnell, kontrollierbar

Warum css-purger?

Wer mit Bootstrap oder anderen großen CSS-Bibliotheken arbeitet, kennt das Problem: Im finalen

Build landet oft deutlich mehr CSS, als die Seite wirklich braucht. Das kostet Ladezeit,

verschlechtert Metriken und macht Wartung unübersichtlicher.

css-purger ist eine bewusst schlanke

PHP-Library, die genau dieses Problem adressiert: Sie entfernt ungenutzte CSS-Regeln aus einem

Stylesheet auf Basis einer expliziten Selektoren-Liste.


Was macht css-purger konkret?

  • Entfernt ungenutzte CSS-Regeln auf Basis definierter Selektoren
  • Unterstützt verschachtelte Blöcke (z. B. @media)
  • Unterstützt Selektoren mit Pseudo-Klassen wie :hover oder :focus
  • Gibt das Ergebnis optional lesbar oder minifiziert aus
  • Ist erweiterbar über eigene Subklassen
  • Kommt ohne zusätzliche externe Runtime aus

Wichtig: css-purger ist absichtlich leichtgewichtig und arbeitet nicht als vollständiger

CSS-AST-Parser, sondern mit performanter String-Logik.


Installation

composer require jbsnewmedia/css-purger

Praxisbeispiel mit Bootstrap

use JBSNewMedia\CssPurger\Vendors\Bootstrap;

$purger = new Bootstrap('./assets/css/bootstrap.css');

$purger->loadContent();
$purger->prepareContent();
$purger->runContent();

$purger->addSelectors([
    ':root',
    '[data-bs-theme=light]',
    '[data-bs-theme=dark]',
    'body',
    'h1',
    '.h1',
    '.container',
    '.pt-3',
    '.pb-3',
    '.alert',
    '.alert-danger',
    '.btn:hover',
]);

file_put_contents('./assets/css/bootstrap-purged.css', $purger->generateOutput(false));
file_put_contents('./assets/css/bootstrap-purged.min.css', $purger->generateOutput());

Damit erzeugst du eine nachvollziehbare Version für Reviews sowie eine minifizierte

Produktionsdatei für den Live-Betrieb.


Workflow-Empfehlung aus der Praxis

  1. Starte mit einer konservativen Selektoren-Liste (Layout, Typografie, Kernkomponenten).
  2. Ergänze dynamische Zustände explizit (:hover, :focus, .show, .active, etc.).
  3. Prüfe die lesbare Ausgabe in Entwicklung.
  4. Nutze die minifizierte Ausgabe in Produktion.

Gerade in Symfony-Projekten mit klaren Templates ist der Ansatz sehr gut kontrollierbar, weil du

genau definierst, was erhalten bleiben soll.


Grenzen, die man kennen sollte

  • Keine vollautomatische Erkennung aller Selektoren aus Templates/JS
  • Keine vollständige CSS-Parser-Engine
  • Selektoren-Liste muss bewusst gepflegt werden

Genau diese Klarheit ist gleichzeitig die Stärke: Du behältst volle Kontrolle über den finalen

CSS-Umfang.


Fazit

css-purger ist ein pragmatisches Werkzeug für Teams, die CSS-Overhead aktiv reduzieren wollen,

ohne eine schwere Build-Kette einzuführen. Besonders in PHP- und Symfony-Setups liefert der

Ansatz schnell messbare Ergebnisse: kleinere Dateien, weniger Ballast, bessere Ladezeiten.


Links