خطای Remove query strings from static resources در جی تی متریکس منسوخ شده است و دیگر جزء لیست ارورهای این سایت وجود ندارد. پیشنهاد میکنم در جهت بهبود سرعت سایت خود به صفحه سایر رفع خطاهای جی تی متریکس میزفا مراجعه کنید.
سرفصلهای پست
آموزش بهبود سرعت سایت با GTmetrix – رفع خطاهای PageSpeed
سلام دوستان، از دوره مقالات سئو و آموزش بهینه سازی PageSpeed سایت با GTmetrix در خدمت شما هستیم، میخواهیم در این دوره سایتی بهینه توسط ابزارهای آنلاین تست سرعت سایت مثل جی تی متریکس یا Pagespeed گوگل ایجاد کنیم. در جلسه قبل درباره رفع خطای Put CSS in the document head مقالهای قرار دادیم. در این جلسه قصد داریم درباره مشکل رایج Remove query strings from static resources و حل آن در جی تی متریکس صحبت کنیم و بررسی کنیم که چطور این خطا یا همان حذف علامت سؤال از انتهای آدرس منابع در جهت افزایش سرعت سایت به ما کمک میکند و آیا بودن query strings ها برای سایت ما مفید است یا خیر، پس ما میزفا همراه باشید.
خلاصهای از خطا Remove query strings from static resources
اولویت: کم
میزان سختی: راحت
میانگین امتیاز: 89%
علت خطای Remove query strings from static resources در جی تی متریکس چیست
جنبه منفی query strings: وجود query strings در منابع سایت ما باعث میشود که آن منابع در سمت کاربر کش نشود و اگر منابع همانند CSS یا JS در سمت کاربر کش نشود خطاهایی نظیر Leverage browser caching هم رخ خواهد داد و مشکلات بسیار دیگری را فراهم میکند، استفاده از query strings باعث میشود فایلهای استایل (CSS) و جاوا اسکریپت در بسیاری از مرورگرها و همینطور CDN ها کش نشود.

جنبه مثبت query strings: وجود query strings این اجازه را به برنامهنویسهای پلاگین و قالبها میدهد تا در مدتزمان و دورههای کوتاهمدت منابع را آپدیت کنند و این تغییرات سریعتر در سمت کاربر اعمال شود، و از طرفی اگر از query strings استفاده نشود ممکن است فایل برای مدت زیادی در سمت کاربر کش شود و کاربر نتواند نسخههای جدید و بهروزرسانیها را مشاهده کند و شاید به مشکلات دیگر نیز برخورد کند. پس چه باید کرد آیا استفاده از query strings خوب است یا نه.
بهترین روش این هست که شما query strings های سایت خود را حذف کنید و مدتزمان کش فایلها را برحسب نوع آن و سابقه آپدیت آن فایلها، کش کنید تا دیگر از هیچ سمتی به مشکلی برنخورید. برای کش کردن فایلها میتوانید مقاله نحوه کش کردن فایل را بخوانید.
نحوه رفع خطای Remove query strings from static resources
قبل از هر تغییراتی لطفاً از تمام سایت خود بک آپ تهیه کنید تا در صورت ایجاد مشکل از آن استفاده نمایید.
در وردپرس
- برای رفع این خطا اگر تمایل به استفاده از کدها را ندارید و سایت وردپرسی دارید، میتوانید پلاگین Remove Query Strings را نصب کنید این پلاگین بدون هیچگونه تنظیمات اضافه باعث رفع مشکل Remove query strings from static resources در مدیریت محتوای وردپرس میشود.
- اگر پلاگین بالا به هر دلیلی در سایت وردپرسی شما کار نکرد یا با افزونههای دیگر تداخل داشت میتوانید پلاگین Remove Query Strings From Static Resources را تست نمایید و همانند پلاگین بالا عمل میکند.
- پلاگین WP Rocket در نسخه ۲.۹ به بعد خود قابلیت رفع خطای Remove query strings from static resources را قرار داده هست و اگر از این پلاگین استفاده میکنید میتوانید همانند عکس زیر تیک آن را بزنید. (جهت دانلود نسخه اورجینال و آموزش جامع این پلاگین معروف و فوق العاده به دوره آموزش wp rocket ما میتوانید مراجعه نمایید.)
رفع خطای query strings در WP Rocket - پلاگین W3 total cashe هم گزینهای دارد که با برداشتن آن باعث رفع این خطا میشود، اگر این افزونه را در سایت وردپرس خود نصبکردهاید با فعال بودن گزینه Prevent caching of objects after settings change در قسمت Brower Cahse باعث ایجاد خطای query strings میشوید، پس تیک آن را بردارید.
رفع خطای query strings در افزونه W3 total cashe - با استفاده از فایل Function.php میتوانید به شکل دستی خطای query strings را رفع کنید کافی است کد زیر را در انتهای فایل Function.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 );
در دروپال
برای حذف query strings ها درفایل های CSS دروپال میتوانید کد زیر را در template.php قرار دهید، فقط توجه داشته باشید که به جای 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']); } ?>
در جوملا
به کمک افزونه joomsef شما میتوانید این مشکل را رفع کنید، البته در تنظیمات کلی جوملا یعنی Global Configuration و قسمت SEO Settings گزینهای وجود دارد با عنوان search engine friendly (SEF) URLs که اگر فعال باشد آدرسهای شما را هم برای کاربران و هم برای موتورهای جستجو بهینه تر میکند، مثلا آدرس http://example.com/index.php?page=name
تبدیل به http://example.com/name
میشود. اگر شما گزینه SEF URLs را در جوملا فعال کرده باشید ممکن است آدرسهای non-SEF URLs به شکلی در سایت ایندکس شوند و باعث ایجاد محتوای تکراری شود که تاثیر بد برای سئو سایت دارد و همچنین یکی از عوامل پنالتی شدن سایت در گوگل نیز میباشد، بنابراین برای جلوگیری از این امر میتوانید از دستور زیر در فایل robots.txt استفاده نمایید تا آدرسهایی که دارای علامت ? هستند را ربات ایندکس نکند.
User-agent: * Disallow: /*?*
برای توضیحات بیشتر میتوانید به مقاله جامع robotx.txt مراجعه نمایید.
در PHP
اگر ساختار سایت شما بر اساس زبان برنامه نویسی PHP است و از CMS های رایگان استفاده نمیکنید میتوانید از دستور زیر برای رفع خطای query strings استفاده کنید، کد نوشته شده توسط سایت Addedbytes است و تشکر به خاطر این دستور نوشته شده، شما برای حذف مقادیر موجود در 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 بسیار راحت میباشد امیدواریم در این آموزش سئو که باعث بالا بردن سرعت سایت و در نتیجه بهبود بهینه سازی سایت و بیشتر مربوط به سئو داخلی میشود، کمک شایانی کرده باشیم، اگر سوالی داشتید حتما در نظرات بپرسید. این جلسه از آموزش جی تی متریکس که مربوط به رفع ارور Remove query strings from static resources بود، هم به پایان رسید در جلسه بعد به معرفی خطای Serve resources from a consistent URL در PageSpeed گوگل میپردازیم. با ما همراه باشید.
21 پاسخ
سلام ممنونم
من از مطالب سئوی سایت شما همیشه استفاده میکنم
موفق و پیروز باشید
سلام حسین عزیز.
خیلی خوشحالم از حضورت و اینکه تونستی استفاده کنی.
دوست داشتی در دوره رایگان سئو ما هم شرکت کن.
عالی. تشکر
خواهش میکنم علی جان. بازم به ما سر بزن 🙂
سلام وقت بخیر
آیا در سرعت سایت هم موثر هست فعالسازی این افزونه؟ و آیا با افزونه wp super cash تداخلی ندارد؟
تشکر
سلام روزتون بخیر. کدوم افزونه؟ در این صفحه افزونه های زیادی معروفی شده. پیشنهاد میشه تست کنید. اصولا افزونه ها که در یک زمینه نیستید تداخلی هم ندارن
سلام وقت بخیر. انجمن ips رو روی یک ساب دامین در کنار وردپرس نصب کردم و برای نمایش آخرین مطالب انجمن بصورت ابزارک در وردپرس از feed انجمن استفاده کردم. متاسفانه در این کد فیدخوان که انجمن برای وردپرس ارائه داده پانزده فایل با لینک ساب دامین انجمن برای نمایش ابزارک در وردپرس فراخوانی میشه که همه این پانزده تا query string دارن که بصورت =v? هست و تمام راه حل هایی رو که شما در این پست معرفی کردید امتحان کردم و مشکل حل نشد. ظاهرا این راه حل ها برای فایلهای خود سایت وردپرس با آدرس سایت فعلی هست و آدرسهای دیگر از جمله ساب دامین رو مورد هدف قرار نمیده. لطفا اگه کدی هست که query string آدرسهای ساب دامین رو یکی یکی حذف کنم لطف کنید یا اگه راه دیگه ای هست. ممنون میشم.
سلام، بله شما درست بررسی کردید.
نه متاسفانه ندارم. کدهایی که میدونستیم رو در مقاله درج کردیم. باید اختصاصی نوشته بشه.
ممنون واقعا.
مطالبتون واقعا مفید هست. یکی از مراجع آموزشی برای ما هستید.
خوشحالم.
سلام برای سایت هایی که با DNN طراحی شدند راه حلی وجود داره؟؟؟
سلام، راه حل کلی گفته شده ولی راه حل اختصاصی بنده نمیدونم.
مهندس برای سایتایی ک ه با asp.net mvc نوشته شدن چی؟؟؟ راه حل اختصاصی وجود داره؟؟؟
بله برای asp باید اختصاصی کدنویسی بشه. هر سایتی که اختصاصی نوشته شده باشه باید این خطاش رو هم اختصاصی حل کنه.
ممنون از مطالب خوبتون
سلام
من جهت رفع این مشکل از دستور
User-agent: *
Disallow: /*?*
استفاده کردم اما همچنان این ارور در gtmetrix وجود دارد. لطفا راهنمایی نمایید
با تشکر
سلام، خب شما کاملا کار اشتباهی کردید و برای خودتون همینطوری دارو تجویز کردید دارویی که ممکنه تاثیر منفی هم داشته باشه. لطفا مقاله رو مطالعه کنید و از راه حل های اشاره شده استفاده کنید.
سلام و احترام
کامل بود
سپاسگزارم
درود، خواهش میکنم، موفق باشید
آخ زنده باشی جوون. دمت گرم. خدایی هرجا رو گشتم فقط افزونه معرفی کرده بودن.
اینجا خیلی کامل همه رو توضیح داده بودی. همۀ احتمالات رو هم در نظر گرفته بودی. دمت گرم.
سلام، خواهش میکنم، خوشحالیم مفید بوده.
همه مقالات ما سعی شده به همین شیوه کامل باشه 😉