Keine Optimierung ist jemals zu klein, wenn es um die Web-Performance geht. Im Laufe der Zeit können viele dieser kleinen Tricks und Optimierungen deine gesamte Ladezeit erheblich verkürzen. In einem früheren Beitrag haben wir gezeigt, wie man Emojis in WordPress deaktiviert Heute möchten wir dir mitteilen, wie du Embeds in WordPress deaktivierst.

Bei der Veröffentlichung von WordPress 4.4 wurde die oEmbed-Funktion in Core integriert. Du hast das wahrscheinlich schon einmal gesehen oder benutzt. Auf diese Weise können User YouTube-Videos, Tweets und viele andere Ressourcen in ihre Websites einbetten, indem sie einfach eine URL einfügen. Diese wird von WordPress automatisch in ein Embed konvertiert und bietet eine Live-Vorschau im visuellen Editor. Zum Beispiel haben wir diese URL von Twitter eingefügt: https://twitter.com/kinsta/status/760489262127120385 und sie wurde in das umgewandelt, was du unten siehst. Die offizielle Liste der unterstützten Embed-Typen wird angezeigt.

oEmbedded Tweet
oEmbedded Tweet

WordPress war seit langem ein oEmbed-Kunde, aber mit dem Update ist WordPress selbst zu einem oEmbed-Anbieter geworden. Diese Funktion ist für viele User hilfreich, und du möchtest, dass sie aktiviert bleibt. Dies bedeutet jedoch, dass jetzt auch eine zusätzliche HTTP-Anforderung auf deiner WordPress-Seite generiert wird, um die Datei wp-embed.min.js zu laden. Und das lädt auf jeder einzelnen Seite. Während diese Datei nur 1,7 KB groß ist, summieren sich solche Dinge im Laufe der Zeit. Die Anfrage selbst ist manchmal ein größerer Deal als die Downloadgröße der Inhalte.

(Leseempfehlung: So behebst du das Facebook oEmbed Problem in WordPress).

wp embed
wp-embed.min.js

Deaktiviere Embeds in WordPress

Es gibt verschiedene Möglichkeiten, Embeds in WordPress zu deaktivieren. Du kannst dies mit einem kostenlosen Plugin, mit Code oder die minifizierten JS-Dateien inlinen.

1. Deaktiviere Embeds in WordPress mit Plugin

Die erste Möglichkeit zum Deaktivieren von Embeds besteht darin, einfach ein kostenloses Plugin namens Disable Embeds zu verwenden, das von Pascal Birchler entwickelt wurde, einem der Hauptakteure von WordPress.

Deaktiviere Embeds WordPress-Plugin
Deaktiviere Embeds WordPress-Plugin

Dieses Plugin ist ziemlich leicht, nur 3 KB, um genau zu sein. Derzeit sind es über 10.000 aktive Installationen mit einer Bewertung von 4,8 von 5 Sternen. Du kannst es aus dem WordPress-Repository herunterladen oder in deinem WordPress-Dashboard unter „Add New“ („Neu hinzufügen“)-Plugins suchen. Es ist nichts zu konfigurieren, einfach zu installieren und zu aktivieren, und die zusätzliche JavaScript-Datei ist weg. Es verfügt über Folgendes:

Mit Ausfallzeiten und WordPress-Problemen zu kämpfen? Kinsta bietet eine umfassende Hosting-Lösung, mit der du Zeit sparen kannst! Check unsere Features 

  • Verhindert, dass andere deine Website einbetten.
  • Verhindert, dass du andere nicht auf der Whitelist enthaltene Websites einbettest.
  • Deaktiviert das Laden der JavaScript-Datei auf deiner WordPress-Seite.

Du kannst immer noch Inhalte von YouTube und Twitter einbetten, indem du deren eingebettete iframe-Skripts verwendest. Du kannst auch ein Premium-Plugin wie perfmatters (entwickelt von einem Teammitglied von Kinsta) verwenden, welches Embeds zusammen mit anderen Optimierungen für deine WordPress-Seite deaktiviert.

Deaktiviere Embeds im perfmatters-Plugin
Deaktiviere Embeds im perfmatters-Plugin

2. Deaktiviere Embeds in WordPress mit Code

Wenn du kein weiteres Plugin installieren möchtest, kannst du auch Embeds mit Code deaktivieren. Beginne damit, ein Backup deiner Seite zu erstellen und erstelle dann ein Child Theme, damit deine Änderungen nicht verloren gehen, wenn du dein Theme aktualisierst. Füge dann das Folgende in die functions.php Datei deines Child Themes ein. Notiz: Der Code wurde vom Plugin Disable Embeds oben bereitgestellt.

Wichtig! Wenn du den Quellcode eines WordPress-Themas bearbeitest, kann deine Seite beschädigt werden, wenn sie nicht korrekt ausgeführt wird. Wenn du dich damit nicht wohlfühlst, wende dich bitte zuerst an einen Entwickler.
function disable_embeds_code_init() {

 // Remove the REST API endpoint.
 remove_action( 'rest_api_init', 'wp_oembed_register_route' );

 // Turn off oEmbed auto discovery.
 add_filter( 'embed_oembed_discover', '__return_false' );

 // Don't filter oEmbed results.
 remove_filter( 'oembed_dataparse', 'wp_filter_oembed_result', 10 );

 // Remove oEmbed discovery links.
 remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );

 // Remove oEmbed-specific JavaScript from the front-end and back-end.
 remove_action( 'wp_head', 'wp_oembed_add_host_js' );
 add_filter( 'tiny_mce_plugins', 'disable_embeds_tiny_mce_plugin' );

 // Remove all embeds rewrite rules.
 add_filter( 'rewrite_rules_array', 'disable_embeds_rewrites' );

 // Remove filter of the oEmbed result before any HTTP requests are made.
 remove_filter( 'pre_oembed_result', 'wp_filter_pre_oembed_result', 10 );
}

add_action( 'init', 'disable_embeds_code_init', 9999 );

function disable_embeds_tiny_mce_plugin($plugins) {
    return array_diff($plugins, array('wpembed'));
}

function disable_embeds_rewrites($rules) {
    foreach($rules as $rule => $rewrite) {
        if(false !== strpos($rewrite, 'embed=true')) {
            unset($rules[$rule]);
        }
    }
    return $rules;
}

Oder du kannst auch die Funktion wp_dequeue_script verwenden.

function my_deregister_scripts(){
 wp_dequeue_script( 'wp-embed' );
}
add_action( 'wp_footer', 'my_deregister_scripts' );

3. Inline minifizierte JS

Eine dritte Möglichkeit wäre, den Inhalt der Datei wp-embed.min.js zu packen und inline einzubetten. Dies sollte nur mit kleinen Dateien erfolgen oder wenn nicht viel Code involviert ist. Dies wäre der Fall, wenn du einfach nur die HTTP-Anforderung loswerden möchtest und trotzdem die Unterstützung für Embeds beibehalten möchtest.