امروز در این مقاله دوبست با خطای Remove query strings from static resources در GTmetrix آشنا میشویم.
همچنین روش رفع آن را در وردپرس و جوملا خواهید آموخت.
اگرچه این خطا جزء خطاهای منسوخ شده سایت GTmetrix میباشد.
خواهیم گفت چگونه رفع این خطا یا حذف علامت سوال از انتهای آدرس منابع، باعث افزایش سرعت سایت و بهبود سئو خواهد شد.
آیا وجود query strings در آدرسها برای سایت ما مفید است یا خیر؟!
خلاصهای از خطای Remove query strings from static resources
اولویت: کم
میزان سختی: راحت
میانگین امتیاز: 89%
خطای پاک کردن query strings چیست و چرا به وجود میآید؟
معایب وجود query strings :
اگر query strings در منابع سایت ما باشد، آن منابع در سمت کاربر کش نخواهد شد.
اگر این عمل کش شدن انجام نشود، خطاهای دیگری مانند Leverage browser caching نیز ایجاد خواهد شد.
این مشکل ممکن است خطاها و مشکلات بسیار دیگری را نیز به وجود آورد.
استفاده کردن از query strings سبب کش نشدن فایلهای استایل CSS یا جاوا اسکریپت JS در مرورگرهای بسیاری و همچنین در CDNها میشود.

مزایای وجود query strings :
در صورت وجود به برنامه نویسان پلاگینها و قالبها این امکان را میدهد که به زودی و در سیکل کوتاهتری منابع را آپدیت کنند.
همچنین باعش میشود منابع سمت کاربر با سرعت بیشتری آپدیت شود.
در صورت استفاده نکردن از query strings ممکن است زمان کش شدن فایلهای سمت کاربر طولانی شود.
در این صورت کاربر به نسخه جدید یا آپدیت شده دسترسی نداشته و مشکلاتی به وجود آورد.

با این حال پس سوال پیش میآید خوب است از query strings استفاده شود یا خیر؟!
راه حل اصولی این است که query strings از سایت پاک شوند.
به جای آن مدت زمان کش شدن فایل ها را با توجه به نوع آنها و سابقه آپدیتشان تعیین کنید.
روش رفع خطای پاک کردن query strings از منابع
همانطور که میدانید قبل از انجام تغییرات حتماً از سایت خود بک آپ کلّی تهیه کنید.
رفع مشکل در وردپرس
در صورتی که سایت وردپرسی دارید یا به هر دلیلی نمیخواهید از طریق کدها تغییرات را اعمال کنید، میتوانید از پلاگینها استفاده کنید.
- یکی از این پلاگینها، پلاگین Remove Query Strings در وردپرس میباشد.
- اگر با پلاگین بالا مشکل داشتید یا به هر دلیل اختلال به وجود آمد میتوانید از WP Remove Query Strings From Static Resources استفاده کنید.
- همچنین در نسخه جدید پلاگین WP Rocket این قابلیت اضافه شده است.
در صورت داشتن این پلاگین مانند عکس زیر تیک Remove Query Strings را باید بزنید:

- پلاگین W3 Total Cache نیز در تنظیمات گزینهای دارد که با برداشتن آن خطای Query String رفع میشود.
اگر این افزونه را دارید در بخش Brower Cahse گزینهای به نام Prevent caching of objects after settings change دارد.
با برداشتن تیک این گزینه خطای Query String رفع خواهد شد:

شما همچنین خیلی ساده و با تغییر دستی فایل Function.php میتوانید تنها با اضافه کردن چند خط در انتهای این فایل خطای query strings را برطرف نمایید:
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 );
رفع مشکل در جوملا
- شما با استفاده از پلاگین joomsef به سادگی میتوانید این مشکل را رفع کنید.
- همچنین در قسمت تنظیمات کلی جوملا Global Configuration و از بخش SEO Settings گزینه search engine friendly (SEF) URLs وجود دارد.
با فعال بودن این گزینه آدرسهای سایت شما برای کاربران و موتورهای جستجو بهینه خواهد شد.
مثلا آدرس http://yourwebsite.com/index.php?page=name به http://yourwebsite.com/name تبدیل میشود.
در صورتی که SEF URLs در سایت شما فعال باشد، امکان دارد آدرسهای non-SEF URLs به شکلی ایندکس شده که محتوای تکراری ایجاد کند.
این علاوه بر کاهش سئو سایت ممکن است باعث پنالتی شدن سایت در گوگل شود.
با استفاده از کدهای زیر در فایل robots.txt آدرسهای دارای علامت سوال ? ایندکس نخواهند شد.
User-agent: * Disallow: /*?*
رفع مشکل در دروپال
شما میتوانید با قرار دادن کدهای زیر در فایل template.php مشکل query strings در فایلهای CSS را رفع نمایید.
فقط در کدهای زیر به جای عبارت MYTHEME باید نام قالب خود را قرار دهید:
<?php
/**
* Implements template_process_html().
*/
// Remove Query Strings from CSS filenames (CacheBuster)
function MYTHEME_process_html(&$variables) {
$variables[‘styles’] = preg_replace(‘/\.css\?[^”]+/’,’.css’, $variables[‘styles’]);
}
?>
رفع مشکل در PHP
در صورتی که زبان برنامهنویسی سایت شما PHP است و با CMS های رایگان بالا نیامده، میتوانید از کدهای زیر استفاده کنید.
این کدها توسط سایت addedbytes برای رفع خطای Remove query strings from static resources نوشته شده است.
جهت حذف مقادیری که در url سایتتان وجود دارد از متغییر $key
میتوانید بهره بگیرید.
function remove_querystring_var($url, $key) { $url = preg_replace('/(.*)(?|&)' . $key . '=[^&]+?(&)(.*)/i', '$1$2$4', $url . '&'); $url = substr($url, 0, -1); return ($url); }
پایان
همانطور که ملاحظه کردید رفع خطای Remove query strings from static resources در سایت GTmetrix آسان است.
این کار باعث بهبود سئو سایت و افزایش رتیه در موتورهای جستجوگری مانند گوگل خواهد شد.
امیدواریم با دنبال کردن مقالات دوبست سئو سایت خود را بهبود بخشیده و موجب بالا رفتن رتبه سایتتان شوید.