WordPress lädt auf jeder einzelnen Seite deiner Website automatisch ein Emoji-Script namens wp-emoji-release.min.js. Dieses Script wurde mit WordPress 4.2 eingeführt, um sicherzustellen, dass Emoji-Zeichen in älteren Browsern wie Internet Explorer 10 und frühen Android-Versionen korrekt angezeigt werden. Es prüft, ob der Browser des Besuchers Emojis nativ darstellen kann. Falls nicht, ersetzt das Script die Emoji-Zeichen durch Bilder vom WordPress-CDN unter s.w.org.
Das Problem: Dieses Script wird auf jeder Seite geladen, egal ob dein Inhalt tatsächlich Emojis enthält oder nicht. Für die große Mehrheit der WordPress-Seiten ist das unnötiger Overhead.
Warum WordPress dieses Script standardmäßig lädt
WordPress legt großen Wert auf Abwärtskompatibilität. Da es immer noch eine kleine Anzahl von Nutzern mit sehr alten Browsern gibt, lässt das Core-Team dieses Feature standardmäßig aktiviert. Das Script besteht aus zwei Teilen: einem Inline-JavaScript-Block, der einen Emoji-Rendering-Test durchführt, und der externen wp-emoji-release.min.js-Datei, die geladen wird, wenn der Test feststellt, dass der Browser Hilfe benötigt. Zusätzlich fügt WordPress CSS-Styles für das Emoji-Rendering und einen DNS-Prefetch-Hinweis für s.w.org hinzu, um die CDN-Verbindung zu beschleunigen.
Die tatsächliche Performance-Auswirkung
Obwohl das Emoji-Script selbst nur etwa 15-20 KB groß ist, sind die Gesamtkosten höher als nur die Dateigröße. Folgendes passiert bei jedem Seitenaufruf, wenn das Emoji-Script aktiv ist:
- Inline-JavaScript-Ausführung: Der Emoji-Erkennungstest wird im
<head>-Bereich ausgeführt, was das Rendering blockiert. Der Browser muss diesen Code ausführen, bevor er den Rest der Seite weiter parsen kann. - Zusätzlicher DNS-Lookup: Der DNS-Prefetch für
s.w.orglöst eine DNS-Auflösung aus, die sonst nicht nötig wäre. Bei mobilen Verbindungen mit hoher Latenz kann das 50-100 ms kosten. - Zusätzliche HTTP-Anfrage: Falls der Browser den Emoji-Test „nicht besteht" (was bei modernen Geräten selten ist), wird die vollständige Script-Datei vom CDN heruntergeladen.
- CSS-Overhead: Zusätzliche Emoji-bezogene Styles werden sowohl im Frontend als auch im Admin-Bereich eingefügt.
Für Seiten, die auf Performance und gute Core-Web-Vitals-Werte ausgerichtet sind, ist das Entfernen dieses Scripts einer der einfachsten Gewinne. Es reduziert die Total Blocking Time und eliminiert unnötige Netzwerk-Anfragen.
Wer braucht das Emoji-Script wirklich
Du solltest das Emoji-Script behalten, wenn deine Seite gezielt Nutzer mit sehr alten Browsern anspricht (IE 10 oder älter, Android 4.3 oder niedriger) und dein Inhalt stark auf Emoji-Darstellung angewiesen ist. In der Praxis trifft das auf fast niemanden zu. Jeder moderne Browser seit 2015 verarbeitet Emojis nativ über das Schrift-Rendering des Betriebssystems. Auch ohne das WordPress-Script werden Emojis für über 99 % deiner Besucher korrekt angezeigt.
Emoji-Script über functions.php entfernen
Der sauberste Weg, das Emoji-Script zu deaktivieren, ist, folgenden Code in die functions.php deines Themes einzufügen, oder besser noch in ein seitenspezifisches Plugin. Jede Zeile zielt auf einen bestimmten Teil des Emoji-Systems ab:
/**
* WordPress Emoji-Scripts und -Styles deaktivieren
*/
function disable_emojis() {
// Inline-Emoji-Erkennungsscript aus dem Frontend-Head entfernen
remove_action('wp_head', 'print_emoji_detection_script', 7);
// Emoji-Erkennungsscript aus dem Admin-Bereich entfernen
remove_action('admin_print_scripts', 'print_emoji_detection_script');
// Emoji-CSS-Styles aus dem Frontend entfernen
remove_action('wp_print_styles', 'print_emoji_styles');
// Emoji-CSS-Styles aus dem Admin-Bereich entfernen
remove_action('admin_print_styles', 'print_emoji_styles');
// Emoji-Konvertierung im RSS-Feed-Inhalt stoppen
remove_filter('the_content_feed', 'wp_staticize_emoji');
// Emoji-Konvertierung in RSS-Kommentartext stoppen
remove_filter('comment_text_rss', 'wp_staticize_emoji');
// Emoji-Konvertierung in ausgehenden E-Mails stoppen
remove_filter('wp_mail', 'wp_staticize_emoji_for_email');
// DNS-Prefetch für das Emoji-CDN entfernen
add_filter('wp_resource_hints', function($urls, $relation_type) {
if ('dns-prefetch' === $relation_type) {
$urls = array_filter($urls, function($url) {
return strpos($url, 'https://s.w.org/images/core/emoji/') === false;
});
}
return $urls;
}, 10, 2);
// Emoji-Script im Block-Editor verhindern
add_filter('emoji_svg_url', '__return_false');
}
add_action('init', 'disable_emojis');
Alternative: Ein Plugin verwenden
Wenn du lieber keinen Code direkt bearbeiten möchtest, gibt es mehrere leichtgewichtige Plugins, die das für dich erledigen. Die beliebtesten Optionen sind:
- Disable Emojis (SUSPENDED): War jahrelang die Standard-Lösung. Sehr kleiner Footprint, macht genau das, was der obige Code tut. Dieses Plugin wurde allerdings aus dem WordPress-Plugin-Verzeichnis entfernt, aber es gibt Alternativen.
- Autoptimize: Ein allgemeines Optimierungs-Plugin, das unter seinen „Extra"-Einstellungen eine Option zum Entfernen der Emoji-Scripts enthält. Wenn du Autoptimize bereits für CSS/JS-Optimierung nutzt, ist das ein praktischer All-in-One-Ansatz.
- Performance-Plugins: Viele Caching- und Performance-Plugins wie WP Rocket, LiteSpeed Cache und Perfmatters enthalten einen Schalter zum Deaktivieren des Emoji-Scripts. Prüfe deine bestehenden Plugin-Einstellungen, bevor du etwas Neues installierst.
Was passiert mit der Emoji-Anzeige nach dem Entfernen
Nichts Schlimmes. Moderne Browser verwenden die integrierte Emoji-Schriftart des Betriebssystems, um Emoji-Zeichen darzustellen. Unter Windows ist das Segoe UI Emoji. Unter macOS und iOS ist es Apple Color Emoji. Unter Android ist es Noto Color Emoji. Diese Systemschriften verarbeiten alle Standard-Unicode-Emojis ohne jede Hilfe von WordPress.
Der einzige visuelle Unterschied, den du möglicherweise bemerkst, ist, dass Emojis je nach Betriebssystem des Besuchers leicht anders aussehen. Ein Apple-Nutzer sieht Apple-Emojis, ein Windows-Nutzer sieht Microsoft-Emojis und so weiter. Das ist das Standardverhalten im gesamten Web und nichts WordPress-Spezifisches.
So überprüfst du, ob das Script entfernt wurde
Nach dem Hinzufügen des Codes oder der Aktivierung eines Plugins solltest du bestätigen, dass das Emoji-Script nicht mehr geladen wird. Hier sind drei Möglichkeiten zur Prüfung:
- Seitenquelltext anzeigen: Öffne deine Seite im Browser, klicke mit der rechten Maustaste und wähle „Seitenquelltext anzeigen". Suche nach
wp-emoji. Wenn du keine Treffer findest, wurde das Script erfolgreich entfernt. - Browser-DevTools: Öffne den Netzwerk-Tab in den Entwicklertools deines Browsers, lade die Seite neu und filtere nach „emoji". Du solltest null Anfragen sehen, die mit Emoji-Scripts zusammenhängen.
- InspectWP-Scan: Führe einen neuen InspectWP-Scan deiner Seite durch. Der WordPress-Bereich zeigt an, ob das Emoji-Script noch vorhanden ist. Wenn die Entfernung erfolgreich war, erscheint der Emoji-Script-Indikator nicht mehr im Bericht.