چگونه مصرف منابع وردپرس را کاهش دهیم؟
یکی از رایجترین چالشهایی که مدیران وب سایتهای وردپرسی با آن روبرو میشوند، مصرف بیش از حد منابع سرور است. این مشکل نه تنها منجر به کندی وب سایت و تجربه کاربری ضعیف میشود، بلکه اغلب باعث دریافت هشدارهایی از سمت شرکت هاستینگ مبنی بر تعلیق سرویس یا نیاز به ارتقای پلن نیز میشود. در ادامه به راههای مختلف برای کاهش مصرف منابع وردپرس میپردازیم.
چرا مصرف منابع وردپرس بالا میرود؟
قبل از اینکه به سراغ راه حلها برویم، باید بدانیم چه چیزی باعث میشود وردپرس منابع سرور را ببلعد. وردپرس یک سیستم مدیریت محتوای پویا است، به این معنی که برای نمایش هر صفحه، باید کدهای PHP پردازش شوند، به دیتابیس متصل شود، اطلاعات را فراخوانی کند و سپس صفحه HTML را بسازد. دلایل اصلی فشار بر سرور عبارتند از:
- افزونههای بد کدنویسی شده یا سنگین
- عدم استفاده از کش
- ترافیک مخرب یا باتها
- کرون جابهای مدیریت نشده
- پایگاه داده بهینه نشده
- نسخههای قدیمی PHP
تشخیص و عیب یابی مصرف منابع وردپرس
شما نمیتوانید چیزی را که نمیبینید، اصلاح کنید. اولین قدم استفاده از ابزارهای مانیتورینگ است.
استفاده از افزونه Query Monitor
این افزونه، استاندارد طلایی برای توسعه دهندگان وردپرس است. پس از نصب، منویی به نوار ابزار بالای وردپرس اضافه میکند که به شما موارد زیر را نشان میدهد:
- کدام کوئریهای دیتابیس کند هستند.
- کدام افزونهها بیشترین زمان پردازش PHP را میگیرند.
- خطاهای PHP که در پس زمینه رخ میدهند.
- درخواستهای HTTP خارجی که باعث کندی میشوند.
بررسی گزارشهای هاست
در کنترل پنل هاست خود به بخش Resource Usage یا CPU and Concurrent Connection Usage بروید. در اینجا میتوانید ببینید آیا محدودیتهای شما مربوط به RAM است یا CPU و یا حتی سرعت خواندن نوشتن هارد.
هاست سی پنل ایران با سرعت و امنیت بالا
برای تجربه بهترین عملکرد و کاهش مصرف منابع وردپرس، سرویس هاست سی پنل ایرانی ما را امتحان کنید.
راهکارهای کاهش مصرف منابع وردپرس
در این بخش روشهای کاهش مصرف منابع وردپرس مانند RAM و CPU را مورد بررسی قرار میدهیم.
پیاده سازی سیستم کشینگ صحیح
بدون شک، کش کردن مهمترین عامل در کاهش مصرف منابع است. بدون کش، سرور مجبور خواهد بود برای هر بازدیدکننده کل کدهای PHP را از نو اجرا کند.
- Page Caching: صفحات سایت را به فایلهای HTML استاتیک تبدیل میکند. این کار بار روی CPU را تا حد زیادی کاهش میدهد. پیشنهاد میدهیم از افزونههایی مانند LiteSpeed Cache یا W3 Total Cache استفاده کنید.
- Object Caching: نتایج کوئریهای دیتابیس را در رم ذخیره میکند تا دفعات بعد نیاز به پرس و جوی مجدد از دیتابیس نباشد. اگر سایت فروشگاهی یا پربازدید دارید، استفاده از Redis یا Memcached حیاتی است.
مدیریت و بهینه سازی افزونهها
بسیاری از کاربران تصور میکنند تعداد افزونهها باعث کندی میشود، اما در واقع کیفیت افزونهها مهم است. یک افزونه بد میتواند کل سایت شما را فلج کند.
- جایگزینی افزونههای سنگین: به جای افزونههای اسلایدر سنگین، از بلوکهای گوتنبرگ یا کد CSS استفاده کنید. همچنین بهتر است به جای افزونههای بکاپ گیری که در ساعات اوج مصرف اجرا میشوند، از سرویسهای بکاپ هاستینگ استفاده کنید.
- حذف افزونههای غیر ضروری: لیست افزونههای خود را مرور کنید و هر چیزی که حیاتی نیست را غیر فعال یا پاک کنید.
کنترل Heartbeat API وردپرس
وردپرس از یک مکانیزم به نام Heartbeat API استفاده میکند تا ارتباط بین مرورگر و سرور را زنده نگه دارد. این پروسه به صورت پیش فرض هر 15 تا 60 ثانیه یک درخواست به فایل admin-ajax.php میفرستد. اگر 10 نویسنده به صورت همزمان در حال کار باشند، سرور شما با سیل عظیمی از درخواستهای PHP مواجه میشود. پیشنهاد میدهیم از افزونه WP Rocket برای کنترل این فرکانس استفاده کنید.
بهینه سازی دیتابیس
با گذشت زمان، دیتابیس وردپرس پر از دادههای زائد میشود. این دادهها شامل رونوشتهای پست، نظرات اسپم و دادههای گذرا هستند. برای بهینه سازی این موارد میتوانید اقدامات زیر را انجام دهید.
- پاکسازی جداول: از افزونههایی مانند WP-Optimize یا Advanced Database Cleaner استفاده کنید.
- محدود کردن رونوشتها: وردپرس به صورت پیش فرض تعداد نامحدودی از نسخههای قبلی یک نوشته را ذخیره میکند. با افزودن کد میتوانید آن را محدود کنید.
- بررسی جدول WP-Options: یکی از دلایل اصلی مصرف بالای رم، دادههای Autoloaded در این جدول است. افزونههای حذف شده ممکن است تنظیمات خود را باقی گذاشته باشند که در بارگذاری سایت فراخوانی میشوند. پاکسازی این بخش نیازمند دانش فنی یا استفاده از افزونههای تخصصی پاکسازی دیتابیس است.
مدیریت فایلهای Cron Job
وردپرس دارای یک سیستم زمان بندی داخلی به نام WP-Cron است که وظایفی مانند انتشار پستهای زمانبندی شده، چک کردن به روز رسانیها و ارسال ایمیلها را انجام میدهد. مشکل اینجاست که WP-Cron با هر بار بازدید کاربر اجرا میشود. میتوانید با مدیریت صحیح این فایل، ثبات سرور را به شدت افزایش دهید.
مقابله با رباتها و ترافیک مخرب
گاهی اوقات مصرف بالای منابع به خاطر کاربران واقعی نیست، بلکه به دلیل خزندههای وب تهاجمی یا حملات Brute Force است. برای حل این مورد میتوانید این کارها را انجام دهید:
- غیرفعال کردن XML-RPC: فایل xmlrpc.php یکی از اهداف اصلی حملات DDoS و Brute Force است. اگر از اپلیکیشن موبایل وردپرس یا جت پک استفاده نمیکنید، این فایل را از طریق افزونههای امنیتی یا فایل htaccess غیر فعال کنید.
- بستن دسترسی رباتهای بد: از فایروالهای کاربردی وب مانند Cloudflare یا Wordfence استفاده کنید.
استفاده از CDN
زمانی که از یک CDN مانند Cloudflare استفاده میکنید، ترافیک سایت شما قبل از رسیدن به سرور اصلی، از شبکه ابری عبور میکند که این کار باعث میشود Cloudflare:
- درخواستهای مخرب را فیلتر کند.
- فایلهای استاتیک را از سرورهای خود به کاربر تحویل دهد.
این کار باعث میشود تعداد درخواستهایی که مستقیما به هاست شما میرسد به شدت کاهش یابد و مصرف پهنای باند و I/O کم شود.
ارتقای نسخه PHP
استفاده از نسخههای قدیمی PHP نه تنها خطر امنیتی دارد، بلکه بسیار کندتر است. PHP 8.0 و نسخههای بالاتر نسبت به نسخههای قبلی سریعتر هستند و مدیریت حافظه بهتری دارند. ارتقا به آخرین نسخه PHP یکی از سادهترین راهها برای کاهش مصرف CPU در وردپرس است.
بهینه سازی تصاویر و مدیا
تصاویر حجیم مستقیما مصرف CPU را بالا نمیبرند، اما باعث افزایش پهنای باند و I/O میشوند. همچنین پردازش تصاویر نیز رم مصرف میکند. پیشنهاد میکنیم:
- تصاویر را قبل از آپلود فشرده کنید.
- از فرمت WebP استفاده کنید.
- قابلیت Lazy Load را فعال کنید تا تصاویر تنها زمانی لود شوند که کاربر اسکرول کند.
نکات پیشرفته برای توسعه دهندگان وردپرس
اگر کاربر حرفهای هستید، بهتر است به موارد زیر نیز دقت کنید:
- کاهش درخواستهای HTTP خارجی: برخی افزونهها و قالبها، اسکریپتها یا آواتارها را از سرورهای خارجی لود میکنند. این کار باعث میشود پردازش PHP منتظر پاسخ سرور خارجی بماند. بهتر است این موارد را لوکال کنید.
- بررسی Loopهای بی پایان: کدهای سفارشی اشتباه در functions.php میتواند باعث لوپهای سنگین شود.
- استفاده از WP_Query بهینه: در کوئریهای سفارشی، فقط فیلدهایی را که نیاز دارید فراخوانی کنید و از no_found_rows برای صفحه بندیهایی که نیاز به شمارش کل ندارند استفاده کنید.
نتیجه گیری
کاهش مصرف منابع وردپرس یک فرایند یکپارچه نیست، بلکه نیازمند نگهداری مداوم است. با ترکیب استراتژیهای کشینگ قدرتمند، بهینه سازی دیتابیس، کنترل Heartbeat و استفاده از CDN، میتوانید حتی با منابع محدود، سایتی سریع و پایدار داشته باشید. به یاد داشته باشید که همیشه قبل از اعمال تغییرات بزرگ یک نسخه پشتیبان کامل از سایت خود تهیه کنید.
سوالات متداول
این فایل مسئول تمامی درخواستهای Ajax در وردپرس است. مصرف بالای آن معمولا به دلیل Heartbeat API وردپرس است.
نه لزوما، یک افزونه سبک و بهینه تاثیر خاصی روی سرور ندارد. اما حذف تنها یک افزونه سنگین یا مخرب میتواند تاثیر چشمگیری داشته باشد. تمرکز باید روی حذف افزونههای پرمصرف باشد که از طریق Query Monitor شناسایی میشود.
افزونههای کش با استفاده از PHP فایلهای HTML را میسازند. اما کش سمت سرور قبل از اینکه درخواست حتی به وردپرس و PHP برسد، پاسخ را ارسال میکنند. کش سمت سرور بسیار سریعتر و کم مصرفتر است.
منابع
- https://blogvault.net/wordpress-high-cpu-usage/
به این مقاله امتیاز دهید!
میانگین امتیاز 0 / 5. تعداد رأی ها : 0
هنوز هیچ رأیی داده نشده. اولین نفر باشید!

اولین دیدگاه را اضافه کنید.