رفع مشکل کندی سرعت ادمین پنل وردپرس در زمان اختلال در اینترنت

رفع مشکل کندی سرعت ادمین پنل وردپرس برای سایت‌های مستقر در ایران
Avatar
نویسنده: علیرضا برزودی
یکشنبه 26 بهمن 1404
مطالعه: ۷ دقیقه ۰ نظر ۹ بازدید

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

تشخیص دلایل کندی پنل وردپرس و سایت‌هایی که درخواست‌های آن‌ها بی‌سرانجام می‌ماند

استفاده از Query Monitor
استفاده از پلاگین Query Monitor

برای آن‌که متوجه شوید چه عواملی باعث کندی سرعت لود داشبورد وردپرس شما شده است، می‌توانید افزونه کوئری مانیتور (با نام انگلیسی Query Monitor) را از مخزن رسمی وردپرس به‌صورت رایگان نصب کنید و با استفاده از آن لیست مشکلات پیش آمده در کوئری‌ها را در نوار بالایی پیشخوان وردپرس خود مشاهده کنید.

نمایش مشکلات سرعت سایت در کوئری مانیتور
نحوه نمایش ارورهای مربوط به کندی سرعت سایت در کوئری مانیتور

راهکارهای عملیاتی برای رفع کندی پیشخوان وردپرس (ویژه هاست‌های داخل ایران)

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

راهکار اول: مسدودسازی هدفمند دامنه‌های خاص

در این روش، شما تنها ارتباط با دامنه‌هایی را قطع می‌کنید که شناسایی کرده‌اید باعث کندی می‌شوند. نحوه اجرا:

  • وارد داشبورد وردپرس شوید.
  • به بخش ابزارها > ویرایشگر فایل پوسته (در نسخه انگلیسی: Tools > Theme File Editor) بروید.
  • فایل functions.php را انتخاب کنید.
  • کد زیر را در انتهای فایل اضافه کنید و تغییرات را ذخیره نمایید:
add_filter( 'pre_http_request', function( $preempt, $args, $url ) {
// لیست دامنه‌های مسدودشده
// برای مسدود کردن: خط را بدون // نگه دارید.
// برای رفع مسدودیت: // را جلوی خط اضافه کنید.
$blocked_domains = [
'elementor.com', // Elementor
'github.com', // GitHub (برای بسیاری از افزونه‌ها)
'yoast.com', // Yoast SEO
'yoa.st', // کوتاه‌کننده لینک Yoast
'w.org', // wordpress.org (بروزرسانی‌ها، قالب‌ها، افزونه‌ها)
'unyson.io', // Unyson Framework
'siteorigin.com', // SiteOrigin
'woocommerce.com', // WooCommerce
// 'example.com', // دامنه جدید اضافه کنید
];

// تبدیل لیست به regex برای تطبیق بهتر
$pattern = '#(' . implode('|', array_map('preg_quote', $blocked_domains)) . ')#i';
if ( preg_match($pattern, $url) ) {
return new WP_Error(
'http_request_blocked',
'درخواست به دامنه‌های خارجی مسدود شده است: ' . $url
);
}
return $preempt;
}, 10, 3 );

نکته:

اگر گزینه ویرایشگر پوسته در داشبورد موجود نیست (به دلیل تنظیمات امنیتی)، از پنل هاستینگ (مانند cPanel یا DirectAdmin) استفاده کنید: در مسیر public_html/wp-content/themes/نام-پوسته/functions.php فایل را ویرایش کرده و کد را اضافه کنید.

مدیریت دامنه‌های مسدودشده

  • افزودن دامنه جدید: یک خط جدید داخل آرایه اضافه کنید، مانند ‘newdomain.com’, (با کاما در انتها).
  • رفع مسدودیت دامنه: جلوی خط مربوطه // بگذارید.

مثالی از رفع مسدودیت yoast.com و yoa.st:

$blocked_domains = [
'elementor.com',
'github.com',
// 'yoast.com',
// 'yoa.st',
'w.org',
'unyson.io',
'siteorigin.com',
'woocommerce.com',
];
مثال: فقط رفع مسدودیت wordpress.org

$blocked_domains = [
'elementor.com',
'github.com',
'yoast.com',
'yoa.st',
// 'w.org',
'unyson.io',
'siteorigin.com',
'woocommerce.com',
];

نکات اجرایی

  • پس از تغییرات، صفحه ادمین را رفرش کنید (با Ctrl + F5 برای پاک کردن کش مرورگر).
  • اگر از افزونه کش (مانند WP Rocket) یا کش سرور استفاده می‌کنید، آن را پاک کنید.
  • این کد فقط درخواست‌های backend وردپرس (مانند چک به‌روزرسانی، لایسنس یا فونت) را مسدود می‌کند و بر frontend (سمت کاربر) تأثیری ندارد.
  • برای افزودن دامنه، حتما کاما بگذارید تا کد خطا ندهد.

مزایای روش اول

  • بهینه‌سازی حداکثری با کمترین تداخل: اگر با استفاده از افزونه Query Monitor سایت‌هایی را که باعث ایجاد وقفه (Timeout) یا خطاهای ارتباطی می‌شوند به‌درستی شناسایی کنید، می‌توانید با مسدود کردن آن‌ها، مشکل کندی پیشخوان را بدون آسیب به عملکردهای حیاتی وردپرس برطرف کنید.
  • مدیریت آسان: شما کنترل کاملی بر لیست سیاه خواهید داشت و هر زمان که نیاز باشد، می‌توانید به‌راحتی یک دامنه را مسدود یا از لیست انسداد خارج کنید.

معایب روش اول

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

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

سریع‌ترین روش برای افزایش سرعت وردپرس

راهکار دوم: مسدودسازی کلی درخواست‌های خارجی با امکان تعریف استثنا (وایت‌لیست)

اگر مدیریت بلاک لیست سخت است، همه ارتباطات خارجی را مسدود کنید و فقط دامنه‌های مطمئن (مانند سرویس‌های ایرانی) را مجاز کنید. این کار با ویرایش فایل wp-config.php انجام می‌شود. نحوه اجرا:

  • از پنل هاستینگ به مسیر public_html/wp-config.php بروید.
  • فایل را ویرایش کنید.
  • کد زیر را در انتهای فایل (قبل از ?> اگر وجود دارد) اضافه کنید:
define('WP_HTTP_BLOCK_EXTERNAL', true);

افزودن استثناها (وایت لیست)

برای مجاز کردن دامنه‌های خاص، کد زیر را اضافه کنید و دامنه‌ها را جایگزین کنید (با کاما جدا کنید):

define('WP_ACCESSIBLE_HOSTS', 'api.example.ir,another.ir,*.wordpress.org');

نکته:

از * برای ساب‌دامنه‌ها استفاده کنید (مثل *.wordpress.org برای تمام زیرمجموعه‌ها). همچنین دامنه‌های ایرانی مانند درگاه‌های پرداخت یا پنل‌های SMS را اینجا اضافه کنید.

نکات اجرایی

  • پس از تغییرات، صفحه ادمین را رفرش کنید (با Ctrl + F5).
  • کش مرورگر، افزونه یا سرور را پاک کنید.
  • این کد فقط درخواست‌های backend را مسدود می‌کند و frontend را تحت تأثیر قرار نمی‌دهد.
  • برای افزودن دامنه جدید، آن را با کاما جدا کنید و کوتیشن را حفظ نمایید.

مزایای روش دوم

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

معایب روش دوم

  • اختلال احتمالی در عملیات‌های استاندارد: این روش ممکن است به‌صورت پیش‌فرض ارتباطات ضروری و سالم (مانند اتصال به مخزن رسمی وردپرس برای به‌روزرسانی‌ها) را نیز مسدود کند.
  • نیاز به مدیریت لیست سفید (Whitelist): برای جلوگیری از اختلال در کارکرد سایت، باید دائما لیست استثنائات را مدیریت و بهینه‌سازی کنید؛ در غیر این صورت، هنگام بروز مشکل ناچار خواهید بود کل این قابلیت را به‌طور موقت غیرفعال نمایید.

جمع‌بندی

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

سوالات متداول

چرا بعد از اینکه روش شماره دو را استفاده کردم، پنل‌های پیامکی که به سایت وصل بودند از کار افتادند؟

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

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

کافی تا آدرس wordpress.org را با استفاده از روش وایت‌لیست به صورت استثنا تعریف کنید تا مشکل اتصال به مخزن برای شما برطرف شود.

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

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


ارسال دیدگاه در وبلاگ پارس‌پک را مطالعه کرده و آن‌ها را می‌پذیرم.