مقالات

راهنمای جامع انتقال وردپرس از لوکال هاست به هاست واقعی (صفر تا صد)

درود بر شما. من محمدصدرا حسینی هستم، کارشناس سئو در مجموعه وزیر سئو.

فرآیند انتقال سایت وردپرس، فراتر از یک جابجایی ساده فایل است؛ این یک عملیات فنی دقیق در تقاطع سه حوزه کلیدی است. یک مهاجرت (Migration) موفق، نه تنها نیازمند دقت فنی در انتقال داده‌ها است، بلکه مستقیماً بر امنیت (Security) سایت شما در بلندمدت تأثیر می‌گذارد. بسیاری از خطاها، از انتخاب هاست نامناسب یا پیکربندی ضعیف در مقصد ناشی می‌شوند که به حوزه نگهداری هاست (Host Maintenance) بازمی‌گردد. این راهنمای جامع و مرحله‌به‌مرحله، تدوین شده تا شما را از فاز آماده‌سازی تا عیب‌یابی نهایی، به صورت کاملاً تخصصی و بدون ریسک افت سئو، هدایت کند.

جدول کاربردی (چک‌لیست فازهای انتقال)

فاز (Phase) هدف کلیدی (Key Objective) اقدامات اصلی (Core Actions)
فاز ۱: آماده‌سازی مدیریت ریسک و جمع‌آوری پیش‌نیازها تهیه بکاپ کامل (فایل و دیتابیس)، دریافت اطلاعات هاست مقصد.
فاز ۲: اجرا (انتخاب روش) انتقال کامل داده‌ها به هاست مقصد روش افزونه (آسان): استفاده از All-in-One WP Migration. روش دستی (تخصصی): انتقال FTP و درون‌ریزی دیتابیس با phpMyAdmin.
فاز ۳: پیکربندی نهایی اصلاح آدرس‌دهی و بازسازی ساختار به‌روزرسانی wp-config.php، اجرای Search & Replace، بازسازی پیوندهای یکتا (.htaccess).
فاز ۴: عیب‌یابی رفع خطاهای رایج پس از انتقال حل خطای دیتابیس، خطای 404، عدم نمایش تصاویر و خطای Mixed Content.

فاز (Phase)

هدف کلیدی (Key Objective)

اقدامات اصلی (Core Actions)

فاز ۱: آماده‌سازی

مدیریت ریسک و جمع‌آوری پیش‌نیازها

تهیه بکاپ کامل (فایل و دیتابیس)، دریافت اطلاعات هاست مقصد.

فاز ۲: اجرا (انتخاب روش)

انتقال کامل داده‌ها به هاست مقصد

روش افزونه (آسان): استفاده از All-in-One WP Migration.

روش دستی (تخصصی): انتقال FTP و درون‌ریزی دیتابیس با phpMyAdmin.

فاز ۳: پیکربندی نهایی

اصلاح آدرس‌دهی و بازسازی ساختار

به‌روزرسانی wp-config.php، اجرای Search & Replace، بازسازی پیوندهای یکتا (.htaccess).

فاز ۴: عیب‌یابی

رفع خطاهای رایج پس از انتقال

حل خطای دیتابیس، خطای 404، عدم نمایش تصاویر و خطای Mixed Content.

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

انتقال وب‌سایت (Website Migration) یکی از حساس‌ترین و پرریسک‌ترین فرآیندهای سئو تکنیکال (Technical SEO) محسوب می‌شود. یک انتقال ناقص یا اجرای نادرست آن می‌تواند به سادگی تمام اعتبار و رتبه‌هایی که برای کسب آن تلاش کرده‌اید را از بین ببرد.

فاز اول، یعنی «آماده‌سازی»، به معنای مدیریت ریسک و ایجاد یک نقشه راه شفاف است. در این مرحله، ما هیچ‌چیز را به شانس واگذار نمی‌کنیم و تمام پیش‌نیازها را برای یک انتقال روان و بدون افت رتبه (Zero-Downtime Migration) فراهم می‌سازیم.

مهم‌ترین گام: تهیه بکاپ کامل از سایت در لوکال هاست

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

این بکاپ باید کامل باشد، یعنی شامل دو بخش مجزا:

تمامی فایل‌های سایت: شامل هسته وردپرس، پوشه wp-content (حاوی قالب‌ها، افزونه‌ها و فایل‌های آپلود شده) و فایل‌های ریشه (root) مانند .htaccess.

پایگاه داده (Database): خروجی کامل از دیتابیس (معمولاً با فرمت .sql) که تمام اطلاعات محتوایی، تنظیمات و داده‌های کاربران در آن ذخیره شده است.

توصیه تخصصی: صرفاً به بکاپ‌گیری و انتقال مستقیم به هاست جدید اکتفا نکنید. بهترین استراتژی، بازیابی (Restore) این بکاپ در یک «محیط آزمایشی» (Staging Environment) یا «لوکال هاست» (Localhost) بر روی سیستم شخصی شماست. این کار به شما اجازه می‌دهد تا قبل از فعال‌سازی سایت در سرور مقصد، صحت عملکرد کامل سایت، از جمله لینک‌ها، افزونه‌ها و نمایش محتوا را در یک محیط ایزوله و بدون ریسک بررسی و تأیید کنید.

چک‌لیست پیش‌نیازها: آنچه از هاست جدید خود نیاز دارید (اطلاعات FTP، دیتابیس و cPanel/DirectAdmin)

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

۱. دسترسی به کنترل پنل: اطلاعات ورود به پنل مدیریت هاست (مانند cPanel، DirectAdmin یا Plesk) شامل آدرس URL، نام کاربری و رمز عبور.

۲. اطلاعات اکانت FTP (یا SFTP): شامل آدرس میزبان (Host)، نام کاربری، رمز عبور و پورت. این اطلاعات برای آپلود فایل‌های حجیم سایت ضروری است. (SFTP به دلیل امنیت بالاتر، همیشه ارجح است).

۳. قابلیت ایجاد پایگاه داده: شما باید امکان ایجاد یک دیتابیس MySQL (یا MariaDB) جدید را داشته باشید. اطلاعاتی که پس از ایجاد دیتابیس جدید باید یادداشت کنید عبارتند از:

نام پایگاه داده (Database Name)

نام کاربری پایگاه داده (Database User)

رمز عبور کاربر (User Password)

۴. سرورهای نام (Nameservers): آدرس DNSهای هاست جدید که در مرحله نهایی (پس از تکمیل انتقال و تست) برای اتصال دامنه به سرور جدید به آن‌ها نیاز خواهید داشت.

انتخاب بهترین روش انتقال: افزونه یا دستی؟ (تحلیل مزایا و معایب برای مبتدیان و حرفه‌ای‌ها)

دو رویکرد اصلی برای انتقال یک سایت وردپرسی وجود دارد: استفاده از افزونه‌های انتقال (Migration Plugins) و انتقال دستی (Manual Migration). انتخاب شما مستقیماً به سطح دانش فنی، حجم سایت و پیچیدگی‌های آن بستگی دارد.

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

ویژگی انتقال با افزونه (Plugin) انتقال دستی (Manual)
سطح دشواری آسان (مناسب برای مبتدیان) دشوار (نیاز به دانش فنی FTP و phpMyAdmin)
سرعت اجرا بالا (به‌خصوص برای سایت‌های کوچک تا متوسط) زمان‌بر (وابسته به سرعت آپلود و دانلود دستی)
کنترل فرآیند محدود (وابسته به گزینه‌های افزونه) کامل (کنترل ۱۰۰٪ بر فایل‌ها و جداول دیتابیس)
ریسک خطا متوسط (احتمال عدم سازگاری، خطای سرور یا Timeout در سایت‌های حجیم) پایین (اگر دقیق و توسط متخصص انجام شود)
توصیه شده برای سایت‌های وبلاگی، شرکتی (کوچک تا متوسط) سایت‌های بسیار حجیم، فروشگاه‌های ووکامرس، انتقال‌های پیچیده

ویژگی

انتقال با افزونه (Plugin)

انتقال دستی (Manual)

سطح دشواری

آسان (مناسب برای مبتدیان)

دشوار (نیاز به دانش فنی FTP و phpMyAdmin)

سرعت اجرا

بالا (به‌خصوص برای سایت‌های کوچک تا متوسط)

زمان‌بر (وابسته به سرعت آپلود و دانلود دستی)

کنترل فرآیند

محدود (وابسته به گزینه‌های افزونه)

کامل (کنترل ۱۰۰٪ بر فایل‌ها و جداول دیتابیس)

ریسک خطا

متوسط (احتمال عدم سازگاری، خطای سرور یا Timeout در سایت‌های حجیم)

پایین (اگر دقیق و توسط متخصص انجام شود)

توصیه شده برای

سایت‌های وبلاگی، شرکتی (کوچک تا متوسط)

سایت‌های بسیار حجیم، فروشگاه‌های ووکامرس، انتقال‌های پیچیده

تحلیل نهایی و توصیه تخصصی:

اگر مبتدی هستید یا سایت استانداردی با حجم زیر ۱ گیگابایت دارید، استفاده از یک افزونه معتبر (مانند All-in-One WP Migration یا Duplicator) مسیر سریع‌تر و کم‌ریسک‌تری است.

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

آمادگی، کلید انتقال بدون ریسک

فاز اول انتقال، فاز برنامه‌ریزی، مدیریت ریسک و جمع‌آوری ابزار است. با داشتن یک بکاپ کامل و قابل بازیابی در محیط لوکال، جمع‌آوری تمام اطلاعات دسترسی مورد نیاز از هاست جدید و انتخاب هوشمندانه روش انتقال (متناسب با سطح دانش فنی خود)، شما بیش از ۸۰٪ مسیر یک انتقال موفق و بدون آسیب سئو را طی کرده‌اید. هرگز در این مرحله حیاتی عجله نکنید؛ دقت در آماده‌سازی، مستقیماً بر پایداری سئوی شما پس از جابجایی تأثیر می‌گذارد.

روش اول (آسان‌ترین): انتقال خودکار با افزونه All-in-One WP Migration

افزونه «All-in-One WP Migration» یک ابزار قدرتمند برای انتقال کامل سایت است. مزیت اصلی این افزونه، سادگی فرآیند است: این ابزار کل سایت شما—شامل تمام فایل‌ها، پایگاه داده، افزونه‌ها، قالب‌ها و رسانه‌ها—را در یک فایل واحد با فرمت .wpress بسته‌بندی می‌کند.

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

راهنمای گام به گام: نصب و گرفتن خروجی (Export) از لوکال هاست

این فرآیند در مبدأ (سایتی که روی لوکال هاست شما قرار دارد) انجام می‌شود:

نصب افزونه در مبدأ: وارد پیشخوان وردپرس در لوکال هاست خود شوید. به بخش «افزونه‌ها» > «افزودن» بروید و افزونه «All-in-One WP Migration» را جستجو، نصب و فعال کنید.

شروع فرآیند خروجی: پس از فعال‌سازی، گزینه‌ای با همین نام به منوی کناری پیشخوان اضافه می‌شود. روی آن رفته و زیرمنوی «Export» (خروجی) را انتخاب کنید.

انتخاب نوع خروجی: در صفحه باز شده، روی دکمه «EXPORT TO» (خروجی به) کلیک کنید.

انتخاب گزینه «فایل»: از لیست باز شده، گزینه «File» (فایل) را انتخاب کنید. این ساده‌ترین روش است و فایل نهایی را مستقیماً در مرورگر شما دانلود می‌کند.

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

روی دکمه دانلود کلیک کنید تا فایل .wpress سایت خود را ذخیره نمایید. این فایل، نسخه کامل و پشتیبان سایت شماست.

آموزش تصویری: نصب وردپرس خام در هاست واقعی و درون‌ریزی (Import) فایل

حالا به مقصد (هاست جدید) می‌رویم. فرض بر این است که شما یک وردپرس کاملاً خام و جدید روی هاست واقعی خود نصب کرده‌اید:

نصب وردپرس خام: وارد cPanel یا DirectAdmin هاست جدید خود شده و با استفاده از ابزارهای نصب خودکار (مانند Softaculous) یک وردپرس کاملاً تمیز و بدون هیچ محتوای اضافه‌ای نصب کنید.

ورود و نصب افزونه در مقصد: وارد پیشخوان وردپرس جدید (که روی هاست واقعی است) شوید. دقیقاً همان افزونه «All-in-One WP Migration» را در این سایت نیز نصب و فعال کنید.

انتخاب گزینه «درون‌ریزی»: این بار در منوی افزونه، به بخش «Import» (درون‌ریزی) بروید.

آپلود فایل بکاپ: صفحه‌ای مشابه بخش خروجی خواهید دید. روی دکمه «IMPORT FROM» (درون‌ریزی از) کلیک کرده و گزینه «File» (فایل) را انتخاب کنید.

فایل .wpress را که در مرحله قبل از لوکال هاست دانلود کرده بودید، انتخاب و آپلود نمایید.

تأیید بازنویسی (Crucial Step): پس از اتمام آپلود، افزونه یک هشدار جدی نمایش می‌دهد:

“این فرآیند تمام اطلاعات سایت فعلی شما شامل پایگاه داده، فایل‌ها و… را با اطلاعات فایل بکاپ بازنویسی (Overwrite) خواهد کرد.” این دقیقاً همان چیزی است که ما می‌خواهیم. روی دکمه «Proceed» (ادامه) کلیک کنید.

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

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

ورود مجدد: اکنون سایت جدید شما کاملاً جایگزین شده است. شما باید با نام کاربری و رمز عبور سایت لوکال هاست خود وارد شوید (اطلاعات ورود وردپرس خام قبلی از بین رفته است).

ذخیره مجدد پیوندهای یکتا: بلافاصله پس از ورود، به بخش «تنظیمات» > «پیوندهای یکتا» (Permalinks) بروید و بدون هیچ تغییری، فقط روی دکمه «ذخیره تغییرات» کلیک کنید. این کار فایل .htaccess را بازسازی کرده و از خطای 404 در صفحات داخلی جلوگیری می‌کند.

تجربه ما: چگونه مشکل محدودیت حجم آپلود در این افزونه را دور بزنیم؟

بزرگترین چالش در نسخه رایگان این افزونه، محدودیت حجم آپلود (Upload File Size Limit) در بخش «Import» است. این محدودیت معمولاً توسط تنظیمات سرور (PHP) تعیین می‌شود و ممکن است اجازه آپلود فایل .wpress شما را (اگر حجیم باشد) ندهد.

در اینجا سه راه‌حل عملی بر اساس تجربه ما وجود دارد:

راه‌حل پولی (سریع‌ترین): خرید افزونه جانبی (Extension) رسمی «Unlimited Extension» از توسعه‌دهنده. این کار تمام محدودیت‌ها را فوراً حذف می‌کند.

راه‌حل فنی (رایگان، نیاز به دسترسی هاست): این محدودیت مستقیماً به تنظیمات PHP در سرور شما مرتبط است. اگر به فایل php.ini یا تنظیمات PHP در کنترل پنل هاست خود دسترسی دارید، باید مقادیر زیر را افزایش دهید:

upload_max_filesize

post_max_size

memory_limit

max_execution_time

راه‌حل تخصصی (بهترین روش رایگان): اگر راه‌حل فنی پیچیده است، از این ترفند استفاده کنید:

فایل .wpress خود را از طریق FTP یا «File Manager» هاست، مستقیماً در پوشه wp-content/ai1wm-backups در وردپرس مقصد (هاست واقعی) آپلود کنید.

پس از اتمام آپلود از طریق FTP، به پیشخوان وردپرس > All-in-One WP Migration > بخش «Backups» (پشتیبان‌ها) بروید.

شما مشاهده خواهید کرد که فایل شما اکنون در لیست موجود است.

کافی است روی گزینه «Restore» (بازیابی) کلیک کنید. این کار فرآیند آپلود از طریق مرورگر را دور می‌زند و مستقیماً فایل را از روی سرور بازخوانی می‌کند.

روش دوم (تخصصی): انتقال دستی سایت وردپرس (FTP و phpMyAdmin)

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

گام اول: خروجی گرفتن (Export) از پایگاه داده لوکال از طریق phpMyAdmin

پایگاه داده (Database) حاوی تمام محتوا، تنظیمات، کاربران و اطلاعات حیاتی سایت شماست.

دسترسی بهphpMyAdmin: در محیط لوکال هاست خود (مانند XAMPP یا Laragon)، ابزار phpMyAdmin را باز کنید.

انتخاب دیتابیس: از ستون سمت چپ، روی نام پایگاه داده‌ای که وردپرس شما روی آن نصب شده است، کلیک کنید.

رفتن به بخش Export: در منوی بالا، روی تب «Export» (خروجی) کلیک نمایید.

تنظیمات خروجی:

Export Method: گزینه «Quick» (سریع) را انتخاب کنید.

Format: اطمینان حاصل کنید که فرمت «SQL» انتخاب شده باشد.

دریافت فایل: روی دکمه «Go» (یا «Export») کلیک کنید. یک فایل با پسوند .sql شروع به دانلود می‌کند. این فایل، نسخه پشتیبان کامل پایگاه داده شماست.

گام دوم: فشرده‌سازی و آپلود تمام فایل‌های وردپرس با FTP (یا File Manager هاست)

این بخش شامل انتقال تمام پوشه‌ها و فایل‌های هسته وردپرس، افزونه‌ها، قالب‌ها و رسانه‌های شماست.

فشرده‌سازی فایل‌ها: به پوشه‌ای که فایل‌های وردپرس شما در لوکال هاست قرار دارد (مثلاً htdocs/mysite) بروید. تمام فایل‌ها و پوشه‌ها (شامل wp-admin, wp-content, wp-includes و…) را انتخاب کرده و آن‌ها را به یک فایل .zip واحد فشرده کنید.

آپلود فایل Zip (روش پیشنهادی):

وارد کنترل پنل هاست جدید خود (cPanel/DirectAdmin) شوید و «File Manager» را باز کنید.

به پوشه ریشه وب‌سایت (معمولاً public_html یا domains/yourdomain.com/public_html) بروید.

فایل .zip را که در مرحله قبل ساختید، در اینجا آپلود کنید.

پس از اتمام آپلود، روی فایل .zip کلیک راست کرده و گزینه «Extract» (استخراج) را بزنید.

آپلود با FTP (روش جایگزین): اگر به File Manager دسترسی ندارید، می‌توانید از یک کلاینت FTP (مانند FileZilla) استفاده کنید. اما به جای آپلود فایل فشرده، باید فایل‌ها را از حالت فشرده خارج کرده و ده‌ها هزار فایل مجزا را آپلود کنید. این روش بسیار زمان‌بر و مستعد خطا است و توصیه نمی‌شود.

گام سوم: ساخت دیتابیس جدید و User در هاست واقعی (آموزش cPanel و DirectAdmin)

اکنون در هاست مقصد، باید یک پایگاه داده خالی ایجاد کنیم تا اطلاعات فایل .sql را در آن بریزیم.

درcPanel (روش آسان):

به بخش «MySQL Database Wizard» بروید.

Step 1: یک نام برای دیتابیس جدید وارد کنید (مثال: new_db).

Step 2: یک نام کاربری (User) و رمز عبور قوی بسازید (مثال: new_user).

Step 3: کاربر را به دیتابیس متصل کنید. تیک گزینه «ALL PRIVILEGES» (تمام دسترسی‌ها) را بزنید و تغییرات را اعمال کنید.

درDirectAdmin:

به «MySQL Management» بروید.

روی «Create new Database» کلیک کنید.

نام دیتابیس، نام کاربری و رمز عبور را همزمان وارد و دیتابیس را ایجاد کنید.

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

نام کامل پایگاه داده (Database Name) (مثال: hostuser_new_db)

نام کامل کاربر (Username) (مثال: hostuser_new_user)

رمز عبور (Password)

گام چهارم: ویرایش حیاتی فایل wp-config.php برای اتصال به دیتابیس جدید

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

در «File Manager» هاست خود (در همان پوشه public_html)، فایل wp-config.php را پیدا کنید.

روی آن کلیک راست کرده و «Edit» (ویرایش) را انتخاب کنید.

به دنبال این سه خط بگردید:

PHP

define( ‘DB_NAME’, ‘database_name_here’ );

define( ‘DB_USER’, ‘username_here’ );

define( ‘DB_PASSWORD’, ‘password_here’ );

مقادیر database_name_here، username_here و password_here را با اطلاعاتی که در گام سوم ذخیره کردید (نام دیتابیس، نام کاربری و رمز عبور جدید) جایگزین کنید.

بررسی DB_HOST: این مقدار معمولاً localhost است. اگر پس از اتمام کار سایت با خطای «Error establishing a database connection» مواجه شدید، این مقدار را از پشتیبانی هاست خود سوال کنید.

فایل را ذخیره کنید.

گام پنجم: درون‌ریزی (Import) فایل SQL دیتابیس در phpMyAdmin هاست مقصد

گام نهایی، پر کردن دیتابیس خالی هاست مقصد با اطلاعات سایت لوکال است.

در کنترل پنل هاست خود، phpMyAdmin را باز کنید.

از ستون سمت چپ، روی دیتابیس جدیدی که در گام سوم ساختید کلیک کنید (این دیتابیس در حال حاضر خالی است).

به تب «Import» (درون‌ریزی) بروید.

روی دکمه «Choose File» (یا Browse) کلیک کرده و فایل .sql را که در گام اول از لوکال هاست خود خروجی گرفته بودید، انتخاب کنید.

مطمئن شوید فرمت «SQL» انتخاب شده است.

روی دکمه «Go» (یا «Import») در پایین صفحه کلیک کنید.

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

فاز نهایی: تنظیمات ضروری پس از انتقال برای جلوگیری از خطا

در این مرحله، ما باید به وردپرس اطلاع دهیم که آدرس آن تغییر کرده است و اطمینان حاصل کنیم که تمام ارجاعات داخلی (Internal Links) و فایل‌های پیکربندی سرور (Server Configuration) به‌روزرسانی شده‌اند.

مهم‌ترین اقدام: به‌روزرسانی آدرس سایت (URL) در دیتابیس (جلوگیری از ریدایرکت)

مشکل: در حال حاضر، پایگاه داده شما هنوز فکر می‌کند که در localhost قرار دارد. دو فیلد حیاتی در جدول wp_options به نام‌های siteurl و home همچنان به آدرس قدیمی (مثلاً http://localhost/mysite) اشاره می‌کنند.

اثرات: این ناهماهنگی باعث ایجاد یک «حلقه ریدایرکت» (Redirect Loop) می‌شود، دسترسی به پیشخوان (wp-admin) را غیرممکن می‌کند یا باعث می‌شود هیچ‌کدام از فایل‌های CSS و JS (فایل‌های استایل و اسکریپت) بارگذاری نشوند.

راه‌حل سریع (توصیه شده):

سریع‌ترین راه برای حل این مشکل قبل از هر اقدام دیگری، تعریف این مقادیر به صورت «سخت‌کد» (Hard-code) در فایل wp-config.php است. این کار، مقادیر موجود در دیتابیس را نادیده می‌گیرد.

وارد «File Manager» هاست خود شوید.

فایل wp-config.php را برای ویرایش باز کنید.

این دو خط کد را دقیقاً قبل از خط /* That’s all, stop editing! */ اضافه کنید:

PHP

define( ‘WP_HOME’, ‘https://yourdomain.com’ );

define( ‘WP_SITEURL’, ‘https://yourdomain.com’ );

(اطمینان حاصل کنید که https://yourdomain.com را با آدرس دامنه اصلی و نهایی خود، همراه با https اگر SSL فعال است، جایگزین کنید.)

چگونه لینک‌های شکسته و آدرس تصاویر را با افزونه Better Search Replace اصلاح کنیم؟

اقدام قبلی، مشکل ورود به پیشخوان را حل کرد؛ اما یک مشکل پنهان باقی مانده است: تمام لینک‌های داخلی در محتوای پست‌ها و آدرس تصاویر شما همچنان به localhost اشاره می‌کنند.

ما باید تمام این ارجاعات را در کل پایگاه داده پیدا و جایگزین کنیم.

ابزار تخصصی: افزونه «Better Search Replace» این افزونه به ما امکان جستجو و جایگزینی (Search & Replace) ایمن در تمام جداول دیتابیس را می‌دهد و مهم‌تر از آن، داده‌های «سریالایز شده» (Serialized Data) را (که وردپرس به شدت از آن‌ها استفاده می‌کند) به درستی مدیریت می‌کند.

راهنمای گام به گام:

در پیشخوان وردپرس (که اکنون با اقدام قبلی قابل دسترسی است)، افزونه «Better Search Replace» را نصب و فعال کنید.

به منوی «ابزارها» (Tools) > «Better Search Replace» بروید.

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

Search for (جستجو برای): آدرس کامل و قدیمی لوکال هاست (مثال: http://localhost/mysite)

Replace with (جایگزینی با): آدرس کامل و نهایی دامنه (مثال: https://yourdomain.com)

Select tables (انتخاب جداول): تمام جداول را انتخاب کنید (با نگه داشتن Ctrl یا Cmd و کلیک کردن).

اجرای آزمایشی (Dry Run) – گام حیاتی:

ابتدا اطمینان حاصل کنید که تیک گزینه «Run as dry run?» فعال باشد.

روی دکمه «Run Search/Replace» کلیک کنید. این کار هیچ تغییری اعمال نمی‌کند، اما به شما نشان می‌دهد که چند مورد برای جایگزینی در کدام جداول پیدا شده است.

اجرای نهایی:

اگر نتایج «اجرای آزمایشی» منطقی بود، تیک «Run as dry run?» را بردارید و دوباره روی دکمه «Run Search/Replace» کلیک کنید.

این بار، تمام آدرس‌های قدیمی در دیتابیس شما با آدرس جدید جایگزین می‌شوند.

تنظیم مجدد پیوندهای یکتا (Permalinks) برای بازسازی فایل .htaccess

مشکل: در بسیاری از موارد، پس از انتقال، صفحه اصلی سایت به درستی بارگذاری می‌شود، اما تمام صفحات داخلی (مانند مقالات یا برگه‌ها) خطای «404 Not Found» می‌دهند.

علت: این خطا به دلیل عدم وجود یا پیکربندی نادرست فایل .htaccess در سرور جدید رخ می‌دهد. این فایل مسئول مدیریت «پیوندهای یکتا» یا «لینک‌های زیبا» (Pretty Links) در وردپرس است.

راه‌حل (بسیار ساده):

ما باید وردپرس را وادار کنیم تا این فایل را مجدداً بر اساس تنظیمات سرور جدید بازسازی کند:

به پیشخوان وردپرس بروید.

به بخش «تنظیمات» (Settings) > «پیوندهای یکتا» (Permalinks) مراجعه کنید.

هیچ تغییری ایجاد نکنید.

فقط کافی است روی دکمه «ذخیره تغییرات» (Save Changes) در پایین صفحه کلیک کنید.

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

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

اکنون سایت شما باید از نظر فنی کاملاً عملیاتی باشد. این گام، چک‌لیست کنترل کیفیت (QA) نهایی ما است:

بررسی SSL (HTTPS):

مطمئن شوید که گواهی SSL روی هاست شما فعال شده است.

اطمینان حاصل کنید که در گام‌های قبلی، آدرس سایت را با https:// (و نه http://) جایگزین کرده‌اید.

سایت را در مرورگر باز کنید و از وجود آیکون قفل اطمینان حاصل کنید.

تست تخصصی: مرورگر را باز کرده (F12)، به تب Console بروید و مطمئن شوید هیچ خطای «Mixed Content» (محتوای ترکیبی) وجود ندارد.

تست فرم‌ها (Form Testing):

تمام فرم‌های سایت (تماس، نظرات، ثبت‌نام، و به‌ویژه فرم‌های پرداخت در ووکامرس) را پر و ارسال کنید.

بررسی کنید که آیا ایمیل اطلاع‌رسانی به درستی ارسال و دریافت می‌شود؟ (این مورد به دلیل تفاوت در پیکربندی ایمیل سرورها، اغلب پس از انتقال دچار مشکل می‌شود).

بررسی سلامت سایت (Health Check):

به «ابزارها» > «سلامت سایت» (Site Health) بروید و هرگونه هشدار یا خطای حیاتی را بررسی کنید.

تست عملکرد (Functionality Test):

در سایت بچرخید. تصاویر، اسلایدرها، پاپ‌آپ‌ها و سایر عناصر تعاملی را بررسی کنید.

سایت را در حالت موبایل (Mobile View) تست کنید تا از صحت نمایش ریسپانسیو اطمینان حاصل کنید.

بررسی حیاتی سئو (SEO Check):

به «تنظیمات» > «خواندن» (Reading) بروید.

اطمینان حاصل کنید که تیک گزینه «از موتورهای جستجو درخواست کن تا محتوای سایت را بررسی نکنند» (Discourage search engines…) برداشته شده باشد. این گزینه اغلب در لوکال هاست فعال است و فراموشی آن در سایت اصلی، فاجعه سئویی به بار می‌آورد.

عیب‌یابی: رایج‌ترین خطاهای پس از انتقال و راه‌حل آن‌ها

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

حل فوری خطای “Error Establishing a Database Connection”

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

علت‌شناسی (Diagnosis): این خطا به وضوح اعلام می‌کند که فایل‌های PHP وردپرس (کدهای سایت شما) نمی‌توانند با سرور MySQL (محل ذخیره‌سازی محتوا) ارتباط برقرار کنند. در ۹۹٪ موارد، این مشکل ناشی از اطلاعات نادرست در فایل wp-config.php است.

راه‌حل گام به گام:

از طریق «File Manager» هاست یا FTP، به فایل wp-config.php در ریشه (root) سایت خود دسترسی پیدا کرده و آن را برای «ویرایش» (Edit) باز کنید.

چهار مورد زیر را با اطلاعاتی که هنگام ساخت دیتابیس در هاست جدید (گام سوم روش دستی) ایجاد کردید، مجدداً و با دقت بررسی کنید:

DB_NAME: آیا نام پایگاه داده دقیقاً (حتی با احتساب پیشوندها مانند cpaneluser_dbname) صحیح است؟

DB_USER: آیا نام کاربری دیتابیس دقیقاً صحیح است؟

DB_PASSWORD: آیا رمز عبور کاملاً صحیح است؟ (آن را مجدداً کپی و جایگذاری کنید).

DB_HOST: این مورد رایج‌ترین علت خطاست. این مقدار همیشه localhost نیست. بسیاری از ارائه‌دهندگان هاستینگ از آدرس‌های دیگری (مانند یک IP یا یک زیردامنه) برای میزبان دیتابیس استفاده می‌کنند. این مقدار را از پشتیبانی هاست جدید خود استعلام کنید.

چرا تصاویر سایت من نمایش داده نمی‌شود؟ (بررسی سطوح دسترسی فایل‌ها)

شرح خطا: سایت بارگذاری می‌شود، تمام متون قابل مشاهده هستند، اما هیچ‌کدام از تصاویر (که قبلاً آپلود شده بودند) نمایش داده نمی‌شوند و به جای آن‌ها آیکون تصویر شکسته (Broken Image) دیده می‌شود.

علت‌شناسی (Diagnosis): با فرض اینکه شما آدرس‌ها را با افزونه Better Search Replace (طبق فاز نهایی) به درستی اصلاح کرده‌اید، این مشکل مستقیماً به «سطوح دسترسی» (File Permissions) فایل‌ها و پوشه‌ها در سرور لینوکس مربوط می‌شود. هنگامی که فایل‌ها (مخصوصاً از طریق FTP یا پس از Extract کردن فایل Zip) منتقل می‌شوند، ممکن است مجوزهای لازم برای «خوانده شدن» توسط وب‌سرور را نداشته باشند.

راه‌حل گام به گام:

وارد «File Manager» هاست خود شوید.

به مسیر wp-content بروید.

روی پوشه uploads کلیک راست کرده و گزینه «Change Permissions» (تغییر مجوزها) را انتخاب کنید.

مقدار مجوز این پوشه و تمام پوشه‌های داخل آن را روی 755 تنظیم کنید. (این به معنای مجوز خواندن، نوشتن و اجرا برای مالک، و خواندن و اجرا برای دیگران است).

سپس، مجوز تمام فایل‌های داخل پوشه uploads (مانند image.jpg) را روی 644 تنظیم کنید. (این به معنای مجوز خواندن و نوشتن برای مالک، و فقط خواندن برای دیگران است).

نکته تخصصی: اکثر File Manager ها گزینه‌ای برای اعمال مجوزها به صورت بازگشتی (Recursive) دارند. ابتدا 755 را برای «Directories» (پوشه‌ها) و سپس 644 را برای «Files» (فایل‌ها) اعمال کنید.

مشکل عدم دسترسی به پیشخوان وردپرس (Admin Lockout) و خطای 404

شرح خطا: شما تلاش می‌کنید وارد domain.com/wp-admin/ شوید، اما یا با خطای 404 (Not Found) مواجه می‌شوید، یا پس از وارد کردن اطلاعات، مجدداً به صفحه لاگین بازمی‌گردید (Admin Lockout).

علت‌شناسی (Diagnosis):

خطای 404: این خطا تقریباً همیشه مربوط به فایل .htaccess است که یا وجود ندارد یا به درستی پیکربندی نشده است (راه‌حل آن در فاز نهایی ذکر شد: ذخیره مجدد پیوندهای یکتا).

قفل شدن ادمین (Admin Lockout): این مشکل معمولاً به دلیل ناهماهنگی در آدرس‌دهی siteurl و home یا تداخل یک افزونه (معمولاً افزونه‌های امنیتی یا کش) رخ می‌دهد.

راه‌حل گام به گام:

بررسی wp-config.php: اطمینان حاصل کنید که دو خط WP_HOME و WP_SITEURL را (همانطور که در فاز نهایی آموزش داده شد) به درستی در فایل wp-config.php تعریف کرده‌اید.

غیرفعال‌سازی افزونه‌ها (روش FTP): اگر راه‌حل بالا موثر نبود، یک افزونه تداخل ایجاد کرده است.

از طریق FTP یا File Manager به پوشه wp-content بروید.

نام پوشه plugins را به plugins_old تغییر دهید.

این کار تمام افزونه‌ها را به صورت اضطراری غیرفعال می‌کند.

اکنون مجدداً تلاش کنید وارد wp-admin شوید.

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

حل مشکل “Mixed Content” پس از فعال‌سازی SSL (HTTPS)

شرح خطا: سایت شما روی https:// بارگذاری می‌شود، اما مرورگر آیکون قفل ایمن را نمایش نمی‌دهد (بلکه یک قفل شکسته یا علامت هشدار نمایش می‌دهد). با باز کردن کنسول مرورگر (F12)، خطاهای «Mixed Content» (محتوای ترکیبی) را مشاهده می‌کنید.

علت‌شناسی (Diagnosis): این خطا زمانی رخ می‌دهد که صفحه اصلی (HTML) به صورت ایمن (HTTPS) بارگذاری شده، اما برخی از منابع (Assets) مانند تصاویر، فایل‌های CSS یا اسکریپت‌های JS همچنان با آدرس ناایمن (http://) فراخوانی می‌شوند. این اتفاق معمولاً زمانی می‌افتد که فرآیند «جستجو و جایگزینی» (Search & Replace) به صورت کامل انجام نشده باشد.

راه‌حل گام به گام:

اجرای مجدد Search & Replace: به «ابزارها» > «Better Search Replace» بروید و این بار با دقت بیشتری اجرا کنید:

Search for: http://yourdomain.com

Replace with: https://yourdomain.com

(اطمینان حاصل کنید که تیک «Run as dry run?» برداشته شده باشد).

استفاده از افزونه کمکی: اگر راه‌حل بالا موثر نبود (به دلیل وجود لینک‌های hard-code شده در قالب یا افزونه‌ها)، افزونه «Really Simple SSL» را نصب کنید. این افزونه معمولاً یک گزینه داخلی برای «رفع خطاهای Mixed Content» دارد که به صورت خودکار این منابع را بازنویسی می‌کند.

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

انتقال سایت وردپرس، همانطور که در این راهنمای جامع بررسی کردیم، یک فرآیند چند مرحله‌ای و دقیق است که در آن «آماده‌سازی» و «عیب‌یابی پس از انتقال» به اندازه خودِ «اجرای انتقال» اهمیت دارند. چه روش آسان‌تر (استفاده از افزونه) را انتخاب کنید و چه مسیر تخصصی (انتقال دستی)، موفقیت شما در گرو دنبال کردن یک چک‌لیست مشخص و درک فنی از نحوه تعامل فایل‌ها، دیتابیس و تنظیمات سرور است. با اجرای گام‌به‌گام این دستورالعمل‌ها—از تهیه بکاپ اولیه تا اصلاح نهایی آدرس‌ها و بازسازی پیوندهای یکتا—شما ریسک‌های رایج مانند افت سئو، خطای 404 و از دسترس خارج شدن سایت را به حداقل می‌رسانید و یک انتقال پایدار و بدون خطا را تضمین می‌کنید.

author-avatar

درباره محمد صدرا حسینی

من صدرام، دانشجوی مدیریت بازرگانی و علاقه‌مند به دنیای سئو و دیجیتال مارکتینگ که با هدف یادگیری عمیق و اجرای استراتژی‌های مؤثر برای رشد ارگانیک وب‌سایت‌ها فعالیت می‌کنم.

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

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