Oferta SiteGround Black Friday

Cómo solucionar el error «remove query strings from static resources» en WordPress

Uno de los errores más difíciles de quitar de los analizadores de velocidad de tu sitio es el conocido como «Remove Query Strings from Static Resources«.

El resto de los errores de optimización ya los hemos visto casi todos pero este suele ser el más recalcitrante y complicado de solucionar. Pero vayamos al principio…

¿Qué son las query strings?

Cuando comprobamos nuestra web en herramientas como Gtmetrix, Pingdom o Google PageSpeed Insights suele aparecer casi siempre una sugerencia para quitar las «query strings from static resources», que en español vendría a ser algo como «cadenas de búsqueda de recursos estáticos».

Las query strings son en realidad URLs que, cuando las examinas, contienen caracteres especiales, como «&», «?» u otros. Y son las hojas de estilos y los scripts quieres en ocasiones añaden a su URL unas terminaciones en modo de cadenas de búsqueda (query strings) para identificar la versión del recurso o para saltarse la caché del navegador si la has forzado.

Un ejemplo típico de query string sería algo así:

/wp-includes/css/dashicons.min.css?ver=4.4.2

Y borrar las query strings de los recursos estáticos es importante ya que pueden provocar problemas con la caché.

Hay servidores de proxy cache e incluso algunas CDN que no pueden cachear recursos estáticos con query strings, con lo que perdemos oportunidades de mejorar la velocidad de nuestra web.

Cómo quitar las query strings from static resources

Hay varios métodos posibles con los que podemos quitar estas cadenas de búsqueda, estas query strings de los recursos estáticos. Aquí tienes los más interesantes.

Quitar las query strings from static resources en WordPress con una función

Abre el archivo functions.php de tu tema activo o tu plugin de utilidades para incluir una función que quite las query strings de todos los scripts y hojas de estilos asociadas a tu dominio.

El siguiente fragmento de código serviría perfectamente:

//Quitar las query strings from statics resources
function _remove_script_version( $src ){
$parts = explode( '?ver', $src );
return $parts[0];
}
add_filter( 'script_loader_src', '_remove_script_version', 15, 1 );
add_filter( 'style_loader_src', '_remove_script_version', 15, 1 );

Quitar las query strings from static resources en WordPress con el plugin W3 Total Cache

Si utilizas el plugin W3 Total Cache puedes quitar la marca de la casilla que evita la creación de query strings.

Esta opción la encontrarás en la sección de ajustes de Performance > Browser Cache. Ahí encontrarás el ajuste llamado “

Quitar las query strings from static resources en WordPress con otros plugins

Si no usas el plugin W3 Total Cache y no te animas a tocar código puedes usar plugins creados específicamente para esta tarea concreta de la que estamos hablando hoy.

Conozco un par de ellos…

El nombre del primero no deja lugar a dudas, solo tienes que instalar y activar el plugin Remove Query Strings From Static Resources.

Es un plugin ligero y sencillo, que añade la función del primer método al modo más sencillo, sin modificar por tu cuenta ningún archivo.

Lo activas y quita las query strings..

El otro se llama Remove Query Strings (vaya sorpresa) y es en principio un poco más limitado que el anterior, pues por defecto solo permite quitar query strings que comiencen con la cadena «ver».

Pero si quieres puedes forzar a que elimine otras query strings añadiendo una constante a tu archivo wp-config.php, así:

define('REMOVE_QUERY_STRING_ARGS', 'ver,version,my-arg');

En el ejemplo anterior quita todas las cadenas que comiencen con “ver”, “version” y  “loquesea”. Por supuesto, adáptalo a tus necesidades.

Quitar las query strings from static resources en WordPress mediante versiones

Para configurar el control de versiones en recursos sin usar query strings también puedes definir la versión en la ruta del archivo. Por ejemplo:

Haciéndolo así el número de versión lo define el nombre de la carpeta, que hace referencia a la versión específica del archivo. De este modo no se usan query strings y se sigue especificando el número de versión, todos contentos.


Con estos métodos serás capaz de quitar la inmensa mayoría de query strings de los recursos estáticos, optimizando la velocidad de tu sitio y el uso de la caché.

¿Conoces algún modo más?

Ya tardas en compartirlo. Estamos hambrientos de conocimiento.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en los emoticonos para valorarlo!

Promedio de puntuación 5 / 5. Total de votos: 14

Hasta ahora ¡no hay votos!. Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Ayúdame a mejorar este contenido!

Por favor, dime, ¿cómo puedo mejorarlo?

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado. ¡Ah! ¿te funciona? pues entonces no he dicho nada :)

Sobre el autor

17 comentarios en “Cómo solucionar el error «remove query strings from static resources» en WordPress”

  1. Muchas gracias Fernando. Veo que es el truco 193 de tu libro. No lo tenía marcado como favorito ;). En esta versión del truco veo una ligera diferencia. En el libro viene «?» y aquí lo has puesto como «?ver». ¿Dependerá de lo que nos detecte Google Speed usar una otra cadena? Un saludo y muchas gracias.

  2. En mi opinión este truco hay que usarlo con cuidado. Las query strings muchas veces son necesarias precisamente para saltarse la cache del navegador. Una hoja de estilos de un plugin o theme, al actualizarse, si mantiene igual la url del recurso que sea, esta podría no actualizarse en el navegador y dar errores.

  3. Gracias por el post. Tengo muchos gravatars con «?s=» y lamentablemente ni con el plugin W3TC, ni con el código me funciona (ni cambiando la cadena «?ver»).
    Ya tenía desmarcada la opción «Prevent caching…» y justo debajo aparece otra «Remove query strings from static resources» la cual he probado marcando y desmarcando.
    Pero Pingdom me sigue dando el mismo error. Tan solo consigo mediante el código pasar de la puntuación F 10 a F 11.

  4. Gracias por el aporte, pero mi problema es diferente. En mi caso solo aparece el mismo error pero relacionado con imágenes un ejemplo es el siguiente «endless-runner-2.jpg?resize=300%2C193&ssl=1» como puedo solucionarlo? de antemano gracias.

    1. Danonino Rojo

      A mi me pasa exactamente lo mismo: tengo 43 query strings con la cadena ?resize…&ssl=1 y ya he intentado de todo por eliminarlas, hice el código personalizado en functions.php cambiando el ? por ?resize, probé con plugins, hice reglas de cloudflare, desactivé la opcion de W3TC y aún así Pingdom me las sigue detectanto… ya no se qué más hacer…???!!!

      1. Yo también he intentado todo eso y no puedo solucionarlo, de hecho cuando agregue el código al en el functions.php se me tiro la pagina y tuve que agregarlo desde el administrador de CPanel borrando ese código, al parecer no hay solución para nosotros :v

  5. Resulta que tengo un problema, cada imagen, cada archivo que esta en SRc tiene el siguiente string ?x54532 , no he podido quitarlo, si me puedes ayudar como se puede solucionar

  6. Para los que no les funciona nada de lo expuesto, pueden intentar previamente purgar el caché si tienen algún plugin de caché, en mi caso tengo LiteSpeed server y funcionó solo después de purgar el caché en el dashboard de WP.

  7. Hola Fernando, Fantástico tutorial enhorabuena. Me gustaría hacerte una pregunta que seguro otros compañeros puedan tener y te valga para añadir algo de contenido. Yo he usado la funcion que indicas arriba (1er método) sin embargo, yo ademas de ?ver tambien tengo muchos recursos con ?v y no soy capaz de crear la función para que se eliminen tambie ese ?v. ¿Podrias por favor indicarme como sería la funcion en ese caso? ;Gracias!!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información base sobre privacidad:
- Responsable: Fernando Tellado ([email protected])
- Fin del tratamiento: Moderación de comentarios para evitar spam
- Legitimación: Tu consentimiento
- Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
- Derechos: Acceso, rectificación, portabilidad, olvido

 

Scroll al inicio