FA-TOOLS — Header Component

انتقال سایت وردپرسی از هاست ایرانی به خارجی؛ راهنمای گام‌به‌گام و بدون قطعی

خلاصه مدیریت انتقال:
انتقال وردپرس از هاست ایران به خارج بدون قطعی و افت سئو، نیازمند رعایت ۳ اصل است: کاهش مقدار TTL در رکورد DNS پیش از انتقال، انتقال مستقیم فایل‌ها بین دو سرور بدون دانلود روی رایانه شخصی، و فعال نگه داشتن هم‌زمان هاست قدیم تا زمان همگام‌سازی کامل ISPهای ایرانی. رعایت این نکات صفر تا صد ریسک از دسترس خارج شدن سایت را از بین می‌برد.

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

اقدامات ضروری پیش از شروع انتقال

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

پاسخ کوتاه: پیش از شروع انتقال، حتماً مقدار TTL رکوردهای DNS را به ۳۰۰ ثانیه کاهش دهید، یک بک‌آپ کامل (Full Backup) بگیرید و جداول سشن‌ها یا کش دیتابیس را پاک‌سازی کنید تا حجم فایل انتقال به حداقل برسد.
  • کاهش مقدار TTL (Time To Live): حداقل ۲۴ ساعت قبل از تغییر دی‌ان‌اس، مقدار TTL را در DNS Zone هاست مبدأ روی ۳۰۰ ثانیه (۵ دقیقه) بگذارید تا تغییرات IP جدید در سراسر اینترنت سریع‌تر اعمال شود.
  • پاک‌سازی دیتابیس: جداول کش مانند wp_options (ردیف‌های transient) و جداول افزونه‌های آمارگیر را خالی کنید تا دیتابیس سبک شود.
  • غیرفعال‌سازی افزونه‌های کش و امنیت: افزونه‌هایی نظیر Rocket، LiteSpeed Cache یا Wordfence را موقتاً خاموش کنید تا در آدرس‌دهی جدید تداخل ایجاد نکنند. اگر به دنبال کدهای بهینه‌سازی بدون افزونه هستید، مطالعه تکه‌کدهای وردپرس می‌تواند به شما در شخصی‌سازی بهتر فایل‌ها کمک کند.

روش‌های اصلی انتقال وردپرس

برای جابه‌جایی وردپرس دو راهکار کلی وجود دارد: استفاده از افزونه‌های خودکار یا انتقال دستی. انتخاب روش مناسب به حجم سایت و میزان دسترسی شما به پنل هاست بستگی دارد.

۱. استفاده از افزونه‌ها (مناسب برای سایت‌های زیر ۲ گیگابایت)

افزونه‌هایی مانند Duplicator یا All-in-One WP Migration فرآیند را ساده می‌کنند. با این حال، در هاست‌های ایرانی به دلیل محدودیت‌های max_execution_time و upload_max_filesize، اغلب در فرآیند استخراج (Extract) بسته‌ها روی هاست جدید خارجی با خطای Timeout مواجه می‌شوید.

۲. انتقال دستی و مستقیم (روش پیشنهادی برای سایت‌های بزرگ)

در این روش کنترل کامل فرآیند در دست شماست، هیچ محدودیتی در حجم فایل وجود ندارد و احتمال خراب شدن فایل‌های دیتابیس به صفر می‌رسد.

انتقال مستقیم سرور به سرور (بدون دانلود روی کامپیوتر)

بهترین و سریع‌ترین روش برای جابه‌جایی سایت‌های حجیم از هاست ایران به خارج، انتقال مستقیم فایل بک‌آپ از طریق ترمینال (SSH) یا قابلیت Remote Import پنل مقصد است. سرعت اینترنت بین‌المللی سرورها معمولاً بالای ۱ گیگابیت بر ثانیه است، بنابراین فایل‌های چند گیگابایتی ظرف چند ثانیه منتقل می‌شوند.

پاسخ کوتاه: برای انتقال مستقیم سرور به سرور، کافی است فایل Zip سورس‌کد را در پوشه public_html هاست مبدأ بگذارید و در هاست جدید از طریق دستور Wget در SSH یا گزینه دانلود از URL در کنترل‌پنل، فایل را مستقیماً فراخوانی کنید.
  1. وارد کنترل‌پنل مبدأ (مثلاً سی‌پنل یا دایرکت‌آدین) شوید و تمام فایل‌های پوشه public_html را به یک فایل backup.zip تبدیل کنید.
  2. پرمیشن فایل ایجاد شده را روی 644 قرار دهید تا از طریق مرورگر یا لینکش قابل دسترس باشد.
  3. وارد کنترل‌پنل هاست جدید (مقصد) شوید. اگر دسترسی SSH دارید، دستور زیر را اجرا کنید:
wget https://your-domain.com/backup.zip

اگر هاست مقصد دارای سی‌پنل است، می‌توانید از بخش File Manager گزینه Copy یا در دایرکت‌آدین از بخش Add files from URL استفاده کنید. پس از اتمام دانلود، فایل را Extract کنید.

انتقال دیتابیس و تنظیمات فایل wp-config.php

پس از انتقال فایل‌ها، نوبت به دیتابیس می‌رسد. به دلیل تفاوت احتمال انکودینگ (Collation) در ماریا‌دی‌بی سرورهای ایرانی و خارجی، باید مراقب به‌هم‌ریختگی حروف فارسی باشید.

خروجی گرفتن و ایمپورت دیتابیس

از طریق phpMyAdmin هاست مبدأ، دیتابیس را با فرمت SQL و متد Quick اکسپورت کنید. در هاست مقصد، یک دیتابیس جدید، یک نام کاربری و رمز عبور قوی بسازید و دسترسی کامل (ALL PRIVILEGES) را به کاربر اعطا کنید. سپس فایل SQL را در phpMyAdmin جدید ایمپورت نمایید.

ویرایش فایل wp-config.php

فایل wp-config.php را در هاست جدید باز کرده و اطلاعات دیتابیس جدید را جایگزین کنید:

define( 'DB_NAME', 'new_dbname' );
define( 'DB_USER', 'new_dbuser' );
define( 'DB_PASSWORD', 'new_strong_password' );
define( 'DB_HOST', 'localhost' );

در صورتی که ظاهر سایت در هاست جدید دچار به‌هم‌ریختگی فونت یا استایل شد، بررسی کدهای موجود در تکه‌کدهای CSS به شما کمک می‌کند تا مشکلات مسیردهی فایل‌های استایل را سریع‌تر رفع کنید.

مدیریت DNS، دامنه .IR و جلوگیری از قطعی

چالش اصلی در انتقال از هاست ایران به خارج، دامنه‌های ملی .IR و بروزرسانی DNS در شبکه اینترنت ملی (NIN) است. ایرنیک (IRNIC) تغییرات NS را معمولاً بین ۴ تا ۲۴ ساعت اعمال می‌کند. در این بازه، برخی کاربران به سرور قدیم و برخی به سرور جدید متصل می‌شوند.

پاسخ کوتاه: برای صفر کردن قطعی، هاست قدیم را تا ۷۲ ساعت بعد از تغییر NSها خاموش نکنید. همچنین استفاده از سرویس‌های CDN مانند کلودفلر یا ابرآروان باعث می‌شود تغییر IP بدون نیاز به انتظار برای بروزرسانی ایرنیک به‌صورت آنی انجام شود.

راهکار حرفه‌ای: اگر از CDN استفاده می‌کنید، نیازی به تغییر NS در ایرنیک ندارید. تنها کافی است در پنل مدیریت DNS سرویس ابری خود، IP رکوردهای A را از IP هاست ایران به IP هاست جدید خارجی تغییر دهید. این تغییر ظرف چند ثانیه اعمال می‌شود.

مقایسه روش‌های انتقال سایت

جدول زیر خصوصیات دو روش اصلی انتقال را نشان می‌دهد تا بر اساس زیرساخت سایت خود بهترین گزینه را انتخاب کنید:

معیار بررسی روش دستی (SSH / Direct) روش افزونه (Duplicator / All-in-One)
حداکثر حجم پیشنهادی بدون محدودیت (حتی بالای ۵۰ گیگابایت) ترجیحاً زیر ۲ گیگابایت
سرعت انتقال فوق‌العاده بالا (سرور به سرور) متوسط تا کند (وابسته به سرعت دانلود/آپلود)
احتمال بروز خطای Timeout صفر درصد بالا (به ویژه روی هاست‌های ایرانی)
سطح دانش فنی مورد نیاز متوسط تا متناسب با کار با فایل‌منجر مبتدی و ساده

عیب‌یابی سریع و رفع خطاهای رایج

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

خطای Error Establishing a Database Connection

این خطا نشان‌دهنده اشتباه بودن اطلاعات دیتابیس در فایل wp-config.php است. نام دیتابیس، نام کاربر و رمز عبور را چک کنید. همچنین مطمئن شوید عبارت DB_HOST روی localhost قرار دارد (در برخی هاست‌های خارجی ممکن است نیاز به IP اختصاصی دیتابیس باشد).

خطای ۵۰۰ یا Internal Server Error

در اکثر مواقع این مشکل ناشی از فایل .htaccess است. وارد مدیریت فایل هاست جدید شده، نام فایل .htaccess را به .htaccess_old تغییر دهید و سپس از پنل وردپرس بخش تنظیمات > پیوندهای یکتا، روی “ذخیره تغییرات” کلیک کنید تا فایل جدید ساخته شود. در صورت نیاز به ساختار پیش‌فرض کدهای اچ‌تی‌ام‌ال و پیوندها، می‌توانید کدهای استاندارد را در تکه‌کدهای HTML بررسی کنید.

خطای Mixed Content و عدم بارگیری SSL

اگر گواهی SSL روی هاست جدید فعال شده اما آیکون قفل سبز نمایش داده نمی‌شود، افزونه Really Simple SSL را نصب کنید یا با استفاده از ابزار Search Regex آدرس‌های http:// را در دیتابیس به https:// تغییر دهید.

مسدود شدن دسترسی به دلیل تحریم (Sanctions Block)

برخی هاست‌های خارجی (مانند Hetzner) ممکن است به ترافیک مستقیم از سمت برخی رنج‌های IP ایران حساس باشند یا برخی سرویس‌های داخلی نتوانند با API سرور خارجی ارتباط بگیرند. برای حل این مشکل، استفاده از یک لایه CDN مانند Cloudflare حتماً توصیه می‌شود تا ارتباط بین کاربر و سرور واسطه‌گری شود.

پرسش‌های متداول

۱. آیا انتقال سایت به هاست خارجی باعث افت رتبه سئو می‌شود؟
خیر، اگر جابه‌جایی بدون قطعی (Zero Downtime) انجام شود و IP جدید به سرعت متصل گردد، هیچ افت سئویی رخ نخواهد داد. حتی به دلیل بهبود سرعت پاسخ‌دهی سرور (TTFB) در هاست‌های باکیفیت خارجی، رشد رتبه نیز ممکن است اتفاق بیفتد.

۲. چه مدت باید هاست قدیمی ایرانی را فعال نگه داریم؟
حداقل ۷۲ ساعت. این زمان برای اطمینان از به روزرسانی کش DNS تمام شرکت‌های ارائه‌دهنده اینترنت (ISP) در داخل ایران و کش گوگل لازم است.

۳. آیا دامنه‌های .IR روی هاست‌های خارجی بدون مشکل کار می‌کنند؟
بله، دامنه‌های ملی هیچ محدودیتی برای اتصال به سرورهای خارجی ندارند. تنها نکته، زمان‌بر بودن بروزرسانی NSهای دامنه در سامانه ایرنیک است.

۴. اگر فایل بک‌آپ بسیار سنگین باشد چطور آن را منتقل کنیم؟
بهترین راه، تقسیم‌پذیری پوشه uploads یا استفاده از دستور direct wget/rsync در محیط SSH سرورها است تا نیازی به واسطه قرار دادن رایانه شخصی نباشد.

۵. آیا گواهی SSL رایگان Let’s Encrypt روی هاست جدید به خودی خود منتقل می‌شود؟
خیر، گواهی SSL وابسته به IP سرور است. پس از تغییر DNS و اشاره دامنه به هاست جدید، باید مجدداً اقدام به صدور و فعال‌سازی SSL از طریق پنل هاست جدید (AutoSSL یا Let’s Encrypt) کنید.

Table of Contents

آخرین نوشته‌ها

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

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