مشکل: کندی غیرعادی در پیشخوان وردپرس
آیا با کندی غیرعادی در پنل مدیریت وردپرس خود مواجه شدهاید؟ بسیاری از کاربران گزارش میدهند که:
بارگذاری صفحات مدیریت گاهی بیش از ۵ ثانیه طول میکشد
در موارد شدید، سیستم با خطای 504 (Gateway Timeout) مواجه میشود
صفحاتی مانند “بروزرسانیها” یا “افزونههای نصبشده” به طور خاص کند هستند
علت اصلی: درخواستهای خارجی WP_HTTP در وردپرس
وردپرس به افزونهها و پوستهها اجازه میدهد برای بررسی بروزرسانیها یا دریافت ویژگیهای جدید، درخواستهای HTTP به سرورهای خارجی ارسال کنند. این مکانیسم اگرچه مفید است، اما میتواند مشکلاتی ایجاد کند:
تکرار بیش از حد درخواستها: هر افزونه ممکن است درخواست جداگانهای ارسال کند
وابستگی به سرورهای خارجی: مشکلات شبکه یا محدودیتهای جغرافیایی میتواند باعث تأخیر شود
ذخیرهسازی نتایج: نتایج در Transientهای وردپرس ذخیره میشوند (دو بار در روز)
راهکارهای تشخیص و حل مشکل سرعت پیشخوان وردپرس
۱. تشخیص درخواستهای مشکلساز
ابزار پیشنهادی: افزونه Query Monitor (رایگان)
روش کار:
نصب و فعالسازی Query Monitor
مراجعه به بخشهای کند (مثل بروزرسانیها یا لیست افزونهها)
بررسی تب “HTTP API Calls” در پنل Query Monitor
شناسایی درخواستهای با وضعیت ناموفق یا زمان پاسخدهی بالا
نکته مهم: به آدرسهای درخواستها و کد وضعیت آنها دقت کنید (مثلاً خطاهای 4xx یا 5xx)
۲. مسدودسازی هوشمند درخواستهای خارجی در وردپرس
مرحله اول: مسدودسازی کلی درخواستها
کد زیر را به فایل wp-config.php
اضافه کنید (قبل از خط “That’s all, stop editing!”):
define('WP_HTTP_BLOCK_EXTERNAL', true);
تأثیر این تغییر:
تمام درخواستهای خروجی مسدود میشوند
بروزرسانی خودکار وردپرس و افزونهها متوقف میشود
درخواستهای داخلی (مثل کرون جابها) بدون مشکل کار میکنند
۳. تعیین دامنههای مجاز (Whitelist)
برای اجازه دسترسی به دامنههای ضروری، کد زیر را به wp-config.php
اضافه کنید:
define('WP_ACCESSIBLE_HOSTS', '*.wordpress.org, example.com, *.example.com');
نکات مهم:
میتوانید چندین دامنه را با کاما از هم جدا کنید
از wildcard (*) برای سابدامینها استفاده کنید
فقط دامنههای واقعاً ضروری را اضافه کنید
مثال عملی:
define('WP_ACCESSIBLE_HOSTS', '*.wordpress.org, najva.com, api.rankmath.com');
۴. بررسی نتایج
پس از اعمال تغییرات:
سرعت بارگذاری صفحات مدیریت را بررسی کنید
از طریق Query Monitor وضعیت درخواستها را کنترل کنید
مطمئن شوید بروزرسانیهای ضروری همچنان کار میکنند
محدودیتهای این روش
۱. پوشش ناقص: این روش فقط درخواستهای ارسال شده از طریق WP HTTP API را مسدود میکند. اگر افزونهای مستقیماً از cURL یا file_get_contents استفاده کند، این محدودیت روی آن تأثیری ندارد.
۲. نیاز به نگهداری: با نصب افزونههای جدید، ممکن است نیاز به اضافه کردن دامنههای جدید به لیست سفید داشته باشید.
۳. تأثیر بر عملکرد برخی افزونهها: برخی افزونههای حرفهای (مثل المنتور پرو) ممکن است برای فعالسازی یا دریافت ویژگیها به ارتباط با سرورهای خود نیاز داشته باشند.
راهکارهای تکمیلی برای افزایش سرعت سایت
۱. استفاده از کش: پیادهسازی سیستم کش (مانند WP Rocket یا LiteSpeed Cache) میتواند به بهبود کلی عملکرد کمک کند.
۲. بهینهسازی سرور: بررسی تنظیمات PHP (مانند memory_limit و max_execution_time) و استفاده از OPcache.
۳. بررسی افزونهها: غیرفعال کردن افزونههای غیرضروری که درخواستهای مکرر به سرورهای خارجی ارسال میکنند.
۴. راهکار جایگزین: استفاده از فیلتر http_request_args
برای محدود کردن زمان انتظار برای پاسخ درخواستها:
add_filter('http_request_args', function($args, $url) {
$args['timeout'] = 3; // محدود کردن زمان انتظار به 3 ثانیه
return $args;
}, 10, 2);
با پیادهسازی این راهکارها میتوانید:
سرعت پنل مدیریت وردپرس را به شکل محسوسی بهبود بخشید
از خطاهای 504 ناشی از تایماوت پیشگیری کنید
کنترل بهتری بر ارتباطات خارجی سایت خود داشته باشید
به یاد داشته باشید که پس از هر تغییر عمده، عملکرد سایت را به دقت بررسی کنید و در صورت نیاز، دامنههای اضافی را به لیست سفید بیفزایید.