Startseite BlogOptimierung, WordPressWordPress: oEmbed deaktivieren

WordPress: oEmbed deaktivieren

14. Dezember 2015 — Optimierung WordPress

Beim Update auf WordPress 4.4 gilt es Vorsicht walten zu lassen. So schön sich die neuen WordPress-Funktionen auch lesen (responsive Images, oEmbed-Funktion, …), WordPress lädt damit automatisch ungefragt einige Dateien in den Quellcode, welche nicht immer Sinn machen und so auf jeden Fall Ladezeit etc. verschlechtern. Daher sollte man beim Update auf WordPress 4.4 zumindest einige Funktionen wie oEmbed ggf. deaktivieren.

WordPress 4.4.

WP 4.4 namens Clifford bringt einige an sich spannende Verbesserungen, Neuerungen:

  • Responsive Bilder
    angeblich vollautomatisch, wobei durch den genutzten Code ältere Browser eigentlich ein Polyfill benötigen, der wohl nicht geladen wird. Auch für die Google-Bilder-Suche gilt es aufzupassen, welche Bilder dann noch indizierbar sind. Dazu am Ende noch ein Bonus-Tipp.
  • oEmbed-Funktionen
    damit können andere Webseiten WordPress-Beiträge ähnlich Twitter-Cards zitieren, einbinden. Dazu gleich mehr.
  • Neues mobile first Theme
  • Geänderte Reihenfolge der Kommentarfelder

Die oEmbed-funktion

Wie, was? Embed?
Wenn man in einem Beitrag einen Beitrag einer WordPress-Seite zitieren, einbauen möchte, reicht es nun einfach dessen URL in den Editor zu kopieren.

Achtung: nicht die URL verlinken, dann wird es „nur“ ein Link wie bislang.

Dank der neuen oEmbed-Funktion wird dann die URL durch folgendes Element ersetzt (für die Entwickler: ist ein iframe):

WordPress oEmbed

WordPress oEmbed

An sich ganz nett, aber jetzt mal ehrlich: wie häufig wird das wohl wirklich genutzt?
Damit das Funktioniert, muss WordPress allerdings etliche Dateien laden, die ansonsten keinen großen Nutzen haben und beispielsweise die Ladezeit deutlich verschlechtern. Was weg kann, kann weg, vgl. 10 Tipps für ein einfacheres Blog-Design.

Ab WP 4.4 sind das in der Regel folgende Dateien:

via wp_head():
<link rel='https://api.w.org/' href='//domain/wp-json/' />
<link rel="alternate" type="application/json+oembed" href="//domain/wp-json/oembed/1.0/embed?url=http%3A%2F%2Fdomain%2F" />
<link rel="alternate" type="text/xml+oembed" href="//domain/wp-json/oembed/1.0/embed?url=http%3A%2F%2Fdomain%2F&#038;format=xml" />

via wp_footer():
<script type='text/javascript' src='//domain/wp-includes/js/wp-embed.min.js?ver=4.4'></script>

Man kann relativ umständlich diese Funktion deaktivieren und (separat) die Ausgabe dieser dann überflüssigen Dateien im Frontend entfernen.
Das geht leider nicht so einfach. Daher dieser Beitrag.

oEmbed deaktivieren

Nach meinen ersten Recherchen und Tests ist folgendes in der functions.php des genutzten Themes erforderlich:

remove_action('wp_head','rest_output_link_wp_head',10);
remove_action('wp_head','wp_oembed_add_discovery_links',10);
add_filter('rest_enabled','_return_false');
add_filter('rest_jsonp_enabled','_return_false'); 

Damit die Ausgabe der Dateien auch im Code verschwindet wird es umfangreicher.
Am einfachsten nutzt man daher das Plugin Disable Embeds, das sich seit WP 4.4 auch zunehmender Beliebtheit erfreut.
Wer es genau wissen will, kann sich den einfachen und gut dokumentierten Code des Plugins anschauen.

Schon ist der Quellcode wieder schlank wie zuvor. Will man die oEmbed-Funktion dennoch nutzen, macht es derzeit noch (HTTP/2 is coming) mehr Sinn zumindest die JS-Datei in nur einem Aufruf in der vermutlich bereits vorhandenen JS-Datei asyncron zu laden.

Update: Disable Emojis, Disable Gravatars, Disable Embeds and Remove Querystrings

WordPress lädt daneben auch noch Emojis, ähnlich lästig im Quellcode und wohl eher selten genutzt.
Da gibt es ein nettes Plugin, welches hier ansetzt und gleich mehrere Möglichkeiten bietet: https://wordpress.org/plugins/wp-disable/. Bitte die Einstellungen genau anschauen!

Bonus: responsive Images deaktivieren

WordPress nutzt srcset um die Bilder abhängig von der Browserbreite zu laden. Bei diesem Ansatz muss man wissen und aufpassen, dass derzeit Google nur das Bild indiziert, welches mit src verknüpft ist.
Mit dem mobile first-Gedanken im Kopf verwendet man hierfür meist das kleinste Bild. Das ist aus Google-Sicht aber meist nicht so schlau, da Google gewisse Mindestgrößen bevorzugt und Bildänderungen unter Umständen negative Folgen haben.
Wer hier bereits auf eine bewährte Lösung setzt (oder noch so einen nicht-responsiven Blog wie den hier hat) oder erst mal nichts riskieren will, kann die Funktion in der functions.php recht einfach deaktivieren:

remove_filter('the_content','wp_make_content_images_responsive'); 

Sinn machen responsive Bilder dennoch, also in Deinem Einzelfall vorher nachdenken!

Bonus 2: SSL certificate problem

Wer seit WordPress 4.4 über das Backend wegen eines Zertifikatfehlers nicht mehr updaten kann und die Fehlermledung wie folgt bekommt:

SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Lösung: https://usability-weblog.de/wordpress-download-fehlgeschlagen-ssl-certificate-verify-failed

NETPROFIT Blog

Im Blog schreibt         über CMS, SEO & Webdesign. Kontakt →

Kategorien
SMX München 2017 -15% Rabatt-Code: NETPROFITSMX

4 Kommentare zu WordPress: oEmbed deaktivieren

Hallo,
ich hätte eine Frage zur Deaktivierung des neuen embed-features.

Verstehe ich es richtig, dass die o.g. Dateien (via wp_head(): ….. und
via wp_footer(): ….) immer automatisch im Ausgabe-Code erscheinen, auch wenn ich die neue embed-Funktion weder bei meinen eigenen posts nutze noch andere Websites meine posts einbetten?

Falls ja, dann wirkt sich das immer „mehr oder weniger“ auf die Ladezeit aus, bei jeder Seite?

Falls ja, dann sollte man sich m.E. das Plugin gönnen, wobei die 32 Zeilen reiner Code für mich als Laien nicht unbedingt „einfach “ aussehen, sondern eher aufwendig.

Grüße,

Martin

Gravatar von Martin - via garvatar.org Martin
Kommentar 1
27. Februar 2016 um 16:41 Uhr

Hallo Martin,
genau so ist es: wird immer geladen, ob gebraucht oder nicht und kostet durch die zusätzlichen, überflüssigen Aufrufe Ladezeit. Aber bei WordPress will halt der Zielnutzer sich die Funktionen einfach zusammenklicken können, so dass man wohl aus diesem Gesichtspunkt heraus so agiert.

Gravatar von Robert Hartl - via garvatar.org Robert Hartl
Kommentar 2
29. Februar 2016 um 09:07 Uhr

Hallo Robert,
ich bin zwar kein Freund von Plugins und versuche, mit möglichst wenig auszukommen, aber in dann lohnt es sich ja doch.

Ich hatte daran deswegen Zweifel, weil wenn ich ein extra Plugin installieren muss, das immerhin 30 Zeilen reinen Code hat, dann sollte der Effekt mehr sein, als nur den Ausgabe-Code um ein ein paar Zeilen Code zu verschlanken, die ansonsten aber nichts „tun“.

Gravatar von Martin - via garvatar.org Martin
Kommentar 3
29. Februar 2016 um 15:38 Uhr

Hallo Robert,

dein Artikel hat mir sehr geholfen. Leider habe ich diesen erst durch
diese Suchanfrage „wp-json oembed URLs mehrfach erreichbar“ auf Platz 1 in Google gefunden.

Aktuell nutze ich WP in der aktuellen Version mit dem Goodnews Theme. Bei der OnPage Analyse mit XOVI bekomme ich über 400 Fehlermeldungen mit „Sowohl mit als auch ohne www. erreichbar“

und dann unterschiedliche URLs mit dem wp-json/oembed/ Problem.

Leider nutzt hier die 301 in der htaccess überhaupt nicht.

[http://www.meine-domain.com/wp-json/oembed/1.0/embed?url=http%3A%2F%2Fwww.meine-domain.com%2F]

Wende ich nun deine Tipps an wird wahrscheinlich der Bereich Responsive Design darunter leiden, oder?

Abgesehen davon frage ich mich, ob dieses Problem wirklich von Google als ein SEO Fehler definiert wird?

Auf jeden Fall TOP Beitrag besten Dank und ich freue mich über Feedback.

Sonnige Grüße
Alexander

Gravatar von Alexander Schlosser - via garvatar.org Alexander Schlosser →
Kommentar 4
28. Juni 2016 um 12:10 Uhr

Kommentar schreiben zu WordPress: oEmbed deaktivieren

Kommentare werden erst nach manueller Freischaltung sichtbar.

Kommentar

KommentatorIn

(erforderlich)

(erforderlich, wird nicht angezeigt)

(optional)

Nibelungenplatz 2
D-94032 Passau

Tel.: +49 (0)851/ 966 31-31
Fax: +49 (0)851/ 966 31-41
E-Mail:

©  2001 − 2017  NETPROFIT  | Kontakt | AGB | Datenschutz, Impressum