Das Entfernen oder besser gesagt das Verhindern, dass WooCommerce unnötige JavaScript- und CSS-Dateien auf jeder einzelnen Seite deiner Website lädt, sondern nur auf den Seiten, auf denen WooCommerce aktiv ist, kann die Ladezeiten erheblich verbessern – und damit auch das Nutzererlebnis.
Einige Dinge solltest du beachten:
- Abhängigkeiten: Gibt es Elemente auf deiner Website, die von diesen WooCommerce-Skripten abhängen? Dazu könnten beispielsweise das Warenkorbsymbol im Header oder Widgets in der Seitenleiste gehören.
- Entwicklungsumgebung: Es wird dringend empfohlen, Änderungen zunächst lokal (auf deinem eigenen Computer) oder in einer Entwicklungsumgebung zu testen.
- Fachkenntnisse: Du solltest wissen, was du tust, und dich im Code auskennen.
- Backups: Sorge dafür, dass du ein vollständiges Backup deiner Website hast, bevor du Änderungen vornimmst.
Warum WooCommerce-Dateien entfernen?
WooCommerce lädt standardmäßig drei CSS-Dateien und fünf JavaScript-Dateien. Diese Dateien sorgen zwar für die korrekte Darstellung und Funktionalität des Shops, sind aber oft auf anderen Seiten deiner Website gar nicht notwendig.
Hier eine Übersicht der Dateien:
CSS-Dateien:
<link href='.../plugins/woocommerce/assets/css/woocommerce-layout.css' rel='stylesheet' type='text/css' />
<link href='.../plugins/woocommerce/assets/css/woocommerce-smallscreen.css' rel='stylesheet' type='text/css' />
<link href='.../plugins/woocommerce/assets/css/woocommerce.css' rel='stylesheet' type='text/css' />
JavaScript-Dateien:
<script src='.../plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js'></script>
<script src='.../plugins/woocommerce/assets/js/frontend/add-to-cart.min.js'></script>
<script src='.../plugins/woocommerce/assets/js/js-cookie/js.cookie.min.js'></script>
<script src='.../plugins/woocommerce/assets/js/frontend/woocommerce.min.js'></script>
<script src='.../plugins/woocommerce/assets/js/frontend/cart-fragments.min.js'></script>
Es macht zum Beispiel keinen Sinn, dass das Skript für das Hinzufügen von Produkten zum Warenkorb (add-to-cart.min.js
) auf deiner Kontaktseite geladen wird. Ebenso ist die CSS-Datei für das Shop-Layout (woocommerce-layout.css
) auf deinen Blogseiten überflüssig.
Stattdessen solltest du diese Dateien nur auf relevanten WooCommerce-Seiten laden, wie z. B. auf Produktseiten, der Checkout-Seite oder der Warenkorbseite.
Code zum Entfernen unnötiger Dateien
Füge den folgenden Code in die functions.php
-Datei deines Child-Themes ein oder nutze das Code Snippets Plugin, um unnötige WooCommerce-Dateien von allen Nicht-WooCommerce-Seiten zu entfernen:
<?phpfunction rk_remove_woocommerce_css_js() {
// Prüfen, ob WooCommerce aktiv ist
if (function_exists('is_woocommerce')) {
// Prüfen, ob es sich um eine WooCommerce-Seite handelt
if (!is_woocommerce() && !is_cart() && !is_checkout()) {
// WooCommerce-CSS-Dateien entfernen
wp_dequeue_style('woocommerce-layout');
wp_dequeue_style('woocommerce-general');
wp_dequeue_style('woocommerce-smallscreen');
// WooCommerce-JS-Dateien entfernen
wp_dequeue_script('wc-cart-fragments');
wp_dequeue_script('woocommerce');
wp_dequeue_script('wc-add-to-cart');
wp_deregister_script('jquery-blockui');
wp_dequeue_script('jquery-blockui');
wp_deregister_script('js-cookie');
wp_dequeue_script('js-cookie');
}
}
}
add_action('wp_enqueue_scripts', 'rk_remove_woocommerce_css_js');
?>
Wichtige Hinweise
- In Zeile 6 des Codes findest du die Bedingung für WooCommerce-Seiten. Wenn du die Skripte auf weiteren Seiten (außer WooCommerce-Seiten) laden möchtest, kannst du die Bedingungen entsprechend anpassen.
- Teste deine Änderungen sorgfältig, bevor du sie auf der Live-Seite aktivierst.
Zusätzliche Optionen für CSS-Dateien
Wenn du alle WooCommerce-CSS-Dateien komplett entfernen möchtest – auch auf WooCommerce-Seiten – kannst du folgenden Filter verwenden:
<?php// Alle WooCommerce-Stylesheets entfernen
add_filter('woocommerce_enqueue_styles', '__return_empty_array');
?>
Falls du nur bestimmte CSS-Dateien entfernen möchtest, nutze diesen Code:
<?phpfunction rk_dequeue_styles($enqueue_styles) {
unset($enqueue_styles['woocommerce-general']); // Entfernt allgemeine Styles
unset($enqueue_styles['woocommerce-layout']); // Entfernt das Layout-Stylesheet
unset($enqueue_styles['woocommerce-smallscreen']);// Entfernt die Optimierung für kleine Bildschirme
return $enqueue_styles;
}
add_filter('woocommerce_enqueue_styles', 'rk_dequeue_styles');
?>
Fazit
Mit diesem Ansatz kannst du die Ladezeit deiner Website optimieren und gleichzeitig sicherstellen, dass WooCommerce nur dort Ressourcen lädt, wo sie tatsächlich gebraucht werden.