آکادمی آموزشی ایران اج: دوره‌های تخصصی سئو و وردپرس.

WordPress.org

آموزش هماهنگ‌سازی وردپرس با اینترانت ملی

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

  • هاست داخل کشور

    سرور میزبان سایت شما باید در لوکیشن داخل کشور باشد.

  • بهینه سازی وردپرس

    لیست مراحل داخل این صفحه باید به درستی انجام شوند.

  • دسترسی به وردپرس فارسی

    برای دریافت آپدیت های افزونه و وردپرس فارسی از ایران اج استفاده کنید.

قبل از انجام موارد زیر: اگر سایت شما روی هاستینگی مانند لاراتاندر با DNS Clustering رایگان میزبانی می‌شود، دیگر نیازی به انجام تنظیمات مراحل 1 تا 4 نخواهید داشت (صرفا موارد مربوط به اینترنت سمت کاربران بازدید کننده از سایت نیاز به انجام است). در لاراتاندر به‌دلیل وجود میرور اختصاصی و مخازن به‌روز وردپرس، هسته وردپرس، قالب‌ها و افزونه‌ها بدون وابستگی به سرورهای خارجی در دسترس هستند؛ بنابراین می‌توانید به‌راحتی وردپرس، قالب و افزونه‌های خود را با سرعت بالا نصب یا به‌روزرسانی کنید و محدودیت‌های ارتباطی شبکه بین‌الملل تأثیری روی این بخش‌ها نخواهد داشت.

۱ گام نخست: مدیریت به‌روزرسانی‌های خودکار وردپرس

هسته‌ی وردپرس به‌طور منظم تلاش می‌کند تا وضعیت نسخه‌ی جدید خود و افزونه‌ها را از سرورهای اصلی (WordPress.org) استعلام کند. در شرایط قطعی یا اختلال ارتباطات بین‌المللی، این درخواست‌ها بی‌پاسخ مانده و باعث مسدود شدن پردازش‌های سرور (در اصطلاح Hang کردن) می‌شوند.

برای رفع این مشکل، کدهای زیر را در فایل wp-config.php سایت خود (ترجیحاً قبل از خط /* That's all, stop editing! */) قرار دهید:

define('WP_AUTO_UPDATE_CORE', true);
define('AUTOMATIC_UPDATER_DISABLED', true);
نکته: پس از پایداری شرایط شبکه، می‌توانید این محدودیت‌ها را بردارید تا سیستم به‌روزرسانی مجدداً فعال شود.

۲ گام دوم: مسدودسازی درخواست‌های خروجی (HTTP Requests)

بسیاری از افزونه‌ها نیز برای بررسی لایسنس، دریافت اخبار سازنده یا APIهای خارجی، ریکوئست‌های متعددی ارسال می‌کنند. شما می‌توانید با استفاده از قابلیت‌های درونی وردپرس، از ارسال تمامی درخواست‌های خروجی جلوگیری کنید؛ اما باید سرویس‌های داخلی مهم (مانند درگاه‌های پرداخت، پنل‌های پیامکی و...) را استثنا (Whitelist) کنید.

کدهای زیر را نیز به فایل wp-config.php اضافه کنید:

define('WP_HTTP_BLOCK_EXTERNAL', true); define('WP_ACCESSIBLE_HOSTS', '*.shaparak.ir,cpg.torobpay.com,*.torobpay.com,*.payamak-panel.com,rest.payamak-panel.com,api.payamak-panel.com');
هشدار: در صورتی که از درگاه پرداخت متفاوتی استفاده می‌کنید (مثل زرین‌پال یا پی‌پینگ)، حتماً آدرس API آن‌ها را با کاما (بدون فاصله) به لیست WP_ACCESSIBLE_HOSTS اضافه کنید تا پرداخت‌های سایت شما مختل نشود.

۳ گام سوم: بومی‌سازی منابع استاتیک و لینک‌های خارجی

اگر در قالب یا افزونه‌های سایت شما فایل‌های CSS یا JS از شبکه‌های توزیع محتوای بین‌المللی (مانند cdnjs یا cloudflare) لود می‌شوند، یا از سرویس فونت گوگل (googleapis) استفاده می‌کنید، این فایل‌ها برای کاربرانِ داخل ایران بارگذاری نخواهند شد و ظاهر سایت به هم می‌ریزد.

برای حل این مشکل دو راهکار پیش‌رو دارید:

  • میزبانی محلی (Localize): این فایل‌ها و فونت‌ها را دانلود کرده و مستقیماً روی هاست خودتان (درون پوشه قالب) آپلود کنید و آدرس‌دهی آن‌ها را به دامنه خودتان تغییر دهید.
  • استفاده از جایگزین‌های داخلی (مانند iredge): سرویس‌هایی مانند iredge به شما اجازه می‌دهند تا با جایگزین کردن نام دامنه در لینک کتابخانه‌های معروف، این فایل‌ها را با سرعت بالا و بدون مشکل از درون شبکه ملی اطلاعات برای کاربرانتان بارگذاری کنید.

۴ گام چهارم: بهینه‌سازی WP-Cron داخلی

کران‌جاب پیش‌فرض وردپرس (WP-Cron) با هر بازدید کاربر در پس‌زمینه اجرا می‌شود تا وظایفی مثل انتشار پست‌های زمان‌بندی شده را انجام دهد. در شرایط محدودیت شبکه، این سیستم می‌تواند به‌شدت منابع سرور را درگیر و لود سایت را کُند کند.

توصیه می‌شود کران داخلی وردپرس را با اضافه کردن قطعه کد زیر به wp-config.php غیرفعال کنید و به‌جای آن، یک کران‌جاب واقعی از طریق کنترل‌پنل هاست خود (مانند cPanel یا DirectAdmin) تنظیم کنید تا هر ۱۰ یا ۱۵ دقیقه یک‌بار اجرا شود:

define('DISABLE_WP_CRON', true);
نکته: اگر مطمئن نیستید که چگونه باید از طریق پنل هاستینگ کران‌جاب (Cron Job) را تعریف کنید، کافی‌ست با پشتیبانی هاستینگ خود از طریق تیکت ارتباط بگیرید و از آن‌ها درخواست کنید تا این کار را برای شما انجام دهند.

۵ گام پنجم: غیرفعال‌کردن Gravatar و جایگزینی آن (بسیار مهم)

وردپرس به صورت پیش‌فرض برای نمایش آواتار (تصویر پروفایل) کاربران از سرویس gravatar.com استفاده می‌کند. در شرایط ایران اکسس (اینترانت ملی)، دسترسی شما به شبکه‌ی جهانی و سرویس‌های خارجی مانند گراواتار کاملاً مسدود است. در این حالت، تلاش مداوم وردپرس برای اتصال به این سرورها با تایم‌اوت (Timeout) مواجه شده و باعث کندی بسیار شدید و قفل شدن بخش نظرات و پیشخوان وردپرس می‌شود؛ بنابراین غیرفعال‌کردن آن در این شرایط الزامی است.

راهکارهای پیشنهادی:

  • نصب افزونه‌ای مثل WP User Avatar برای نمایش آواتارهای محلی.
  • غیرفعال کردن کامل آواتارها از مسیر: تنظیمات ← گفتگو ← نمایش آواتار (تیک آن را بردارید).
  • راهکار بهینه‌تر (قطعه کد): جایگزینی کامل گراواتار با یک آواتار SVG ساده و سبک (بدون نیاز به افزونه).
نکته فنی: برای حذف کامل اتصال به گراواتار و جایگزینی آن با یک آواتار پیش‌فرض (آدمک ساده)، کافی‌ست قطعه کد زیر را در انتهای فایل functions.php قالب خود (ترجیحاً چایلد تم) قرار دهید. این کد بدون اضافه کردن درخواست جدید به سرور، تصویر را مستقیماً لود می‌کند.
function handleOptimizedAvatars($avatar, $id_or_email, $size, $default, $alt) { $base64_svg = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIj48cGF0aCBmaWxsPSIjY2NjIiBkPSJNMTIsMTJDMTQuMjEsMTIgMTYsMTAuMjEgMTYsOEMxNiw1Ljc5IDE0LjIxLDQgMTIsNEM5Ljc5LDQgOCw1Ljc5IDgsOEM4LDEwLjIxIDkuNzksMTIgMTIsMTJNMTIsMTRDOS4zMywxNCA0LDE1LjM0IDQsMThWMjBIMjBWMThDMTYsMTUuMzQgMTAuNjcsMTQgMTIsMTRaIi8+PC9zdmc+'; return "<img alt='{$alt}' src='{$base64_svg}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />"; }add_filter('get_avatar', 'handleOptimizedAvatars', 10, 5);

۶ گام ششم: شناسایی منابع خارجی مسدود شده (فونت‌ها و فایل‌های CSS/JS)

یکی از شایع‌ترین تصورات اشتباه این است که «چون هاست سایت در داخل کشور قرار دارد، سایت باید همیشه بدون مشکل باز شود». اما اگر قالب یا افزونه‌های شما از سرویس‌های خارجی مانند گوگل فونت (Google Fonts) یا شبکه‌های توزیع محتوای بین‌المللی استفاده کنند، به دلیل مسدود بودن این سرورها در اینترانت ملی، مرورگر کاربر برای دریافت این فایل‌ها در صف انتظار می‌ماند. در نتیجه، ظاهر سایت مختل شده و سایت با کندی بسیار شدیدی بارگذاری می‌شود.

نحوه شناسایی فایل‌های مشکل‌دار:

برای پیدا کردن منابعی که باعث کندی سایت شما شده‌اند، سایت خود را با اینترانت ملی در مرورگر (مانند کروم) باز کنید، روی صفحه کلیک راست کرده و گزینه Inspect را انتخاب کنید (یا کلید F12 را بزنید). سپس به تب Network بروید و صفحه را یک‌بار رفرش کنید. منابعی که به رنگ قرمز درآمده‌اند یا در ستون Time زمان لود بسیار طولانی دارند، همان فایل‌های مسدود شده‌ای هستند که باید اصلاح شوند.

network

راهکارهای رفع مشکل:

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