2

Remove query strings from static resources – Retire las cadenas de consulta de recursos estáticos

1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (1 votos, promedio: 5,00 de 5)
Loading ... Loading ...

Este artículo está dedicado para esos adictos al performance (rendimiento).  Y debo agregar;  Enhorabuena!!! Si estás leyendo esto es porque quieres ganar un par de puntos mas en cuanto a rendimiento, velocidad, posicionamiento de tu web.. No marcará una gran diferencia en cuanto a lo que tenías antes a no ser que tu caso sea particular y tengas decenas de Urls por optimizar, pero aún así las cosas o se hacen bien o no se hacen!!!  ;)

Hoy vamos a quitar esos “?” de las Urls que tanto nos pide GTmetrix o Pingdom Website Speed Test que quitemos.. Con un mensaje como este: Resources with a “?” in the URL are not cached by some proxy caching servers. Remove the query string and encode the parameters into the URL for the following resources:

Lo primero es saber que no es nada complicado.

Lo segundo es saber que NO TODAS pueden quitarse.. Vamos a retirar las que se pueden retirar, ni mas ni menos..

Con frecuencia tras hacer un análisis de nuestro sitio, nos pueden pedir que optimicemos cadenas como esta:

http://contratatuweb.es/blog/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.x.x

Para quitarlas, es tan fácil como añadir el siguiente código:

1
2
3
4
5
6
function remove_style_and_script_version($url) {
$parts = explode('?', $url);
return $parts[0];
}
add_filter('script_loader_src', 'remove_style_and_script_version', 20, 1);
add_filter('style_loader_src', 'remove_style_and_script_version', 20, 1);

En functions.php dentro de tu theme!!  Justo al final o antes de cerrar con ?>

Es posible que no nos libremos de todas las cadenas, como anteriormente he dicho, por tanto, tendremos que mirar cuales son “quitables” y cuales no.. Cómo? Muy fácil.. Hacemos un análisis de nuestro sitio sin hacer NINGÚN cambio y tomamos nota de las cadenas que tenemos, por ejemplo:

Remove query strings from static resources

Acto seguido, agregamos el código (antes visto) que quita “TODAS” las cadenas con “?” en nuestras Urls, y miramos cuales se han ido:

Remove query strings from static resources
Una vez identificadas las cadenas “quitables”, vamos a cambiarlas (quitarlas) con código específico, para intentar en lo posible no hacer futuros desastres por compatibilidad o demás historias..

Con el siguiente código especificamos Urls que queremos quitar:

1
2
3
4
5
6
7
8
9
10
11
12
13
 function remove_style_and_script_version($url) {
    $url_to_fix = array('http://contratatuweb.es/blog/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.x.x',
                        'http://contratatuweb.es/blog/wp-includes/js/jquery/jquery.js?ver=1.xx.x');
    if (in_array($url, $url_to_fix)) {
//si es una de las URL mencionadas arriba, eliminar todo después del signo de interrogación
        $parts = explode('?', $url);
        return $parts[0];
    }
    //de lo contrario, devolver la Url original
    return $url;
}
add_filter('script_loader_src', 'remove_style_and_script_version', 20, 1);
add_filter('style_loader_src', 'remove_style_and_script_version', 20, 1);

Las cadenas en color azul son las cadenas que queremos quitar, aquellas que hemos visto que son “quitables”..

Este proceso también podemos hacerlo pero a la inversa, es decir, en lugar de decirle las cadenas que queremos quitar, podemos decirle las cadenas que NO queremos cambiar, de ese modo, todo se cambiará excepto la que nosotros indiquemos, a través del siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
function remove_style_and_script_version($url) {
        $url_not_to_fix = array('http://contratatuweb.es/blog/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.x.x',
                            'http://contratatuweb.es/blog/wp-includes/js/jquery/jquery.js?ver=1.xx.x');
        if (in_array($url, $url_to_fix)) {
            //si es una de las URL mencionadas arriba, devolver la url original
            return $url;
        }
        //de lo contrario, quita todo después del signo de interrogación
        $parts = explode('?', $url);
        return $parts[0];
    }
    add_filter('script_loader_src', 'remove_style_and_script_version', 20, 1);
    add_filter('style_loader_src', 'remove_style_and_script_version', 20, 1);

Esto nos valdrá depende las cadenas que podamos quitar o no, si son mas las que podemos quitar o son menos..

Nota: Esto no es solo un capricho para mejorar nuestra puntuación en GTmetrix o Pingdom Website Speed Test. Mostrar ese tipo de “datos” en nuestro código fuente puede resultar peligroso hoy o en el futuro, siendo esto un posible regalo para los hackers.. Ocultar la versión de wordPress que usas nunca está demás, no sabemos las debilidades de cada utilidad (claro que esto es algo que se puede remediar siempre estando actualizado en nuestras versiones).

Si este artículo te ha ayudado en tu progreso performance, no dejes de ver los siguientes capítulos de esta eterna serie de tips suscribiendote al blog. ;)

Comparte!

LuisLY

Soy Luis LY, la mayor parte de mi tiempo lo invierto aprendiendo y compartiendo sobre Diseño Web, Marketing y SEO.

2 Comments

  1. Hola Luis, he intentado seguir perfectamente los pasos pero hago mal algo seguro porque cuando ingreso mis urls en el ultimo paso me surge un error en la linea 37 de codigo, reviso todo y creo que está bien pero me sigue dando error.

    ¿Que puedo hacer? Gracias!

Deja un comentario