SummArg | Cursos y recursos para webmasters

20/11/2013

Como solucionar el mensaje “eliminar el javascript que bloquea la visualización” en WordPress

PageSpeed es un servicio de Google que efectúa un análisis de tu sitio web y evalúa los elementos que podrían mejorar para una carga de página mas rápida.

Por su estructura básica todos los sitios WordPress arrojan el siguiente alerta:

pagespeed

“Eliminar el JavaScript que bloquea la visualización y el CSS del contenido de la mitad superior de la página” y acto seguido enumera los archivos en cuestión al clickear el mensaje.

WordPress carga en el header todos los recursos javascript, y el grueso de los diseñadores web también coloca allí los links a sus recursos, aunque siempre sea recomendable hacerlo en el footer. 

Una alternativa que encontramos para los que no gustan de ensuciarse con el código es el plugin Javascript to Footer, que hace dos años no recibe actualizaciones pero evidentemente sigue funcionando. Sin embargo el mejor modo sigue siendo a través de un plugin propio o bien editando el functions.php e insertando el siguiente código:

function footer_enqueue_scripts() {
   remove_action('wp_head', 'wp_print_scripts');
    remove_action('wp_head', 'wp_print_head_scripts', 9);
    remove_action('wp_head', 'wp_enqueue_scripts', 1);
    add_action('wp_footer', 'wp_print_scripts', 5);
    add_action('wp_footer', 'wp_enqueue_scripts', 5);
    add_action('wp_footer', 'wp_print_head_scripts', 5);
}
add_action('after_setup_theme', 'footer_enqueue_scripts');

Fuente: kevinleary.net

Dejar un comentario

  1. Muchas gracias, me ha resultado de mucha ayuda.

    Sin embargo voy a hacer una puntualización al código ya que en mi tema o versión de wordpress no funcionaba y he tenido que cambiar en todos los casos la palabra “scripts” por “script”

  2. Me funcionó…! Mil gracias.

    Ahora, del listado se quitaron todos los .js, hay alguna función para que también los .css queden optimizados?

    Es importante mencionar que en este tema soy algo novato.

    Saludos y gracias.

  3. Hola, el código me da error: Call to undefined function remove_action, te lo agradecería si me puedes ayudar.

  4. Probe hacer lo que comenta el compañero Jose Fernández arriba y funcionó, creo que debes corregir el código la palabra “scripts” da error Call to undefined function remove_action debes reemplazarla por “script” y queda ok tu código, de todas formas me sirvió con esa pequeña modificación muchas gracias por tu aporte.

  5. Agustin

    Hola,
    Lo he puesto y no me ha hecho nada. Mi theme es Elegante flexible. Alguna alternative.
    Gracias

  6. Javier

    Function.php de que carpeta hay que editar???? GRaciassss!!!!!!!

Dejar un comentario