دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
دانشنامه مارال هاست دانشنامه مارال هاست
دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
وردپرس
  • Folder icon closed Folder open iconآموزش نصب دستی wordpress از طریق File Manager
  • Folder icon closed Folder open iconآموزش انتقال wordpress از هاست دیگر
  • Folder icon closed Folder open iconآموزش آپدیت هسته(core) wordpress
  • Folder icon closed Folder open iconآموزش نصب و آپدیت افزونه‌های وردپرس
  • Folder icon closed Folder open iconآموزش فعال‌سازی Auto Update
  • Folder icon closed Folder open iconبررسی سلامت سایت (Site Health)
  • Folder icon closed Folder open iconپاکسازی افزونه‌های بلااستفاده
  • Folder icon closed Folder open iconپاکسازی قالب‌های بلااستفاده
  • Folder icon closed Folder open iconبررسی Cron Jobs وردپرس
  • Folder icon closed Folder open iconافزایش محدودیت Memory Limit وردپرس
  • Folder icon closed Folder open iconWP Toolkit: نصب وردپرس
  • Folder icon closed Folder open iconWP-CLI: نصب وردپرس
  • Folder icon closed Folder open iconایجاد محیط Staging با WP Toolkit
  • Folder icon closed Folder open iconClone کردن سایت وردپرس
  • Folder icon closed Folder open iconاستفاده از Smart Updates در WP Toolkit
  • Folder icon closed Folder open iconانتقال تغییرات Staging به سایت اصلی
  • Folder icon closed Folder open iconایجاد بکاپ و ریستور دستی وردپرس
  • Folder icon closed Folder open iconفعال‌سازی Security Hardening در WP Toolkit
  • Folder icon closed Folder open iconفعال‌سازی Two-Factor Authentication در وردپرس
  • Folder icon closed Folder open iconآموزش تغییر آدرس صفحه ورود وردپرس
  • Folder icon closed Folder open iconفعال‌سازی Password Protection برای محیط Staging
  • Folder icon closed Folder open iconآموزش افزونه WP Rocket، نصب تا بهینه سازی
  • Folder icon closed Folder open iconآموزش افزونه Litespeed cache، نصب تا بهینه سازی
  • Folder icon closed Folder open iconآموزش افزونه Wordfence Security ، نصب و پیکربندی
  • Folder icon closed Folder open iconپاکسازی کامل سایت وردپرس آلوده به بدافزار
  • Folder icon closed Folder open iconافزایش محدودیت Memory Limit وردپرس
وردپرس

آموزش انتقال wordpress از هاست دیگر

wordpress migration

WordPress Migration به معنی انتقال فایل‌ها، Database و تنظیمات یک سایت WordPress از یک Hosting Environment به محیط جدید است.

این انتقال می‌تواند در شرایط مختلف انجام شود:

  • تغییر شرکت هاستینگ
  • انتقال سایت به Server جدید
  • انتقال از Shared Hosting به VPS
  • تغییر Control Panel
  • تغییر Domain
  • انتقال از محیط Development به Production

برای انتقال WordPress تنها Copy کردن فایل‌های سایت کافی نیست. بخش مهمی از اطلاعات WordPress مانند Posts، Users، Settings و Plugin Data داخل Database قرار دارد.

به همین دلیل در یک Migration کامل معمولاً باید موارد زیر منتقل شوند:

WordPress Files
        +
Database
        +
Configuration
        +
Domain / DNS

طبق مستندات WordPress، در انتقال سایت باید هم فایل‌های WordPress و هم Database در نظر گرفته شوند و در صورت تغییر Domain یا URL نیز اطلاعات داخل Database اصلاح شوند.

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


قبل از شروع انتقال چه چیزهایی لازم است؟

قبل از Migration بهتر است اطلاعات زیر در دسترس باشند:

هاست مبدا

  • File Manager یا FTP/SFTP
  • Database
  • phpMyAdmin یا دسترسی MySQL
  • WordPress Dashboard
  • در صورت امکان SSH

هاست مقصد

  • Domain یا Subscription
  • Document Root
  • Database جدید
  • Database User
  • PHP Version
  • File Manager یا SSH
  • SSL

همچنین قبل از هر Migration از سایت مبدا یک Backup کامل داشته باشید.

Backup باید حداقل شامل:

Website Files
Database

باشد.

ایجاد بکاپ و ریستور دستی وردپرس


بررسی سازگاری هاست مقصد

قبل از انتقال، PHP Environment هاست جدید را با هاست قبلی مقایسه کنید.

موارد مهم:

PHP Version
PHP Extensions
memory_limit
upload_max_filesize
post_max_size
max_execution_time
Database Version

اگر سایت قدیمی باشد، تغییر همزمان Hosting و PHP Version می‌تواند باعث Error شود.

برای مثال ممکن است سایت روی:

PHP 7.4

فعال باشد اما هاست جدید به‌صورت پیش‌فرض:

PHP 8.3

استفاده کند.

در چنین شرایطی Plugin یا Theme قدیمی ممکن است بعد از Migration با:

Fatal Error
Critical Error
500 Internal Server Error

مواجه شود.

بنابراین در مرحله اول بهتر است Environment مقصد تا حد امکان با Environment قبلی سازگار باشد و Upgradeها بعد از اطمینان از سلامت Migration انجام شوند.


روش‌های انتقال WordPress

در این مقاله پنج روش را بررسی می‌کنیم:

روشسطحمناسب برای
روش 1: انتقال دستیمتوسطتقریباً تمام هاست‌ها
روش 2: Migration Pluginسادهکاربران بدون SSH
روش 3: WP Toolkit Importسادههاست‌های Plesk دارای WP Toolkit
روش 4: SSH و WP-CLIپیشرفتهVPS و کاربران فنی
روش 5: انتقال کامل Hosting Accountوابسته به Providerجابه‌جایی کل Account

روش اول: انتقال دستی WordPress

این روش عمومی‌ترین روش Migration است و تقریباً روی هر Hosting Control Panel قابل انجام است.

در این روش:

Old Host
   │
   ├── WordPress Files
   └── Database
          ↓
       Transfer
          ↓
New Host

ابتدا Files و Database از هاست قدیمی دریافت شده و سپس روی هاست جدید Restore می‌شوند.


مرحله اول: دریافت فایل‌های WordPress

در File Manager هاست مبدا وارد Document Root سایت شوید.

در cPanel معمولاً:

public_html

در DirectAdmin ممکن است:

domains/example.com/public_html

و در Plesk معمولاً:

httpdocs

باشد.

تمام فایل‌های سایت باید منتقل شوند؛ از جمله:

wp-admin/
wp-content/
wp-includes/
wp-config.php
.htaccess
index.php

وجود Directory زیر اهمیت ویژه‌ای دارد:

wp-content/

زیرا Themeها، Pluginها و Uploadهای سایت در آن قرار دارند.


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

در File Manager همه فایل‌های WordPress را انتخاب کرده و یک Archive ایجاد کنید.

برای مثال:

wordpress-site.zip

سپس آن را Download کنید.

برای سایت‌های بزرگ استفاده از SSH، tar یا rsync معمولاً سریع‌تر از File Manager است.


مرحله سوم: Export کردن Database

برای بررسی دقیق نحوه import و export در هریک از کنترل پنل‌ها می‌توانید از لینک‌های زیر استفاده کنید:

  • دانلود و آپلود بکاپ دیتابیس در Cpanel
  • دانلود و آپلود بکاپ دیتابیس در Plesk
  • دانلود و آپلود بکاپ دیتابیس در Directadmin

از phpMyAdmin یا ابزار Database Management هاست مبدا وارد Database مربوط به WordPress شوید.

اگر نمی‌دانید سایت از چه Databaseای استفاده می‌کند، فایل:

wp-config.php

را باز کنید.

مقدار:

define( 'DB_NAME', 'example_database' );

نام Database را مشخص می‌کند.

سپس از Database یک Export با فرمت:

SQL

تهیه کنید.

برای مثال:

wordpress.sql

مرحله چهارم: Upload فایل‌ها روی هاست مقصد

در Hosting جدید ابتدا Document Root صحیح Domain را مشخص کنید.

سپس:

wordpress-site.zip

را Upload کرده و Extract کنید.

در نهایت باید فایل:

index.php

مستقیماً در Document Root قرار گرفته باشد.

مثلاً:

public_html/index.php

نه:

public_html/wordpress/index.php

مگر اینکه عمداً قصد نصب WordPress در Subdirectory را داشته باشید.

برای آشنایی بیشتر با File Manager و ساختار نصب:

آموزش نصب دستی وردپرس از طریق File Manager


مرحله پنجم: ایجاد Database در هاست جدید

در Control Panel مقصد یک Database جدید ایجاد کنید.

سپس:

  1. Database User ایجاد کنید.
  2. Password قوی تعیین کنید.
  3. User را به Database متصل کنید.
  4. Permissionهای لازم را به User بدهید.

اطلاعات نهایی مشابه زیر خواهد بود:

Database Name:      newhost_wp
Database Username:  newhost_wpuser
Database Password:  **************
Database Host:      localhost

مرحله ششم: Import کردن Database

در phpMyAdmin هاست مقصد وارد Database جدید شوید.

ابتدا وارد دیتابیس جدید شوید و برای اطمینان تمام tableهای موجود را انتخاب و سپس Drop کنید. با این کار مطمئن خواهیم بود که هیچ اطلاعاتی در دیتابیس قدیمی وجود ندارد.

سپس:

Import

را انتخاب کرده و فایل:

wordpress.sql

را Import کنید.

پس از پایان Import باید Tableهای WordPress مشاهده شوند.

برای مثال:

wp_posts
wp_options
wp_users
wp_postmeta
wp_terms

ممکن است Prefix سایت شما به‌جای:

wp_

مقدار دیگری باشد.


مرحله هفتم: ویرایش wp-config.php

اکنون اطلاعات Database در هاست مقصد با اطلاعات قبلی متفاوت است.

فایل:

wp-config.php

را باز کنید.

مقادیر زیر را پیدا کنید:

define( 'DB_NAME', 'old_database' );
define( 'DB_USER', 'old_user' );
define( 'DB_PASSWORD', 'old_password' );
define( 'DB_HOST', 'localhost' );

و اطلاعات Database جدید را قرار دهید:

define( 'DB_NAME', 'newhost_wp' );
define( 'DB_USER', 'newhost_wpuser' );
define( 'DB_PASSWORD', 'NewDatabasePassword' );
define( 'DB_HOST', 'localhost' );

اگر Database Host در سرویس مقصد چیزی غیر از:

localhost

است، مقدار صحیح Provider را استفاده کنید.


اگر Domain تغییر نکرده است

اگر سایت از:

example.com

در هاست قدیمی به همان:

example.com

در هاست جدید منتقل می‌شود، معمولاً نیازی به تغییر siteurl و home ندارید.

در این حالت اصلی‌ترین تغییر پس از Migration مربوط به:

DNS

خواهد بود.


تست سایت قبل از تغییر DNS

بهتر است قبل از اینکه Domain را روی IP جدید قرار دهید، سایت را روی Server جدید تست کنید.

یکی از روش‌های مناسب تغییر موقت فایل:

hosts

روی کامپیوتر شخصی است.

برای مثال:

203.0.113.20 example.com
203.0.113.20 www.example.com

در این حالت فقط سیستم شما Domain را به IP جدید Resolve می‌کند و کاربران همچنان سایت قدیمی را مشاهده می‌کنند.

این روش برای بررسی موارد زیر بسیار مناسب است:

  • Homepage
  • Login
  • Pluginها
  • Theme
  • SSL
  • PHP Errors
  • صفحات داخلی
  • فرم‌ها

پس از پایان تست، Entry اضافه‌شده به hosts را حذف کنید.


مرحله هشتم: تغییر DNS

پس از اطمینان از عملکرد سایت، A Record مربوط به Domain را به IP هاست جدید تغییر دهید.

برای مثال:

example.com      A      203.0.113.20
www.example.com  A      203.0.113.20

اگر DNS روی Provider دیگری مدیریت می‌شود، تغییر باید در همان DNS Provider انجام شود.

برای بررسی نتیجه می‌توانید از:

nslookup

یا:

dig

استفاده کنید.

مقالات مرتبط:

  • آموزش کامل nslookup
  • آموزش کامل dig
  • عیب‌یابی تفاوت نتیجه DNS بین سرور و کامپیوتر شخصی

اگر Domain نیز تغییر کند

فرض کنید سایت قبلی:

old-example.com

بوده و سایت جدید:

new-example.com

است.

در این حالت فقط تغییر DNS کافی نیست.

WordPress URL در Database نیز باید تغییر کند.

WordPress در Database ممکن است مقادیری مانند:

https://old-example.com

را در:

  • Options
  • Posts
  • Post Metadata
  • Widget Data
  • Plugin Settings
  • Serialized Data

ذخیره کرده باشد.

بنابراین انجام یک Search & Replace صحیح ضروری است.

این یک مورد از ذخیره نام url در wp_options است.

آموزش انتقال wordpress از هاست دیگر

تغییر URL با WP-CLI

یکی از امن‌ترین روش‌ها استفاده از:

wp search-replace

است.

ابتدا Dry Run انجام دهید(به معنی بررسی بدون اعمال تغییرات):

wp search-replace \
  'https://old-example.com' \
  'https://new-example.com' \
  --all-tables-with-prefix \
  --dry-run

اگر نتیجه صحیح بود:

wp search-replace \
  'https://old-example.com' \
  'https://new-example.com' \
  --all-tables-with-prefix

یکی از مزایای مهم wp search-replace این است که Serialized PHP Data را نیز به‌درستی مدیریت می‌کند.

به همین دلیل انجام Search/Replace خام با SQL روی تمام Database توصیه نمی‌شود؛ زیرا ممکن است Serialized Data مربوط به Themeها یا Pluginها خراب شود.


تغییر Site URL

برای تغییر مستقیم URLهای اصلی نیز می‌توان از WP-CLI استفاده کرد:

wp option update home 'https://new-example.com'
wp option update siteurl 'https://new-example.com'

این روش در مستندات رسمی Migration وردپرس نیز معرفی شده است.


روش دوم: انتقال با Migration Plugin

اگر دسترسی SSH ندارید یا نمی‌خواهید Files و Database را دستی منتقل کنید، می‌توان از Migration Plugin استفاده کرد.

Pluginهای مختلفی برای این کار وجود دارند، از جمله:

All-in-One WP Migration
Duplicator

WordPress Learn نیز روش Migration با Plugin را برای انتقال سایت بین Host یا Domain آموزش داده است.


ساختار کلی Migration با Plugin

Workflow معمولاً به شکل زیر است:

Old WordPress
      ↓
Install Migration Plugin
      ↓
Create Export / Package
      ↓
Download Package
      ↓
Prepare New Host
      ↓
Import Package
      ↓
Verify Website

هر Plugin Workflow مخصوص خود را دارد، اما منطق کلی تقریباً مشابه است.


مثال: نصب افزونه Duplicator

در سایت مبدا وارد:

Plugins
→ Add New Plugin

شوید.

Plugin موردنظر را از بخش add new plugin نصب:

آموزش انتقال wordpress از هاست دیگر
آموزش انتقال wordpress از هاست دیگر

و سپس از بخش installed plugins فعال کنید:

آموزش انتقال wordpress از هاست دیگر

پس از فعال سازی باید در پنل سمت چپ اطلاعات پلاگین برای شما نمایش داده شود:

آموزش انتقال wordpress از هاست دیگر
Database
Media
Themes
Plugins
WordPress Data

محدودیت حجم Upload یا Import می‌تواند بسته به PHP Configuration، Plugin Version و Hosting Plan متفاوت باشد. برای سایت‌های بزرگ، روش دستی یا SSH معمولاً کنترل بیشتری در اختیار Administrator قرار می‌دهد.


مثال: انتقال با Duplicator

Duplicator نیز می‌تواند از سایت یک Migration Package ایجاد کند.

Workflow معمولاً شامل ساخت:

Archive
+
Installer

و انتقال آن‌ها به مقصد است.

برای انتقال Archive عملا باید ادامه مراحل از طریق شیوه اول (در file manager) انجام شود. در installer برای شما یک محیط نصب نمایش داده می‌شود.

مراحل تهیه بکآپ مطابق ویدئوی زیر می‌باشد. در تنظیمات ایجاد installer می‌توانیم اطلاعات database مقصد را وارد کنیم تا در هنگام نصب نیازی به وارد کردن آن‌ها نباشد:

مستندات رسمی Duplicator نیز روش Classic Installation را برای Migration سایت به Environment جدید ارائه می‌کند.

در سایت‌های بزرگ قبل از انتخاب Plugin Migration باید مواردی مانند:

Disk Space
PHP Memory
Execution Time
Upload Limit
Archive Size

بررسی شوند.

برای انتقال تنها کافی است که فایل‌ها را به public_html مقصد منتقل کنید و سپس وارد example.com/installer.php شوید:

آموزش انتقال wordpress از هاست دیگر

در ویدئوی بعدی شیوه انتقال به هاست مبدا نمایش داده شده است.

پس از ورود مجدد به پنل ادمین با همچین صفحه ای مواجه می‌شوید:

آموزش انتقال wordpress از هاست دیگر

مزایا و معایب Migration Plugin

مزایامعایب
استفاده سادهمحدودیت حجم در بعضی Pluginها
عدم نیاز به SSHوابسته به PHP Resources
Search/Replace خودکار در بسیاری از ابزارهاTimeout در سایت‌های بزرگ
مناسب کاربران عادیوابستگی به Plugin

برای سایت‌های کوچک و متوسط این روش معمولاً ساده‌ترین گزینه است.


روش سوم: انتقال WordPress با WP Toolkit در Plesk

اگر هاست مقصد از Plesk و WP Toolkit استفاده می‌کند، ممکن است امکان Import مستقیم سایت WordPress از Server دیگر وجود داشته باشد.

Plesk این قابلیت را با:

Web Site Migration

در WP Toolkit ارائه می‌کند و هنگام Migration، Files و Database سایت WordPress به Server جدید Copy می‌شوند.

در Plesk وارد:

Websites & Domains
→ WordPress

شوید.

سپس:

Import

را انتخاب کنید.

اطلاعات موردنیاز Migration را وارد کرده و مراحل Wizard را ادامه دهید.

در طی این فرایند اکانت مقصد با گرفتن اطلاعات ftp به سایت مبدا دسترسی پیدا کرده و تمامی فایل‌ها را منتقل و تنظیم می‌کند.

بعد از انتقال، سایت در WP Toolkit شناسایی شده و می‌توان آن را از همان قسمت مدیریت کرد.


Update Site URL در WP Toolkit

اگر بعد از Migration آدرس سایت تغییر کرده باشد، WP Toolkit قابلیت:

Update Site URL

را نیز دارد.

WP Toolkit آدرس URL واقعی Website را با URL ثبت‌شده در WordPress Database و wp-config.php مقایسه کرده و در صورت نیاز آن را اصلاح می‌کند.

این قابلیت مخصوصاً هنگام انتقال:

old.example.com
        ↓
new.example.com

یا تغییر Domain کاربردی است.


تفاوت Import و Clone در WP Toolkit

این دو گزینه را با یکدیگر اشتباه نگیرید.

Import / Migration

برای انتقال WordPress از محیط یا Server دیگری استفاده می‌شود.

Clone

برای ایجاد یک Copy دیگر از WordPress موجود در همان Environment تحت مدیریت WP Toolkit کاربرد دارد.

برای مثال:

Production
     ↓ Clone
Staging

برای آموزش Clone:

Clone کردن سایت وردپرس


روش چهارم: انتقال با SSH و WP-CLI

اگر روی هر دو Server دسترسی SSH دارید، می‌توان Migration را سریع‌تر و با کنترل بیشتری انجام داد.

این روش برای:

  • VPS
  • Dedicated Server
  • سایت‌های بزرگ
  • Administratorها

مناسب‌تر است.


انتقال Files با rsync

برای مثال:

rsync -avz \
  /var/www/example.com/ \
  user@NEW_SERVER:/var/www/example.com/

مزیت rsync این است که در اجرای مجدد فقط Fileهای تغییرکرده را منتقل می‌کند.

این قابلیت برای کاهش Downtime بسیار مفید است.


Export Database از Command Line

روی Server قدیمی:

mysqldump -u old_user -p old_database > wordpress.sql

سپس فایل SQL را منتقل کنید:

scp wordpress.sql user@NEW_SERVER:/tmp/

روی Server جدید:

mysql -u new_user -p new_database < /tmp/wordpress.sql

سپس اطلاعات Database در:

wp-config.php

را اصلاح کنید.


Search & Replace با WP-CLI

در صورت تغییر Domain:

wp search-replace \
  'https://old-example.com' \
  'https://new-example.com' \
  --all-tables-with-prefix \
  --dry-run

و سپس:

wp search-replace \
  'https://old-example.com' \
  'https://new-example.com' \
  --all-tables-with-prefix

مستندات رسمی WP-CLI تأیید می‌کنند که این Command Serialized Data را نیز مدیریت می‌کند.


چرا WP-CLI برای تغییر URL بهتر از SQL خام است؟

فرض کنید یک Plugin مقدار Serialized زیر را ذخیره کرده باشد:

a:1:{s:3:"url";s:23:"https://old-domain.com";}

اگر فقط String داخل آن با یک URL با طول متفاوت جایگزین شود، طول Serialized Data نیز باید تغییر کند.

یک SQL Replace ساده ممکن است این ساختار را خراب کند.

اما:

wp search-replace

ساختار Serialized Data را در نظر می‌گیرد.


کاهش Downtime با rsync

برای سایت‌های بزرگ می‌توان ابتدا در حالی که سایت فعال است Files را منتقل کرد:

rsync -avz source/ destination/

سپس در زمان Cutover:

  1. سایت را موقتاً Maintenance کنید.
  2. Database نهایی را Export کنید.
  3. rsync را دوباره اجرا کنید.
  4. Database نهایی را Import کنید.
  5. DNS را تغییر دهید.

به دلیل اینکه اجرای دوم rsync فقط تغییرات را منتقل می‌کند، مدت Maintenance می‌تواند بسیار کوتاه‌تر شود.


سایت‌های WooCommerce و Membership

برای سایت‌هایی که دائماً Data جدید ایجاد می‌کنند باید دقت بیشتری داشت.

برای مثال:

WooCommerce Orders
User Registrations
Comments
Support Tickets
Form Submissions

ممکن است در فاصله بین Backup و DNS Cutover روی Server قدیمی ایجاد شوند.

اگر در ساعت:

15:00

از Database Backup بگیرید و در ساعت:

17:00

DNS را تغییر دهید، Orderهایی که بین این دو زمان ثبت شده‌اند در Backup اولیه وجود ندارند.

برای چنین سایت‌هایی بهتر است در مرحله Cutover:

Maintenance Mode
        ↓
Final Database Export
        ↓
Final File Sync
        ↓
Restore on Destination
        ↓
Test
        ↓
DNS Cutover

انجام شود.


روش پنجم: انتقال کامل Hosting Account

در بعضی شرایط هدف فقط انتقال WordPress نیست، بلکه باید کل Hosting Account منتقل شود.

این حالت ممکن است شامل:

Website
Database
Email Accounts
DNS Zones
Cron Jobs
SSL
Subdomains

باشد.

Control Panelها و Hosting Providerها ممکن است ابزار Migration مخصوص خود را ارائه دهند.

این روش مخصوصاً زمانی مناسب است که چند Website یا Email Account نیز باید همراه WordPress منتقل شوند.

اما اگر فقط یک سایت WordPress باید منتقل شود، معمولاً Migration در سطح خود WordPress کنترل بیشتری ایجاد می‌کند.

قابلیت‌های Full Account Migration به دسترسی شما و Control Panel هر دو Server بستگی دارد. در Shared Hosting ممکن است این کار فقط توسط Hosting Provider قابل انجام باشد.

برای انتقال کامل هر یک از انواع هاست‌ها می‌توانید از مقالات زیر استفاده کنید:

  • آموزش بکاپ گیری در هاست DirectAdmin
  • آموزش بکاپ گیری در هاست سی پنل
  • آموزش بکاپ گیری در هاست Plesk

بعد از Migration چه مواردی را بررسی کنیم؟

پس از انتقال، فقط باز شدن Homepage کافی نیست.

Checklist زیر را بررسی کنید.


1. Homepage

https://example.com

باید بدون Error باز شود.


2. صفحات داخلی

چند URL داخلی را باز کنید:

/about/
/contact/
/category/example/

اگر Homepage کار می‌کند ولی صفحات داخلی:

404

هستند، وارد:

Settings
→ Permalinks

شده و:

Save Changes

را بزنید.


3. WordPress Dashboard

بررسی کنید:

/wp-admin/

قابل دسترسی باشد.


4. تصاویر و Uploadها

چند تصویر از:

wp-content/uploads/

را بررسی کنید.

اگر تصاویر Missing هستند، ممکن است:

  • فایل‌ها کامل منتقل نشده باشند.
  • Permission مشکل داشته باشد.
  • URL قدیمی هنوز در Database وجود داشته باشد.

5. Pluginها

Pluginهای مهم را بررسی کنید:

Cache
Security
Forms
WooCommerce
Page Builder
SMTP

6. Theme

صفحات مهم و Layout را بررسی کنید.


7. PHP Version

بررسی کنید سایت روی PHP Version مقصد بدون Error اجرا شود.


8. PHP Extensions

برخی Pluginها ممکن است به Extensionهایی مانند:

imagick
intl
mbstring
zip
curl
gd

نیاز داشته باشند.


بررسی SSL

بعد از تغییر DNS باید SSL Certificate روی Server جدید نیز معتبر باشد.

بررسی کنید:

https://example.com

بدون Certificate Warning باز شود.

همچنین:

http://example.com

در صورت نیاز باید به:

https://example.com

Redirect شود.


مشکل Mixed Content

اگر Domain یا Protocol تغییر کرده باشد، ممکن است بعضی Resourceها هنوز با:

http://

بارگذاری شوند.

برای مثال:

http://old-example.com/wp-content/uploads/image.jpg

در سایتی که از:

https://new-example.com

استفاده می‌کند.

در این شرایط Database Search/Replace و Cache را بررسی کنید.


پاک کردن Cache

بعد از Migration Cacheهای مختلف را پاک کنید:

WordPress Cache Plugin
Server Cache
LiteSpeed Cache
Redis/Object Cache
CDN Cache
Browser Cache

Cache قدیمی می‌تواند باعث شود سایت همچنان:

  • IP قدیمی
  • Redirect قدیمی
  • URL قدیمی
  • نسخه قبلی Page

را نمایش دهد.


بررسی DNS

بعد از Cutover:

dig example.com

یا در Windows:

nslookup example.com

را اجرا کنید.

مطمئن شوید IP برگشتی همان IP Server جدید است.


بررسی Email

اگر سایت از:

Contact Form
WooCommerce Email
Password Reset
SMTP Plugin

استفاده می‌کند، ارسال Email را نیز تست کنید.

Migration Hosting می‌تواند DNS Recordهای مرتبط با Mail یا تنظیمات SMTP را تحت تأثیر قرار دهد.


بررسی Cron

در سایت‌هایی که از:

WP-Cron
Server Cron
WooCommerce Scheduled Actions

استفاده می‌کنند، Jobهای زمان‌بندی‌شده را بررسی کنید.

بررسی Cron Jobs وردپرس


بررسی File Permission و Ownership

اگر بعد از انتقال WordPress نمی‌تواند:

  • Plugin نصب کند.
  • Upload انجام دهد.
  • Cache ایجاد کند.
  • Update انجام دهد.

Ownership و Permission فایل‌ها را بررسی کنید.

مشکل Ownership مخصوصاً زمانی متداول است که Files با:

root

یا User دیگری از طریق SSH Copy شده باشند.

از اعمال:

777

به‌عنوان راه‌حل عمومی خودداری کنید.


Error Establishing a Database Connection بعد از Migration

اگر سایت پیام:

Error establishing a database connection

نمایش می‌دهد، ابتدا:

wp-config.php

را بررسی کنید.

مقادیر:

DB_NAME
DB_USER
DB_PASSWORD
DB_HOST

باید مربوط به Database مقصد باشند.

همچنین:

  • Database Import شده باشد.
  • User به Database دسترسی داشته باشد.
  • Database Server فعال باشد.

Redirect Loop بعد از انتقال

اگر Browser پیام:

Too Many Redirects

نمایش می‌دهد، موارد زیر را بررسی کنید:

  • WordPress home
  • WordPress siteurl
  • HTTPS Redirect
  • .htaccess
  • CDN
  • Reverse Proxy
  • Cache Plugin
  • Hosting Redirect

گاهی HTTPS همزمان در چند Layer Force شده است.

برای مثال:

Cloudflare
   +
Hosting Panel
   +
.htaccess
   +
WordPress Plugin

می‌تواند Redirect Loop ایجاد کند.


خطای 403 بعد از Migration

موارد احتمالی:

File Permission
Ownership
.htaccess
ModSecurity
WAF
Hosting Security Rules

را بررسی کنید.

در Server جدید ممکن است Security Policy با Server قبلی متفاوت باشد.


خطای 500 یا Critical Error بعد از Migration

موارد مهم:

PHP Version
PHP Extensions
memory_limit
Plugin Compatibility
Theme Compatibility
.htaccess
File Permission
PHP Error Log

اگر سایت روی هاست قدیمی فعال بوده ولی بلافاصله بعد از Migration Error می‌دهد، ابتدا تفاوت Environment دو Host را بررسی کنید.


آیا باید هاست قدیمی را بلافاصله حذف کنیم؟

خیر.

بعد از تغییر DNS بهتر است Host قدیمی برای مدتی فعال بماند.

به دلیل DNS Cache ممکن است برخی کاربران تا مدتی همچنان به Server قبلی متصل شوند.

همچنین Server قدیمی یک Rollback Option موقت در اختیار شما قرار می‌دهد.

تا زمانی که از موارد زیر مطمئن نشده‌اید:

DNS
Website
Database
Email
SSL
Orders
Forms
Cron

اطلاعات Host قبلی را حذف نکنید.


پیشنهاد برای کاهش Downtime

برای یک سایت معمولی:

1. Prepare destination hosting
        ↓
2. Copy files and database
        ↓
3. Test using hosts file
        ↓
4. Fix errors
        ↓
5. Final synchronization
        ↓
6. Change DNS
        ↓
7. Verify website

این روش بهتر از حالتی است که ابتدا DNS را تغییر داده و سپس شروع به انتقال Files کنید.


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

روشسادگیمناسب سایت بزرگنیاز به SSHکنترل
دستیمتوسطبلهخیرزیاد
Migration Pluginزیادوابسته به Plugin/Hostخیرمتوسط
WP Toolkit Importزیادبلهخیرمتوسط
SSH + WP-CLIکمتربسیار مناسببلهبسیار زیاد
Full Account Migrationزیادبلهوابسته به Providerکم تا متوسط

کدام روش بهتر است؟

سایت ساده و کوچک

استفاده از Migration Plugin معمولاً راحت‌تر است.

هاست Plesk دارای WP Toolkit

ابتدا قابلیت:

WordPress → Import

را بررسی کنید.

سایت بزرگ

روش:

SSH + rsync + WP-CLI

معمولاً کنترل بیشتری در اختیار Administrator قرار می‌دهد.

بدون دسترسی SSH

انتقال دستی از طریق:

File Manager + phpMyAdmin

تقریباً همیشه قابل انجام است.

انتقال کل Hosting Account

از Migration Service یا ابزار Control Panel استفاده کنید.


اشتباهات رایج هنگام انتقال WordPress

فقط Files را منتقل می‌کنیم

WordPress بدون Database سایت کامل قبلی را نمایش نخواهد داد.

فقط Database را منتقل می‌کنیم

Themeها، Pluginها و Uploadها در Files قرار دارند.

wp-config.php را اصلاح نمی‌کنیم

Database Credentialهای Host جدید معمولاً متفاوت هستند.

قبل از تست DNS را تغییر می‌دهیم

بهتر است ابتدا سایت مقصد را با hosts File آزمایش کنید.

Search & Replace خام روی Database انجام می‌دهیم

این کار می‌تواند Serialized Data را خراب کند.

از ابزارهایی مانند:

wp search-replace

استفاده کنید.

Cache را فراموش می‌کنیم

ممکن است نسخه قدیمی سایت یا Redirectهای قبلی نمایش داده شوند.

هاست قدیمی را سریع حذف می‌کنیم

در صورت وجود مشکل Rollback سخت‌تر می‌شود.

Migration سایت فروشگاهی بدون Maintenance

ممکن است Order یا Data جدید بین دو نسخه سایت تقسیم شود.


Workflow پیشنهادی

برای اکثر سایت‌های WordPress:

Backup
   ↓
Check destination environment
   ↓
Transfer files
   ↓
Transfer database
   ↓
Update wp-config.php
   ↓
Search/Replace URL if required
   ↓
Test using hosts file
   ↓
Check SSL / PHP / plugins
   ↓
Final database sync if necessary
   ↓
Change DNS
   ↓
Clear caches
   ↓
Verify website
   ↓
Keep old host temporarily

مطالعه بیشتر

مقالات مرتبط در دانشنامه:

  • آموزش نصب دستی وردپرس از طریق File Manager
  • ایجاد بکاپ و ریستور دستی وردپرس
  • نصب وردپرس با WP Toolkit
  • نصب وردپرس از طریق WP-CLI
  • Clone کردن سایت وردپرس
  • بررسی Cron Jobs وردپرس
  • آموزش کامل dig
  • آموزش کامل nslookup

مستندات رسمی:

  • WordPress Migration Documentation
  • WP-CLI Search Replace
  • Learn WordPress Migration Tutorial
  • Plesk WP Toolkit Documentation

جمع‌بندی

برای انتقال کامل WordPress باید حداقل:

Files
+
Database

به Hosting جدید منتقل شوند.

پس از آن اطلاعات:

wp-config.php

باید با Database مقصد هماهنگ شود و در صورت تغییر Domain یا Protocol، URLهای ذخیره‌شده در Database نیز اصلاح شوند.

برای Migration می‌توان از روش‌های مختلف استفاده کرد:

Manual Migration
Migration Plugin
WP Toolkit Import
SSH + WP-CLI
Hosting Account Migration

انتخاب روش مناسب به اندازه سایت، Control Panel، سطح دسترسی و میزان Downtime قابل قبول بستگی دارد.

در نهایت مهم‌ترین مرحله، تست سایت روی Server جدید قبل از DNS Cutover و بررسی مجدد Website، Database، SSL، Email، Pluginها و Cron Jobs بعد از انتقال است.

هنوز نیاز به کمک دارید؟

آیا سوالی دارید؟

آیا این مقاله برای شما مفید بود؟ بله خیر

نظرات خود را بنویسید... لغو پاسخ

اشتراک گذاری این مقاله

آموزش انتقال wordpress از هاست دیگر

کپی کردن لینک

Clipboard Icon

جدیدترین مقالات

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی ...
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

تقویم

سپتامبر 2026
شیدسچپج
 1234
567891011
12131415161718
19202122232425
2627282930 
« جولای    

عضویت

جدیدترین پست‌ها

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی Ubuntu 24.04
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

سلام