20 WordPress-Plugins, die du durch ein paar Zeilen PHP ersetzen kannst
47 Plugins auf einer Kundenseite, 23 brauchen Updates. Hier sind 20, die du heute löschen und durch ein paar Zeilen PHP ersetzen kannst.
Kemal Esensoy·aktualisiert am April 19, 2026
Letzte Woche habe ich mich in die WordPress-Seite eines Kunden eingeloggt. Eine Seite, die ich vor vier Jahren gebaut habe. 47 Plugins installiert. 23 brauchen Updates. Drei davon von Entwicklern, die seit 2024 kein Update mehr rausgebracht haben.
Das ist die Realität von WordPress-Wartung, wenn du weitergezogen bist, aber deine Kunden nicht. Jeder Login ist ein Minenfeld aus Update-Benachrichtigungen, Kompatibilitätswarnungen und dem nagenden Gefühl, dass ein falscher Klick alles kaputt macht.
Hier ist die Sache: Mindestens 20 dieser 47 Plugins lassen sich durch ein paar Zeilen PHP ersetzen. Gleiche Funktionalität. Null Update-Stress.
Warum weniger Plugins wirklich wichtig ist
Das ist nicht nur Ordnungsliebe. Es gibt reale Konsequenzen für einen aufgeblähten Plugin-Stack.
Performance: Jedes Plugin fügt HTTP-Requests, Datenbank-Queries und CSS/JS-Dateien zu deinen Seiten hinzu. 10 Einzweck-Plugins durch Code-Snippets zu ersetzen kann 150-300ms Ladezeit einsparen. Das ist nicht nichts.
Sicherheit: Das ist der große Punkt. 91% aller WordPress-Schwachstellen kommen von Plugins. Allein 2025 wurden 11.334 neue Schwachstellen registriert, ein Anstieg von 42% im Jahresvergleich. Die mediane Zeit von der Offenlegung einer Schwachstelle bis zur Massenausnutzung? Fünf Stunden. Jedes Plugin, das du nicht brauchst, ist eine Angriffsfläche, die du nicht hast.
Wartung: Plugins werden aufgegeben. Updates machen Dinge kaputt. Kompatibilitätsprobleme kaskadieren. Je weniger bewegliche Teile, desto weniger kann schiefgehen, wenn du die WordPress-Sicherheit über mehrere Kundenseiten hinweg verwaltest.
Wo du diese Snippets einfügst
Bevor wir zum Code kommen, kurz zur Frage, wo du ihn platzierst.
Option 1: functions.php des Child-Themes. Okay für theme-spezifische Sachen. Wird überschrieben, wenn du das Theme wechselst.
Option 2: mu-plugins-Ordner. Erstelle eine PHP-Datei in wp-content/mu-plugins/. Immer aktiv, kann nicht über das Dashboard deaktiviert werden, bleibt bei Theme-Wechseln bestehen. Das ist meine Empfehlung für seitenweite Funktionalität.
Option 3: Code-Snippet-Plugin (WPCode, Code Snippets). Gibt dir eine Oberfläche, Kategorien und einen Safe Mode, der fatale Fehler abfängt. Leicht ironisch, ein Plugin zu installieren, um Plugins zu vermeiden, aber es ist wirklich nützlich, wenn du nicht gerne mit FTP arbeitest.
Bearbeite nie direkt die functions.php des Parent-Themes. Die wird beim nächsten Theme-Update überschrieben.
Security Snippets: Absichern
1. XML-RPC deaktivieren
Ersetzt: Disable XML-RPC Plugin (100k+ Installationen)
XML-RPC ist ein altes Remote-Access-Protokoll, das die meisten Seiten nicht brauchen. Es ist ein häufiger Brute-Force-Angriffsvektor.
add_filter('xmlrpc_enabled', '__return_false');
Eine Zeile. Fertig.
2. WordPress-Versionsnummer verstecken
Ersetzt: Meta Generator and Version Info Remover Plugin
Warum jedem, der nach Schwachstellen scannt, mitteilen, welche Version du verwendest?
remove_action('wp_head', 'wp_generator');
3. Dateibearbeitung im Dashboard deaktivieren
Ersetzt: Teil von Sucuri, Wordfence Sicherheitsfunktionen
Wenn jemand Admin-Zugang bekommt, willst du nicht, dass er Theme-Dateien im Browser bearbeiten kann. Füge das in wp-config.php ein:
define('DISALLOW_FILE_EDIT', true);
4. REST API auf eingeloggte Nutzer beschränken
Ersetzt: Disable REST API Plugin (30k+ Installationen)
Die REST API gibt Daten wie Benutzernamen an jeden weiter, der fragt. Sperre sie für nicht-authentifizierte Nutzer:
add_filter('rest_authentication_errors', function($result) {
if (!is_user_logged_in()) {
return new WP_Error('rest_not_logged_in', 'API access restricted.', array('status' => 401));
}
return $result;
});
5. Self-Pingbacks deaktivieren
Ersetzt: No Self Pings Plugin
WordPress pingt sich selbst an, wenn du auf eigene Beiträge verlinkst. Braucht niemand.
add_action('pre_ping', function(&$links) {
$home = get_option('home');
foreach ($links as $l => $link) {
if (strpos($link, $home) === 0) unset($links[$l]);
}
});
Performance Snippets: Schneller machen
6. WordPress Emoji-Script deaktivieren
Ersetzt: Disable Emojis Plugin (50k+ Installationen)
WordPress lädt auf jeder einzelnen Seite ein Emoji-Detection-Script. Dein Server kann Emojis nativ. Das ist totes Gewicht.
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
7. jQuery Migrate entfernen
Ersetzt: Remove jQuery Migrate Plugin (20k+ Installationen)
jQuery Migrate ist eine Kompatibilitätsschicht für alten jQuery-Code. Wenn deine Plugins und dein Theme aktuell sind, brauchst du es nicht.
add_action('wp_default_scripts', function($scripts) {
if (!is_admin() && isset($scripts->registered['jquery'])) {
$scripts->registered['jquery']->deps = array_diff(
$scripts->registered['jquery']->deps, ['jquery-migrate']
);
}
});
8. Query Strings von statischen Ressourcen entfernen
Ersetzt: Remove Query Strings From Static Resources Plugin (20k+ Installationen)
Query Strings bei CSS- und JS-Dateien können korrektes Caching verhindern.
add_filter('script_loader_src', function($src) {
return remove_query_arg('ver', $src);
});
add_filter('style_loader_src', function($src) {
return remove_query_arg('ver', $src);
});
9. Post Revisions begrenzen
Ersetzt: WP Revisions Control Plugin
WordPress speichert standardmäßig unbegrenzt Revisionen und bläht damit deine Datenbank auf. Füge das in wp-config.php ein:
define('WP_POST_REVISIONS', 3);
10. RSS Feeds deaktivieren
Ersetzt: Disable Feeds Plugin
Wenn niemand deinen RSS Feed abonniert (und seien wir ehrlich, auf den meisten Business-Seiten tut das niemand):
add_action('do_feed', function() { wp_die('No feed available.'); }, 1);
add_action('do_feed_rdf', function() { wp_die('No feed available.'); }, 1);
add_action('do_feed_rss', function() { wp_die('No feed available.'); }, 1);
add_action('do_feed_rss2', function() { wp_die('No feed available.'); }, 1);
add_action('do_feed_atom', function() { wp_die('No feed available.'); }, 1);
Cleanup Snippets: Ballast abwerfen
11. Kommentare komplett deaktivieren
Ersetzt: Disable Comments Plugin (1M+ Installationen)
Eine Million Leute haben dafür ein Plugin installiert. Hier ist der Code:
add_action('admin_init', function() {
$post_types = get_post_types();
foreach ($post_types as $post_type) {
if (post_type_supports($post_type, 'comments')) {
remove_post_type_support($post_type, 'comments');
remove_post_type_support($post_type, 'trackbacks');
}
}
});
add_filter('comments_open', '__return_false', 20, 2);
add_filter('pings_open', '__return_false', 20, 2);
add_filter('comments_array', '__return_empty_array', 10, 2);
Mehr als eine Zeile, klar. Aber es ersetzt ein Plugin mit über einer Million aktiver Installationen.
12. Shortlink aus dem Header entfernen
Ersetzt: Teil diverser Cleanup-Plugins
remove_action('wp_head', 'wp_shortlink_wp_head');
13. WordPress-Suche deaktivieren
Ersetzt: Disable Search Plugin
Für Visitenkarten-Seiten, die keine Suchfunktion brauchen:
add_action('parse_query', function($query) {
if (!is_admin() && $query->is_search) {
$query->is_search = false;
$query->query_vars['s'] = false;
$query->query['s'] = false;
$query->is_404 = true;
}
});
14. RSD Link und WLW Manifest entfernen
Ersetzt: Teil von Header-Cleanup-Plugins
Relikte aus der Blogging-Ära. Niemand braucht Really Simple Discovery oder Windows Live Writer Manifest Links in 2026.
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');
15. Auto-Updates deaktivieren
Ersetzt: Easy Updates Manager Plugin
Wenn du volle manuelle Kontrolle darüber willst, was wann aktualisiert wird:
add_filter('automatic_updater_disabled', '__return_true');
Customization Snippets: Anpassen
16. Eigene Excerpt-Länge
Ersetzt: Advanced Excerpt Plugin
add_filter('excerpt_length', function() { return 25; }, 999);
Ändere 25 auf die Wortanzahl, die du brauchst.
17. SVG-Upload-Support hinzufügen
Ersetzt: SVG Support Plugin (800k+ Installationen)
add_filter('upload_mimes', function($mimes) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
});
Faire Warnung: Das sanitized die SVG nicht. Für Produktivseiten mit User-Uploads ist das Safe SVG Plugin die sicherere Wahl, weil es schädlichen Code aus SVG-Dateien entfernt.
18. Gutenberg Block Editor deaktivieren
Ersetzt: Classic Editor Plugin (5M+ Installationen)
Fünf Millionen Installationen. Eine Zeile PHP.
add_filter('use_block_editor_for_post', '__return_false');
19. Eigenes Login-Logo
Ersetzt: Custom Login Logo Plugin
add_action('login_enqueue_scripts', function() {
echo '<style>.login h1 a { background-image: url(' . get_stylesheet_directory_uri() . '/logo.png) !important; }</style>';
});
Logo-Datei ins Theme-Verzeichnis legen, fertig.
20. "Howdy" in der Admin Bar ändern
Ersetzt: Replace Howdy Plugin
Ja, es gibt ein Plugin dafür. Ja, jemand hat es installiert.
add_filter('admin_bar_menu', function($wp_admin_bar) {
$my_account = $wp_admin_bar->get_node('my-account');
$newtext = str_replace('Howdy,', 'Willkommen,', $my_account->title);
$wp_admin_bar->add_node(array('id' => 'my-account', 'title' => $newtext));
}, 25);
Wann Plugins trotzdem die richtige Wahl sind
Ich sage dir nicht, dass du komplett auf Plugins verzichten sollst. Das wäre dumm.
WooCommerce? Das brauchst du. Eine solide Caching-Lösung wie FlyingPress? Absolut, Caching-Logik ist zu komplex für ein Snippet. Kontaktformulare, SEO-Suites, Backup-Lösungen: Das sind echte, gepflegte Plugins, die komplexe Probleme lösen.
Der Punkt ist nicht, dass Plugins schlecht sind. Der Punkt ist, dass viele von ihnen Probleme lösen, die PHP vor Jahrzehnten gelöst hat. Das Disable Comments Plugin hat eine Million Installationen. Classic Editor hat fünf Millionen. Das sind Features, die WordPress mit einem Einstellungs-Toggle lösen könnte (und wohl auch sollte).
Jedes Plugin, das du nicht installierst, ist eines weniger, das kaputtgehen kann, eines weniger zum Updaten und eine potenzielle Sicherheitslücke weniger. Für eine vollständige Optimierungsstrategie fang mit den Snippets oben an und bau von dort aus weiter.
Nächstes Mal, wenn du nach einem Plugin greifst, frag dich: Ist das ein Einzeiler? Wenn ja, spar dir die Installation.
Wenn deine WordPress-Seite in Plugins ertrinkt und du jemanden brauchst, der aufräumt, lass uns reden.
Über den Autor
Kemal Esensoy
Kemal Esensoy, Gründer von Wunderlandmedia, begann seine Karriere als freiberuflicher Webentwickler und Designer. Er führte Web-Design-Kurse mit über 3.000 Studenten durch. Heute leitet er eine preisgekrönte Full-Stack-Agentur, die sich auf Webentwicklung, SEO und digitales Marketing spezialisiert hat.