انتقال سایت از ساب‌دامین به دامنه اصلی یکی از کارهایی است که ساده به نظر می‌رسد، اما اگر بدون برنامه انجام شود می‌تواند باعث صفحه سفید، خطای دیتابیس، خراب شدن لینک‌ها، افت سئو، از دست رفتن تصاویر و خطای ریدایرکت شود. مثال رایج این است که سایت ابتدا روی blog.example.com یا new.example.com ساخته شده و بعد قرار است روی example.com فعال شود.

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

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

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

اول باید بدانید هدف دقیق چیست. آیا می‌خواهید کل سایت از ساب‌دامین به دامنه اصلی منتقل شود؟ آیا دامنه اصلی قبلاً سایت داشته؟ آیا می‌خواهید سایت قبلی دامنه اصلی حذف شود یا فقط جایگزین شود؟ آیا آدرس صفحات تغییر می‌کند یا ساختار URL همان است؟ پاسخ این سوال‌ها تعیین می‌کند که ریدایرکت‌ها، بکاپ و مراحل انتقال چطور انجام شود.

مثال: اگر آدرس قبلی blog.example.com/post-1 بوده و آدرس جدید باید example.com/post-1 شود، می‌توان ریدایرکت مستقیم و تمیز ساخت. اما اگر ساختار جدید example.com/blog/post-1 باشد، نقشه ریدایرکت متفاوت می‌شود.

مرحله اول: بکاپ کامل بگیرید

بکاپ باید شامل فایل‌ها و دیتابیس باشد. در وردپرس، فقط کپی کردن پوشه‌ها کافی نیست؛ نوشته‌ها، تنظیمات، سفارش‌ها، کاربران و بیشتر اطلاعات داخل دیتابیس است. برای ووکامرس، زمان بکاپ بسیار مهم است؛ چون اگر در زمان انتقال سفارش جدید ثبت شود، ممکن است در نسخه جدید وجود نداشته باشد.

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

مرحله دوم: آماده‌سازی دامنه اصلی

دامنه اصلی باید به مسیر درست روی هاست یا سرور اشاره کند. در cPanel معمولاً مسیر دامنه اصلی public_html است، اما در سرورهای مختلف ممکن است مسیر Document Root متفاوت باشد. اگر دامنه اصلی قبلاً محتوایی داشته، آن محتوا را بدون بکاپ حذف نکنید. بهتر است ابتدا یک پوشه backup_old_site بسازید یا از کل مسیر خروجی بگیرید.

مرحله سوم: انتقال فایل‌ها

فایل‌های سایت را از مسیر ساب‌دامین به مسیر دامنه اصلی منتقل کنید. برای وردپرس، فایل‌های اصلی شامل wp-admin، wp-includes، wp-content و فایل‌هایی مثل wp-config.php و .htaccess هستند. اگر فقط wp-content را منتقل کنید، ممکن است هسته وردپرس یا تنظیمات ناقص شود. اگر دامنه اصلی وردپرس تازه نصب‌شده دارد، باید تصمیم بگیرید فایل‌ها را جایگزین کنید یا با احتیاط merge انجام دهید.

مرحله چهارم: تغییر آدرس سایت در وردپرس

در وردپرس، دو مقدار مهم وجود دارد: WordPress Address و Site Address. اگر این دو هنوز روی ساب‌دامین باشند، بعد از انتقال ممکن است سایت شما دوباره به آدرس قبلی برگردد یا ورود به مدیریت مشکل پیدا کند. اگر به پیشخوان دسترسی دارید، از تنظیمات عمومی آدرس را اصلاح کنید. اگر دسترسی ندارید، می‌توانید از wp-config.php یا دیتابیس کمک بگیرید.

define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');

این روش برای نجات سریع سایت مفید است، اما بهتر است بعد از پایدار شدن، مقدارهای اصلی در دیتابیس هم درست شوند و تنظیمات hard-code شده فقط در صورت نیاز باقی بمانند.

مرحله پنجم: Search & Replace برای لینک‌های قدیمی

بعد از تغییر دامنه، هنوز ممکن است داخل دیتابیس لینک‌های قدیمی مثل https://blog.example.com/wp-content/uploads/... وجود داشته باشد. باید Search & Replace امن انجام دهید. در وردپرس، داده‌های serialized وجود دارد؛ بنابراین جایگزینی ساده با Find/Replace خام در فایل SQL می‌تواند بعضی تنظیمات قالب یا افزونه‌ها را خراب کند. بهتر است از ابزارهای مخصوص وردپرس یا WP-CLI استفاده شود.

wp search-replace 'https://blog.example.com' 'https://example.com' --skip-columns=guid --dry-run

ابتدا dry-run بگیرید. اگر خروجی منطقی بود، بدون dry-run اجرا کنید. ستون guid را معمولاً تغییر نمی‌دهند مگر در سناریوهای خاص؛ چون برای شناسایی آیتم‌های فید استفاده می‌شود.

مرحله ششم: ریدایرکت 301 از ساب‌دامین به دامنه اصلی

برای حفظ سئو و تجربه کاربر، آدرس‌های قدیمی باید با 301 به آدرس جدید منتقل شوند. اگر کاربر یا گوگل وارد آدرس قدیمی شود، باید به معادل درست در دامنه اصلی برود. ریدایرکت کلی به صفحه اصلی کافی نیست؛ چون ارزش صفحات داخلی را از بین می‌برد و کاربر را گیج می‌کند.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^blog.example.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]

بعد از تنظیم ریدایرکت، چند URL مهم را تست کنید: صفحه اصلی، نوشته‌ها، دسته‌ها، تصاویر، پنل مدیریت، sitemap و checkout اگر فروشگاه دارید.

مرحله هفتم: سئو، سرچ کنسول و نقشه سایت

بعد از انتقال، sitemap جدید را بررسی و در Search Console ثبت کنید. canonical صفحات باید آدرس جدید را نشان دهد. robots.txt نباید مسیر جدید را مسدود کند. لینک‌های داخلی باید به دامنه اصلی اشاره کنند، نه ساب‌دامین قدیمی. اگر ساب‌دامین قبلاً در Search Console جدا ثبت شده، وضعیت خطاها و ریدایرکت‌ها را چند هفته پیگیری کنید.

خطاهای رایج بعد از انتقال

  • Redirect loop: معمولاً از تنظیم اشتباه SSL، .htaccess یا افزونه ریدایرکت است.
  • تصاویر لود نمی‌شوند: لینک‌های wp-content هنوز روی ساب‌دامین هستند یا permission مشکل دارد.
  • ورود به مدیریت انجام نمی‌شود: siteurl/home، کوکی‌ها یا کش مرورگر را بررسی کنید.
  • افت رتبه: ریدایرکت صفحه به صفحه، canonical و sitemap را کنترل کنید.
  • خطای دیتابیس: wp-config.php و اطلاعات DB_USER/DB_PASSWORD/DB_NAME را بررسی کنید.

جمع‌بندی

انتقال از ساب‌دامین به دامنه اصلی اگر با بکاپ، تغییر درست URL، Search & Replace امن و ریدایرکت 301 انجام شود، می‌تواند بدون افت جدی سئو انجام شود. مهم‌ترین اشتباه‌ها حذف عجولانه سایت قبلی، ریدایرکت همه صفحات به صفحه اصلی، تغییر خام SQL و نادیده گرفتن سفارش‌ها یا فرم‌های جدید در زمان انتقال است.

منابع رسمی برای مطالعه بیشتر