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

برای اینکه سایت شما در این شرایط با سرعت بالایی باز شود، باید استراتژی «داخلی‌سازی» و «بهینه‌سازی حداکثری» را دنبال کنید. در ادامه نقشه راه عملی برای این کار آورده شده است:

۱. انتخاب هاستینگ مناسب (مهم‌ترین قدم)

در شرایط اختلال بین‌الملل، سایت‌هایی که روی هاست ایران هستند، برای کاربران داخل کشور بسیار سریع‌تر باز می‌شوند.
لوکیشن سرور: حتماً از دیتاسنترهای معتبر داخلی (مثل آسیاتک، افرانت یا پارس‌آنلاین) استفاده کنید.


۲. حذف وابستگی به منابع خارجی (External Requests)


بسیاری از قالب‌ها و افزونه‌ها، فایل‌هایی را از سرورهای گوگل یا کتابخانه‌های خارجی بارگذاری می‌کنند. اگر این ارتباط قطع شود، سایت شما تا زمان «Time out» شدن آن درخواست، لود نمی‌شود.

گوگل فونت: فونت‌های گوگل را غیرفعال کرده و فونت‌های فارسی (مثل ایران‌یکان یا وزیر) را به صورت Local روی هاست خودتان آپلود کنید.

راه حل :

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

کد زیر را به انتهای فایل functions.php قالب خود اضافه کنید:

// غیرفعال کردن فونت‌های گوگل
function disable_google_fonts() {
    return false;
}
add_filter( 'elementor/frontend/print_google_fonts', '__return_false' );

// حذف اسکریپت ایموجی‌های پیش‌فرض وردپرس
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');

Gravatar: آواتارهای وردپرس از سرورهای خارج بارگذاری می‌شوند. آن‌ها را از تنظیمات پیشخوان غیرفعال کنید یا از افزونه‌های کش آواتار استفاده کنید. همچنین امکان بارگذاری آواتار در خود وردپرس در مطلبی دیگر آموزش داده خواهد شد

راه حل :

اگر سایت شما بخش نظرات فعالی دارد، لود نشدن تصاویر پروفایل (گراواتار) از سرورهای خارج، سرعت را به شدت کاهش می‌دهد. می‌توانید با این کد، کلاً گراواتار را غیرفعال کنید یا از یک تصویر پیش‌فرض داخلی استفاده کنید:

کد زیر را در Functions.php قالب وردپرس خود قرار بدید :

add_filter( 'get_avatar', 'disable_gravatar_in_national_net', 1, 5 );
function disable_gravatar_in_national_net( $avatar, $id_or_email, $size, $default, $alt ) {
    // بازگرداندن یک تصویر پیش‌فرض محلی به جای سرور خارج
    $default_avatar = get_template_directory_uri() . '/images/default-avatar.png';
    return "<img alt='{$alt}' src='{$default_avatar}' class='avatar' height='{$size}' width='{$size}' />";
}

یک عکس پیش فرض با نام default-avatar.png در پوشه عکس قالب images قرار بدید تا جایگزین گراواتار شود

از فراخوانی کتابخانه‌های JS (مثل jQuery) از CDNهای جهانی پرهیز کنید و فایل ها را از روی هاست خودتان فراخوانی کنید.


3.غیرفعال کردن بررسی به‌روزرسانی‌ها

بیشترین حجم درخواست‌های HTTP مربوط به چک کردن ورژن وردپرس، قالب و افزونه‌هاست. با اضافه کردن کد زیر به functions.php این بررسی‌ها متوقف می‌شوند:

remove_action( 'admin_init', '_maybe_update_core' );
remove_action( 'admin_init', '_maybe_update_plugins' );
remove_action( 'admin_init', '_maybe_update_themes' );


4.حذف ابزارک‌های “اخبار وردپرس” و “رویدادها”

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

add_action('wp_dashboard_setup', 'remove_dashboard_widgets' );
function remove_dashboard_widgets() {
    remove_meta_box( 'dashboard_primary', 'dashboard', 'side' ); // WordPress Events and News
}


5.افزایش زمان Timeout برای جلوگیری از توقف لود

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

add_filter( 'http_request_timeout', function( $timeout ) {
    return 2; // زمان انتظار به 2 ثانیه کاهش می‌یابد
});

6. بهینه‌سازی دیتابیس و فایل‌ها


وردپرس به مرور زمان سنگین می‌شود. برای سبک‌سازی:

افزونه‌های کش: نصب افزونه‌هایی مثل WP Rocket (ترجیحاً نسخه بهینه شده) یا LiteSpeed Cache برای ایجاد نسخه‌های استاتیک از صفحات.

بهینه‌سازی تصاویر: تصاویر را با فرمت WebP ذخیره کنید تا حجم صفحات به شدت کاهش یابد.


7.افزونه Query Monitor

این افزونه برای دانلود قرار داده شد

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

در شرایطی که با محدودیت‌های اینترنتی یا اختلال در پهنای باند بین‌الملل (اینترنت ملی) مواجه هستیم، این ابزار به دلایل زیر برای یک توسعه‌دهنده حیاتی است:

۱. شناسایی درخواست‌های خارجی (HTTP Requests)
بسیاری از افزونه‌ها و قالب‌ها سعی می‌کنند فایل‌هایی (مثل فونت‌های گوگل، آیکون‌های FontAwesome یا کتابخانه‌های JS) را از سرورهای خارج از کشور فراخوانی کنند. در شرایط اختلال، این درخواست‌ها با “تایم‌اوت” (Timeout) مواجه شده و باعث می‌شوند سایت شما تا ۳۰ ثانیه یا بیشتر در حالت لودینگ باقی بماند.

کاربرد: در بخش HTTP Requests، می‌توانید ببینید کدام دامنه خارجی باعث کندی شده و آن را مسدود یا محلی (Local) کنید.

۲. بررسی بارگذاری منابع سنگین
وقتی اینترنت کند است، بهینه‌ بودن کوئری‌های دیتابیس اهمیت دوچندان پیدا می‌کند.

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

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

کاربرد: بخش PHP Errors تمام هشدارها (Warnings) و خطاها را با ذکر دقیق فایل و خط مربوطه به شما نشان می‌دهد.

آموزش کوتاه استفاده
پس از نصب و فعال‌سازی، یک نوار ابزار در بالای پیشخوان وردپرس ظاهر می‌شود که اطلاعات کلی (زمان لود، مصرف حافظه و تعداد کوئری‌ها) را نشان می‌دهد. با کلیک روی آن، پنل اصلی باز می‌شود:

تب Database Queries: کوئری‌های تکراری یا خیلی طولانی را با رنگ نارنجی یا قرمز مشخص می‌کند.

تب Scripts & Styles: لیست تمام فایل‌های JS و CSS لود شده را نشان می‌دهد. برای شرایط اینترنت محدود، بررسی کنید که فایلی از CDNهای فیلتر شده یا کند فراخوانی نشود.

تب Hooks & Actions: اگر شما که کدنویسی سفارشی انجام می‌دهید، دیدن ترتیب اجرای اکشن‌ها بسیار مفید است.

تب Environment: اطلاعات دقیقی از نسخه PHP، محدودیت حافظه (Memory Limit) و تنظیمات سرور به شما می‌دهد.

نکته حرفه‌ای: در زمان اختلالات اینترنتی، حتماً تب HTTP Requests را چک کنید. اگر درخواستی به fonts.googleapis.com یا gravatar.com می‌بینید که زمان زیادی (مثلاً ۵ ثانیه) طول می‌کشد، یعنی سایت شما به خاطر یک فونت یا تصویر آواتار ساده، برای کاربر به شدت کند شده است.