در زمان انجام آزمونهای سرعت وب سایت توسط GTmetrix، اغلب با خطای Avoid bad requests مواجه میشویم. این یک نوع خطا مربوط به محتوا است که به واسطه ارسال درخواستهای نادرست از سوی مرورگر رخ میدهد و موجب شناسایی این مشکل در GTmetrix میشود. این درخواستهای نادرست میتواند به دلایل گوناگونی باشد که یکی از شایعترین آنها خطای 404 یا خطای Avoid bad requests است.
این امر زمانی اتفاق میافتد که در قسمتی از وبسایت شما، تصویر یا حتی فایلهای CSS و JS قرار داده شده باشند که باید در آن بخش بارگذاری شوند، ولی فایل مورد نظر در سرور موجود نیست. در این حالت کاربران در حالی که منتظر بارگذاری وبسایت هستند، از سرور درخواست فایلی میکنند که اصلاً در دسترس نیست. این موضوع باعث طولانیتر شدن زمان بارگذاری وبسایت شده و نتیجه آن شناسایی خطای Avoid bad requests در GTmetrix خواهد بود.
آنچه در این مطلب خواهید خواند
خطای Avoid bad requests چیست؟
تصور کنید هر صفحهای از یک وبسایت نمایانگر یک سند HTML است و در درون این سند درخواستهای گوناگونی قرار گرفتهاند که وظیفهشان تضمین بارگذاری بدون مشکل محتوای سایت است. گاهی اوقات، به دلایل مختلف این درخواستها ممکن است اشتباه باشند و به نام “درخواست بد” یا “bad request” شناخته شوند. وبسایتهایی مانند Gtmetrix توصیه میکنند تا از این درخواستهای نامطلوب پرهیز کنید.
این توصیه به این دلیل است که درخواستهای بد میتوانند در فایلهای JS و CSS نیز رخ دهند و هر فایل موجود در HTML نمایانگر یک درخواست به سرور است. اگر چنین فایلی موجود نباشد، این امر باعث میشود که مرورگر و سرور دچار سردرگمی شوند و سرور زمان نسبتاً زیادی را صرف جستجو برای پاسخ به یک درخواست غیرواقعی نماید. این حالت به صورت زیر تشریح شده است:
مرورگر: به این تصویر نیاز دارم.
سرور: چنین تصویری در اختیار ندارم.
مرورگر: پس چرا در سند HTML آن را درخواست کردی؟
سرور: متاسفم، ولی من جستجو کردم و چیزی پیدا نکردم.
پیغام خطای 404
پرهیز از درخواستهای بد تأثیر قابل توجهی بر سرعت سایت و همچنین سئو دارد. مواجهه با خطای Avoid bad requests میتواند به خطاهایی نظیر ۴۰۴ یا حتی خطاهای ۴۰۱ مربوط باشد. در این مطلب از ماهان سرور به بررسی دلایل ایجاد این خطا و چگونگی رفع آن میپردازیم. خطای ۴۰۴ یکی از خطاهای رایج است که همه ما با آن مواجه شدهایم و این خطا زمانی رخ میدهد که فایلی موجود نباشد.
خطای ۴۰۴ یک پاسخ استاندارد HTTP است که نشان میدهد کاربر به سرور متصل است اما سرور قادر نیست درخواستهای ارسال شده از کاربر را پیدا کند و یک صفحه خطا با عنوان “۴۰۴ Not Found” تولید میکند. در واقع علاقه به شکستن لینکها یا لینکهای مرده به این معنی است که باید به دنبال راهحلهایی برای رفع این مشکل باشید. در ادامه، راهکارها و روشهایی برای رفع این اشکال را بررسی خواهیم کرد.
چگونه خطای Avoid bad requests را پیدا کنیم؟
گاهی اوقات درخواستهای بد، مانند مواردی که یک تصویر باید در قسمت پسزمینه (background) وجود داشته باشد اما مفقود است، بسیار بارز و قابل توجهاند. اما بسیاری از مواقع هیچ نشانی از این خطاها مشاهده نمیشود. به همین دلیل، همواره باید در تلاش باشید تا از بارگذاری و فراخوانی فایلهای غیرضروری در صفحات مختلف خود پرهیز کنید.
این کار علاوه بر کمک به افزایش سرعت پاسخگویی سرور به سایت شما، احتمال روبرو شدن با خطاهایی مانند Avoid bad requests و در نتیجه بهبود سرعت بارگذاری سایت شما را به همراه دارد. برای شناسایی و رفع خطای Avoid bad requests میتوانید از ابزارهای آنلاینی نظیر Gtmetrix، Pingdom و Webpagetest که سرعت صفحه وب را مورد ارزیابی قرار میدهند استفاده کنید. این ابزارها تحلیل دقیقی از عملکرد صفحات شما را ارائه میدهند و به شما کمک میکنند تا مشکلات مرتبط با سرعت صفحه را شناسایی نمایید. همچنین میتوانید از ویژگی Inspect موجود در مرورگرها برای پیدا کردن خطاهای اینچنینی بهره ببرید.
برای این کار باید به صفحه دلخواه رفته و روی آن کلیک راست کنید و گزینه Inspect را انتخاب کنید تا به بخش کنسول مرورگر هدایت شوید. در این قسمت میتوانید خطاهای موجود را با رنگ قرمز ببینید. استفاده موثر از این ابزار به شما در شناسایی و اصلاح خطاهایی مانند 404 کمک زیادی میکند و در نهایت Google Search Console گزارشی تحت عنوان Speed ارائه میدهد که هر چند مستقیماً به عواملی نظیر Gtmetrix نمیپردازد، اما میتوانید با تحلیلهای هوشمندانه در این ابزار قدرتمند خطاهای 404 و درخواستهای بد را کشف کنید.
چگونه خطای Avoid bad requests را رفع کنیم؟
برطرف کردن خطای Avoid bad requests گاهی اوقات سادهتر از شناسایی آنها است. در صورتی که شما با یک یا چندین درخواست بد روبهرو هستید، تنها کافیست خط کد مربوط به فراخوانی فایل غیبشده (که در سرور وجود ندارد) را حذف کرده یا با فایل دیگری جایگزین نمایید. برای مثال، اگر صفحهای در سایت شما سعی دارد تا یک تصویر را فراخوانی کند که موجود نیست، میتوانید با تغییر یا حذف اتریبیوت “src” مربوط به تگ img، مشکل درخواست بد را رفع نمایید.
- گاهی اوقات مشکل از خطای Avoid bad requests نیست بلکه از تغییر پروتکل از HTTP به HTTPS بعد از نصب SSL ناشی میشود. در این شرایط، اگر از وردپرس استفاده میکنید نصب افزونه Simple SSL و سپس بررسی مجدد میتواند مفید باشد.
- در برخی موارد، پاک نکردن کش پس از حذف تصاویر یا تغییر فونتها میتواند سبب بروز خطای Avoid bad requests شود.
- خطاهای انسانی مانند انتخاب نادرست آدرس یک عکس یا اشتباه در لینکدهی فایلها نیز از دیگر دلایل رایج برای بروز این خطاها است. برای حل این مشکل، بازبینی دستی تمام لینکهای موجود در صفحه توصیه میشود. همچنین افزونهای برای گوگل کروم به نام LinkMiner میتواند در شناسایی لینکهای نامعتبر بسیار به شما کمک کند.
روش اشتباه جهت رفع خطای Avoid bad requests
در هنگام مواجه با خطای Avoid bad requests گاهی فکر راه حلی مانند انجام یک ریدایرکت 301 به ذهن میرسد. با این حال، به طور کلی این شیوه برای حل این مشکل توصیه نمیشود، زیرا این کار در واقع مشکل را نادیده میگیرد نه آنکه به طور اصولی آن را حل کند. ابتدا توصیه میشود آدرسی که باعث ایجاد خطای درخواست بد میشود را حذف کنید یا با آدرس صحیح جایگزین نمایید. در صورت نداشتن دانش برنامهنویسی یا با وجود مشکلاتی در این زمینه، آخرین گزینه استفاده از ریدایرکت به یک آدرس صحیح خواهد بود. با این کار احتمالا با خطای “Avoid landing page redirects” روبرو خواهید شد.
بررسی خطاهای موجود در سایت GTmetrix
یکی از مواردی که GTmetrix ممکن است به عنوان بهبود پیشنهاد دهد ادغام تصاویر کمحجم با استفاده از CSS sprites است. این کار که سبب افزایش سرعت بارگذاری میشود، به صورت ادغام تصاویر مرتبط در یک فایل واحد ظاهر میگردد و به عنوان مثال، میتواند شامل دو نسخه مختلف یک آیکون برای حالات مختلف (معمولی و هنگام قرارگیری موس روی آیکون) باشد که در نهایت به یک تصویر واحد تبدیل شده و حجم کلی سایت را کاهش میدهد.
خطای Specify image dimensions
در سایت Gtmetrix، خطای “Specify image dimensions” زمانی ظاهر میشود که برخی عکسها در وبسایت شما از قبل ابعاد مشخصی نداشته باشند. برای حل این مورد، کافیست بر روی این بخش کلیک کرده و لیست عکسهایی که نیاز به تعیین ابعاد دارند را مشاهده کنید. سپس به وبسایت خود مراجعه کرده و ابعاد مورد نیاز را در کد HTML مربوط به تصاویر وارد نمایید. انجام این کار، به بهبود سرعت بارگذاری عکسها و بهینهسازی سئو سایت شما کمک خواهد کرد، چراکه عکسهای دارای ابعاد مشخص سریعتر توسط گوگل ایندکس میشوند.
خطای Defer parsing of JavaScript
خطای “Defer parsing of JavaScript” در GTmetrix نشان میدهد که تاخیری در پردازش فایلهای جاوا اسکریپت وجود دارد. اگرچه برخی از کارشناسان معتقدند که این موضوع اهمیت زیادی ندارد و میتوان از آن چشمپوشی کرد.
خطای Optimize images
خطای “Optimize images” به شما هشدار میدهد که برخی از تصاویر سایت نیاز به بهینهسازی دارند GTmetrix .فایلهای بهینهسازی شده را برای جایگزینی پیشنهاد داده و به شما امکان میدهد تا با جایگزینی آنها بیشترین امتیاز را در این بخش کسب کنید.
خطای Prefer asynchronous resources
خطای “Prefer asynchronous resources” به شما یادآوری میکند که باید برای افزایش سازگاری فایلهای جاوا اسکریپت، به دنبال راهی برای تعویق زمان بارگذاری آنها باشید.
خطای Minify HTML
خطای “Minify HTML” بر اهمیت حذف کدهای اضافی و فاصلههای بیمورد در کدهای HTML که منجر به افزایش حجم فایلها میشوند، تاکید دارد. این کار سرعت بارگذاری سایت را بهبود میبخشد.
خطای Minify CSS و Minify JavaScript
خطاهای “Minify CSS” و “Minify JavaScript” به شما پیشنهاد میکنند که حجم کدهای CSS و JavaScript را کاهش دهید. GTmetrix برای این مورد اصلاحات بهینه را در اختیار شما قرار میدهد.
خطای Optimize the order of styles and scripts
خطای “Optimize the order of styles and scripts” توصیه میکند که با ترتیب مناسب قراردادن استایلها قبل از اسکریپتها، سرعت بارگذاری سایت را افزایش دهید.
خطای Inline small CSS و Inline small JavaScript
خطای “Inline small CSS” و “Inline small JavaScript” به اهمیت کاهش تعداد فایلهای خارجی CSS و JavaScript با قرار دادن کدهای کوچک مستقیماً در سربرگ سند (Head) اشاره دارد که سبب افزایش سرعت بارگذاری سایت میشود.
خطای Enable Keep-Alive
خطای “Enable Keep-Alive” بر اهمیت حفظ ارتباط زنده بین مرورگر و سرور تاکید دارد و با قرار دادن یک کد خاص در فایل .htaccess میتوان این موضوع را مدیریت کرد:
<ifModule mod_headers.c>
Header set Connection keep-alive </ifModule |
خطای Leverage browser caching
خطای “Leverage browser caching” در GTmetrix به این معنا است که ممکن است برخی فایلها به صورت موثر در کش مرورگر ذخیره نشوند. برای اصلاح این مشکل، شما باید در فایل .htaccess دستورالعملهایی را اضافه کنید که به مرورگر اعلام میکند چه فایلهایی باید و چگونه ذخیره شوند تا بارگذاری سریعتری داشته باشند.
خطای Avoid bad requests
خطای Avoid bad requests در GTmetrix نشاندهنده وجود درخواستهایی است که به فایلهایی اشاره دارند که دیگر وجود ندارند یا دسترسی به آنها مقدور نیست. برای بهبود این مورد، شما باید لینکهای شکسته یا منسوخ شده را شناسایی و از وبسایت خود حذف کنید تا به این ترتیب امتیاز کاملی در این بخش کسب نمایید.
سایر خطاهای جی تی متریکس
در ادامه، به بررسی سایر خطاهای رایج در GTmetrix میپردازیم که ممکن است به دانش تخصصی در زمینه بهینهسازی وب، تجربه با ابزارهای مختلف و فنون توسعه وب نیاز داشته باشند:
کاهش تعداد درخواستهای HTTP
تعداد زیادی از درخواستهای HTTP میتوانند منجر به افت سرعت بارگذاری صفحه شوند. ادغام فایلها و استفاده از تکنیکهای بارگیری با تاخیر برای تصاویر و فایلهای رسانهای میتواند در این زمینه موثر باشد.
فشردهسازی منابع
استفاده از فشردهسازی مانند Gzip یا Brotli برای کاهش حجم منابعی مثل CSS، JavaScript و HTML میتواند به افزایش سرعت بارگذاری کمک کند.
استفاده از کش وب
فعالسازی کش در مرورگرها و سرورها میتواند تعداد درخواستها را کاهش دهد و زمان مورد نیاز برای بارگذاری محتوا را بهبود ببخشد.
استفاده از شبکه تحویل محتوا (CDN)
از CDNها میتوان برای ارائه محتوا از مکانهای نزدیکتر به کاربران استفاده کرد که در نتیجه زمان دسترسی به منابع را کاهش میدهد.
بارگیری تاخیری تصاویر
استفاده از بارگیری با تاخیر برای تصاویر و فایلهای رسانهای میتواند بارگذاری اولیه صفحه را سریعتر کند و تنها آیتمهایی که نمایش داده میشوند را بارگیری نماید. این نمونهها تنها بخشی از خطاهایی هستند که در GTmetrix ممکن است با آنها روبرو شوید. همچنین به دلیل پیچیدگی و تفاوتهای موجود در وبسایتها، رفع این خطاها ممکن است نیازمند بررسیهای دقیقتر و دانش تخصصی باشد. در صورت مواجهه با خطاهای GTmetrix استفاده از منابع آنلاین، مشارکت در انجمنهای تخصصی و یا مشورت با کارشناسان متخصص توصیه میشود.
دلایل احتمالی بروز خطای 400
خطای ۴۰۰ معمولا توسط سرور و زمانی که درخواستی از کاربر دریافت و به درستی توسط سرور قابل پردازش نباشد رخ میدهد. در اینجا به برخی دلایل رایجی که موجب این خطای سرور میشوند میپردازیم:
URL نادرست: تایپ نادرست یا استفاده از کاراکترهای غیرمجاز در URL میتواند باعث بروز خطای ۴۰۰ شود.
مشکلات مربوط به کش و کوکی: کش یا کوکیهای قدیمی یا خراب در مرورگر میتوانند از دریافت پاسخ صحیح از سرور جلوگیری کنند.
مشکلات ناشی از افزونههای مرورگر: برخی اوقات ممکن است افزونههای نصب شده بر روی مرورگر با سایتها سازگار نباشند و موجب بروز خطا شوند.
مسائل DNS : اطلاعات آدرسدهی DNS ذخیره شده در سیستم ممکن است با DNS فعلی سایت مغایرت داشته باشد.
محدودیت حجم فایل آپلودی: آپلود فایلهایی با حجم بیش از حد مجاز تعیین شده توسط وبسایت میتواند منجر به بروز خطای ۴۰۰ شود.
خلل موقت یا خطا در پیکربندی سرور: ممکن است سرور به دلیل نقص موقتی یا اشتباه در تنظیمات به خطا روبرو شده و عدم دسترسی به صفحه مورد نظر کاربر را نمایش دهد.
GTmetrix چیست؟
در مورد Gtmetrix باید بگوییم این وبسایت یک ابزار آنلاین است که در آن تحلیل و ارزیابی سرعت بارگذاری صفحات یک وبسایت انجام میشود. با مراجعه به این سایت و وارد کردن آدرس وبسایت مورد نظر GTmetrix گزارشی از عملکرد سایت ارائه میدهد که میتواند به بهینهسازی و رفع مسائل موجود مرتبط با سرعت کمک کند.
نتایج آنالیز GTmetrix
GTmetrix نتیجه آنالیز را بر اساس دو امتیاز کلیدی به نمایش میگذارد Page Speed و YSlow که هر دو به سنجش سرعت سایت میپردازند اما بر اساس معیارهای متفاوتی این کار را انجام میدهند.
سخن پایانی
به طور خلاصه، جهت رفع خطای Avoid bad requests باید از وجود لینکهای شکسته، لینکهای فاقد فایل مقصد و خطایهای 404 و 410 که موجب کاهش سرعت بارگذاری وبسایت میشوند جلوگیری کنید. امید است که این راهنمایی در مورد چگونگی رفع خطای Avoid bad requests در GTmetrix برای شما مفید بوده باشد. در صورت هرگونه سوال میتوانید نظرات خود را با ما به اشتراک بگذارید.