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

انتقال سایت وردپرس به هاست جدید ترسناک‌تر از چیزی است که هست. اگر به ترتیب درست پیش بروید، سایت قدیمی تا لحظهٔ آخر روشن می‌ماند و بازدیدکننده‌ها اصلاً متوجه جابه‌جایی نمی‌شوند. بیشتر خرابی‌ها از دو جا می‌آید: جا ماندن دیتابیس، و عوض کردن آدرس سایت با جست‌وجو و جایگزینی ساده.

این راهنما مراحل انتقال را از بکاپ تا تغییر DNS قدم‌به‌قدم توضیح می‌دهد.

پیش از شروع: چه چیزی منتقل می‌شود؟

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

حالتچه چیزی عوض می‌شودکار اضافه
همان دامنه، هاست جدیدسرور و معمولاً اطلاعات اتصال دیتابیسبه‌روز کردن wp-config.php و تغییر DNS
دامنهٔ جدیدآدرس سایت هم عوض می‌شودجایگزینی آدرس قدیمی در دیتابیس با ابزار مناسب

مرحلهٔ ۱: بکاپ کامل از سایت فعلی

پیش از هر کاری، یک بکاپ کامل بگیرید و جایی بیرون از هاست فعلی نگه دارید: خروجی دیتابیس (فایل .sql) و پوشهٔ wp-content، یا کل فایل‌های سایت. اگر در میانهٔ کار چیزی خراب شد، این بکاپ نقطهٔ بازگشت شماست. جزئیات را در راهنمای بکاپ و بازیابی وردپرس نوشته‌ایم.

مرحلهٔ ۲: یکی از سه روش انتقال را انتخاب کنید

روش ۱: افزونهٔ انتقال

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

روش ۲: دستی (فایل‌ها + دیتابیس)

  1. فایل‌های سایت را با FTP یا فایل‌منیجر هاست دانلود کنید.
  2. از phpMyAdmin یا کنترل‌پنل خروجی دیتابیس بگیرید.
  3. روی هاست جدید یک دیتابیس و کاربر دیتابیس بسازید.
  4. فایل‌ها را آپلود و دیتابیس را وارد کنید.
  5. در wp-config.php نام دیتابیس، کاربر، رمز و میزبان جدید را بنویسید.

این روش کنترل کامل می‌دهد و محدودیت حجم افزونه را ندارد، ولی به دسترسی FTP و دیتابیس روی هاست جدید نیاز دارد.

روش ۳: فقط محتوا با ابزار برون‌بری وردپرس

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

مرحلهٔ ۳: اگر آدرس عوض می‌شود، درست جایگزینش کنید

وردپرس آدرس سایت را در جاهای زیادی از دیتابیس ذخیره می‌کند. بعضی قالب‌ها و ابزارک‌ها داده را به شکل serialized نگه می‌دارند، یعنی طول هر متن را کنار خودش ذخیره می‌کنند. اگر آدرس را با یک جست‌وجو و جایگزینی ساده در فایل SQL عوض کنید، طول‌ها به هم می‌ریزد و آن تنظیمات خراب می‌شوند.

راهنمای رسمی وردپرس این راه‌ها را پیشنهاد می‌کند:

  • دستور wp search-replace در WP-CLI، که دادهٔ serialized را درست جایگزین می‌کند.
  • افزونه‌ای مثل Better Search Replace، اگر به پیشخوان دسترسی دارید.

دو هشدار از همان راهنما: ستون guid نوشته‌ها را هرگز عوض نکنید، و پیش از هر تغییر SQL بکاپ بگیرید.

مرحلهٔ ۴: سایت جدید را پیش از تغییر DNS امتحان کنید

پیش از اینکه دامنه را به هاست جدید ببرید، سایت جدید را روی آدرس موقت آن امتحان کنید:

  • صفحهٔ اصلی و چند نوشته و برگه درست باز می‌شوند.
  • تصاویر نمایش داده می‌شوند و لینک‌ها به آدرس قدیمی نمی‌روند.
  • ورود به پیشخوان کار می‌کند.
  • فرم تماس پیام را می‌فرستد.
  • در فروشگاه، سبد خرید و صفحهٔ پرداخت باز می‌شوند.
  • پیوندهای یکتا کار می‌کنند. اگر صفحه‌ها ۴۰۴ می‌دهند، در «تنظیمات ← پیوندهای یکتا» یک بار ذخیره کنید.

مرحلهٔ ۵: تغییر DNS و روزهای بعد از آن

  1. یک روز قبل، TTL رکوردهای DNS را کم کنید (مثلاً به چند دقیقه)، تا تغییر سریع‌تر همه‌جا برسد.
  2. در ساعت کم‌بازدید، رکوردهای دامنه را به هاست جدید ببرید.
  3. در فروشگاه، از لحظهٔ تغییر DNS تا اطمینان از سایت جدید، سفارش‌های سایت قدیمی را زیر نظر داشته باشید؛ بعضی بازدیدکننده‌ها ممکن است چند ساعت هنوز به سرور قدیمی برسند.
  4. SSL را روی هاست جدید فعال کنید و مطمئن شوید آدرس سایت در وردپرس با https:// ذخیره شده است.
  5. سایت قدیمی را چند روز نگه دارید و بعد پاکش کنید.

انتقال سایت به ویسا

اگر مقصد شما ویساست، چند چیز ساده‌تر است:

  • آدرس موقت آماده است. هر سایت در ویسا یک آدرس رایگان روی weesa.ir دارد. سایت را همان‌جا کامل و امتحان کنید و بعد دامنه را وصل کنید (راهنمای اتصال دامنه).
  • SSL خودکار است. بعد از وصل شدن دامنه، گواهی خودکار صادر و تمدید می‌شود.
  • وردپرس استاندارد است. افزونه‌های انتقال و ابزار درون‌ریزی وردپرس مثل هر وردپرس دیگری کار می‌کنند.
  • سقف آپلود هر فایل ۶۴ مگابایت است. اگر فایل افزونهٔ انتقال یا خروجی سایت شما بزرگ‌تر است، یا فروشگاهی با سفارش‌های در جریان دارید، پیش از شروع با پشتیبانی هماهنگ کنید.
  • فضای پلن را بسنجید. پلن پایه ۱٫۵، حرفه‌ای ۴ و تجاری ۸ گیگابایت فضا دارد (جدول پلن‌ها). حجم پوشهٔ wp-content و دیتابیس سایت فعلی را با آن مقایسه کنید.

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

انتقال سایت روی سئو اثر بد دارد؟

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

انتقال چقدر طول می‌کشد؟

بیشتر به حجم سایت و سرعت دانلود و آپلود بستگی دارد. کار فنی یک سایت معمولی چند ساعت است. رسیدن تغییر DNS به همهٔ کاربران ممکن است تا یک روز طول بکشد، و برای همین سایت قدیمی را زود پاک نمی‌کنیم.

ایمیل دامنه هم جابه‌جا می‌شود؟

اگر ایمیل دامنه روی هاست قدیمی است، هنگام تغییر DNS رکوردهای MX را دست نزنید یا ایمیل را جداگانه منتقل کنید. وگرنه ایمیل‌ها به جای اشتباهی می‌روند.

منابع

ح
حجت حسینی

حجت حسینی توسعه‌دهندهٔ وردپرس، برنامه‌نویس PHP و مدیر سیستم است. کارش نوشتن افزونه و قالب اختصاصی وردپرس، بهینه‌سازی سرعت سایت‌های وردپرسی و فروشگاه‌های ووکامرس، راه‌اندازی و نگهداری سرورهای لینوکس و کانتینرها با Docker و Kubernetes، و طراحی بکاپ و امنیت سایت است. در این وبلاگ از همین تجربه‌ها می‌نویسد: چطور سایت وردپرسی را بسازیم، سریع کنیم و سالم نگه داریم.