در این مقاله قصد داریم درباره مشکل رایج Remove query strings from static resources و حل آن در جی تی متریکس صحبت کنیم و بررسی کنیم که چطور این خطا یا همان حذف علامت سؤال از انتهای آدرس منابع در جهت افزایش سرعت سایت به ما کمک میکند و آیا بودن query strings ها برای ساخت سایت ما مفید است یا خیر.
نام: Remove query strings from static resources
نوع: محتوا
اولویت: کم
میزان سختی: راحت
میانگین امتیاز: 89%
جنبه منفی query strings: وجود query strings در منابع سایت ما باعث میشود که آن منابع در سمت کاربر کش نشود و اگر منابع همانند CSS یا JS در سمت کاربر کش نشود خطاهایی نظیر Leverage browser caching هم رخ خواهد داد و مشکلات بسیار دیگری را فراهم میکند، استفاده از query strings باعث میشود فایلهای استایل (CSS) و جاوا اسکریپت در بسیاری از مرورگرها و همینطور CDN ها کش نشود.
جنبه مثبت query strings: وجود query strings این اجازه را به برنامهنویسهای پلاگین و قالبها میدهد تا در مدتزمان و دورههای کوتاهمدت منابع را آپدیت کنند و این تغییرات سریعتر در سمت کاربر اعمال شود، و از طرفی اگر از query strings استفاده نشود ممکن است فایل برای مدت زیادی در سمت کاربر کش شود و کاربر نتواند نسخههای جدید و بهروزرسانیها را مشاهده کند و شاید به مشکلات دیگر نیز برخورد کند. پس چه باید کرد آیا استفاده از query strings خوب است یا نه.
بهترین روش این هست که شما query strings های سایت خود را حذف کنید و مدتزمان کش فایلها را برحسب نوع آن و سابقه آپدیت آن فایلها، کشکنید تا دیگر از هیچ سمتی به مشکلی برنخورید.
قبل از هر تغییراتی لطفاً از تمام طراحی سایت (طراحی سایت شرکتی، طراحی سایت فروشگاهی) خود بک آپ تهیه کنید تا در صورت ایجاد مشکل از آن استفاده نمایید.
برای حذف query strings ها درفایل های CSS دروپال میتوانید کد زیر را در template.php قرار دهید، فقط توجه داشته باشید که به جای MYTHEME نام قالب مورد نظر خود را وارد کنید.
به کمک افزونه 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 استفاده نمایید تا آدرسهایی که دارای علامت ? هستند را ربات ایندکس نکند.
اگر ساختار سایت شما بر اساس زبان برنامه نویسی PHP است و از CMS های رایگان استفاده نمیکنید میتوانید از دستور زیر برای رفع خطای query strings استفاده کنید، کد نوشته شده توسط سایت Addedbytes است و تشکر به خاطر این دستور نوشته شده، شما برای حذف مقادیر موجود در url میتوانید از متغییر $key
استفاده نمایید.