تغییر دامنه سایت WordPress در نگاه اول ممکن است ساده به نظر برسد؛ شاید تصور کنید کافی است آدرس قدیمی را با دامنه جدید جایگزین کنید و کار تمام شود. اما در واقع، دامنه در بخشهای مختلف WordPress نقش دارد: از ساخت لینکهای داخلی و نمایش تصاویر و فایلهای رسانهای گرفته تا عملکرد افزونهها و تنظیمات سئوی سایت. به همین دلیل، یک تغییر عجولانه در دامنه WordPress میتواند باعث خرابشدن لینکها، نمایشندادن تصاویر، بروز خطا هنگام ورود یا حتی از دسترس خارجشدن سایت شود.
برای انتقال امن دامنه WordPress، بهتر است مراحل را با برنامه و بهترتیب انجام دهید. ابتدا از تمام فایلها و پایگاه داده سایت WordPress نسخه پشتیبان تهیه کنید و مطمئن شوید دامنه جدید بهدرستی به هاست متصل شده است. سپس نشانی سایت را در تنظیمات WordPress بهروزرسانی کنید. بسته به شرایط سایت، این کار ممکن است از طریق پیشخوان WordPress، فایل wp-config.php یا پایگاه داده انجام شود.
بعد از تغییر دامنه، باید لینکهایی را که در نوشتهها، برگهها، تصاویر و بخشهای دیگر سایت WordPress هنوز به دامنه قدیمی اشاره میکنند، اصلاح کنید. برای این کار از افزونه یا ابزاری معتبر استفاده کنید که دادههای سریالایز WordPress را بهدرستی پردازش میکند؛ جایگزینی مستقیم و نادرست در پایگاه داده ممکن است به تنظیمات سایت آسیب بزند. بهتر است پیش از اجرای تغییرات، ابزار را در حالت آزمایشی بررسی کنید تا از نتیجه مطمئن شوید.
ذخیره دامنه جدید در WordPress بهتنهایی پایان کار نیست. برای هدایت بازدیدکنندگان و موتورهای جستوجو، باید از دامنه قدیمی به دامنه جدید ریدایرکت ۳۰۱ تنظیم کنید. سپس بخشهای مهم WordPress، از جمله پیوندهای یکتا، تصاویر، فرمها، افزونهها، گواهی SSL و ابزارهای سئو را بررسی کنید تا مطمئن شوید همهچیز پس از انتقال درست کار میکند.
در این آموزش، تغییر دامنه WordPress را قدمبهقدم پیش میبریم: از آمادهسازی و بکاپگیری تا بهروزرسانی تنظیمات و پایگاه داده، اصلاح لینکهای داخلی، راهاندازی ریدایرکت ۳۰۱ و بررسی نهایی سایت. با اجرای دقیق این مراحل، میتوانید دامنه WordPress خود را با اطمینان بیشتری تغییر دهید و احتمال بروز خطا یا افت ترافیک را کاهش دهید.
قبل از شروع: چرا تغییر دامنه حساس است؟
WordPress آدرس سایت را در چندین نقطه کلیدی ذخیره میکند. دو مورد اصلی، فیلدهای siteurl و home در جدول wp_options دیتابیس هستند که آدرس اصلی سایت و آدرس صفحه اصلی را تعیین میکنند. اما دامنه در محتوای نوشتهها، لینکهای منو، ویجتها، تنظیمات قالب و حتی دادههای سریالایز شده افزونهها نیز وجود دارد. اگر فقط siteurl و home را عوض کنید اما لینکهای داخلی را نه، سایت بالا میآید اما تصاویر، لینکها و بخشهایی از محتوا از کار میافتند. اگر برعکس عمل کنید و همه چیز را یکجا و بدون بکاپ تغییر دهید، ممکن است پنل مدیریت را از دست بدهید و نتوانید برگردید. بنابراین، ترتیب مراحل اهمیت حیاتی دارد.
گام اول: بکاپ کامل و آمادهسازی WordPress

هیچ تغییری در دامنه نباید بدون بکاپ کامل شروع شود. بکاپ باید شامل هم فایلهای WordPress و هم دیتابیس باشد. اگر از هاست cPanel استفاده میکنید، از بخش Backup یا File Manager یک نسخه کامل بگیرید. اگر افزونه بکاپ دارید (مثل UpdraftPlus)، یک بکاپ دستی از فایلها و دیتابیس تهیه کنید و آن را خارج از سرور ذخیره کنید.
قبل از تغییر، مطمئن شوید که دامنه جدید به هاست فعلی متصل (Point) شده است و گواهی SSL برای آن قابل صدور است (برای این منظور تیکتی با مضمون تغییر دامنه اصلی هاست به دامنه مدنظر ارسال بفرمایید). اگر دامنه جدید هنوز به هاست وصل نشده باشد، پس از تغییر، سایت روی دامنه جدید بالا نمیآید و ممکن است دسترسی به پنل مدیریت را از دست بدهید. همچنین بهتر است قبل از تغییر، رکوردهای DNS دامنه جدید را بررسی کنید و مطمئن شوید که به IP درست اشاره میکنند.
گام دوم: تعریف دامنه جدید در wp-config.php
قبل از دست زدن به دیتابیس، یک راه امن برای جلوگیری از قفل شدن سایت وجود دارد: تعریف ثابتهای WP_HOME و WP_SITEURL در فایل wp-config.php. این کار باعث میشود WordPress بدون توجه به مقدار فعلی دیتابیس، از آدرس جدید استفاده کند.
فایل wp-config.php را در ریشه نصب WordPress باز کنید و قبل از خط /* That's all, stop editing! */ این دو خط را اضافه کنید:
define('WP_HOME', 'https://newdomain.com');
define('WP_SITEURL', 'https://newdomain.com');
این کار یک لایه ایمنی ایجاد میکند. اگر بعدا هنگام تغییر دیتابیس مشکلی پیش بیاید، سایت همچنان آدرس جدید را میشناسد و میتوانید وارد پنل شوید. بعد از اینکه همه مراحل با موفقیت تمام شد و سایت پایدار بود، میتوانید این خطوط را حذف کنید تا WordPress دوباره از دیتابیس پیروی کند.
نکته مهم: آدرس را با https:// و بدون اسلش انتهایی بنویسید. اگر دامنه جدید دارای www است، همان را بنویسید و در تمام مراحل یکسان نگه دارید.
گام سوم: تغییر siteurl و home در دیتابیس

حالا باید مقدار siteurl و home را در جدول wp_options عوض کنید. اگر پنل مدیریت در دسترس است، سادهترین راه از مسیر تنظیمات > همگانی است: فیلدهای «آدرس وردپرس (URL)» و «آدرس سایت (URL)» را به دامنه جدید تغییر دهید و ذخیره کنید. اما اگر به هر دلیلی به پنل دسترسی ندارید، از phpMyAdmin استفاده کنید.
در phpMyAdmin، دیتابیس WordPress را باز کنید و جدول wp_options را پیدا کنید (پیشوند ممکن است متفاوت باشد). دو ردیف با option_name برابر siteurl و home را پیدا کنید و مقدار option_value هر دو را به آدرس جدید تغییر دهید. میتوانید از دستور SQL زیر نیز استفاده کنید:
UPDATE wp_options SET option_value = replace(option_value, 'https://olddomain.com', 'https://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl';
بعد از اجرای این تغییر، اگر WP_HOME و WP_SITEURL را در wp-config.php تعریف کرده باشید، سایت باید روی دامنه جدید بالا بیاید.
گام چهارم: جستجو و جایگزینی امن لینکهای داخل

تغییر siteurl و home فقط آدرس پایه را عوض میکند. لینکهای داخلی در محتوای نوشتهها، برگهها، ویجتها و دادههای سریالایز شده افزونهها همچنان به دامنه قدیمی اشاره میکنند. در این مرحله باید همه نمونههای دامنه قدیمی را با دامنه جدید جایگزین کنید. اما یک هشدار مهم وجود دارد: دستور SQL ساده UPDATE روی دادههای سریالایز شده، آنها را بیصدا خراب میکند. به همین دلیل، استفاده از ابزاری که ساختار سریالایز PHP را درک کند، ضروری است.
روش اول: افزونه Better Search Replace
افزونه Better Search Replace استاندارد توصیهشده برای این کار است، بهویژه برای تغییر دامنه و مدیریت امن دادههای سریالایز. پس از نصب و فعالسازی، از مسیر ابزارها > Better Search Replace وارد شوید. در فیلد «جستجو برای» دامنه قدیمی و در «جایگزینی با» دامنه جدید را وارد کنید (بدون https:// یا با آن، بسته به نسخه، اما یکسان در هر دو فیلد). جدولهای مربوط به WordPress را انتخاب کنید و گزینه Run a dry run را فعال کنید تا قبل از اعمال واقعی، پیشنمایش تغییرات را ببینید. بعد از بررسی، تیک dry run را بردارید و عملیات را اجرا کنید.
روش دوم: WP-CLI
اگر به SSH دسترسی دارید، WP-CLI سریعترین و امنترین راه است. اول یک dry run بگیرید تا ببینید چه چیزی تغییر میکند، سپس عملیات واقعی را انجام دهید:
wp search-replace 'https://olddomain.com' 'https://newdomain.com' --dry-run
wp search-replace 'https://olddomain.com' 'https://newdomain.com'
WP-CLI بهصورت خودکار دادههای سریالایز را مدیریت میکند و میتوانید با گزینههای --skip-columns=guid و --report-changed-only خروجی را دقیقتر کنید.
گام پنجم: ریدایرکت ۳۰۱ و بهروزرسانی SEO
بعد از اینکه سایت روی دامنه جدید کار کرد، باید بازدیدکنندگانی که هنوز از دامنه قدیمی وارد میشوند را به دامنه جدید هدایت کنید. یک ریدایرکت ۳۰۱ (انتقال دائمی) از دامنه قدیمی به دامنه جدید تنظیم کنید تا هم کاربران و هم موتورهای جستجو به آدرس درست برسند. این کار را میتوانید از پنل هاست (مثلا در cPanel از بخش Redirects) یا با قوانین .htaccess انجام دهید.
از نظر SEO، حتما دامنه جدید را در Google Search Console اضافه کنید، نقشه سایت جدید را ارسال کنید و از ویژگی «Change of Address» در Search Console دامنه قدیمی استفاده کنید تا گوگل سریعتر تغییر را تشخیص دهد. همچنین لینکهای داخلی باقیمانده در منوها، ویجتها، فوتر و تنظیمات افزونهها را دستی بررسی و اصلاح کنید.
گام ششم: تست نهایی و رفع مشکلات رایج
پس از انجام همه مراحل، سایت را کامل تست کنید: ورود به پنل مدیریت، باز شدن صفحات، نمایش تصاویر، فرمها، درگاه پرداخت (اگر فروشگاهی است)، ریدایرکتها و گواهی SSL. اگر با مشکل روبرو شدید، رایجترین سناریوها و راهحلها را در جدول زیر ببینید:
| مشکل | علت احتمالی | راهحل |
|---|---|---|
| قفل شدن از پنل مدیریت | آدرسهای siteurl و home اشتباه یا ناهماهنگ |
افزودن WP_HOME و WP_SITEURL در wp-config.php و اصلاح دیتابیس از phpMyAdmin |
| تصاویر یا لینکها خراب شدهاند | جایگزینی ناقص لینکهای داخلی | اجرای مجدد Better Search Replace یا WP-CLI و بررسی dry run |
| خطای ۴۰۳ یا صفحه سفید | تداخل دامنه، HTTPS یا کش |
پاک کردن کش مرورگر و افزونه کش، بررسی .htaccess و ریدایرکتها |
| سایت به دامنه قدیمی ریدایرکت میشود | باقی ماندن ریدایرکت قدیمی یا مقدار دیتابیس | بررسی جدول wp_options و قوانین ریدایرکت در هاست |
خطای SSL |
گواهی برای دامنه جدید صادر نشده | صدور مجدد گواهی (Let’s Encrypt یا cPanel) برای دامنه جدید |
اگر سایت کاملا از دسترس خارج شد و به پنل هم دسترسی نداشتید، نگران نباشید: با دسترسی به phpMyAdmin مقدار siteurl و home را به حالت قبل برگردانید، یا از بکاپی که در گام اول گرفتید استفاده کنید.
نتیجهگیری
تغییر دامنه WordPress ممکن است در نگاه اول فقط به عوضکردن یک آدرس خلاصه شود، اما در عمل با بخشهای مختلف سایت، از تنظیمات اصلی و پایگاه داده گرفته تا لینکهای داخلی، تصاویر و سئو، سروکار دارد. اگر مراحل را با عجله یا به ترتیب نادرست انجام دهید، ممکن است با لینکهای خراب، تصاویر ناپدیدشده یا حتی سایتی روبهرو شوید که دیگر بهدرستی باز نمیشود. خبر خوب این است که با یک برنامه مشخص، این فرایند کاملاً قابل مدیریت است.
مسیر ایمن را با تهیه یک نسخه پشتیبان کامل از فایلها و پایگاه داده آغاز کنید. بکاپ، همان نقطه امنی است که اگر در هر مرحله مشکلی پیش آمد، میتوانید به آن برگردید. پس از آن، نشانی دامنه جدید را در فایل wp-config.php و با تعریف WP_HOME و WP_SITEURL مشخص کنید. در مرحله بعد، مقادیر home و siteurl را در پایگاه داده بررسی و بهروزرسانی کنید تا WordPress بداند از این پس باید با دامنه جدید کار کند.
سپس نوبت به لینکهایی میرسد که در نوشتهها، برگهها، تنظیمات قالب و بخشهای مختلف سایت به دامنه قدیمی اشاره میکنند. برای جایگزینی این آدرسها، از ابزاری استفاده کنید که دادههای سریالایز WordPress را بهدرستی پردازش میکند؛ جایگزینی ساده و مستقیم در پایگاه داده ممکن است ساختار بعضی دادهها را خراب کند. بهتر است پیش از اعمال تغییرات واقعی، ابزار انتخابی را در حالت آزمایشی یا Dry Run اجرا کنید تا ببینید چه مواردی قرار است تغییر کنند.
وقتی سایت با دامنه جدید بهدرستی بالا آمد، کار را با تنظیم ریدایرکت ۳۰۱ از دامنه قدیمی به دامنه جدید ادامه دهید. این ریدایرکت بازدیدکنندگان و موتورهای جستوجو را به نشانی تازه هدایت میکند و به حفظ ارزش صفحات و ترافیک سایت کمک میکند. در پایان، نقشه سایت و تنظیمات ابزارهای سئو را بهروزرسانی کنید و بخشهای مهمی مثل پیوندهای یکتا، تصاویر، فرمها، گواهی SSL و صفحات اصلی را با دقت آزمایش کنید.
خلاصه مسیر مطمئن این است: اول بکاپ کامل، بعد تنظیم دامنه در WordPress، سپس اصلاح پایگاه داده و لینکهای داخلی، و در نهایت ریدایرکت ۳۰۱ و بهروزرسانی سئو. اگر این ترتیب را رعایت کنید، حتی در صورت بروز مشکل هم راه بازگشت خواهید داشت. مهمتر از همه، هیچ تغییری را بدون بکاپ انجام ندهید و پیش از اجرای جایگزینی لینکها، حتماً نتیجه را در حالت آزمایشی بررسی کنید.