Ninguna optimización es demasiado pequeña cuando se trata del rendimiento. Con el paso del tiempo muchos de estos trucos y optimizaciones pequeños ayudarán reducir el tiempo de carga total. En un post anterior compartimos cómo desactivar emojis en WordPress. Ahora quisiéramos compartir como desactivar contenido embebido en WordPress.

Cuando se lanzó WordPress 4.4, integraron la característica oEmbed en el núcleo. Es probable que ya lo haya visto o utilizado antes. Esta característica permite a los usuarios embeber videos de YouTube, tweets y un montón de otros recursos en sus sitios simplemente copiando un URL que WordPress convierte en un contenido embebido automáticamente y proporciona una vista previa en un editor visual. Por ejemplo hemos copiado este URL de Twitter: https://twitter.com/kinsta/status/760489262127120385 y fue convertido en lo que se ve abajo. Aquí puede ver la lista oficial de los tipos de contenido embebido apoyado.

ejemplo de oembed

WordPress fue un consumidor oEmbed desde mucho tiempo pero con la actualización el mismo, WordPress llegó a ser el proveedor oEmbed. Esta característica es muy útil para personas y tal vez desee mantenerla activada.  No obstante esto significa que también genera una solicitud de HTTP adicional en su sitio WordPress ahora, para cargar el archivo wp-embed.min.js que carga en cada una de las páginas. Mientras este archivo es de solo 1.7 KB tal cosas se suman con el paso del tiempo. La misma solicitud a veces es un evento mayor  que el tamaño de descarga del contenido.

(Lectura recomendada: Cómo solucionar el problema de Facebook oEmbed en WordPress).

wp embebido

Desactivar Contenido Embebido En WordPress

Hay varias formas para desactivar contenido embebido en WordPress. Puede hacerlo mediante un plugin gratuito, un código o JavaScript en línea del lado cliente.

1. Desactivar Embebidos Mediante Plugin En WordPress

La primera forma para desactivar embebidos es el uso simple de un plugin gratuito llamado Disable Embeds, desarrolado por Pascal Birchler quien en realidad es uno de los contribuyentes principales de WordPress.

desactivar embebidos con wordpress plugin

El plugin es superligera, solamente 3 KB para ser exactos. Al escribir este artículo de momento tiene 5.000 instalaciones activas con una calificación de 4.8 en una escala de 5 estrellas. Puede ser descargado del repositorio WordPress o buscándolo dentro del panel de control WordPress debajo “Añadir Plugins Nuevos”. No hay nada que configurar, simplemente instalar, activar el JavaScript adicional desaparece. Las características son las siguientes:

  • Impide a otros que embeban su sitio
  • Impide a usted que embebe otros sitios “no deseados”
  • Desactiva el archivo JavaScript para que no cargue en su sitio WordPress.

Puede seguir embebiendo contenido del YouTube y Twitter usando su iframe scripts. Otra alternativa es usar un premium plugin como perfmatters (desarrollado por un miembro de Kinsta) que le permite desactivar embebidos y proporciona optimizaciones para su sitio WordPress.

Desactivar embebidos en permatters plugin

2. Desactivar Contenido Embebido Mediante Código En WordPress

Si no desea instalar otro plugin, puede desactivar emojis con un código. Comienza creando una copia de seguridad de tu sitio, y luego crea un tema secundario para que tus cambios no se pierdan si actualizas tu tema. A continuación, añade lo siguiente al archivo functions.php de tu tema secundario. Nota: el código procede del plugin anterior de Disable Embeds.

¡Importante! Editando el código fuente de un tema de WordPress puede romper su sitio su no se hace correctamente. Si no está conforme haciendo esto pregunte un desarrollador primero.

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;
}

3. Java Script En Línea Del Lado Cliente Inline

Una tercera opción podría ser agarrar el contenido del archivo wp-emberd.min.js y embeberlo en línea. Esta manera funciona solamente con archivos pequeños o cuando no hay muchos códigos incluidos que puede ocurrir si usted quisiera deshacer de una solicitud HTTP y al mismo tiempo apoyar soporte para sus embebidos.