اگر از همراهان همیشگی پرشین تولز هستید، حتماً مقاله قبلی در مورد رفع خطاهای سایت به کمک GTmetrix را خواندهاید! در این مقاله هم قصد داریم به بررسی ادامه این بحث بپردازیم تا بتوانید با افزایش سرعت سایت، وضعیت سئوی سایت خود را بهبود ببخشید و رضایت کاربران را هم جلب کنید.
رفع خطای Remove query strings وردپرس با کدنویسی
اگه تمایل به استفاده از افزونه ندارید، میتوانید با اضافه کردن قطعه کد زیر در فایل فانکشن قالب (functions.php) وردپرس خود این قابلیت را فعال کنید. برای این منظور، پس از آن که وارد هاست خود شدید به منوی File Manager مراجعه کنید. سپس به مسیر public_html/wp-content/themes مراجعه کنید. حالا وارد پوشه قالبی که در سایت فعال است شده و فایل functions.php را پیدا کنید. در نهایت روی فایل راست کلیک کرده و گزینه Edit رو برای اضافه کردن کدهای زیر در جای مناسبی انتخاب کنید. همچنین میتوانید از طریق بخش نمایشها > ویرایشگر > فایل 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 );
رفع خطای Remove query strings در سایتهای اختصاصی php
در صورتی که از زبان php و سیستم سایت ساز اختصاصی که با php ساخته شده استفاده میکنید، میتوانید با استفاده از کدهای زیر در این زبان برنامه نویسی مشکل query strings را برطرف کنید:
function remove_querystring_var($url, $key) { $url = preg_replace('/(.*)(?|&)' . $key . '=[^&]+?(&)(.*)/i', '$1$2$4', $url . '&'); $url = substr($url, 0, -1); return ($url); }
رفع خطای Serve resources from a consistent URL در GTmetrix
یکی دیگر از خطاهایی که ممکن است در هنگام تست سرعت سایت با GTmetrix با آن برخورد کنید، خطای Serve resources from a consistent URL است که به شما نمایش داده میشود که به معنی به کار بردن منابع از یک آدرس سازگار است. این خطا هم درست مشابه خطای Remove duplicate JavaScript and CSS هست که مربوط به دوبار بارگذاری یک فایل است. اما تفاوتی که با هم دارند در این است که این خطا مربوط به هر نوع فایلی میشود و اما در خطای قبلی فقط فایلهای CSS و JS رو شامل خواهد شد. وقتی از یک تصویر یکسان با دو آدرس متفاوت استفاده کنید، مشکل ارور Serve resources from a consistent URL پیش میآید و باعث لود دوباره در برخی فایلها خواهد شد. برای مثال دو فایل زیر یکی هستند اما از دو بخش لود میشود:
https://site.com/wp-content/plugins/one/fonts/fontawesome.eot https://site.com/wp-content/plugins/two/css/fonts/fontawesome.eot
بزرگترین آفتی که میتواند به یک سایت وارد شود، کند شدن سایت و بالا رفتن مدت زمان لود سایت هست. بسیاری از کاربران انتظار دارند وقتی وارد سایتی میشوند، سریع صفحه برای آنها بارگذاری شود و مجبور نباشند چندین ثانیه برای بارگذاری صفحه منتظر بمانند. حالا این مدت زمان هم به عوامل خیلی زیادی از جمله انتخاب هاست مناسب، انتخاب قالب مناسب، بهینه سازی تصاویر سایت، کاهش تعداد درخواست HTTP و… مربوط میشود. یکی از بزرگترین اشتباهاتی که در سایتها رخ میدهد، همین مسئله بالا رفتن تعداد درخواست HTTP است. با افزایش روز به روز بازدیدکنندهها، بالا بودن این تعداد درخواست HTTP باعث درگیر شدن هاست شما شده و باعث میشود که سایتتون به خوبی کار نکند. ارور Serve resources from a consistent URL دقیقا زمانی پیش میآید که این تعداد درخواست بالا باشد. اما بالا بودن در این حالت به این شکل است که یک فایل ممکن است چندین بار از آدرسهای مختلفی لود شود و هنگامی این خطا را داشته باشید:
همانطور که گفتیم، این خطا بخاطر لود چندباره یک فایل در سایت با دو آدرس مختلف بوده که ممکن است به صورت اشتباه و یا کدنویسی غیر استاندارد به وجود بیاید و برای برطرف کردن اون کافیه کاری کنید که فایل موردنظر فقط از طریق یک آدرس بارگذاری شود. به عنوان نمونه ممکن است از دو افزونه وردپرس استفاده میکنید که هر دو این افزونهها از فونت آیکون Font Awesome پشتیبانی میکنند. در این حالت هر افزونه سعی میکنه فایل فونت خودش رو بارگذاری کند. در این حالت ما یک فایل ثابت فونت داریم که دو بار و با آدرس مختلف در سایت لود میشوند. در صورتی که فقط کافیه یک بار از این فایل فونت استفاده کنیم تا در هر جا از سایت که نیاز به فونت آیکون داریم، آیکون دلخواه خود نمایش بدیم. برای رفع خطا در این حالت کافیه یکی از افزونهها را ویرایش کنیم و آدرسی که برای فایل فونت در افزونه قرار دارد را از بخش کدنویسی افزونه برداریم. وقتی این کار انجام شود آیکون فونت از طریق افزونه دومی که فایل فونت در آن قرار دارد استفاده میکند و بدون هیچ مشکلی فونت آیکون باز هم در سایت ما نمایش داده میشود.
بعضی از افزونهها که به صورت استاندارد کدنویسی شدن، داخل تنظیمات خود گزینهای برای این کار قرار دادهاند که اگه از قبل قالب شما از FontAwesome استفاده میکند یا افزونهای دارید که این فونت داخلش استفاده شده، بتونید با فعال کردن این گزینه، لود فونت در افزونه را غیرفعال کنید. در این صورت فونت مورد نظر از قالب یا افزونهای که این فونت را دارد، نمایش داده شده و دیگه ارور Serve resources from a consistent URL درون سایت شما نمایش داده نمیشود. حالا به همین ترتیب برای سایر فایلها مثل تصاویر، استایل، جاوا اسکریپت و… هم میتوانید به این شیوه عمل کرده و با اصلاح کدنویسی در سایتتون کاری کنید که یک فایل دو بار از سرور درخواست نکند که هم پهنای باند مصرفی شما بالا نرود و هم اینکه سرعت سایت شما را تا حد بسیار زیادی افزایش دهد و خطای مربوط به آن رفع شود! در مقاله بعدی به ادامه این بحث میپردازیم.