Son varias las acciones que pueden llevarse a cabo para mejorar la velocidad de tu web. A continuación mostramos las que a nosotros nos han servido en algún momento, ya que no siempre dan resultado
Hay que advertir que no siempre funcionan o dan resultado. Son muchos los motivos: hosting, versiones utilizadas, themes, plugins, etc.
Tampoco se trata de una lista completa, sino de una relación de acciones que usamos frecuentemente o nos han sido útiles en algún momento determinado.
Defer Parsing Javascript
O cómo aplazar la carga de JavaScript. Es una pequeña función que fuerza la carga de JavaScripts cuando ya se ha cargado el contenido. Para utilizarlo, pegamos el siguiente código en nuestro functions.php
// Aplazar JavaScripts // Aplaza la carga de jQuery usando la propiedad HTML5 defer if (!(is_admin() )) { function defer_parsing_of_js ( $url ) { if ( FALSE === strpos( $url, '.js' ) ) return $url; if ( strpos( $url, 'jquery.js' ) ) return $url; // return "$url' defer "; return "$url' defer onload='"; } add_filter( 'clean_url', 'defer_parsing_of_js', 11, 1 ); }
El código anterior nos funciona, pero también hemos visto/probado otros:
function defer_parsing_of_js ( $url ) {
if ( FALSE === strpos( $url, '.js' ) ) return $url;
if ( strpos( $url, 'jquery.js' ) ) return $url;
return "$url.' async onload='myinit()";
}
add_filter( 'clean_url', 'defer_parsing_of_js', 11, 1 );
function defer_parsing_of_js ( $url ) {
if ( FALSE === strpos( $url, '.js' ) ) return $url;
if ( strpos( $url, 'jquery.js' ) ) return $url;
return "$url' defer ";
}
add_filter( 'clean_url', 'defer_parsing_of_js', 11, 1 );
Plugins que realizan esta acción:
- BJ Lazy Load
- WP Defer Loading
Remove Version Query Strings From JavaScript JS and CSS Stylesheet Files
En el fichero fuctions.php
function _remove_script_version( $src ){ $parts = explode( '?', $src ); return $parts[0]; } add_filter( 'script_loader_src', '_remove_script_version', 15, 1 ); add_filter( 'style_loader_src', '_remove_script_version', 15, 1 );
Una variante es la siguiente:
function remove_cssjs_ver( $src ) { if( strpos( $src, '?ver=' ) ) $src = remove_query_arg( 'ver', $src ); return $src; } add_filter( 'style_loader_src', 'remove_cssjs_ver', 10, 2 ); add_filter( 'script_loader_src', 'remove_cssjs_ver', 10, 2 );
Plugins que realizan esta acción:
- Remove Query String From CSS & Javascript In WordPress
Habilitar la compresión Gzip
En el fichero .htaccess incluimos lo siguiente:
# BEGIN GZIP <IFModule mod_deflate.c> <filesmatch "\.(js|css|html|jpg|png|php)$"> SetOutputFilter DEFLATE </filesmatch> </IFModule> # END GZIP
Otras variantes son:
# BEGIN GZIP <ifmodule mod_deflate.c> AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript </ifmodule> # END GZIP
# BEGIN GZIP <ifmodule mod_deflate.c> AddOutputFilterByType DEFLATE text/text AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml </ifmodule> # END GZIP
Eliminar el JavaScript que bloquea la visualización del contenido de la mitad superior de la página
Plugins que realizan esta acción:
- Async Javascript
Eliminar el CSS que bloquea la visualización del contenido de la mitad superior de la página
Plugins que realizan esta acción:
- Better WordPress Minify
Especificar caché de navegador
En el fichero .htaccess incluimos lo siguiente:
# BEGIN Expire headers <ifModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 5 seconds" ExpiresByType image/x-icon "access plus 1 year" ExpiresByType image/jpeg "access plus 1 year" ExpiresByType image/jpg "access plus 1 year" ExpiresByType image/png "access plus 1 year" ExpiresByType image/gif "access plus 1 year" ExpiresByType application/pdf "access plus 1 year" ExpiresByType application/x-shockwave-flash "access plus 1 year" ExpiresByType text/css "access plus 1 year" ExpiresByType text/javascript "access plus 1 year" ExpiresByType application/javascript "access plus 1 year" ExpiresByType application/x-javascript "access plus 1 year" ExpiresByType text/html "access plus 600 seconds" ExpiresByType application/xhtml+xml "access plus 600 seconds" </ifModule> # END Expire headers
También:
# BEGIN Expire headers <IfModule mod_expires.c> <filesmatch "\.(jpg|JPG|gif|GIF|png|PNG|css|js)$"> ExpiresActive on ExpiresDefault "access plus 30 day" </filesmatch> </IfModule> # END Expire headers
Keep Alive
En el fichero .htaccess incluimos lo siguiente:
<IfModule mod_headers.c> Header set Connection keep-alive </IfModule>