کاهش درخواست‌های HTTP در وردپرس

کاهش درخواست‌های HTTP در وردپرس

تا حالا برایتان پیش آمده که یک سایت وردپرسی روی یک سرور نسبتاً خوب قرار داشته باشد، افزونه‌های سنگین هم نداشته باشد، اما هنگام بررسی سرعت، ناگهان با تعداد زیادی درخواست HTTP مواجه شوید؟ گاهی مشکل نه از کمبود منابع...

Picture of هانیه مجللی
هانیه مجللی

تا حالا برایتان پیش آمده که یک سایت وردپرسی روی یک سرور نسبتاً خوب قرار داشته باشد، افزونه‌های سنگین هم نداشته باشد، اما هنگام بررسی سرعت، ناگهان با تعداد زیادی درخواست HTTP مواجه شوید؟ گاهی مشکل نه از کمبود منابع سرور است و نه حتی از حجم زیاد تصاویر؛ تعداد فایل‌هایی که مرورگر باید برای نمایش کامل صفحه دریافت کند، می‌تواند سرعت بارگذاری را به شکل محسوسی تحت تأثیر قرار دهد.

فرض کنید کاربر وارد یک صفحه محصول می‌شود. مرورگر ابتدا HTML را دریافت می‌کند، بعد سراغ فایل‌های CSS و JavaScript می‌رود، فونت‌ها را درخواست می‌کند، تصاویر را می‌گیرد و شاید چند فایل دیگر را هم از سرویس‌های خارجی بارگذاری کند. اگر قالب، افزونه‌ها و سرویس‌های جانبی هرکدام چند فایل جداگانه به صفحه اضافه کنند، تعداد این درخواست‌ها خیلی سریع افزایش پیدا می‌کند. نتیجه می‌تواند همان چیزی باشد که کاربر تجربه می‌کند: صفحه‌ای که ظاهراً سبک است، اما کامل شدن آن بیشتر از حد انتظار طول می‌کشد.

کاهش درخواست‌های HTTP در وردپرس

کاهش درخواست‌های HTTP در وردپرس فقط به معنی حذف چند فایل CSS یا JavaScript نیست. اگر بدون شناخت وابستگی‌ها فایل‌ها را حذف کنیم، ممکن است منوی سایت، اسلایدر، فرم‌ها یا حتی بخشی از ظاهر صفحه از کار بیفتد. راه درست این است که ابتدا بفهمیم چه فایل‌هایی درخواست می‌شوند، کدام‌یک واقعاً ضروری هستند، کدام فایل‌ها در صفحات خاص استفاده می‌شوند و کدام درخواست‌ها عملاً ارزش چندانی برای کاربر ندارند.

کاهش درخواست‌های HTTP در وردپرس

در این راهنما قرار است دقیقاً همین مسیر را بررسی کنیم؛ از پیدا کردن درخواست‌های اضافی و شناخت عوامل افزایش HTTP Request گرفته تا مدیریت فایل‌های CSS و JavaScript، فونت‌ها، افزونه‌ها، تصاویر، سرویس‌های خارجی و تنظیمات کش. همچنین به سراغ روش‌هایی می‌رویم که در پروژه‌های واقعی وردپرسی می‌توانند تعداد درخواست‌ها را بدون آسیب زدن به عملکرد سایت کاهش دهند.

فهرست مطالب

کاهش درخواست‌های HTTP در وردپرس؛ درخواست HTTP دقیقاً چیست؟

قبل از اینکه سراغ حذف فایل‌ها و نصب افزونه‌های بهینه‌سازی برویم، بهتر است یک موضوع را دقیق روشن کنیم: هر بار که مرورگر برای دریافت یک منبع از سرور یا یک سرویس دیگر ارتباط برقرار می‌کند، یک درخواست HTTP شکل می‌گیرد. این منبع می‌تواند یک فایل CSS، فایل JavaScript، تصویر، فونت، فایل JSON یا حتی یک درخواست مربوط به یک سرویس خارجی باشد.

برای مثال، ممکن است یک صفحه وردپرسی فقط از نظر حجم HTML حدود ۱۰۰ کیلوبایت باشد، اما برای نمایش کامل خود به ۸۰ درخواست جداگانه نیاز داشته باشد. در مقابل، صفحه‌ای دیگر ممکن است حجم بیشتری داشته باشد اما با تعداد درخواست کمتر، سریع‌تر نمایش داده شود. بنابراین در بررسی سرعت، فقط نگاه کردن به حجم صفحه کافی نیست.

آیا تعداد درخواست‌ها به تنهایی سرعت سایت را تعیین می‌کند؟

خیر. تعداد درخواست‌ها یکی از عوامل مؤثر است، اما تنها عامل نیست. حجم فایل‌ها، زمان پاسخ سرور، فاصله کاربر تا سرور، پروتکل HTTP/2 یا HTTP/3، کش، نوع فایل و نحوه بارگذاری منابع هم اهمیت دارند.

در HTTP/1.1 تعداد زیاد درخواست‌ها معمولاً فشار بیشتری روی فرآیند بارگذاری ایجاد می‌کرد، اما در HTTP/2 و HTTP/3 شرایط بهتر شده است و مرورگر می‌تواند منابع متعددی را روی یک اتصال مدیریت کند. با این حال، این موضوع به معنی بی‌اهمیت شدن تعداد درخواست‌ها نیست. هر درخواست همچنان می‌تواند هزینه پردازشی، انتقال داده و زمان پاسخ مخصوص خودش را داشته باشد.

یک مثال ساده از تأثیر درخواست‌های اضافی

فرض کنید یک قالب وردپرس برای تمام صفحات خود ۱۵ فایل JavaScript و ۱۰ فایل CSS بارگذاری می‌کند، در حالی که صفحه اصلی فقط به بخشی از این فایل‌ها نیاز دارد. اگر چند افزونه نیز فایل‌های خودشان را به این مجموعه اضافه کنند، تعداد درخواست‌ها می‌تواند بدون اینکه کاربر واقعاً به آن منابع نیاز داشته باشد افزایش پیدا کند.

در چنین شرایطی، هدف کاهش درخواست‌های HTTP در وردپرس این نیست که همه فایل‌ها را کورکورانه حذف کنیم. هدف اصلی، حذف درخواست‌های غیرضروری و جلوگیری از بارگذاری منابعی است که در صفحه فعلی کاربردی ندارند.

چه عواملی باعث افزایش درخواست‌های HTTP در وردپرس می‌شوند؟

در پروژه‌های واقعی وردپرسی، افزایش تعداد درخواست‌ها معمولاً نتیجه یک عامل واحد نیست. قالب، افزونه‌ها، تصاویر، فونت‌ها، سرویس‌های خارجی و حتی کدهای سفارشی می‌توانند هرکدام بخشی از این درخواست‌ها را ایجاد کنند.

قالب‌های سنگین و چندمنظوره

قالب‌های چندمنظوره معمولاً امکانات بسیار زیادی ارائه می‌کنند. مشکل زمانی ایجاد می‌شود که قالب برای همه این امکانات، فایل‌های لازم را در تمام صفحات بارگذاری کند.

ممکن است سایت شما از اسلایدر، فروشگاه، فرم رزرو، مگامنو یا گالری خاصی در یک صفحه استفاده کند، اما فایل‌های مربوط به تمام این امکانات در صفحات دیگر نیز لود شوند. اینجا دقیقاً یکی از نقاطی است که می‌توان تعداد درخواست‌ها را کاهش داد.

اگر ساختار قالب نیاز به اصلاح اساسی داشته باشد، گاهی بهینه‌سازی سطح افزونه‌ها کافی نیست و باید کدهای قالب بررسی شوند. در چنین شرایطی، استفاده از خدمات طراحی قالب وردپرس می‌تواند به ساختار سبک‌تر و کنترل‌شده‌تر منابع کمک کند.

افزونه‌هایی که فایل‌های خود را در همه صفحات بارگذاری می‌کنند

هر افزونه‌ای که نصب می‌کنید لزوماً فقط چند قابلیت PHP به سایت اضافه نمی‌کند. بسیاری از افزونه‌ها CSS، JavaScript، فونت، تصویر یا درخواست‌های AJAX خودشان را نیز وارد سایت می‌کنند.

برای مثال، یک افزونه فرم تماس ممکن است فقط در صفحه تماس مورد نیاز باشد، اما فایل‌های آن در تمام صفحات سایت بارگذاری شوند. اگر چند افزونه چنین رفتاری داشته باشند، تعداد درخواست‌ها به مرور افزایش پیدا می‌کند.

در این شرایط، حذف افزونه همیشه بهترین راه نیست. ابتدا باید بررسی شود که آیا می‌توان بارگذاری فایل‌های آن را فقط به صفحات موردنیاز محدود کرد یا خیر.

کتابخانه‌های JavaScript و CSS

کتابخانه‌هایی مانند jQuery، Swiper، Bootstrap، Font Awesome و سایر فریم‌ورک‌ها یا کتابخانه‌های رابط کاربری می‌توانند درخواست‌های جداگانه ایجاد کنند. البته استفاده از این ابزارها ذاتاً مشکل محسوب نمی‌شود؛ مسئله زمانی است که منابعی بدون نیاز واقعی در صفحات بارگذاری شوند.

یکی از اشتباهات رایج این است که توسعه‌دهنده برای یک قابلیت کوچک، یک کتابخانه کامل را به سایت اضافه می‌کند. اگر این تصمیم در چند بخش سایت تکرار شود، حجم و تعداد منابع به شکل محسوسی افزایش پیدا می‌کند.

چطور تعداد درخواست‌های HTTP سایت را بررسی کنیم؟

قبل از هرگونه تغییر، باید وضعیت فعلی سایت را ثبت کنید. این مرحله بسیار مهم است، چون بدون اندازه‌گیری نمی‌توان فهمید بهینه‌سازی واقعاً نتیجه داده یا فقط ظاهر اعداد تغییر کرده است.

بررسی با Chrome DevTools

یکی از ساده‌ترین روش‌ها استفاده از ابزارهای توسعه‌دهنده مرورگر است. در Chrome یا مرورگرهای مبتنی بر Chromium، صفحه موردنظر را باز کنید، Developer Tools را اجرا کنید و وارد بخش Network شوید.

در این بخش می‌توانید درخواست‌های مختلف را مشاهده کنید. ستون‌هایی مانند Name، Status، Type، Size و Time کمک می‌کنند متوجه شوید چه منابعی در صفحه بارگذاری شده‌اند.

برای بررسی دقیق‌تر، صفحه را با حالت Disable cache و در شرایطی که DevTools باز است مجدداً بارگذاری کنید. سپس تعداد درخواست‌ها و منابعی را که بیشترین زمان یا حجم را ایجاد می‌کنند بررسی کنید.

چه چیزهایی را در Network بررسی کنیم؟

  • تعداد کل درخواست‌ها
  • فایل‌های CSS و JavaScript
  • تصاویر و فایل‌های SVG
  • فونت‌های وب
  • درخواست‌های AJAX و Fetch
  • درخواست‌های مربوط به دامنه‌های خارجی
  • فایل‌هایی که وضعیت 404 دارند
  • فایل‌هایی که چند بار درخواست شده‌اند
  • منابعی که زمان پاسخ بالایی دارند

اگر برای مثال در Network با ۱۲ فایل CSS مواجه شدید، بلافاصله نتیجه نگیرید که باید ۱۱ مورد را حذف کنید. ممکن است هرکدام وابستگی خاصی داشته باشند. ابتدا باید مشخص شود این فایل از کدام قالب یا افزونه آمده و در چه صفحاتی استفاده می‌شود.

بررسی با ابزارهای تست سرعت

ابزارهایی مانند Google PageSpeed Insights، Lighthouse و GTmetrix می‌توانند اطلاعات مناسبی درباره منابع بارگذاری‌شده ارائه کنند. مهم است که گزارش این ابزارها را به عنوان نقطه شروع تحلیل در نظر بگیرید، نه نسخه‌ای که باید بدون بررسی اجرا شود.

برای مثال، اگر یک ابزار پیشنهاد حذف منابع Render-Blocking را نشان دهد، این الزاماً به معنی حذف CSS یا JavaScript نیست. ممکن است راه‌حل صحیح، بارگذاری غیرهمزمان، تأخیر در اجرای JavaScript یا تولید Critical CSS باشد.

نقش افزونه‌های وردپرس در افزایش HTTP Request

افزونه‌ها یکی از رایج‌ترین دلایل افزایش تعداد درخواست‌های سمت کاربر هستند. در یک سایت وردپرسی حرفه‌ای ممکن است ده‌ها افزونه فعال باشند و هرکدام بخشی از منابع موردنیاز خود را به صفحات اضافه کنند.

  ساختار پوشه و فایل‌های یک افزونه

آیا تعداد افزونه‌ها مهم‌تر است یا نحوه عملکرد آن‌ها؟

صرفاً تعداد افزونه‌ها معیار مناسبی نیست. یک سایت با ۳۰ افزونه می‌تواند سریع‌تر از سایتی با ۱۰ افزونه باشد، اگر افزونه‌های سایت اول بهینه نوشته شده باشند و منابع خود را فقط در محل موردنیاز بارگذاری کنند.

در مقابل، یک افزونه ضعیف می‌تواند حتی با یک فایل JavaScript اضافی، عملکرد یک صفحه مهم را تحت تأثیر قرار دهد.

بنابراین هنگام بررسی افزونه‌ها بهتر است به جای سؤال «چند افزونه نصب است؟»، بپرسیم «هر افزونه چه چیزی به صفحه اضافه می‌کند؟».

چطور بفهمیم یک افزونه چه فایل‌هایی اضافه کرده است؟

یکی از روش‌های عملی این است که نام فایل‌های CSS و JavaScript را در Network مشاهده کنید. بسیاری از افزونه‌ها نام مشخصی در URL فایل دارند و می‌توان از روی مسیر یا نام فایل، افزونه تولیدکننده را تشخیص داد.

روش دیگر بررسی کدهای صف‌شده وردپرس است. وردپرس از سیستم enqueue برای مدیریت فایل‌های CSS و JavaScript استفاده می‌کند و توسعه‌دهنده می‌تواند منابع را با شرط‌های مشخص در صفحات موردنظر بارگذاری کند.

چه زمانی حذف یک افزونه منطقی است؟

اگر افزونه‌ای فقط یک قابلیت بسیار کوچک ارائه می‌دهد، منابع زیادی به سایت اضافه می‌کند و جایگزین سبک‌تری برای آن وجود دارد، حذف آن می‌تواند تصمیم مناسبی باشد.

اما حذف افزونه فقط برای کم کردن یک یا دو درخواست HTTP همیشه تصمیم درستی نیست. ممکن است هزینه توسعه مجدد قابلیت، مشکلات سازگاری یا ریسک امنیتی بیشتر از سود حاصل از حذف آن باشد.

اگر قابلیت موردنظر برای کسب‌وکار سایت حیاتی است، گاهی توسعه یک راهکار اختصاصی منطقی‌تر از استفاده از چند افزونه عمومی است. در پروژه‌هایی که نیاز به چنین راهکاری وجود دارد، طراحی پلاگین وردپرس می‌تواند کنترل بیشتری روی کد، منابع و نحوه بارگذاری آن‌ها ایجاد کند.

کاهش درخواست‌های CSS و JavaScript در وردپرس

CSS و JavaScript معمولاً بخش مهمی از درخواست‌های یک صفحه وردپرسی را تشکیل می‌دهند. البته مسئله فقط تعداد فایل‌ها نیست؛ ترتیب بارگذاری، اندازه فایل‌ها و وابستگی میان آن‌ها نیز اهمیت دارد.

فایل‌های CSS غیرضروری را شناسایی کنید

گاهی قالب یا افزونه یک فایل CSS عمومی را در تمام سایت بارگذاری می‌کند، در حالی که تنها چند صفحه به آن نیاز دارند. در چنین شرایطی می‌توان بارگذاری فایل را به صفحات مشخص محدود کرد.

برای مثال، اگر یک فایل فقط برای صفحه Checkout ووکامرس ضروری است، دلیلی ندارد در صفحه مقاله یا صفحه درباره ما نیز بارگذاری شود.

JavaScript را فقط زمانی اجرا کنید که لازم است

تأخیر در اجرای JavaScript یکی از تکنیک‌های رایج بهینه‌سازی است. با این حال، باید بین اسکریپت‌های ضروری و غیرضروری تفاوت قائل شد.

اسکریپت مربوط به منوی اصلی، فرم ورود یا عملکرد حیاتی صفحه ممکن است بلافاصله موردنیاز باشد، اما یک اسکریپت مربوط به یک ویجت پایین صفحه می‌تواند دیرتر اجرا شود.

این تفکیک هم تعداد درخواست‌های غیرضروری را کاهش می‌دهد و هم می‌تواند مسیر نمایش محتوای اصلی صفحه را سبک‌تر کند.

ترکیب فایل‌ها؛ همیشه بهترین راه نیست

در گذشته ترکیب تعداد زیادی فایل CSS و JavaScript یکی از توصیه‌های متداول بود. با ورود HTTP/2 و HTTP/3، ماجرا پیچیده‌تر شده است و ترکیب کورکورانه فایل‌ها همیشه بهترین نتیجه را نمی‌دهد.

اگر ترکیب فایل‌ها باعث ایجاد یک فایل بسیار بزرگ شود که در همه صفحات بارگذاری شود، ممکن است نتیجه حتی بدتر شود. بنابراین باید بر اساس ساختار واقعی سایت تصمیم گرفت، نه صرفاً بر اساس یک قانون ثابت.

در پروژه‌های بهینه‌سازی حرفه‌ای، معمولاً هدف این نیست که یک عدد خاص برای تعداد Request به دست آوریم؛ هدف این است که منابع ضروری با کمترین هزینه ممکن و در زمان مناسب به کاربر برسند. این تفاوت، یکی از نکات مهم در افزایش سرعت سایت است.

تأثیر تصاویر، فونت‌ها و فایل‌های رسانه‌ای بر تعداد درخواست‌ها

تصاویر معمولاً بیشترین حجم را در یک صفحه ایجاد می‌کنند، اما هر تصویر جداگانه یک درخواست نیز ایجاد می‌کند. بنابراین صفحاتی که تعداد زیادی تصویر کوچک دارند، می‌توانند تعداد درخواست‌های بالایی داشته باشند.

تصاویر کوچک را بی‌دلیل جداگانه بارگذاری نکنید

در یک فروشگاه اینترنتی ممکن است ده‌ها تصویر کوچک برای محصولات، آیکون‌ها و عناصر رابط کاربری وجود داشته باشد. در چنین شرایطی استفاده صحیح از فرمت‌های مدرن تصویر، Lazy Loading و طراحی مناسب رابط کاربری می‌تواند تعداد و هزینه درخواست‌ها را کاهش دهد.

فونت‌های وب را جدی بگیرید

فونت یکی از مواردی است که در بهینه‌سازی سایت گاهی نادیده گرفته می‌شود. یک سایت ممکن است چند وزن مختلف از یک فونت را بارگذاری کند، در حالی که در عمل فقط دو وزن موردنیاز است.

برای مثال، اگر سایت از وزن‌های 300، 400، 500، 600، 700 و 800 استفاده کند اما طراحی واقعی فقط به 400 و 700 نیاز داشته باشد، حذف وزن‌های اضافی می‌تواند تعداد منابع و حجم انتقالی را کاهش دهد.

فونت‌های خارجی چه مشکلی ایجاد می‌کنند؟

اگر فونت از یک دامنه خارجی بارگذاری شود، علاوه بر خود فایل فونت، مرورگر باید ارتباط لازم با سرویس خارجی را نیز مدیریت کند. در بعضی پروژه‌ها می‌توان فونت‌های موردنیاز را به صورت محلی میزبانی کرد تا کنترل بیشتری روی بارگذاری آن‌ها وجود داشته باشد.

چگونه درخواست‌های خارجی را در وردپرس کاهش دهیم؟

همه درخواست‌ها الزاماً به سرور اصلی سایت ارسال نمی‌شوند. سرویس‌هایی مانند ابزارهای تحلیل، تبلیغات، نقشه‌ها، ویدئوها، فونت‌ها، سیستم‌های چت آنلاین و ابزارهای آمارگیر می‌توانند درخواست‌های خارجی ایجاد کنند.

چرا درخواست‌های شخص ثالث مهم هستند؟

وقتی یک منبع از سرور شخص ثالث دریافت می‌شود، سرعت و دسترس‌پذیری آن کاملاً تحت کنترل شما نیست. حتی اگر سرور اصلی سایت بسیار سریع باشد، یک سرویس خارجی کند می‌تواند بخشی از فرآیند بارگذاری صفحه را تحت تأثیر قرار دهد.

به همین دلیل در بررسی عملکرد سایت باید علاوه بر دامنه اصلی، دامنه‌های خارجی موجود در Network را نیز بررسی کرد.

آیا باید همه سرویس‌های خارجی را حذف کنیم؟

خیر. برخی سرویس‌ها ارزش تجاری یا تحلیلی بالایی دارند. حذف یک ابزار تحلیل فقط برای کم کردن چند درخواست HTTP ممکن است تصمیم اشتباهی باشد.

بهتر است هر سرویس بر اساس ارزش واقعی آن بررسی شود. اگر ابزاری هیچ استفاده مشخصی ندارد، حذف آن منطقی است. اگر ضروری است، می‌توان نحوه بارگذاری آن را بهینه کرد یا اجرای آن را به زمان مناسب‌تری منتقل کرد.

تأثیر قالب وردپرس بر تعداد درخواست‌های HTTP

وقتی صحبت از سرعت یک سایت وردپرسی می‌شود، معمولاً نگاه‌ها به سمت افزونه‌های کش و بهینه‌سازی می‌رود؛ در حالی که قالب می‌تواند از همان ابتدای بارگذاری صفحه، تعداد زیادی فایل را وارد چرخه کند. یک قالب حرفه‌ای فقط ظاهر سایت را کنترل نمی‌کند، بلکه باید بداند هر صفحه به چه منابعی نیاز دارد و همان منابع را در زمان مناسب بارگذاری کند.

قالب خوب چه تفاوتی با قالب سنگین دارد؟

قالب سنگین لزوماً قالب بدی نیست. یک قالب فروشگاهی ممکن است امکانات بسیار زیادی داشته باشد و همچنان عملکرد قابل قبولی ارائه دهد. مشکل زمانی ایجاد می‌شود که تمام امکانات بدون توجه به نیاز صفحه فعال باشند.

برای مثال، اگر صفحه مقاله هیچ اسلایدری ندارد، نباید فایل‌های مربوط به چند اسلایدر مختلف در آن بارگذاری شوند. اگر یک صفحه از نقشه استفاده نمی‌کند، فایل‌های مربوط به نقشه نیز نباید بدون دلیل وارد همان صفحه شوند.

در یک ساختار استاندارد، منابع باید تا حد امکان وابسته به نیاز واقعی صفحه باشند.

بارگذاری شرطی فایل‌ها چه کمکی می‌کند؟

بارگذاری شرطی یکی از تکنیک‌های مهم برای کنترل منابع وردپرس است. به زبان ساده، به جای اینکه فایل‌ها در تمام صفحات سایت بارگذاری شوند، مشخص می‌کنیم در چه شرایطی نیاز به آن‌ها وجود دارد.

برای نمونه، فایل‌های مربوط به فرم رزرو می‌توانند فقط در صفحه رزرو بارگذاری شوند. همین روش برای CSS و JavaScript مربوط به فروشگاه، گالری، اسلایدر، فرم تماس و سایر امکانات قابل استفاده است.

این تکنیک به‌خصوص در سایت‌های بزرگ اهمیت بیشتری دارد؛ زیرا یک فایل اضافی در یک صفحه شاید مشکل بزرگی ایجاد نکند، اما وقتی ده‌ها فایل مشابه در صفحات مختلف وجود داشته باشند، مجموع هزینه آن‌ها قابل توجه خواهد بود.

آیا تغییر قالب برای کاهش درخواست‌ها ضروری است؟

خیر. اگر ساختار فعلی قالب مناسب باشد، معمولاً می‌توان با اصلاح نحوه enqueue شدن منابع، حذف فایل‌های بلااستفاده و اصلاح برخی وابستگی‌ها نتیجه خوبی گرفت.

اما اگر قالب به صورت ساختاری فایل‌های متعدد را در همه صفحات بارگذاری کند و کد آن نیز پیچیده یا قدیمی باشد، اصلاحات پراکنده ممکن است فقط یک راه‌حل موقت باشند. در این وضعیت، بررسی معماری قالب می‌تواند نتیجه بهتری ایجاد کند.

نقش کش مرورگر و کش سرور در مدیریت درخواست‌ها

کش یکی از مهم‌ترین بخش‌های عملکرد سایت است، اما باید یک نکته را از همان ابتدا در نظر داشته باشیم: کش لزوماً تعداد درخواست‌های اولیه را حذف نمی‌کند؛ بلکه باعث می‌شود منابعی که قبلاً دریافت شده‌اند در مراجعه‌های بعدی دوباره از سرور درخواست نشوند یا با هزینه بسیار کمتری دریافت شوند.

Browser Cache چگونه کمک می‌کند؟

وقتی فایل‌هایی مانند CSS، JavaScript، فونت و تصاویر دارای Cache-Control مناسب باشند، مرورگر می‌تواند آن‌ها را برای مدتی نگه دارد. در بازدید بعدی، اگر فایل هنوز معتبر باشد، نیازی نیست دوباره همان منبع از سرور دریافت شود.

  مدیریت آرشیو وردپرس با افزونه Smart Archives Reloaded

این موضوع در سایت‌هایی که کاربران چند صفحه مختلف را مشاهده می‌کنند اهمیت زیادی دارد. ممکن است کاربر در صفحه اول فایل‌های قالب را دریافت کند و هنگام ورود به صفحه دوم، همان فایل‌ها از حافظه مرورگر استفاده شوند.

کش سرور چه تفاوتی دارد؟

کش سرور یا Page Cache می‌تواند پاسخ آماده صفحات را ذخیره کند تا برای درخواست‌های بعدی نیازی به اجرای کامل PHP و پرس‌وجوهای تکراری پایگاه داده نباشد.

البته Page Cache با کاهش تعداد درخواست‌های منابعی مانند CSS و JavaScript یکسان نیست. این دو بخش باید جداگانه بررسی شوند.

برای مثال، اگر یک صفحه HTML از کش ارائه شود اما همان صفحه همچنان شامل ۴۰ فایل CSS، JavaScript، فونت و تصویر باشد، تعداد Request سمت مرورگر همچنان می‌تواند بالا باشد.

یک مثال واقعی برای کاهش درخواست‌های HTTP در وردپرس

برای درک بهتر موضوع، یک سناریوی رایج را در نظر بگیریم. فرض کنید یک سایت شرکتی وردپرسی را بررسی می‌کنیم که صفحه اصلی آن حدود ۷۰ درخواست HTTP ایجاد می‌کند.

در نگاه اول ممکن است ۷۰ درخواست عدد بسیار بالایی به نظر برسد، اما بررسی Network نشان می‌دهد که بخشی از این درخواست‌ها مربوط به تصاویر هستند، چند مورد متعلق به افزونه فرم‌ساز، چند فایل از قالب و تعدادی نیز مربوط به سرویس‌های خارجی هستند.

مرحله اول؛ دسته‌بندی درخواست‌ها

به جای حذف تصادفی فایل‌ها، درخواست‌ها را به چند گروه تقسیم می‌کنیم:

نوع منبعتعداد تقریبیاقدام پیشنهادی
CSS۱۲بررسی فایل‌های غیرضروری و بارگذاری شرطی
JavaScript۱۸بررسی وابستگی‌ها و تأخیر در اسکریپت‌های غیرضروری
تصاویر۲۴بهینه‌سازی تصاویر، Lazy Loading و حذف موارد غیرضروری
فونت۶کاهش وزن‌های استفاده‌نشده و بررسی میزبانی محلی
سرویس خارجی۷حذف یا تأخیر در سرویس‌های غیرضروری
سایر۳بررسی موردی

در این مرحله هنوز هیچ فایلی حذف نشده است. این نکته مهم است، زیرا حذف فایل بدون شناخت وابستگی آن می‌تواند باعث ایجاد خطاهای ظاهری یا عملکردی شود.

مرحله دوم؛ حذف منابع واقعاً غیرضروری

در بررسی دقیق مشخص می‌شود دو فایل JavaScript مربوط به یک قابلیت قدیمی هستند که دیگر در سایت استفاده نمی‌شود. همچنین یک فونت با دو وزن اضافی بارگذاری می‌شود و چند تصویر مربوط به یک بخش حذف‌شده در صفحه باقی مانده‌اند.

بعد از اصلاح این موارد، بخشی از درخواست‌ها بدون اینکه هیچ قابلیت مهمی حذف شود از بین می‌روند.

مرحله سوم؛ اصلاح نحوه بارگذاری

در مرحله بعد مشخص می‌شود بعضی فایل‌ها واقعاً لازم هستند، اما نه در تمام صفحات. بنابراین فایل‌ها به صورت شرطی بارگذاری می‌شوند.

برای نمونه، CSS مربوط به فرم فقط در صفحات دارای فرم بارگذاری می‌شود و JavaScript مربوط به یک اسلایدر نیز تنها زمانی فراخوانی می‌شود که اسلایدر واقعاً در صفحه وجود داشته باشد.

نتیجه چه چیزی است؟

نکته مهم این مثال، رسیدن به یک عدد جادویی نیست. ممکن است تعداد درخواست‌ها از ۷۰ به ۴۵ برسد، اما اگر بعد از آن یک فایل ضروری حذف شده باشد یا تجربه کاربر خراب شود، بهینه‌سازی موفق نبوده است.

معیار واقعی باید ترکیبی از تعداد درخواست‌ها، حجم انتقالی، زمان پاسخ، Largest Contentful Paint، تعامل‌پذیری صفحه و تجربه واقعی کاربر باشد.

اشتباهات رایج هنگام کاهش درخواست‌های HTTP

حذف فایل‌ها بدون بررسی وابستگی

یکی از خطرناک‌ترین روش‌ها این است که فقط بر اساس نام فایل تصمیم بگیریم یک CSS یا JavaScript اضافی است. ممکن است همان فایل توسط چند بخش دیگر استفاده شود و حذف آن باعث ایجاد مشکل در سایت شود.

نصب چند افزونه بهینه‌سازی همزمان

برخی مدیران سایت برای حل مشکل سرعت، چند افزونه کش و بهینه‌سازی را همزمان فعال می‌کنند. این کار می‌تواند نتیجه معکوس داشته باشد؛ زیرا هر افزونه ممکن است روی Minify، Combine، Delay یا Lazy Load تصمیم متفاوتی بگیرد.

بهینه‌سازی باید کنترل‌شده باشد. بهتر است ابتدا وضعیت فعلی ثبت شود، سپس یک تغییر انجام شود و بعد نتیجه آن اندازه‌گیری شود.

تمرکز افراطی روی عدد Request

فرض کنید سایتی ۵۰ درخواست دارد و سایت دیگری ۷۰ درخواست. نمی‌توان فقط بر اساس همین عدد گفت سایت اول سریع‌تر است.

ممکن است سایت اول ۵۰ درخواست سنگین و مسدودکننده داشته باشد، در حالی که سایت دوم ۷۰ درخواست کوچک و کش‌شده داشته باشد. بنابراین عدد Request باید در کنار سایر شاخص‌های عملکرد بررسی شود.

نادیده گرفتن موبایل

ممکن است یک صفحه روی سیستم دسکتاپ عملکرد مناسبی داشته باشد، اما در موبایل به دلیل سرعت پایین‌تر شبکه و محدودیت منابع دستگاه، درخواست‌های اضافی بیشتر احساس شوند.

به همین دلیل بعد از هر تغییر مهم، تست موبایل نیز باید انجام شود.

مزایا و معایب کاهش درخواست‌های HTTP

مزایا

  • کاهش منابع غیرضروری
  • بهبود فرآیند بارگذاری صفحات
  • کاهش حجم انتقال داده در برخی صفحات
  • بهبود تجربه کاربران، مخصوصاً روی شبکه‌های ضعیف‌تر
  • کنترل بهتر منابع قالب و افزونه‌ها
  • کاهش وابستگی به سرویس‌های خارجی غیرضروری
  • کمک به بهبود شاخص‌های Core Web Vitals در صورت اجرای صحیح

معایب و ریسک‌ها

  • حذف اشتباه منابع می‌تواند ظاهر سایت را خراب کند.
  • تأخیر بیش از حد JavaScript ممکن است بعضی قابلیت‌ها را مختل کند.
  • ترکیب نادرست فایل‌ها می‌تواند حجم فایل نهایی را افزایش دهد.
  • محدود کردن بیش از حد منابع ممکن است نگهداری سایت را پیچیده کند.
  • بهینه‌سازی بدون تست می‌تواند مشکلاتی ایجاد کند که در نگاه اول قابل مشاهده نیستند.

چک‌لیست عملی کاهش درخواست‌های HTTP در وردپرس

اگر بخواهید این فرآیند را به شکل عملی روی یک سایت وردپرسی اجرا کنید، بهتر است مراحل زیر را به ترتیب انجام دهید:

  • تعداد فعلی درخواست‌های صفحه را ثبت کنید.
  • درخواست‌ها را بر اساس CSS، JavaScript، تصویر، فونت و سرویس خارجی دسته‌بندی کنید.
  • منبع تولیدکننده هر فایل را مشخص کنید.
  • فایل‌های 404 و منابع بلااستفاده را بررسی کنید.
  • فایل‌های افزونه‌هایی را که در صفحات غیرمرتبط بارگذاری می‌شوند شناسایی کنید.
  • منابع قالب را بررسی کنید.
  • فونت‌ها و وزن‌های اضافی را حذف کنید.
  • تصاویر غیرضروری را حذف و تصاویر باقی‌مانده را بهینه کنید.
  • اسکریپت‌های غیرضروری را با تأخیر اجرا کنید.
  • کش مرورگر و کش سرور را به شکل صحیح تنظیم کنید.
  • درخواست‌های شخص ثالث را بررسی کنید.
  • بعد از هر تغییر، سایت را روی دسکتاپ و موبایل تست کنید.
  • قبل و بعد از بهینه‌سازی، نتایج را با یک روش یکسان مقایسه کنید.

سؤالات متداول درباره کاهش درخواست‌های HTTP در وردپرس

آیا کاهش تعداد HTTP Request همیشه باعث افزایش سرعت وردپرس می‌شود؟

خیر. تعداد درخواست‌ها مهم است، اما تنها معیار سرعت نیست. حجم منابع، زمان پاسخ سرور، کش، نحوه بارگذاری و نوع اتصال نیز باید بررسی شوند.

تعداد مناسب درخواست HTTP برای یک سایت وردپرسی چقدر است؟

عدد ثابت و مناسبی برای همه سایت‌ها وجود ندارد. یک سایت فروشگاهی ممکن است به منابع بیشتری از یک وبلاگ ساده نیاز داشته باشد. بهتر است به جای دنبال کردن یک عدد خاص، درخواست‌های غیرضروری شناسایی و حذف شوند.

آیا نصب افزونه کش برای کاهش درخواست‌ها کافی است؟

معمولاً خیر. افزونه کش می‌تواند بخش مهمی از فرآیند بهینه‌سازی باشد، اما اگر قالب و افزونه‌ها منابع غیرضروری تولید کنند، کش به تنهایی مشکل را حل نمی‌کند.

آیا حذف jQuery باعث کاهش درخواست‌های HTTP می‌شود؟

نه لزوماً. اگر سایت یا افزونه‌ای به jQuery وابسته باشد، حذف آن می‌تواند باعث خرابی قابلیت‌ها شود. ابتدا باید وابستگی‌های سایت بررسی شود.

آیا کاهش درخواست‌های HTTP روی سئو تأثیر دارد؟

به صورت غیرمستقیم می‌تواند مؤثر باشد. بهینه‌سازی منابع می‌تواند به بهبود عملکرد و تجربه کاربری کمک کند و عملکرد بهتر صفحه نیز در چارچوب سیگنال‌های تجربه صفحه اهمیت دارد. با این حال، کاهش Request به تنهایی عامل رتبه‌بندی محسوب نمی‌شود.

جمع‌بندی؛ کاهش درخواست‌های HTTP در وردپرس را هوشمندانه انجام دهید

کاهش درخواست‌های HTTP در وردپرس زمانی نتیجه خوبی ایجاد می‌کند که به جای حذف کورکورانه فایل‌ها، ساختار واقعی صفحه را بررسی کنیم. هر درخواست باید یک دلیل منطقی برای حضور داشته باشد و منابع غیرضروری، منابع تکراری و فایل‌هایی که خارج از محدوده استفاده خود بارگذاری می‌شوند باید شناسایی شوند.

قالب، افزونه‌ها، تصاویر، فونت‌ها، JavaScript، CSS و سرویس‌های خارجی همگی می‌توانند در تعداد درخواست‌ها نقش داشته باشند. بنابراین بهینه‌سازی موفق معمولاً حاصل یک تغییر بزرگ نیست؛ مجموعه‌ای از اصلاحات کوچک و حساب‌شده است که در نهایت مسیر بارگذاری صفحه را سبک‌تر می‌کنند.

اگر بعد از بررسی متوجه شدید مشکل از ساختار قالب، کدنویسی افزونه یا معماری کلی سایت است، بهتر است قبل از دستکاری‌های متعدد، علت اصلی را پیدا کنید. در بسیاری از پروژه‌ها، اصلاح منبع مشکل نتیجه بسیار پایدارتری نسبت به نصب چند ابزار بهینه‌سازی پشت سر هم دارد.

در نهایت، همیشه یک نسخه قبل از بهینه‌سازی داشته باشید، تغییرات را مرحله‌به‌مرحله انجام دهید و بعد از هر تغییر نتیجه را اندازه‌گیری کنید. سرعت واقعی زمانی به دست می‌آید که سایت هم سریع باشد و هم تمام قابلیت‌های موردنیاز کاربر را بدون اختلال ارائه دهد.

5/5 - 1 امتیاز

نظرات با ارزش کاربران

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

فهرست مطالب