نقل موقع WordPress دون انقطاع ودون خسارة في SEO

كيف تنقل موقع WordPress الخاص بك من مستضيف إلى آخر مع الحفاظ على الروابط وSSL وSEO كما هي.

تقديم

كثيرا ما يثير نقل موقع WordPress القلق: الخوف من الانقطاع، ومن فقدان الترتيب في محركات البحث، ومن تلف البيانات. مع الطريقة الصحيحة، يمكن أن تكون عملية نقل WordPress غير ملحوظة لزوارك ولـ Google.

يغطي هذا الدليل طريقتين: طريقة الإضافة (سريعة، ويوصى بها للمواقع الأصغر من 1 Go) والطريقة اليدوية (تحكم أكبر، للمواقع الكبيرة). ستجد فيه أيضا الخطوات التحضيرية (TTL الخاص بـ DNS، وتدقيق الإضافات)، وقائمة التحقق بعد النقل (SSL، وإعادات التوجيه، وخريطة الموقع في Google)، وقائمة الأخطاء التي يجب تجنبها لأنها تضر بالسيو أو تعطل الموقع (نقل قاعدة البيانات بشكل خاطئ مع السلاسل المسلسلة، ونسيان ملف wp-config، وشهادات SSL غير المجددة بشكل صحيح).

قبل النقل: تهيئة الأرضية

يبدأ النقل الناجح لموقع WordPress قبل 48 ساعة من التحويل. ثلاثة إجراءات تحضيرية تقلل المخاطر بشكل كبير:

  1. خفض قيمة TTL في DNS لنطاقك إلى 300 ثانية (5 دقائق) قبل النقل بـ 48 ساعة على الأقل. تتراوح قيمة TTL المعتادة بين 3600 و86400 ثانية، مما قد يجعل الانتشار يستمر حتى 24 ساعة بعد التغيير. مع TTL بقيمة 300 ثانية، يستغرق الانتشار عادة أقل من 30 دقيقة. يمكن تعديلها لدى مسجل النطاقات الخاص بك (OVH، Gandi، Cloudflare).
  2. تدقيق الإضافات والقوالب قبل النقل. احذف الإضافات غير المفعلة، وتلك الموسومة بـ «غير متوافقة مع إصدار PHP لديك»، والقوالب غير المستخدمة. يتراكم في موقع WordPress عمره 5 سنوات عادة ما بين 30 و50% من الإضافات القديمة أو المكررة. النقل فرصة للتنظيف.
  3. حصر العناصر الأساسية: إصدار PHP المستخدم (تحقق من wp-admin/site-health.php)، وقاعدة البيانات (الحجم، وإصدار MySQL/MariaDB)، وامتدادات PHP المطلوبة (imagick، curl، mbstring، gd)، والمهام المجدولة (cron)، وشهادات SSL، وإعادات التوجيه المخصصة في .htaccess. تفيد هذه المعلومات في إعادة إنشاء البيئة بشكل مطابق.
  4. وضع الصيانة (اختياري): إذا كان بإمكانك تحمل 15 دقيقة من عدم التوفر، فإن إضافة WP Maintenance Mode تعرض صفحة انتظار أثناء التحويل. بالنسبة لمواقع التجارة الإلكترونية أو المواقع ذات الزيارات الكثيفة، يفضل النقل التدريجي دون صيانة.

الطريقة 1: باستخدام إضافة (موصى بها)

  1. نسخة احتياطية كاملة قبل النقل: UpdraftPlus أو BackWPup أو All-in-One WP Migration
  2. تثبيت WordPress فارغ على الاستضافة الجديدة
  3. استعادة النسخة الاحتياطية عبر الإضافة
  4. اختبار الموقع على عنوان IP أو النطاق الفرعي المؤقت لدى المستضيف الجديد
  5. تحويل DNS الخاص بالنطاق إلى المستضيف الجديد (مع TTL قصير)
  6. تجديد SSL لدى المستضيف الجديد بعد انتشار DNS

الطريقة 2: النقل اليدوي (المواقع الكبيرة، التجارة الإلكترونية)

بالنسبة للمواقع الأكبر من 1 Go أو متاجر WooCommerce التي تضم آلاف الطلبات، تكون الطريقة اليدوية أكثر موثوقية. الخطوات:

  1. تصدير قاعدة البيانات عبر phpMyAdmin أو عبر SSH: mysqldump -u utilisateur -p ma_base > db_backup.sql. للمواقع الكبيرة، أضف --single-transaction --quick لتجنب قفل قاعدة البيانات.
  2. نسخ ملفات WordPress عبر FTP/SFTP أو rsync: rsync -avz -e ssh ./wp-content/ utilisateur@nouveau-serveur:/var/www/html/wp-content/. يعد rsync التزايدي مثاليا لتقليل وقت النقل.
  3. إنشاء قاعدة البيانات الجديدة لدى المستضيف الجديد (cPanel/Plesk ← MySQL Databases)، ثم الاستيراد: mysql -u utilisateur -p ma_base_nouvelle < db_backup.sql.
  4. تعديل wp-config.php ببيانات الاتصال الجديدة بقاعدة البيانات (DB_NAME، DB_USER، DB_PASSWORD، DB_HOST). احتفظ بمفاتيح الأمان نفسها (AUTH_KEY وغيرها) حتى لا يتم تسجيل خروج المستخدمين.
  5. تحديث الروابط إذا تغيرت: إذا كنت تنقل نطاقك أيضا، فاستخدم WP-CLI (wp search-replace 'ancien-domaine.com' 'nouveau-domaine.com' --skip-columns=guid) الذي يعالج السلاسل المسلسلة (PHP serialize) بشكل صحيح. أما أمر SQL UPDATE بسيط فسيعطل الودجات والخيارات المسلسلة.
  6. الاختبار على نطاق فرعي مؤقت: migration.nouveau-serveur.com عبر تعديل ملف hosts المحلي (دون المساس بـ DNS العام). تحقق من: الصفحة الرئيسية، والمقالات، والنماذج، والمدفوعات (في حالة التجارة الإلكترونية)، ورسائل البريد الإلكتروني التلقائية.
  7. تحويل DNS: حدّث سجلات A/AAAA لدى مسجل النطاق. مع TTL قدره 300 ثانية تم إعداده مسبقا، يتم الانتشار خلال دقائق قليلة.

الطريقة 3: النقل المجاني بواسطة By-Hoster

إذا كنت تنتقل إلى By-Hoster، فإن فريقنا التقني ينفذ النقل مجانا. تزودنا ببيانات الوصول FTP/cPanel لدى المستضيف السابق، ونتولى كل شيء دون انقطاع، في مهلة تعتمد على حجم الموقع ونؤكدها لك في التذكرة. يشمل ذلك: نقل الملفات وقاعدة البيانات، وإعادة ضبط wp-config، وإنشاء شهادة SSL من Let's Encrypt، والاختبارات بعد النقل، وتحويل DNS بالتنسيق معك. تحتفظ بالوصول إلى استضافتك السابقة لمدة 14 يوما للتحقق. الإجراء المفصل، الصالح لأي موقع وليس لـ WordPress فقط، منشور في صفحة نقل استضافتك إلى فرنسا: ترتيب العمليات، وقيمة TTL في DNS الواجب تحضيرها، وسجلات MX وSPF، والتحققات بعد التحويل.

قائمة التحقق بعد النقل: 12 نقطة يجب التحقق منها

لا تنتهي عملية النقل عندما يشير DNS إلى الخادم الجديد. إليك التحققات الـ 12 الأساسية خلال 24 ساعة بعد التحويل:

  • الموقع متاح عبر HTTP وHTTPS: اختبر على 3-4 متصفحات وعلى هاتف محمول. تحقق من الصفحات الرئيسية (الرئيسية، الاتصال، سلة المشتريات في حالة التجارة الإلكترونية).
  • شهادة SSL من Let's Encrypt منشأة ومفعلة: يجب أن يعيد curl -I https://votredomaine.com الاستجابة 200 OK مع شهادة صالحة. المدة بعد DNS: من 5 إلى 30 دقيقة.
  • الروابط الدائمة تعمل: تحقق من 5-10 مقالات عشوائية. في حال ظهور الخطأ 404، انتقل إلى wp-admin ← الإعدادات ← الروابط الدائمة وانقر على «حفظ» (يعيد إنشاء .htaccess).
  • الصور محملة: اضغط Ctrl+F5 على الصفحة الرئيسية. إذا كانت هناك صور مفقودة، فتحقق من صلاحيات wp-content/uploads (755 للمجلدات، 644 للملفات).
  • نماذج الاتصال: أرسل رسالة تجريبية. تحقق من استلام البريد الإلكتروني. في حال الفشل، اضبط SMTP (WP Mail SMTP) مع خدمة خارجية (Mailgun، SendGrid).
  • تسجيل الدخول إلى wp-admin: اسم المستخدم + المصادقة الثنائية 2FA إن كانت مفعلة. إذا ظهر خطأ «ملفات تعريف الارتباط محظورة»، امسح ذاكرة التخزين المؤقت للمتصفح وجرّب في وضع التصفح الخاص.
  • WooCommerce (عند الاقتضاء): أجرِ عملية شراء تجريبية (وضع «test» في Stripe/PayPal). تحقق من رسائل التأكيد عبر البريد الإلكتروني وتحديث المخزون وإنشاء فاتورة PDF.
  • مهام Cron في WordPress: تحقق من أن المهام المجدولة تعمل (wp cron event list عبر WP-CLI). عطّل WP-Cron الأصلي واضبط مهمة cron على مستوى النظام: * * * * * curl https://votredomaine.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1.
  • الأداء: اختبار PageSpeed Insights. إذا كانت النتيجة < 80، تحقق من تفعيل التخزين المؤقت (LiteSpeed Cache أو WP Rocket أو W3 Total Cache) وضغط Brotli/Gzip والتحميل الكسول للصور.
  • خريطة الموقع المرسلة إلى Google Search Console: إذا تغير عنوان IP، فقد يستغرق Google من 24 إلى 72 ساعة لإعادة الزحف. يمكنك تسريع ذلك عبر Search Console ← Sitemaps ← إرسال الرابط.
  • عمليات إعادة التوجيه 301 القديمة: إذا كنت تنقل النطاق أيضًا، فاضبط عمليات إعادة التوجيه 301 لدى المستضيف القديم عبر .htaccess: RewriteRule ^(.*)$ https://nouveau-domaine.com/$1 [R=301,L]. احتفظ بها 12 شهرًا على الأقل للحفاظ على قيمة الروابط (link juice) في SEO.
  • المراقبة على مدار 24 ساعة: تكتشف خدمة مجانية مثل UptimeRobot أو Hyperping الانقطاعات وترسل تنبيهات عبر البريد الإلكتروني أو SMS. راقب أيضًا سجلات أخطاء PHP (tail -f /var/log/php/error.log) خلال أول 48 ساعة.

الأخطاء الشائعة وكيفية تجنبها

  • سلاسل متسلسلة (serialized) معطوبة: إذا أجريت النقل باستبدال بسيط عبر SQL Find & Replace، فستتعطل خيارات PHP المتسلسلة (الودجات، أداة التخصيص، أدوات بناء الصفحات). استخدم دائمًا WP-CLI أو إضافة Better Search Replace التي تتعامل مع التسلسل.
  • عدم تجديد SSL بعد النقل: يجب إعادة إنشاء شهادة Let's Encrypt لدى المستضيف الجديد لأنها مرتبطة بعنوان IP/النطاق. لا تنتقل الشهادات القديمة.
  • ملف wp-config.php غير صحيح: نسيان تحديث DB_HOST (أحيانًا «localhost» وأحيانًا عنوان IP)، أو ترك إعدادات قديمة مثل WP_DEBUG=true تكشف الأخطاء في بيئة الإنتاج.
  • عدم استبدال Cron الأصلي في WordPress: في الاستضافة القديمة كان WP-Cron يعمل بناءً على الزيارات. إذا نسيت تعطيل WP-Cron الأصلي وضبط مهمة cron حقيقية على مستوى النظام، فلن تعمل المهام المجدولة (النسخ الاحتياطية، إرسال النشرات البريدية، التحديثات) بشكل صحيح.
  • ذاكرة تخزين مؤقت قديمة: ذاكرة CDN قديمة (Cloudflare، BunnyCDN) لا تزال تشير إلى الخادم القديم. امسح ذاكرة التخزين المؤقت بعد النقل: Cloudflare ← «Purge Everything»، BunnyCDN ← «Clear Cache».
  • خريطة موقع XML معطوبة: يعيد Yoast/Rank Math إنشاءها تلقائيًا، لكن تحقق من إمكانية الوصول إليها على https://votredomaine.com/sitemap_index.xml. أعد إرسالها إلى Search Console.
  • انتشار DNS غير سليم: إذا بقيت قيمة TTL القديمة 24 ساعة، فسيظل بعض الزوار يرون الموقع القديم طوال 24 ساعة. لهذا يعد خفض TTL إلى 300 ثانية قبل النقل أمرًا حاسمًا.

الأسئلة الشائعة

لا، إذا حافظت على عناوين URL نفسها تمامًا وتم انتشار DNS بشكل سليم (TTL قصير قبل النقل). لا يرى Google سوى عنوان IP مختلف، بينما يبقى المحتوى والبنية كما هما.

لموقع عادي أصغر من 1 Go بطريقة الإضافة: من 1 إلى 3 ساعات. لموقع متوسط بين 1 و5 Go بالطريقة اليدوية: من 4 إلى 8 ساعات. لمتجر إلكتروني كبير يضم آلاف المنتجات: من يوم إلى يومين (تحضير، واختبارات، وتحويل مجدول). يتم النقل المجاني من By-Hoster بالتنسيق معك، في مهلة تؤكد في التذكرة حسب حجم الموقع.

إذا احتفظت بالنطاق نفسه: لا، يكتشف Google تغيير عنوان IP تلقائيًا خلال 24 إلى 72 ساعة. إذا غيّرت النطاق: نعم، استخدم أداة «تغيير العنوان» في Google Search Console بعد ضبط عمليات إعادة التوجيه 301. وإلا فستخسر المراتب التي حققتها.

مع طريقة الإضافة وقيمة TTL قصيرة في DNS، يتراوح التوقف عادة بين 0 و5 دقائق (ريثما ينتشر DNS). ومع الطريقة اليدوية المحضرة جيدا، يمكن استهداف انقطاع صفري عبر إعداد الخادم الجديد بالتوازي، والاختبار عبر ملف hosts المحلي، ثم تحويل DNS بعد التحقق من كل شيء.

نحتاج إلى: وصول SFTP أو FTP إلى الاستضافة السابقة (القراءة فقط تكفي)، ووصول إلى phpMyAdmin أو تصدير SQL لقاعدة البيانات، ووصول إلى مدير DNS (مسجل النطاقات: OVH، Gandi، Cloudflare، إلخ) لتحويل السجلات في الوقت المناسب. لا نحتفظ بأي معلومات حساسة بعد النقل.

لا، لكن يجب تعطيل إضافات التخزين المؤقت قبل التصدير (W3 Total Cache، WP Rocket، LiteSpeed Cache) لتجنب ملفات تخزين مؤقت قديمة قد تسبب أخطاء على الخادم الجديد. أعد تفعيلها بعد النقل وامسح ذاكرة التخزين المؤقت. والأمر نفسه لإضافات الأمان (Wordfence، Sucuri): عطلها قبل التصدير وأعد تفعيلها بعده.

نعم، لكن الأمر أعقد لأن WordPress.com (النسخة المستضافة) يقيد الوصول إلى الملفات. الطريقة: 1) صدر المحتوى عبر Outils → Exporter في wp-admin (ينشئ ملف XML). 2) ثبت WordPress.org على استضافتك. 3) استورد ملف XML عبر Outils → Importer → WordPress. تستورد هذه الطريقة المقالات والصفحات والوسائط والتعليقات، لكن ليس القوالب المدفوعة من WordPress.com (يجب شراؤها مجددا أو استبدالها). احسب من 4 إلى 8 ساعات مع التعديلات المرئية.