WP оптимизация: Премахване на Query strings от статичните ресурси (CSS и JS файловете)

Query strings

Тези стрингове могат да бъдат видяни най-често при CSS и JavaScript файловете. Ако погледнете изходния код на страницата си, ще видите редове от типа:

<script type=’text/javascript’ src=’http://yourdomain.com/wp-content/themes/yourtheme/js/superfish.js?ver=3.6′></script>

Повечето разработчици на плъгини добавят в края на URL-а тяхната собствена версия. За разработчиците това е полезно, тъй като след всеки ъпдейт на плъгина, те променят версията и всички промени се прилагат веднага след ъпдейта. За предпочитане обаче е стринговете да ги няма.
Какви са ползите от премахването на стринговете?

1. Те издават вашата WordPress версия (в случая 3.6). Мнозина предпочитат да скриват версията, поради опасност от хакерски атаки. За целта премахват от head частта на сайта реда <meta name=“generator“ content=“WordPress 3.6″ />. Обаче версията ще се види и в края на URL-а на CSS и JavaScript файловете. В повечето случаи това не е проблем, ако винаги сте с последната версия на системата. Но ако ползвате по-стара WordPress версия, някой може да ви атакува, знаейки къде са дупките в сигурността на тази стара версия.

2. Трябва да премахнете стринговете от CSS и JavaScript файловете, ако искате те да могат да бъдат кеширани от прокси сървърите. По този начин се подобрява скоростта на зареждане на сайта (Load speed). Колкото повече такива файлове имате, толкова ефектът на оптимизация е по-голям. В интернет има безплатни инструменти, с които можете да видите скоростта на зареждане на сайта си. Такъв например е GTmetrix. Една от препоръките с висок приоритет за подобряване на скоростта е точно премахването на стринговете от статичните ресурси (Resources with a „?“ in the URL are not cached by some proxy caching servers).

Премахването на тези Query strings става много просто и лесно, само трябва да добавите долния код някъде във файла functions.php на вашата тема (внимавайте това да бъде между PHP таговете).

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

Вижте отново изходния код на страницата си. Сега вече тези ?ver=3.6 и другите подобни ги няма.