مرجع الترحيل
ترحيل WordPress إلى HubSpot
ما الذي ينتقل فعلًا، وما الذي لا ينتقل دون أن يظهر ذلك، وما الذي يجب إعادة بنائه يدويًا.
طابقنا WordPress مع HubSpot ميزةً بميزة: 43 ميزة، و3 كائنات تُزامَن، و13 فخًا موثقًا، و20 بندًا يجب إعادة بنائه. الخريطة كاملة في هذه الصفحة، دون أي نموذج تسجيل.
ملف PDF هو المرجع نفسه، بصيغة تناسب ملف المشتريات.
احصل على المرجع والحاسبة
مرجع WordPress إلى HubSpot كاملًا بصيغة PDF، مع حاسبة Excel التي نعتمدها في تحديد نطاق هذه الترحيلات: كل ميزة من الميزات الـ 43 في صف مستقل، تُدخل أعدادك فتحصل على عدد الساعات.
ثلاثة ملفات: المرجع بصيغة PDF، والمرجع نفسه بصيغة Markdown لأداة الذكاء الاصطناعي لديك، وحاسبة الجهد الكاملة بصيغة Excel.
ترحيل WordPress إلى HubSpot ترحيل مرتفع التعقيد، وتستغرق مدته عادةً من 4-20 أسبوعًا. من بين الميزات الـ 43 التي طابقناها، تنتقل 10 ميزات كما هي، وتصل 30 ميزة منقوصة بشيء ما: أما البنود الـ 20 التي لا ينقلها أي شيء نيابةً عنك فهي التي ستحدد جدولك الزمني فعلًا، لا المزامنة.
بطاقة تقييم الترحيل
- تعقيد الترحيل
- مرتفع
- الجدول الزمني المعتاد
- 4-20 أسبوعًا
- الطريقة الموصى بها
- استيراد المحتوى ثم إعادة البناء
- المزامنة الأصلية
- استيراد المحتوى، من المصدر إلى HubSpot
- Smart Transfer
- غير مدعومة
- اشتراك HubSpot
- أدوات استيراد المدونة نفسها مجانية ولا تشترط أي فئة اشتراك، وهي متاحة في كل منتج وكل خطة. وما يحكم المشروع فعلًا هو فئة الوجهة: Content Hub Free يتوقف عند 25 صفحة، وHubDB والمحتوى الذكي (smart content) يحتاجان Content Hub Professional، والعضويات (memberships) والمواقع المتعددة (multi-site) وأي نطاق جذر إضافي تحتاج Content Hub Enterprise. وحيثما كانت أنواع المنشورات المخصصة (custom post types) ستُستبدل بكائنات مخصصة (custom objects)، فهذا أيضًا يحتاج فئة Enterprise، فتحقق من عدد الصفحات وقائمة الميزات مقابل الخطة قبل تحديد نطاق الترحيل.
تكافؤ الميزات عبر 43 قدرة
- يقابله مباشرة: 10 (23%)
- يقابله جزئياً: 30 (70%)
- لا مقابل له: 3 (7%)
3
كائنات تُزامَن أصليًا
13
قيود وفخاخ
20
بنود إعادة بناء يدوية
3
إصدارات المصدر المشمولة
مصدر هذه المعلومات: مجموعة أبحاثنا الخاصة، جرى التحقق منها بتاريخ 2026-08-01، وهي أساس كل رقم في هذه الصفحة.
الكائنات الثلاثة التي تُزامَن أصليًا
ما ينقله الموصل نيابةً عنك، واتجاه تدفق كل كائن.
Blog posts
إلى HubSpotيصبح Blog posts
توجد ثلاثة مسارات استيراد، بالترتيب الذي توصي به HubSpot نفسها. يقرأ WordPress connect واجهة REST API العامة انطلاقًا من رابط الصفحة الرئيسية للمدونة وحده، وهو أسرع المسارات الثلاثة وأدقها، لكنه يفشل في أي تثبيت تكون فيه هذه الواجهة معطلة أو مقيدة أو مخصصة بشدة، وهذا شائع في مواقع WordPress المحصّنة أو المؤسسية. أما Smart copy فيقتطع محتوى رابط منشور حي ليستنتج بنية القالب، ويعمل مع أي نظام إدارة محتوى (CMS)؛ وXML import، المبني على ملف تصدير من WordPress، هو البديل الموثق الاحتياطي خلف الاثنين. وأيًا كان المسار الذي توصلك إليه، فإن المنشورات (blog posts) هي نوع المحتوى الوحيد الذي يستورده أي من المسارات الثلاثة فعلًا.
Pages
في الاتجاهينيصبح Website pages
لا يوجد استيراد للصفحات إطلاقًا في أي من المسارات الثلاثة: يجب إعادة إنشاء كل صفحة في الموقع يدويًا في HubSpot، تُبنى من القوالب والوحدات (modules) بدل أن تُنقل كما هي. هذه الفجوة الواحدة هي ما يجعل ترحيل WordPress مشروع إعادة بناء لا نقل بيانات، وينبغي أن يُقال ذلك صراحةً لمن يعتمد الجدول الزمني قبل تحديد نطاق المشروع، لا أن يُكتشف بعد أن يكون المشروع قد بدأ.
Form submissions (via HubSpot WordPress plugin)
إلى HubSpotيصبح Contacts
إضافة HubSpot WordPress plugin أداة منفصلة عن مسارات الاستيراد أعلاه: تضيف رمز تتبع إلى موقع WordPress الحي وتبدأ بتغذية HubSpot CRM بما يرد من النماذج القائمة بينما يستمر النظامان بالعمل. ولا تنقل شيئًا من محتوى الموقع، لكنها كثيرًا ما تكون الخطوة الأولى الصحيحة، أحيانًا قبل أي إعادة بناء بأشهر، لموقع تصل ردود نماذجه إلى صندوق بريد مشترك أو إلى جدول في قاعدة بيانات إضافة دون أن يعامل أحد أيًّا منهما نظامًا مرجعيًا.
ثلاثة عشر أمرًا لا تخبرك بها المزامنة
كل أمر منها موثق، وكل أمر منها أنهى ترحيلًا في أسبوع سيئ.
المنشورات وحدها تُستورد. الصفحات لا تُستورد.
أيًا كان مسار الاستيراد الذي تختاره من المسارات الثلاثة، فجميعها يتوقف عند المدونة: صفحات الموقع وصفحات الهبوط (landing pages) وأي شيء آخر غير المنشورات يجب إعادة بنائه يدويًا داخل قوالب HubSpot ووحداته. موقع من 200 صفحة لا يتقلص إلى استيراد يعقبه تنظيف في النهاية؛ إنه إعادة بناء 200 صفحة، وينبغي أن يقول العرض ذلك بوضوح بدل أن تحمل كلمة «استيراد» افتراضًا لا تستطيع تأييده.
الحل البديل: حدّد نطاق إعادة البناء بحسب القالب لا بعدّ الصفحات: حدّد أنواع الصفحات المتمايزة أولًا، وابنِ لكل نوع قالبًا ومجموعة وحدات قابلة لإعادة الاستخدام، ثم املأ المحتوى. إعادة البناء صفحةً صفحة أغلى طريقة لتنفيذ هذا المشروع، وهي عادةً ما يميل إليه أول عرض سعر دون قصد.
لا يوجد نظام إضافات (plugins)، ولا نظام hooks لمحاكاته
لا شيء في HubSpot يحل محل functions.php، لأنه لا يوجد تحته نظام hooks أو filters أصلًا. وكل ما كانت تفعله إضافة يجب أن يظهر من جديد على هيئة ميزة أصلية في HubSpot، أو تطبيق من Marketplace، أو وحدة مخصصة، أو دالة serverless، أو خدمة من طرف ثالث، بقرار واحد لكل إضافة، وتقول وثائق المطورين في HubSpot نفسها صراحةً إنها لن تغطي قالبًا مبنيًا حول إضافات معقدة.
الحل البديل: ابدأ بجرد كامل للإضافات الفعالة، وصنّف كل واحدة منها: مقابل أصلي، أو تطبيق Marketplace، أو بناء مخصص، أو خدمة طرف ثالث، أو إسقاط، قبل أن يخرج أي عرض سعر. يتنبأ هذا التدقيق بالكلفة الحقيقية للمشروع أفضل من أي شيء آخر متاح في مرحلة تحديد النطاق، وهو يكشف عادةً إضافة WhatsApp أو الاتصالات الهاتفية المحلية أو بوابة الدفع التي لن يشير إليها عدّ الصفحات أبدًا.
لا يوجد مفهوم Custom Post Type في HubSpot، وإن كان HubDB يغطي معظم الاستخدامات
تُبنى عادةً في WordPress أعضاء الفريق ودراسات الحالة والمواقع ودلائل المنتجات على هيئة custom post types، ولا يملك HubSpot مفهومًا مطابقًا لها. يمكن لجداول HubDB أن تحقق النتيجة نفسها بتوليد صفحة لكل صف برابطها وتحليلاتها الخاصة، لكن هذا المسار يتطلب Content Hub Professional ويقتصر على 10 صفحات ديناميكية لكل جدول؛ والبديل هو CRM custom objects، وهي تقع خلف فئة Enterprise بدلًا من ذلك.
الحل البديل: قرّر مبكرًا، لكل custom post type، هل سيصبح جدول HubDB أم كائنًا مخصصًا، لأن هذا القرار الواحد يحدد فئة الاشتراك التي يحتاجها المشروع كله. وتشغيل عدة custom post types جنبًا إلى جنب مع بيانات Advanced Custom Fields يجعله في الغالب مشروع Content Hub Professional بحد ذاته، وهذا جدير بأن يُعرض على من يملك الميزانية قبل إقرار عرض السعر لا بعده.
HubL ليست PHP، وعدد المطورين المتاحين أقل بكثير
قالب WordPress مكتوب بـ PHP؛ وقالب HubSpot مكتوب بـ HubL، بوراثة قوالب خاصة به عبر extends، ومناطق السحب والإفلات الخاصة به المبنية من كتل widget_container، وتحميل أصوله الخاص عبر require_css وrequire_js وget_asset_url بدلًا من wp_enqueue_style وget_template_directory_uri. ولا ينتقل مطور PHP إلى ذلك مباشرة، ومطورو HubSpot أندر، وبصورة عامة أغلى في استقطابهم لإعادة البناء.
الحل البديل: حسم من سيتولى البناء فعلًا قبل كتابة عرض السعر لا بعده. فريق WordPress الحالي يحتاج وقتًا للتأهيل على HubL، ومكان ذلك الوقت في التقدير منذ البداية بدل أن يُمتص بصمت بعد أن يكون المشروع قد بدأ.
إعادة التوجيه هي كل مخاطر SEO، وهي يدوية
نادرًا ما تُبقي إعادة بناء HubSpot كل رابط في مكانه تمامًا، وكل رابط ينتقل يحتاج إعادة توجيه 301 خاصة به قائمة قبل الإطلاق. وتخطي هذه الخطوة أو التعجل فيها هو السبب الأكثر شيوعًا لانخفاض الترتيب بعد الإطلاق، ويميل الضرر إلى الظهور بعد أسابيع، حين يكون تتبعه إلى إعادة التوجيه المفقودة التي سببته مكلفًا.
الحل البديل: افحص الموقع الحي (crawl) للحصول على جرد كامل للروابط قبل أن تبدأ إعادة البناء، وعامل مطابقة إعادة التوجيه جزءًا من البناء نفسه لا مهمة تُترك ليوم الإطلاق. وأبقِ موقع WordPress متاحًا في بيئة تجريبية (staging) للرجوع إليه طوال الفترة، وتوقع أن يستقر الأداء بعد أسبوعين إلى أربعة أسابيع من تحويل نهائي نُفّذ بصورة صحيحة.
WordPress connect يفشل في التثبيتات المحصّنة أو المخصصة
لا يعمل أسرع مسارات الاستيراد الثلاثة إلا إذا كانت WordPress REST API العامة متاحة وغير معدّلة، وإضافات الأمان والإعدادات headless والروابط الدائمة المخصصة والتحصين المؤسسي العام تقيّد هذه الواجهة أو تعطلها بانتظام. وحين يفشل فإنه يميل إلى الفشل دون أن يخبرك لماذا، وهي اللحظة التي تتحول فيها مكالمة تحديد النطاق إلى تشخيص.
الحل البديل: اختبر WordPress connect على المدونة الحية أثناء مرحلة الاستكشاف (discovery)، قبل أن يصبح مفاجأة في أسبوع البناء بوقت طويل. الرجوع إلى smart copy ثم إلى تصدير XML مسار حقيقي للمضي قدمًا، لكن كل خطوة هبوط أقل دقة من سابقتها وتحتاج تنظيفًا أكثر، ومكان ذلك في التقدير فور استبعاد المسار الأول.
صفحات النظام تُنسى باستمرار
صفحة 404 وصفحة خطأ 500 ونتائج البحث ومطالبة كلمة المرور وصفحة تفضيلات الاشتراك، كلها تحتاج إلى بناء جديد في HubSpot، ولا تظهر أي منها في عدّ الصفحات المبني على خريطة الموقع (sitemap). ولهذا بالضبط تغيب عن التقدير وعن قائمة الإطلاق معًا، ولهذا لا تُلاحَظ الفجوة إلا بعد أن يكون الموقع قد صار حيًا.
الحل البديل: سمِّ كل صفحة نظام صراحةً في جرد القوالب عند تحديد النطاق بدل افتراض أن خريطة الموقع تحسب لها حسابًا. كل واحدة منها جهد قليل بحد ذاتها، ومجموعها أمر يسهل أن تُحرَج به إذا غاب يوم الإطلاق.
WooCommerce ليس له مقابل في HubSpot
لم يُبنَ Content Hub يومًا منصةَ تجارة إلكترونية، ويغطي Revenue Hub المدفوعات وعروض الأسعار والفواتير والاشتراكات دون أن يتناول يومًا كتالوج المنتجات أو سلة التسوق أو الدفع أو الشحن أو الضريبة أو المخزون. ومتجر WooCommerce ببساطة لا مكان له ليُعاد بناؤه داخل HubSpot: هذا الجزء من الموقع لن ينتقل، أيًا كان ما تقوله بقية الخطة.
الحل البديل: أبقِ المتجر على منصة تجارة إلكترونية مخصصة وكامِل تلك المنصة مع HubSpot بدلًا من محاولة إعادة بنائه هناك، أو قل بوضوح إن الترحيل غير مناسب لموقع تقوده التجارة الإلكترونية. يمكن لمحتوى المنتجات وصفحات الأسعار أن تنتقل؛ أما واجهة المتجر نفسها فلا، ويستحق هذا التمييز أن يُذكر قبل الالتزام بأي شيء.
بيانات Advanced Custom Fields ليس لها وجهة مباشرة
يقف Advanced Custom Fields خلف كل بناء WordPress يستحق الاسم تقريبًا، ويحمل بيانات حقول مهيكلة على المنشورات والصفحات وأنواع المنشورات المخصصة على حد سواء. لدى HubSpot حقول الوحدات (module fields) للمحتوى الذي ينتمي إلى قالب واحد وHubDB للبيانات الجدولية، لكن لا شيء يؤدي الدور الذي يؤديه ACF: حقول مخصصة اعتباطية تُرفق بأي سجل محتوى كان.
الحل البديل: صنّف كل مجموعة حقول ACF إلى حقول وحدات (module fields) حيث تنتمي البيانات إلى صفحة واحدة، أو أعمدة HubDB حيث تتكرر عبر السجلات. الحقول المتكررة (repeater) والمحتوى المرن (flexible-content) هي الحالة الصعبة فعلًا هنا وتحتاج عادةً إلى إعادة هيكلة لا مطابقة واحد لواحد، فاحسب لها ميزانية منفصلة عن الحقول الأبسط.
قيود الفئات تظهر في مواضع غير متوقعة
يتوقف Content Hub Free عند 25 صفحة، وتقع HubDB والمحتوى الذكي واختبارات A/B وتوصيات SEO والتقارير المخصصة كلها خلف فئة Professional؛ وتقع العضويات ودعم المواقع المتعددة والنطاقات الجذرية الإضافية والتقسيم (partitioning) خلف Enterprise فوق ذلك. وموقع لم يكلّف شيئًا يُذكر في استضافته على WordPress قد يحتاج إلى اشتراك Professional أو Enterprise لمجرد أن يفعل من جديد ما كان يفعله أصلًا، وهذه الفجوة جديرة بأن تُعرض على من يعتمد الميزانية قبل اكتشافها في منتصف البناء بوقت طويل.
الحل البديل: احسب الفئة المطلوبة من تدقيق الميزات وبنية المحتوى، ثم ضعها في العرض بعبارات واضحة. اكتشاف متطلب HubDB في منتصف البناء مشكلة تجارية للجنة التي تعتمد الإنفاق، لا مشكلة تقنية لمن يبني الموقع.
AJAX وCron والمنطق من جهة الخادم تحتاج إلى إعادة هندسة
معالجات admin-ajax وأي PHP عشوائي من جهة الخادم لا مقابل مباشر لها في HubSpot. WP-Cron هو الاستثناء الوحيد الجدير بالمعرفة: يشغّل Data Hub Professional workflows مشغَّلة بجدول زمني باستخدام إجراءات الشيفرة المخصصة (custom code actions) بـ JavaScript أو Python، وهو نمط تصفه وثائق HubSpot نفسها بأنه كتابة cron jobs، وتغطي دوال serverless جزءًا إضافيًا منه ضمن حدود تنفيذها. وما يتبقى يحتاج إلى خدمة خارجية يُبحث عنها.
الحل البديل: اكشف كل سلوك من جهة الخادم أثناء تدقيق الإضافات والقالب لا أثناء البناء نفسه. هنا يعثر الترحيل على عمل لا يمكن إنجازه داخل HubSpot إطلاقًا ويحتاج إلى خدمة خارجية، وهذا اكتشاف أرخص بكثير في مرحلة تحديد النطاق منه في منتصف المشروع.
المواقع متعددة اللغات تحتاج إلى إعادة هيكلة، لا إلى استيراد ترجمات
يخزن WPML وPolylang كلٌّ منهما الترجمات في بنية بياناته الخاصة ونظام روابطه الخاص، وجواب HubSpot، وهو مجموعة مترابطة من النسخ اللغوية لصفحة أو منشور، ليس له مسار استيراد من أي من الإضافتين. وموقع ثنائي اللغة بالعربية والإنجليزية مبني على أي منهما لا ينقل ترجماته؛ بل يعيد بناءها، وبنية الروابط تحتها ستتغير عادةً في أثناء ذلك.
الحل البديل: أعد بناء كل نسخة لغوية يدويًا وحدّد خرائط إعادة التوجيه لكل لغة على حدة بدل افتراض أن خريطة واحدة تغطي اللغتين. وتأكد من أن عدد اللغات المطلوب يقع داخل الفئة التي تنوي الالتزام بها قبل الاتفاق على الجدول الزمني، لأن الجمع ثنائي اللغة بين العربية والإنجليزية هو الحالة الشائعة هنا لكنه ليس مجانيًا في كل فئة.
لا ينبغي نسخ الوسائط ورموز التتبع وشيفرة WordPress الخاصة
تنصح HubSpot نفسها بعدم نقل الشيفرة الخاصة بـ WordPress، بما فيها أي شيء تحت wp-includes أو wp-content، وتوصي بإعادة تصدير رموز التتبع التابعة لأطراف ثالثة من المورّد نفسه بدل اقتطاعها من WordPress. ويجب إعادة رفع الوسائط إلى أداة HubSpot Files على حدة، مع توجيه كل إشارة إلى صورة داخل المحتوى إلى الموقع الجديد.
الحل البديل: عامل ترحيل الوسائط مهمة قائمة بذاتها، مع جولة مخصصة لإعادة كتابة الروابط على متن كل منشور مستورد. المنشور الذي ما زال يشير إلى رابط صورة قديم تحت wp-content يظل يعمل إلى أن تُطفأ استضافة WordPress، وعندها ينكسر كله دفعة واحدة ودون إنذار.
ثلاث ميزات في WordPress لا يستطيع HubSpot تعويضها
لا يوجد حل بديل يسد هذه الفجوات. كل واحدة منها قدرة ستتخلى عنها، فحدّد من في الشركة يستطيع الاستغناء عنها قبل أن تلتزم بموعد.
Functions.php والـ Hooks (الخطافات)
وثائق HubSpot نفسها صريحة في هذه النقطة: لا يوجد مقابل لـ functions.php، لأن HubSpot لا يعرف مفهوم actions وfilters تحته أصلًا. وكل ما كان يفعله functions.php في الموقع يجب إعادة بنائه عبر HubL macros أو دوال serverless أو تطبيق مخصص بدلًا من ذلك.
WooCommerce (المتجر الإلكتروني)
لا تظن Content Hub بديلًا عن WooCommerce: فهو ليس منصة تجارة إلكترونية ولم يكن يومًا كذلك. يغطي Revenue Hub المدفوعات وعروض الأسعار والفواتير والاشتراكات، وهذا مجال حقيقي، لكن لا هذا ولا ذاك يمنحك واجهة متجر أو سلة تسوق أو دفعًا، فيحتاج المتجر نفسه إلى منصة منفصلة أيًا كان Hub الذي تشتريه من HubSpot.
إضافات LMS (أنظمة التعلم)
لا يوجد مقابل في HubSpot.
أمران لا يعيد الترحيل بناءهما
هذه شيفرة WordPress ومنتجاتها الخاصة، ولن ينقلها ترحيل إلى HubSpot: فلا ساعات لها في التقدير. ومع ذلك تحتاج إلى قرار قبل التحويل النهائي، لأنك أنت من يتخلى عن شيء.
إضافات مخصصة مصممة خصيصًا (Bespoke Custom Plugins)
أعلى بنود الاكتشاف خطورة. اكشفها أثناء تحديد النطاق لا أثناء البناء.
WordPress Multisite (تعدد المواقع)
أكّد الفئة المستهدفة قبل الوعد بفصل مكافئ.
البنود الـ 20 التي تُعاد بناؤها يدويًا
هذه هي القائمة التي تفرّق بين عرض سعر يصمد وعرض لا يصمد.
البيانات والكائنات
صفحات الموقع (Website Pages)
يجب إعادة بناء كل صفحة في HubSpot من الأساس، إذ لا يمس أي من مسارات الاستيراد الثلاثة الصفحات إطلاقًا.
في HubSpot: HubSpot Website Pages
حدّد نطاق ذلك بحسب القالب ونوع الصفحة، لا صفحةً صفحةً أبدًا: فهو أكبر رافعة تحدد كلفة إعادة البناء.
أنواع المنشورات المخصصة (Custom Post Types)
أعضاء الفريق ودراسات الحالة والمواقع وأي محتوى مهيكل مشابه يحتاج إلى إعادة بنائه جداول HubDB تقود صفحات ديناميكية، أو كائنات CRM مخصصة، بحسب المسار المختار لنوع المحتوى ذلك.
في HubSpot: HubDB (Content Hub) or Custom Objects
هذا قرار فئة اشتراك بقدر ما هو قرار تقني، فاتخذه أثناء تحديد النطاق لا بعد الالتزام بخطة البناء.
بيانات Advanced Custom Fields
مجموعات Advanced Custom Fields تحتاج إلى إعادة نمذجة لا نسخ: حقول وحدات (module fields) حيث تنتمي البيانات إلى صفحة واحدة، وأعمدة HubDB حيث تتكرر عبر السجلات.
في HubSpot: HubSpot module fields or HubDB columns
الحقول المتكررة (repeater) والمحتوى المرن (flexible-content) هي عادةً أصعب أجزاء هذا البند وتحتاج في الغالب إلى إعادة هيكلة لا مطابقة مباشرة.
مكتبة الوسائط (Media Library)
يجب إعادة رفع كل صورة وملف PDF ومستند إلى أداة HubSpot Files، مع إعادة بناء هيكل المجلدات وتوجيه كل إشارة داخل المحتوى إلى الموقع الجديد.
في HubSpot: HubSpot Files tool
المنشور المستورد الذي ما زال يشير إلى رابط wp-content القديم يستمر في العرض حتى تُطفأ استضافة WordPress، وعندها ينكسر كله دفعة واحدة.
تنظيف المنشورات بعد الاستيراد
يحتاج كل منشور مستورد بعد انتهاء الاستيراد إلى مطابقة المؤلفين، ومواءمة الوسوم والتصنيفات، وفحص الصورة البارزة، والتحقق من الوصف التعريفي (meta description)، وإعادة كتابة الروابط الداخلية.
في HubSpot: HubSpot Blog
يتوقف مقدار ما يلزم من هذا فعلًا على مسار الاستيراد المستخدم: فكل من smart copy وتصدير XML يترك خلفه تنظيفًا أكثر مما يتركه WordPress connect.
الأتمتة
الوظائف التي تقودها الإضافات
كل قدرة كانت تؤديها إضافة تحتاج إلى بديلها الخاص: النماذج وSEO والتخزين المؤقت والأمان والحجوزات والخرائط والتقويمات والعضويات والدردشة المباشرة والتحليلات، وأي تكامل IDX أو تغذية بيانات كان الموقع يشغّله. لا شيء من ذلك يأتي مجانًا، وكل بند قرار قائم بذاته لا سطرًا واحدًا في التقدير.
في HubSpot: Native HubSpot features, marketplace apps, custom modules, or third-party services
لا شيء يتنبأ بالكلفة الحقيقية للمشروع أفضل من تدقيق الإضافات نفسه، ولهذا مكانه في أول مرحلة تحديد النطاق لا في منتصفها.
المنطق من جهة الخادم ومعالجات AJAX ومهام Cron
لا مقابل مباشر في الجهة الأخرى لشيفرة PHP المنفَّذة على الخادم ولنقاط admin-ajax ولمهام WP-Cron المجدولة، وتحتاج إلى إعادة بنائها دوال serverless أو نقلها إلى خدمة خارجية بالكامل.
في HubSpot: HubSpot serverless functions, or an external service
بعض هذا لا يمكن إنجازه داخل HubSpot إطلاقًا فعلًا، ومرحلة تحديد النطاق هي المكان الذي تُعرف فيه أي القطع هي تلك، لا منتصف البناء.
النماذج (Forms)
يجب إعادة بناء Gravity Forms وContact Form 7 وأي إضافة مشابهة من الصفر نماذج HubSpot، مع إعادة إنشاء سلوك الإشعارات والتوجيه والتأكيد لا نقله. وأعد بناءها على الطريقة التي تصل بها الاستفسارات هنا فعلًا: نموذج عربي من اليمين إلى اليسار لا نموذجًا إنجليزيًا أُلصقت به تسميات مترجمة، وحقول هاتف تقبل صيغ الجوال المحلية التي يكتبها الناس فعلًا.
في HubSpot: HubSpot Forms
الردود التاريخية لا تنجو من النقل إلا إذا كانت إضافة HubSpot تلتقطها من قبل؛ وأي شيء موجود في جدول قاعدة بيانات إضافة النماذج القديمة وحدها يضيع حين تحدث إعادة البناء. وحيثما كانت تلك الردود أقرب ما يملكه الموقع إلى قاعدة بيانات جهات اتصال، فمن المفيد التأكد مما كان يُلتقط فعلًا، إن كان شيء يُلتقط، قبل التحويل.
التقارير
استمرارية التحليلات
إعدادات إضافات التحليلات وأي تتبع للأهداف أو الأحداث كان يعمل في WordPress يحتاج إلى إعادة إنشائه باستخدام HubSpot analytics ورموز تتبع الأطراف الثالثة المعاد تصديرها لا نقله كما هو معدّ.
في HubSpot: HubSpot Analytics and Traffic Analytics
توجيه HubSpot نفسها هو إعادة تصدير رموز التتبع مباشرة من المورّد بدل نسخها من تثبيت WordPress القديم.
خط أساس تقارير SEO
الترتيب وعدد الصفحات المفهرسة وخطوط أساس الزيارات كلها تحتاج إلى التقاطها قبل بدء الترحيل، حتى يمكن فعلًا إسناد أي تغيير بعد الإطلاق إلى سبب بدل الجدال حوله.
في HubSpot: HubSpot SEO tools (Content Hub) plus Search Console
تخطَّ خط الأساس وأصبح أي تحرك في الترتيب بعد الإطلاق جدالًا لا يستطيع أحد حسمه فعلًا، في أي اتجاه.
إعدادات المبيعات والتسويق
القوالب والوحدات والثيم (Templates, Modules, and Theme)
يصبح ثيم WordPress نفسه ثيم HubSpot: قالب أساسي، وأجزاء الترويسة والتذييل العامة، وقالب لكل نوع صفحة، ومناطق سحب وإفلات، ووحدات مخصصة، دون أن يُورَّث شيء مما كان قائمًا من قبل.
في HubSpot: HubSpot Theme, Templates, and Modules
ابنِ الترويسة والتذييل العامين أولًا: فكل ما عداهما في الثيم يرث منهما، وإتقانهما مبكرًا يوفر إعادة العمل على كل قالب صفحة لاحقًا.
صفحات النظام
صفحات 404 و500 ونتائج البحث ومطالبة كلمة المرور وتفضيلات الاشتراك يجب كلها أن تُبنى صفحات مستقلة داخل HubSpot.
في HubSpot: HubSpot System Pages
لا تظهر أي منها في عدّ الصفحات المبني على خريطة الموقع، ولهذا بالضبط تُغفل بانتظام من التقدير ومن قائمة الإطلاق معًا.
قوائم التنقل
يجب إعادة بناء كل قائمة في WordPress من الصفر باستخدام أداة القوائم المتقدمة في HubSpot ووحدات القوائم، على النسختين اللغويتين للموقع حيثما كان الموقع ثنائي اللغة.
في HubSpot: HubSpot Advanced Menus
خريطة إعادة التوجيه 301
كل رابط يتغير يحتاج إعادة توجيه مطابقة خاصة به داخل أداة URL redirects في HubSpot، مبنية من فحص كامل قبل الترحيل لا مجمّعة بعد الواقع من الذاكرة.
في HubSpot: HubSpot URL Redirects
من بين كل ما في الترحيل كله، هذه المهمة وحدها هي الأعلى عاقبة إذا جرى التعجل فيها.
النطاق وDNS وSSL
يجب ربط النطاق بـ HubSpot مع تحديث سجلات DNS وتوفير SSL، بتنسيق محكم يكفي ألا تكون هناك نافذة يكون فيها الموقع غير متاح للزائر.
في HubSpot: HubSpot Domains and URLs
نطاق جذر ثانٍ، وهو شائع بما يكفي لمجموعة تدير موقعين منفصلين بالعربية والإنجليزية، مقيّد بالخطة، فاستخرج متطلب الفئة الفعلي من جدول الميزات قبل الوعد بأنه مشمول.
النسخ متعددة اللغات
يجب إعادة بناء ما كان يفعله WPML أو Polylang على هيئة نسخ الصفحات والمنشورات متعددة اللغات الخاصة بـ HubSpot، مع إعادة توجيه مستقلة لكل لغة لا خريطة واحدة مشتركة.
في HubSpot: HubSpot multi-language content groups
ليس لأي من الإضافتين مسار استيراد إلى HubSpot إطلاقًا، فعامل ذلك إعادة بناء منذ البداية لا شيئًا يُحاول ترحيله أولًا.
المستخدمون والصلاحيات
المستخدمون والأدوار
أدوار WordPress، ومنها administrator وeditor وauthor وcontributor، تحتاج إلى إعادة إنشائها مستخدمي HubSpot لكل منهم مجموعة صلاحياته (permission sets)، ويجب مطابقة مؤلفي المنشورات على حدة تمامًا عن حسابات المستخدمين.
في HubSpot: HubSpot Users, Teams, Permission Sets, and Blog Authors
عامل مطابقة المؤلفين مهمة محتوى لا إدارة مستخدمين؛ فالاثنان يختلطان بسهولة، وبهذا الخلط يظهر اسم المؤلف خاطئًا يوم الإطلاق.
المحتوى المقيّد والعضويات
إضافة العضويات التي تقيّد المحتوى تُطابَق مع عضويات Content Hub ومجموعات الوصول، لكن عضويات HubSpot ضبط للوصول لا منصة عضويات بمعناها الأوسع: لا تقديم دروس، ولا جدولة تدريجية (drip scheduler) سوى تغيير مجموعة الوصول عبر workflow، ولا شهادات.
في HubSpot: HubSpot Memberships (Content Hub)
كثيرًا ما يفرض هذا الاختيار بين خطة HubSpot أعلى ومنصة طرف ثالث تُضاف بجانبها، ويستحق الخياران أن يُسعَّرا قبل الوعد بأيٍّ منهما لمن يعتمد الميزانية.
التكاملات
WooCommerce أو التجارة الإلكترونية
وظائف المتجر لا مكان لها داخل HubSpot إطلاقًا ويجب أن تبقى على منصة تجارة إلكترونية مخصصة، تُكامَل مع HubSpot لا أن تُستبدل به.
في HubSpot: None for the storefront. Revenue Hub covers payments, quotes, and invoices only.
لموقع مبني حول التجارة الإلكترونية أولًا، هذا وحده سبب كافٍ للنصح بعدم الترحيل بدل الوعد بحل بديل لن يصمد.
التضمينات والتغذيات من أطراف ثالثة
تغذيات عقارات IDX وMLS وأنظمة الحجز والخرائط وأدوات التقييمات ولوحات الوظائف كلها تحتاج إلى إعادة تضمين أو استبدال، وأي شيء منها اعتمد على PHP يحتاج إلى إعادة هندسة كاملة لا مجرد إعادة توجيه إلى عنوان جديد.
في HubSpot: Marketplace apps, custom modules, or serverless functions
وثّق كل تكامل مع طرف ثالث مقدمًا، عند تحديد النطاق، بدل ترك المشروع يكتشفها واحدًا تلو الآخر في منتصف البناء: فهذا السبب الأكثر شيوعًا لتجاوز موقع عقاري أو قوائم تقديره.
التسلسل
زامِن أولًا، ثم رحّل
الترتيب هو المضمون هنا. هذه الخطوات سلسلة اعتماد متبادل، وتنفيذها خارج التسلسل طريقة موثقة يفشل بها هذا النوع من الترحيل.
- 1
دقّق كل إضافة فعّالة أولًا وصنّف كلًا منها: مقابل أصلي، أو تطبيق Marketplace، أو بناء مخصص، أو خدمة طرف ثالث، أو إسقاط؛ فهذا وحده يتنبأ بكلفة المشروع الحقيقية أفضل من أي عدّ للصفحات
دقّق كل إضافة فعّالة أولًا وصنّف كلًا منها: مقابل أصلي، أو تطبيق Marketplace، أو بناء مخصص، أو خدمة طرف ثالث، أو إسقاط؛ فهذا وحده يتنبأ بكلفة المشروع الحقيقية أفضل من أي عدّ للصفحات
- 2
افحص الموقع الحي (crawl) للحصول على جرد كامل للروابط والصفحات، والتقط خطوط أساس SEO للترتيب والصفحات المفهرسة والزيارات قبل أن يتغير أي شيء
افحص الموقع الحي (crawl) للحصول على جرد كامل للروابط والصفحات، والتقط خطوط أساس SEO للترتيب والصفحات المفهرسة والزيارات قبل أن يتغير أي شيء
- 3
حدّد كل نوع صفحة متمايز وكل custom post type، وحسم HubDB أو الكائنات المخصصة لكل منها، لأن هذا القرار يحدد فئة الاشتراك المطلوبة
حدّد كل نوع صفحة متمايز وكل custom post type، وحسم HubDB أو الكائنات المخصصة لكل منها، لأن هذا القرار يحدد فئة الاشتراك المطلوبة
- 4
اختبر WordPress connect على المدونة الحية أثناء الاستكشاف (discovery)، حتى يظهر إخفاق مسار الاستيراد قبل البناء لا أثناءه
اختبر WordPress connect على المدونة الحية أثناء الاستكشاف (discovery)، حتى يظهر إخفاق مسار الاستيراد قبل البناء لا أثناءه
- 5
ثبّت إضافة HubSpot WordPress plugin لتبدأ التقاط ردود النماذج وبيانات التتبع في الـ CRM بينما إعادة البناء ما زالت جارية
ثبّت إضافة HubSpot WordPress plugin لتبدأ التقاط ردود النماذج وبيانات التتبع في الـ CRM بينما إعادة البناء ما زالت جارية
- 6
بناء ثيم HubSpot نفسه
قالب أساسي، والترويسة والتذييل العامان أولًا، ثم قالب لكل نوع صفحة بمناطق السحب والإفلات ووحداته المخصصة الخاصة به
- 7
بناء كل صفحة نظام
404 و500 ونتائج البحث ومطالبة كلمة المرور وتفضيلات الاشتراك، تُسمّى صراحةً بدل افتراضها
- 8
استورد المنشورات عبر WordPress connect، والرجوع إلى smart copy ثم XML إن فشل، ثم نظّف المؤلفين والوسوم والصور البارزة والأوصاف التعريفية (meta descriptions)
استورد المنشورات عبر WordPress connect، والرجوع إلى smart copy ثم XML إن فشل، ثم نظّف المؤلفين والوسوم والصور البارزة والأوصاف التعريفية (meta descriptions)
- 9
أعد رفع كل الوسائط إلى أداة Files وأعد كتابة كل إشارة إلى صورة داخل المحتوى بعيدًا عن رابط wp-content القديم
أعد رفع كل الوسائط إلى أداة Files وأعد كتابة كل إشارة إلى صورة داخل المحتوى بعيدًا عن رابط wp-content القديم
- 10
أعد بناء كل صفحة على القوالب المنجزة، ثم املأ جداول HubDB لكل محتوى مهيكل أو ديناميكي يحتاج إلى جدول
أعد بناء كل صفحة على القوالب المنجزة، ثم املأ جداول HubDB لكل محتوى مهيكل أو ديناميكي يحتاج إلى جدول
- 11
أعد بناء كل نموذج نموذج HubSpot، وأعد تضمين كل تكامل مع طرف ثالث كان الموقع يشغّله أو استبدله
أعد بناء كل نموذج نموذج HubSpot، وأعد تضمين كل تكامل مع طرف ثالث كان الموقع يشغّله أو استبدله
- 12
ابنِ خريطة إعادة التوجيه 301 الكاملة من الفحص (crawl) السابق للترحيل وحمّلها في أداة URL redirects قبل أن يُطلق أي شيء
ابنِ خريطة إعادة التوجيه 301 الكاملة من الفحص (crawl) السابق للترحيل وحمّلها في أداة URL redirects قبل أن يُطلق أي شيء
- 13
افحص جودة الموقع (QA) عبر المتصفحات والأجهزة، وتحقق من كل إعادة توجيه على حدة، وراجع البيانات الوصفية صفحةً صفحة مقابل خط الأساس السابق للترحيل
افحص جودة الموقع (QA) عبر المتصفحات والأجهزة، وتحقق من كل إعادة توجيه على حدة، وراجع البيانات الوصفية صفحةً صفحة مقابل خط الأساس السابق للترحيل
- 14
اربط النطاق وحدّث سجلات DNS ووفّر SSL وأطلق الموقع في نافذة منخفضة الزيارات فعلًا لا في منتصف يوم عمل
اربط النطاق وحدّث سجلات DNS ووفّر SSL وأطلق الموقع في نافذة منخفضة الزيارات فعلًا لا في منتصف يوم عمل
- 15
راقب Search Console والترتيب وتقارير 404 عن كثب لمدة أربعة أسابيع؛ فالترحيل الذي نُفّذ بصورة صحيحة يستقر خلال أسبوعين إلى أربعة
راقب Search Console والترتيب وتقارير 404 عن كثب لمدة أربعة أسابيع؛ فالترحيل الذي نُفّذ بصورة صحيحة يستقر خلال أسبوعين إلى أربعة
عادةً من 4-20 أسبوعًا من البداية إلى النهاية، بحسب مقدار ما يُستخدم فعلًا من إعدادات المصدر.
مقدّر الجهد
ما حجم هذا الترحيل؟
مجموعة أسئلة قليلة، دون حاجة إلى تسجيل. تأتي النطاقات من البحث أعلاه: لكل ميزة طابقناها رقم جهد، وهذه الأداة تجمع الميزات التي تنطبق على نسختك.
الجهد التقديري
أجب عن سؤالين ليظهر هنا نطاق الساعات.
مبني على أبحاثنا حول 43 ميزة في WordPress. إنه نطاق تقديري وليس عرض سعر.
نطاق للتخطيط وليس عرض سعر. وهو جهد التنفيذ فقط، دون بند لإدارة المشروع. وأكثر ما يحرّكه عمليًا هو جودة البيانات.
ما الذي يسوء في أغلب الأحيان
الإخفاقات التي تتكرر مرة بعد مرة، بترتيب ظهورها تقريبًا.
المنشورات وحدها تُستورد عبر أي من المسارات الثلاثة؛ أما الصفحات، وهي الحصة الأكبر في معظم المواقع، فإعادة بنائها يدوية بالكامل
المنشورات وحدها تُستورد عبر أي من المسارات الثلاثة؛ أما الصفحات، وهي الحصة الأكبر في معظم المواقع، فإعادة بنائها يدوية بالكامل
يفشل WordPress connect بصمت أينما كانت REST API معطلة أو مقيدة، وهذا شائع في الموقع المحصّن وقلّما يتضح قبل محاولة الاستيراد فعلًا
يفشل WordPress connect بصمت أينما كانت REST API معطلة أو مقيدة، وهذا شائع في الموقع المحصّن وقلّما يتضح قبل محاولة الاستيراد فعلًا
لا يوجد نظام إضافات ولا نظام hooks في جانب HubSpot أصلًا، فما كان functions.php يفعله لا مكان له يذهب إليه دون إعادة بناء
لا يوجد نظام إضافات ولا نظام hooks في جانب HubSpot أصلًا، فما كان functions.php يفعله لا مكان له يذهب إليه دون إعادة بناء
لا مقابل لـ custom post types في HubSpot، والقرار بين HubDB والكائنات المخصصة لكل واحد منها يحدد فئة الاشتراك التي يحتاجها البناء كله
لا مقابل لـ custom post types في HubSpot، والقرار بين HubDB والكائنات المخصصة لكل واحد منها يحدد فئة الاشتراك التي يحتاجها البناء كله
يقع HubDB خلف Content Hub Professional؛ وتقع العضويات ودعم المواقع المتعددة والنطاقات الجذرية الإضافية خلف Enterprise فوق ذلك
يقع HubDB خلف Content Hub Professional؛ وتقع العضويات ودعم المواقع المتعددة والنطاقات الجذرية الإضافية خلف Enterprise فوق ذلك
صفحات النظام غير مرئية لعدّ الصفحات المبني على خريطة الموقع، ولهذا تغيب بانتظام عن التقدير وعن قائمة الإطلاق معًا
صفحات النظام غير مرئية لعدّ الصفحات المبني على خريطة الموقع، ولهذا تغيب بانتظام عن التقدير وعن قائمة الإطلاق معًا
المنشور المستورد الذي ما زال يشير إلى رابط صورة تحت wp-content يستمر في العرض بلا مشكلة إلى أن تُطفأ استضافة WordPress، ثم ينكسر كله دفعة واحدة
المنشور المستورد الذي ما زال يشير إلى رابط صورة تحت wp-content يستمر في العرض بلا مشكلة إلى أن تُطفأ استضافة WordPress، ثم ينكسر كله دفعة واحدة
إعادة التوجيه يدوية بالكامل وهي كل مخاطر SEO في هذا الترحيل؛ والتعجل فيها هو أكبر سبب منفرد لفقدان الترتيب بعد الإطلاق
إعادة التوجيه يدوية بالكامل وهي كل مخاطر SEO في هذا الترحيل؛ والتعجل فيها هو أكبر سبب منفرد لفقدان الترتيب بعد الإطلاق
لا يمكن إعادة بناء WooCommerce داخل HubSpot بأي شكل، ولا استثناء
لا يمكن إعادة بناء WooCommerce داخل HubSpot بأي شكل، ولا استثناء
حقول ACF المتكررة (repeater) والمحتوى المرن (flexible-content) تحتاج إلى إعادة هيكلة حقيقية لا مطابقة مباشرة، وهذا العمل يسهل التقليل من شأنه عند تحديد النطاق
حقول ACF المتكررة (repeater) والمحتوى المرن (flexible-content) تحتاج إلى إعادة هيكلة حقيقية لا مطابقة مباشرة، وهذا العمل يسهل التقليل من شأنه عند تحديد النطاق
لا ينتقل مطور PHP إلى HubL مباشرة دون وقت تأهيل، ومكان هذا الوقت في التقدير لا أن يُكتشف تأخيرًا بعد أن يبدأ البناء
لا ينتقل مطور PHP إلى HubL مباشرة دون وقت تأهيل، ومكان هذا الوقت في التقدير لا أن يُكتشف تأخيرًا بعد أن يبدأ البناء
سرعة اتخاذ القرار من جانبكم، لا التعقيد التقني للبناء، هي باستمرار العامل المنفرد الأكبر في مدة هذه المشاريع، وجدير بدورة قرار تتباطأ حول رمضان أو العيد أو ذروة الصيف أن يُخطَّط التقويم على أساسها لا أن تُعامَل مفاجأة
سرعة اتخاذ القرار من جانبكم، لا التعقيد التقني للبناء، هي باستمرار العامل المنفرد الأكبر في مدة هذه المشاريع، وجدير بدورة قرار تتباطأ حول رمضان أو العيد أو ذروة الصيف أن يُخطَّط التقويم على أساسها لا أن تُعامَل مفاجأة
الأسئلة
WordPress إلى HubSpot: أسئلة وأجوبة
نعم. استيراد محتوى من المصدر إلى HubSpot، يغطي 3 كائنات. ما لن يفعله هو إعادة بناء إعداداتك: وهذه هي البنود الـ 20 أدناه.
عادةً من 4-20 أسبوعًا. ويحدد التعقيد عمق الأتمتة والتقارير لا عدد السجلات: فالموصل ينقل السجلات، ولذلك لا تطيل قاعدة بيانات كبيرة بحد ذاتها الجدول الزمني.
من بين 43 ميزة طابقناها، تنتقل 10 ميزات (23%) مباشرة وتُطابَق 30 ميزة (70%) جزئيًا، أي يضيع شيء منها أو يُعاد تشكيله في الطريق. و3 ميزات ليس لها مقابل في HubSpot في أي فئة، وهذا يستحق طرحه قبل التوقيع لا بعده.
يجب إعادة بناء 20 بندًا يدويًا، و13 قيدًا موثقًا لا يُظهرها الموصل إطلاقًا. القائمتان في هذه الصفحة كاملتين لمن يحدد نطاق العمل.
أدوات استيراد المدونة نفسها مجانية ولا تشترط أي فئة اشتراك، وهي متاحة في كل منتج وكل خطة. وما يحكم المشروع فعلًا هو فئة الوجهة: Content Hub Free يتوقف عند 25 صفحة، وHubDB والمحتوى الذكي (smart content) يحتاجان Content Hub Professional، والعضويات (memberships) والمواقع المتعددة (multi-site) وأي نطاق جذر إضافي تحتاج Content Hub Enterprise. وحيثما كانت أنواع المنشورات المخصصة (custom post types) ستُستبدل بكائنات مخصصة (custom objects)، فهذا أيضًا يحتاج فئة Enterprise، فتحقق من عدد الصفحات وقائمة الميزات مقابل الخطة قبل تحديد نطاق الترحيل.
3: functions.php والـ hooks، وWooCommerce، وإضافات LMS. إذا كان فريقك يعتمد على واحدة منها فاحسم الأمر قبل التوقيع بدل اكتشافه عند التحويل النهائي، حين يكون البديل بناءً مخصصًا.
لا. بندان (2) في هذه الصفحة هما شيفرة WordPress ومنتجاتها الخاصة، ولا ينقلهما ترحيل HubSpot ولا ساعات لهما في أي تقدير يُعطى لك. ومع ذلك يحتاجان إلى قرار قبل التحويل النهائي، لأنك أنت من يتخلى عن شيء.
في اتجاه واحد فقط. المزامنة هنا ليست في الاتجاهين، فتشغيل النظامين معًا يعني اختيار نظام السجل المرجعي (system of record) منذ البداية وقبول انحراف البيانات في الآخر.
هل أنت مستعد للبدء؟
خطّط لعملية الترحيل
أخبرنا بالمنصة التي تنتقل منها، وحجم التخصيص فيها، والموعد الذي تحتاج فيه إلى العمل على HubSpot. وسنوضح لك ما ينتقل مباشرة، وما يحتاج إلى إعادة بناء، والمدة التي يستغرقها الانتقال فعلياً.