WordPress ist ein Kraftpaket, aber die „One-Size-Fits-All“-Philosofie bedeutet, dass es oft mit Ballast ausgeliefert wird, den moderne Projekte nicht brauchen. Über die Jahre habe ich ein spezifisches Set an Snippets verfeinert, um das System zu entschlacken, ohne das Nutzererlebnis zu beeinträchtigen.
Dieser Guide ist mehr als nur eine Liste von Dingen, die man löschen kann; es ist ein strategischer Ansatz für Performance. Inspiriert von Terence Edens exzellenter Liste, ergänzt um meine eigenen, praxiserprobten Lösungen.
Warum WordPress entschlacken?
Warum sollte man sich über ein paar kleine Skripte Gedanken machen? Weil sie sich summieren. Jede unnötige Zeile ist ein potenzieller Konflikt, eine winzige Rendering-Verzögerung oder verschwendete Bandbreite.
Unsere Ziele:
- DOM-Größe – Entfernen nicht genutzter Inline-Styles.
- HTTP-Overhead – Dequeuing von Skripten, die nicht geladen werden sollten.
- Sicherheitsfläche – Deaktivierung veralteter Protokolle wie XML-RPC.
- Core Web Vitals – Direkter Einfluss auf LCP und CLS durch Entfernen blockierender Elemente.
[!IMPORTANT] Vorsicht geboten: Nicht jeder „Ballast“ ist nutzlos. Wenn Sie auf das spezifische Styling des Classic Editors angewiesen sind oder Ihre Nutzer sehr alte Browser verwenden, die Emoji-Skripte benötigen, sind manche dieser Fixes eventuell nicht für Sie geeignet. Testen Sie Änderungen immer zuerst in einer Staging-Umgebung.
Das komplette Optimierungsskript
Fügen Sie Folgendes zur functions.php-Datei Ihres Themes hinzu. Jeder Abschnitt ist mit Erklärungen und Quelllinks kommentiert.
1. Classic Theme Styles entfernen
WordPress fügt “classic-theme-styles” auch bei benutzerdefinierten Themes hinzu. Entfernen Sie sie:
// Obligatorisches Classic Theme entfernen.
function disable_classic_theme_styles() {
wp_deregister_style( "classic-theme-styles" );
wp_dequeue_style( "classic-theme-styles" );
}
add_action( "wp_enqueue_scripts", "disable_classic_theme_styles" );
2. Emoji-Unterstützung entfernen
WordPress konvertiert Text-Emojis in Bilder und fügt Erkennungsskripte hinzu. Wenn Ihre Besucher Emoji-Unterstützung haben (was alle modernen Browser haben), ist dies unnötig:
// WP Emoji entfernen.
// https://www.denisbouquet.com/remove-wordpress-emoji-code/
remove_action( "wp_head", "print_emoji_detection_script", 7 );
remove_action( "wp_print_styles", "print_emoji_styles" );
remove_action( "admin_print_scripts", "print_emoji_detection_script" );
remove_action( "admin_print_styles", "print_emoji_styles" );
// https://wordpress.org/support/topic/remove-the-new-dns-prefetch-code/
add_filter( "emoji_svg_url", "__return_false" );
// Emoji-Ersetzung mit Bildern in RSS / Atom Feeds stoppen
// https://danq.me/2023/09/04/wordpress-stop-emoji-images/
remove_filter( "the_content_feed", "wp_staticize_emoji" );
remove_filter( "comment_text_rss", "wp_staticize_emoji" );
3. Automatische Textformatierung deaktivieren
WordPress “texturisiert” Ihren Inhalt, konvertiert gerade Anführungszeichen in typografische, Doppelstriche in Halbgeviertstriche usw. Dies kann Code-Beispiele beschädigen:
// Automatische Formatierung entfernen.
// https://css-tricks.com/snippets/wordpress/disable-automatic-formatting/
remove_filter( "the_content", "wptexturize" );
remove_filter( "the_excerpt", "wptexturize" );
remove_filter( "comment_text", "wptexturize" );
remove_filter( "the_title", "wptexturize" );
// Weitere Formatierung.
add_action("init", function() {
remove_filter( "the_content", "convert_smilies", 20 );
foreach ( array( "the_content", "the_title", "wp_title", "document_title" ) as $filter ) {
remove_filter( $filter, "capital_P_dangit", 11 );
}
remove_filter( "comment_text", "capital_P_dangit", 31 );
remove_filter( "the_content", "do_blocks", 9 );
}, 11);
Hinweis: Der Filter
capital_P_dangitist WordPresss Art, “WordPress” automatisch in “WordPress” zu korrigieren. Er ist aggressiv und oft unerwünscht.
4. Gutenberg-Styles und -Skripte entfernen
Wenn Sie ein benutzerdefiniertes Theme verwenden und nicht auf Gutenbergs Frontend-Styles angewiesen sind, entfernen Sie sie:
// Gutenberg Styles entfernen.
// https://wordpress.org/support/topic/how-to-disable-inline-styling-style-idglobal-styles-inline-css/
remove_action( "wp_enqueue_scripts", "wp_enqueue_global_styles" );
// Gutenberg Editing Widgets entfernen.
// Von https://wordpress.org/plugins/classic-widgets/
add_filter( "gutenberg_use_widgets_block_editor", "__return_false" );
add_filter( "use_widgets_block_editor", "__return_false" );
// Gutenberg Block Library CSS vom Frontend-Laden entfernen.
// https://smartwp.com/remove-gutenberg-css/
function remove_wp_block_library_css() {
wp_dequeue_style( "wp-block-library" );
wp_dequeue_style( "wp-block-library-theme" );
wp_dequeue_style( "wp-components" );
}
add_action( "wp_enqueue_scripts", "remove_wp_block_library_css", 100 );
5. Header-Meta-Tags entfernen
Bereinigen Sie Ihren <head>-Abschnitt, indem Sie unnötige Meta-Tags entfernen:
// Shortlink entfernen.
// https://stackoverflow.com/questions/42444063/disable-wordpress-short-links
remove_action( "wp_head", "wp_shortlink_wp_head" );
// RSD entfernen.
// https://wpengineer.com/1438/wordpress-header/
remove_action( "wp_head", "rsd_link" );
// Extra Feed-Links entfernen.
// https://developer.wordpress.org/reference/functions/feed_links/
add_filter( "feed_links_show_comments_feed", "__return_false" );
add_filter( "feed_links_show_posts_feed", "__return_false" );
// api.w.org Link entfernen.
// https://wordpress.stackexchange.com/questions/211467/remove-json-api-links-in-header-html
remove_action( "wp_head", "rest_output_link_wp_head" );
remove_action( "template_redirect", "rest_output_link_header", 11, 0 );
6. Bildverbesserungen entfernen
WordPress fügt sizes-Attribute und andere Verbesserungen zu Bildern hinzu. Wenn Sie diese selbst handhaben, entfernen Sie sie:
// WordPress erzwungene Bildgröße entfernen
// https://core.trac.wordpress.org/ticket/62413#comment:40
add_filter( "wp_img_tag_add_auto_sizes", "__return_false" );
// <img> Verbesserungen entfernen
// https://developer.wordpress.org/reference/functions/wp_filter_content_tags/
remove_filter( "the_content", "wp_filter_content_tags", 12 );
// Umschreiben von http:// URLs für die Hauptdomain stoppen.
remove_filter( "the_content", "wp_replace_insecure_home_url", 10 );
// Attachment-Stuff entfernen
remove_filter( "the_content", "prepend_attachment" );
// Block-Filter entfernen
remove_filter( "the_content", "apply_block_hooks_to_content_from_post_object", 8 );
7. Browser-Check und andere Admin-Funktionen entfernen
// Browser-Check aus dem Admin-Dashboard entfernen.
if ( !empty( $_SERVER["HTTP_USER_AGENT"] ) ) {
add_filter( "pre_site_transient_browser_" . md5( $_SERVER["HTTP_USER_AGENT"] ), "__return_null" );
}
// Hovercards auf Kommentar-Links im Admin-Bereich entfernen.
add_filter( "akismet_enable_mshots", "__return_false" );
Meine zusätzlichen Empfehlungen
Über die obigen Techniken hinaus sind hier meine eigenen Lösungen für weitere Optimierung:
8. XML-RPC deaktivieren
Wenn Sie keine externen Apps zum Posten auf WordPress verwenden, deaktivieren Sie XML-RPC für bessere Sicherheit:
// XML-RPC vollständig deaktivieren
add_filter( 'xmlrpc_enabled', '__return_false' );
// XML-RPC-Link aus dem Head entfernen
remove_action( 'wp_head', 'rsd_link' );
9. jQuery Migrate entfernen
Moderne WordPress-Themes und -Plugins benötigen selten jQuery Migrate. Wenn Ihre Website ohne es funktioniert, entfernen Sie es:
function remove_jquery_migrate( $scripts ) {
if ( ! is_admin() && isset( $scripts->registered['jquery'] ) ) {
$script = $scripts->registered['jquery'];
if ( $script->deps ) {
$script->deps = array_diff( $script->deps, array( 'jquery-migrate' ) );
}
}
}
add_action( 'wp_default_scripts', 'remove_jquery_migrate' );
10. oEmbed deaktivieren
Wenn Sie keine Inhalte von anderen Websites einbetten (YouTube, Twitter usw.), deaktivieren Sie oEmbed:
// oEmbed-Discovery-Links entfernen
remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
remove_action( 'wp_head', 'wp_oembed_add_host_js' );
// oEmbed REST API Endpoint entfernen
remove_action( 'rest_api_init', 'wp_oembed_register_route' );
// oEmbed Auto-Discovery deaktivieren
add_filter( 'embed_oembed_discover', '__return_false' );
11. JavaScript-Laden verzögern
Fügen Sie defer zu nicht-kritischen Skripten für bessere Performance hinzu:
function add_defer_attribute( $tag, $handle ) {
// Skripte, die NICHT verzögert werden sollten
$scripts_to_not_defer = array( 'jquery-core' );
if ( in_array( $handle, $scripts_to_not_defer ) ) {
return $tag;
}
return str_replace( ' src', ' defer src', $tag );
}
add_filter( 'script_loader_tag', 'add_defer_attribute', 10, 2 );
Die Auswirkung messen
Nachdem Sie diese Änderungen implementiert haben, testen Sie Ihre Website mit:
- Google PageSpeed Insights – Überprüfen Sie Ihre Core Web Vitals
- GTmetrix – Detaillierte Wasserfall-Analyse
- WebPageTest – Mehrere Teststandorte und Verbindungsgeschwindigkeiten
Sie sollten sehen:
- Reduzierte Seitengröße (weniger CSS/JS-Bytes)
- Weniger HTTP-Anfragen
- Verbesserte Time to First Byte (TTFB)
- Besserer Largest Contentful Paint (LCP)
Fazit
WordPresss “Batteries included”-Ansatz ist großartig für Anfänger, aber Entwickler, die maximale Performance suchen, müssen das Fett trimmen. Die Techniken in diesem Leitfaden, inspiriert von Terence Edens ausgezeichnetem Entbloatungs-Skript, werden Ihnen helfen, eine schlankere, schnellere WordPress-Installation zu erreichen.
Denken Sie daran: Weniger ist mehr. Jede Codezeile, die Sie entfernen, ist ein potenzieller Fehlerpunkt weniger, ein Byte weniger zum Herunterladen und ein Schritt näher an einem perfekten PageSpeed-Score.



