هل تجاوزت WordPress حدودك؟ دليل الترحيل إلى Next.js + Supabase
لقد فقدت العد كم مرة سمعت هذا: "كان WordPress جيدًا عندما بدأنا، لكن الآن..." ثم يأتي القائمة. الموقع يستغرق 6 ثوان للتحميل. توقفت مكون نموذج الاتصال عن العمل بعد التحديث الأخير. هناك ثغرة أمان حرجة في مكون إضافي لم يتم صيانته منذ عام 2022. المطور الذي بنى السمة الأصلية اختفى. هل يبدو هذا مألوفًا؟
إليك القضية -- WordPress يقوم بتشغيل أكثر من 40% من الويب، وهناك سبب وجيه لذلك. إنه سهل الوصول إليه، وله نظام بيئي ضخم، وقد أخذ الكثير من الشركات على الإنترنت بسرعة. لكن هناك فرق بين أداة تبدأك وأداة تنمو معك. إذا كنت تقرأ هذا، فربما واجهت هذا الجدار. دعني أرشدك خلال ما يبدو عليه الترحيل الحقيقي من WordPress إلى بنية Next.js + Supabase بدون رأس -- ليست نسخة التسويق، بل دليل الهندسة الفعلي.
جدول المحتويات
- علامات أنك تجاوزت الحد مع WordPress بالفعل
- ضريبة WordPress: ما يكلفه جحيم المكون الإضافي حقًا
- لماذا Next.js + Supabase هي المكدس الذي له معنى
- دليل الترحيل: مرحلة تلو الأخرى
- ترحيل البيانات: إخراج المحتوى من WordPress
- بناء الواجهة الأمامية باستخدام Next.js
- إعداد Supabase كخادم خلفي
- التعامل مع المصادقة وبيانات المستخدم
- حفظ SEO: لا تفقد ما بنيته
- معايير الأداء: قبل وبعد
- مقارنة التكاليف: WordPress مقابل مكدس بدون رأس
- الأسئلة الشائعة

علامات أنك تجاوزت الحد مع WordPress بالفعل
لا يحتاج الجميع إلى مغادرة WordPress. أريد أن أكون صريحًا بشأن هذا. إذا كنت تدير مدونة شخصية أو موقعًا للمعلومات لشركة محلية، فربما لا يزال WordPress مع سمة محترمة وحفنة من المكونات الإضافية هو الخيار الصحيح. لكن هناك إشارات واضحة على أنك تجاوزت الحد:
تضارب المكونات الإضافية يكسر الأشياء كل شهر
تقوم بتحديث WooCommerce، وينقطع بناء الصفحة. تحدّث منشئ الصفحة، وتطرح مكون SEO الخاص بك تحذيرات. تقوم بتحديث PHP إلى 8.2 لأن مضيفك يتطلبه، وتتوقف ثلاثة مكونات إضافية عن العمل تمامًا. هذا ليس خطأ -- إنها البنية. جميع مكونات WordPress الإضافية تشترك في نطاق عام واحد، والخطافات نفسها، وقاعدة البيانات نفسها. كل مكون إضافي هو صراع محتمل مع كل مكون إضافي آخر.
لقد قمت بتدقيق مواقع WordPress تعمل بـ 30، 40، حتى 60+ مكون إضافي نشط. في هذه المرحلة، لا تحتفظ بموقع ويب. أنت تحافظ على برج Jenga.
أصبحت الأداء وظيفة بدوام كامل
نقاط PageSpeed الخاصة بك في الثلاثينات. لقد قمت بتثبيت مكون تخزين مؤقت، ومكون تحسين الصور، ومكون تصغير، ومكون CDN -- كل شيء لإصلاح مشاكل الأداء التي أنشأتها المكونات الإضافية الـ 25 الأخرى. السخرية سميكة.
WordPress ينشئ الصفحات ديناميكياً في كل طلب (إلا إذا كانت مخزنة مؤقتاً). كل مكون إضافي يمكنه حقن ملفات CSS و JavaScript الخاصة به. صفحة WordPress نموذجية مع المكونات الإضافية الشهيرة تحمل 15-30 مورد منفصل يمنع العرض. تُظهر بيانات Core Web Vitals لعام 2024 من Google أن مواقع WordPress لديها معدل نجاح بنسبة 33% في جميع مقاييس CWV الثلاثة، مقارنة بـ 52% للمواقع المبنية باستخدام أطر عمل JavaScript الحديثة.
الثغرات الأمنية تبقيك مستيقظاً طوال الليل
تتبع قاعدة بيانات الثغرات الأمنية في WPScan لعام 2024 أكثر من 7000 ثغرة أمان جديدة في WordPress في تلك السنة وحدها -- الغالبية العظمى في المكونات الإضافية والسمات. إذا كنت تدير موقعًا يتعامل مع بيانات المستخدم أو المدفوعات أو أي نوع من المعلومات الحساسة، فإن كل مكون إضافي هو سطح هجوم. أفادت Patchstack أن 97% من ثغرات أمان WordPress في عام 2024 جاءت من المكونات الإضافية.
أنت في الأساس تثق بعشرات المطورين المستقلين -- يحافظ الكثير منهم على المكونات الإضافية كمشاريع جانبية -- بموقفك الأمني.
فريق التطوير الخاص بك يكره العمل عليه
هذا واحد مقلل التقدير. لا يريد المطورون الجيدون العمل في WordPress بعد الآن. سير عمل PHP-template-spaghetti-with-ACF-fields مؤلم مقارنة بتطوير المكونات الحديثة. إذا كنت تحاول جذب وجود موهبة هندسية، فإن مكدس التكنولوجيا الخاص بك مهم.
ضريبة WordPress: ما يكلفه جحيم المكون الإضافي حقًا
دعني أضع بعض الأرقام على هذا. لموقع WordPress متوسط الحجم (دعنا نقول موقعًا للتجارة الإلكترونية أو موقعًا تسويقيًا لـ SaaS مع مدونة وحسابات المستخدمين والوظائف المخصصة)، إليك ما تبدو عليه "ضريبة WordPress" عادة سنويًا:
| فئة التكلفة | التقدير السنوي |
|---|---|
| تراخيص المكون الإضافي المميزة (15-20 مكون إضافي) | 1,500 دولار - 4,000 دولار |
| استضافة WordPress المُدارة (WP Engine و Kinsta) | 1,200 دولار - 6,000 دولار |
| مراقبة الأمان + التنظيف (Sucuri و Wordfence) | 300 دولار - 500 دولار |
| وقت تحسين الأداء (ساعات المطور) | 3,000 دولار - 8,000 دولار |
| تصحيح أخطاء تضارب المكون الإضافي (ساعات المطور) | 2,000 دولار - 6,000 دولار |
| الإصلاحات الطارئة من التحديثات التي تكسر الأشياء | 1,000 دولار - 4,000 دولار |
| إجمالي ضريبة WordPress السنوية | 9,000 دولار - 28,500 دولار |
هذا قبل أن تبني ميزة واحدة جديدة. إنها تكلفة الحفاظ على الأضواء مضاءة فقط.
لماذا Next.js + Supabase هي المكدس الذي له معنى
هناك عشرات الطرق للذهاب بدون رأس. يمكنك استخدام Gatsby (على الرغم من أنه في الأساس في وضع الصيانة منذ استحوذت Netlify عليه). يمكنك استخدام Remix أو Astro أو SvelteKit. بالنسبة للخادم الخلفي، يمكنك استخدام Firebase أو PlanetScale أو API مخصص.
لكن بالنسبة للفرق التي تهاجر من WordPress في عام 2025، فإن Next.js + Supabase يحقق نقطة حلوة يصعب التغلب عليها. إليك السبب.
Next.js: الواجهة الأمامية التي تفعل كل شيء
يمنحك Next.js 15 (مستقر منذ أكتوبر 2024) مكونات الخادم بشكل افتراضي، مما يعني أنك تحصل على أداء المواقع الثابتة مع مرونة المواقع الديناميكية. يمكنك إنشء منشورات المدونة بشكل ثابت في وقت الإنشاء، وعرض الصفحات الديناميكية على الخادم، وعرض المكونات التفاعلية على جانب العميل -- كل ذلك في نفس التطبيق.
بالنسبة للفرق القادمة من WordPress، الفوائد الرئيسية هي:
- تحسين الصور المدمج -- يستبدل 2-3 مكونات إضافية WordPress
- تقسيم الأكواد التلقائي -- كل صفحة تحمل فقط JavaScript الذي تحتاجه
- Edge middleware -- التعامل مع عمليات إعادة التوجيه والمصادقة واختبارات A/B على مستوى CDN
- Incremental Static Regeneration (ISR) -- إعادة بناء صفحات فردية دون نشرات كاملة
- App Router مع React Server Components -- تقليل JavaScript على جانب العميل بشكل كبير
نبني الكثير من مشاريع Next.js في Social Animal (تحقق من قدرات تطوير Next.js)، والفرق في الأداء مقابل WordPress ملموس دائمًا.
Supabase: الخادم الخلفي الذي تمنى WordPress أنه حصل عليه
Supabase هو بديل Firebase مفتوح المصدر مبني على PostgreSQL. يعطيك:
- قاعدة بيانات Postgres كاملة مع واجهة برمجية REST و GraphQL تم إنشاؤها تلقائيًا من مخطط البيانات الخاص بك
- المصادقة المدمجة (البريد الإلكتروني و OAuth وروابط Magic والمزيد)
- سياسات أمان على مستوى الصفوف للتحكم في الوصول الدقيق
- الاشتراكات في الوقت الفعلي عبر WebSockets
- وظائف الحافة للمنطق الخلفي بدون خادم
- التخزين لتحميلات الملفات مع تسليم CDN
بالنسبة لترحيلات WordPress على وجه التحديد، Supabase رائع لأن WordPress يستخدم MySQL، وينطبق نموذج البيانات الخاص بك بشكل مفاجئ على PostgreSQL. تصبح أنواع المشاركات المخصصة جداول. تصبح البيانات الوصفية للمشاركة أعمدة JSONB. تتطابق بيانات المستخدم تقريبا 1:1.
يتضمن المستوى المجاني من Supabase 500MB من قاعدة البيانات و 1GB من التخزين و 50000 مستخدم نشط شهريًا على المصادقة. خطتهم Pro بسعر 25 دولارًا/شهر تغطي معظم المواقع الإنتاجية. قارن هذا بـ 30-100 دولار/شهر التي تدفعها مقابل استضافة WordPress المُدارة وحدها.

دليل الترحيل: مرحلة تلو الأخرى
إليك الأسلوب الذي طورته عبر عشرات ترحيلات WordPress. إنها ليست مشروعًا في نهاية الأسبوع -- ميزانية 4-12 أسبوع اعتمادًا على تعقيد الموقع -- لكنها يمكن التنبؤ بها ومنخفضة المخاطر إذا اتبعت المراحل.
المرحلة 1: التدقيق والمعمارية (الأسبوع 1)
قبل أن تكتب سطر واحد من الكود:
- تصدير قائمة المكون الإضافي الكاملة مع
wp plugin list --status=active(WP-CLI) - خريطة كل مكون إضافي إلى بديله في المكدس الجديد
- تصدير هيكل عنوان URL الكامل بما في ذلك جميع المنشورات والصفحات والتصنيفات وأنواع المشاركات المخصصة
- توثيق جميع النماذج والتكاملات والاتصالات بأطراف ثالثة
- تحديد الوظائف المخصصة التي تعيش في
functions.phpالخاص بك
تمرين خريطة المكون الإضافي حرج. إليك ما تبدو عليه الاستبدالات الشائعة:
| مكون WordPress الإضافي | استبدال بدون رأس |
|---|---|
| Yoast SEO | Next.js built-in metadata API + generateMetadata() |
| WP Super Cache / W3 Total Cache | غير مطلوب (ثابت بشكل افتراضي) |
| Wordfence / Sucuri | Supabase RLS + حماية Vercel DDoS المدمجة |
| Contact Form 7 / Gravity Forms | React Hook Form + Supabase Edge Function |
| WooCommerce | Saleor أو Medusa.js أو Shopify Storefront API |
| ACF / Custom Fields | جداول Supabase مع مخططات مكتوبة |
| WP Migrate DB | سكريبت ترحيل Supabase لمرة واحدة |
| Smush / ShortPixel | Next.js Image component (مدمج) |
| Elementor / WPBakery | مكونات React (لن تفتقدها) |
المرحلة 2: إعداد المكدس الجديد (الأسبوع 2)
# إنشاء مشروع Next.js الخاص بك
npx create-next-app@latest my-site --typescript --tailwind --app --src-dir
# تثبيت Supabase
npm install @supabase/supabase-js @supabase/ssr
# قم بتعيين متغيرات البيئة
cp .env.example .env.local
ملف .env.local الخاص بك:
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
انشر إلى Vercel على الفور. نعم، قبل أن تبني أي شيء ذي مغزى. إن وجود عنوان URL معاينة مباشر من اليوم الأول يغير طريقة عملك -- يمكن لأصحاب المصلحة رؤية التقدم، وتكتشف مشاكل النشر مبكرًا.
ترحيل البيانات: إخراج المحتوى من WordPress
هنا هو حيث معظم أدلة الترحيل تصبح ضبابية. دعني أكون محددًا.
الخطوة 1: تصدير بيانات WordPress
لا تستخدم تصدير XML المدمج في WordPress. إنه غير مكتمل ومهيكل بشكل سيء. بدلاً من ذلك، استخدم WP-CLI والاستعلامات المباشرة لقاعدة البيانات:
# تصدير المنشورات كـ JSON
wp post list --post_type=post --format=json --fields=ID,post_title,post_content,post_excerpt,post_date,post_status,post_name > posts.json
# تصدير الصفحات
wp post list --post_type=page --format=json --fields=ID,post_title,post_content,post_excerpt,post_date,post_status,post_name > pages.json
# تصدير أنواع المشاركات المخصصة
wp post list --post_type=your_cpt --format=json > cpt.json
# تصدير post meta (ACF fields وما إلى ذلك)
wp eval 'global $wpdb; $results = $wpdb->get_results("SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE meta_key NOT LIKE \"_%\""); echo json_encode($results);' > postmeta.json
الخطوة 2: التحويل والتحميل في Supabase
اكتب سكريبت ترحيل. أفضل TypeScript لهذا:
import { createClient } from '@supabase/supabase-js'
import posts from './exports/posts.json'
const supabase = createClient(
process.env.SUPABASE_URL!,
process.env.SUPABASE_SERVICE_ROLE_KEY!
)
async function migratePosts() {
for (const post of posts) {
const { error } = await supabase.from('posts').insert({
wp_id: post.ID,
title: post.post_title,
slug: post.post_name,
content: convertWpContentToMdx(post.post_content),
excerpt: post.post_excerpt,
published_at: post.post_date,
status: post.post_status === 'publish' ? 'published' : 'draft',
})
if (error) console.error(`Failed to migrate post ${post.ID}:`, error)
}
}
function convertWpContentToMdx(html: string): string {
// استخدم turndown أو rehype لتحويل WordPress HTML إلى MDX
// التعامل مع الرموز القصيرة والعمليات الاختيارية وكتل Gutenberg
// هنا حيث تعيش 80% من تعقيد الترحيل
}
دالة convertWpContentToMdx هي حيث ستقضي معظم الوقت. محتوى WordPress هو فوضى من HTML والرموز القصيرة وتعليقات كتل Gutenberg وعناوين oEmbed المضمنة. مكتبات مثل turndown تتعامل مع تحويل HTML الأساسي إلى Markdown، لكنك ستحتاج إلى قواعد مخصصة للرموز القصيرة والكتل.
الخطوة 3: ترحيل الوسائط
import { createClient } from '@supabase/supabase-js'
import fetch from 'node-fetch'
async function migrateMedia(mediaItems: any[]) {
for (const item of mediaItems) {
const response = await fetch(item.source_url)
const buffer = await response.buffer()
const { error } = await supabase.storage
.from('media')
.upload(`uploads/${item.slug}.${item.mime_type.split('/')[1]}`, buffer, {
contentType: item.mime_type,
})
if (error) console.error(`Failed to upload ${item.slug}:`, error)
}
}
بناء الواجهة الأمامية باستخدام Next.js
مع بيانات في Supabase، بناء الواجهة الأمامية هو الجزء الممتع. إليك صفحة منشور مدونة نموذجية باستخدام Next.js App Router:
// src/app/blog/[slug]/page.tsx
import { createClient } from '@/lib/supabase/server'
import { notFound } from 'next/navigation'
import { MDXRemote } from 'next-mdx-remote/rsc'
export async function generateMetadata({ params }: { params: { slug: string } }) {
const supabase = createClient()
const { data: post } = await supabase
.from('posts')
.select('title, excerpt, og_image')
.eq('slug', params.slug)
.single()
if (!post) return {}
return {
title: post.title,
description: post.excerpt,
openGraph: { images: [post.og_image] },
}
}
export default async function BlogPost({ params }: { params: { slug: string } }) {
const supabase = createClient()
const { data: post } = await supabase
.from('posts')
.select('*')
.eq('slug', params.slug)
.eq('status', 'published')
.single()
if (!post) notFound()
return (
<article className="prose lg:prose-xl mx-auto">
<h1>{post.title}</h1>
<time dateTime={post.published_at}>
{new Date(post.published_at).toLocaleDateString()}
</time>
<MDXRemote source={post.content} />
</article>
)
}
لاحظ عدم وجود مكون تخزين مؤقت، لا مكون أداء، لا مكون SEO. يتعامل metadata API مع SEO. مكونات الخادم تتعامل مع الأداء. يتعامل CDN مع التخزين المؤقت. كل شيء مدمج.
إعداد Supabase كخادم خلفي
يجب تصميم مخطط Supabase حول احتياجات البيانات الفعلية، وليس هيكل WordPress العام wp_posts / wp_postmeta. إليك مخطط أنظف:
-- جدول المنشورات
create table posts (
id uuid default gen_random_uuid() primary key,
title text not null,
slug text unique not null,
content text,
excerpt text,
featured_image text,
status text default 'draft' check (status in ('draft', 'published', 'archived')),
author_id uuid references auth.users(id),
published_at timestamptz,
created_at timestamptz default now(),
updated_at timestamptz default now(),
metadata jsonb default '{}'
);
-- التصنيفات
create table categories (
id uuid default gen_random_uuid() primary key,
name text not null,
slug text unique not null,
description text
);
-- Row Level Security
alter table posts enable row level security;
create policy "Published posts are viewable by everyone"
on posts for select
using (status = 'published');
create policy "Authors can manage their own posts"
on posts for all
using (auth.uid() = author_id);
عمود metadata jsonb هو مخرجك. يمكن لأي حقول مخصصة لا تستحق عمودها الخاص أن تعيش هناك. إنه مفهرس وقابل للاستعلام ولا نهائي مرن -- مثل حقول ACF لكن بدون المكون الإضافي.
التعامل مع المصادقة وبيانات المستخدم
إذا كان موقع WordPress الخاص بك يحتوي على حسابات المستخدمين، فإن Supabase Auth يتعامل مع الترحيل بنظافة. لا يمكنك ترحيل تجزئة كلمات المرور (WordPress يستخدم phpass، Supabase يستخدم bcrypt)، لكن يمكنك:
- استيراد رسائل البريد الإلكتروني والملفات الشخصية للمستخدمين إلى Supabase
- تشغيل تدفق "إعادة تعيين كلمة المرور" لجميع المستخدمين عند تسجيل الدخول الأول
- أو استخدم المصادقة برابط magic بحيث لا تكون كلمات المرور مطلوبة على الإطلاق
يدعم Supabase البريد الإلكتروني/كلمة المرور و Google و GitHub و Apple وعشرات موفري OAuth الآخرين مباشرة. لا توجد حاجة إلى مكون إضافي.
حفظ SEO: لا تفقد ما بنيته
هذا غير قابل للتفاوض. يمكن أن يدمر الترحيل المفشل سنوات من أسهم SEO بين عشية وضحاها. إليك قائمة المراجعة:
خريطة كل عنوان URL قديم إلى عنوانه الجديد. WordPress يستخدم
/2024/01/post-title/بشكل افتراضي. موقعك الجديد قد يستخدم/blog/post-title. كل عنوان URL قديم واحد يحتاج إلى إعادة توجيه 301.تنفيذ عمليات إعادة التوجيه في Next.js:
// next.config.js
module.exports = {
async redirects() {
return [
// عناوين URL القائمة على التاريخ في WordPress إلى رموز نظيفة
{
source: '/:year(\\d{4})/:month(\\d{2})/:slug',
destination: '/blog/:slug',
permanent: true,
},
// صفحات الفئة
{
source: '/category/:slug',
destination: '/blog/category/:slug',
permanent: true,
},
]
},
}
- الحفاظ على جميع عناوين البيانات الوصفية والأوصاف والبيانات المنظمة. صدّرها من Yoast قبل الترحيل.
- قدّم خريطة الموقع الجديدة إلى Google Search Console فورًا بعد الإطلاق.
- احتفظ بموقع WordPress القديم على نطاق فرعي (old.yoursite.com) لمدة 30 يوم كنسخة احتياطية.
معايير الأداء: قبل وبعد
إليك أرقام حقيقية من ترحيلات قمنا بها في Social Animal (هذه متوسطات عبر 12 مشروع ترحيل في 2024-2025):
| المقياس | WordPress (قبل) | Next.js + Supabase (بعد) | التحسن |
|---|---|---|---|
| درجة Lighthouse للأداء | 38 | 94 | +147% |
| أكبر Contentful Paint (LCP) | 4.2 ثانية | 0.9 ثانية | -79% |
| First Input Delay (FID) | 180 ملي ثانية | 12 ملي ثانية | -93% |
| Cumulative Layout Shift (CLS) | 0.25 | 0.02 | -92% |
| Time to First Byte (TTFB) | 1.8 ثانية | 0.15 ثانية | -92% |
| وزن الصفحة الكلي | 3.2MB | 420KB | -87% |
| طلبات HTTP | 47 | 8 | -83% |
هذه ليست منتقاة. هم متسقون. عندما تزيل 30+ مكون إضافي، كل إضافة CSS و JS الخاصة به، وتحل محل عرض PHP الديناميكي بمكونات React ثابتة/معروضة على الخادم على CDN عام، فإن النتائج يمكن التنبؤ بها.
إذا كنت فضوليًا بشأن ما قد تبدو عليه هذه الأنواع من النتائج لمشروعك، فإن صفحة التسعير الخاصة بنا تحدد ما تكلفه مشاريع ترحيل headless عادة.
مقارنة التكاليف: WordPress مقابل مكدس بدون رأس
| WordPress (السنوي) | Next.js + Supabase (السنوي) | |
|---|---|---|
| الاستضافة | 1,200 دولار - 6,000 دولار (WP Engine/Kinsta) | 0 دولار - 240 دولار (Vercel Pro) |
| قاعدة البيانات / الخادم الخلفي | مضمن في الاستضافة | 0 دولار - 300 دولار (Supabase Pro) |
| تراخيص المكون الإضافي | 1,500 دولار - 4,000 دولار | 0 دولار |
| أدوات الأمان | 300 دولار - 500 دولار | 0 دولار (مدمج) |
| CDN | 0 دولار - 600 دولار | 0 دولار (مضمن مع Vercel) |
| ساعات عمل الصيانة | 6,000 دولار - 18,000 دولار | 1,000 دولار - 4,000 دولار |
| الإجمالي | 9,000 دولار - 29,100 دولار | 1,000 دولار - 4,540 دولار |
المكدس بدون رأس أرخص بنسبة 70-85% للتشغيل سنويًا. لترحيل نفسه تكلفة مقدمة بالطبع -- عادة 15,000 دولار-60,000 دولار اعتمادًا على التعقيد لبناء احترافي (راجع خدمات تطوير headless CMS للتفاصيل). لكنه يدفع بنفسه خلال 6-18 شهرًا من خلال تقليل التكاليف التشغيلية وحدها، قبل أن تأخذ في الاعتبار تأثير الإيرادات لأداء أفضل و SEO.
الأسئلة الشائعة
هل أحتاج إلى تعلم React/Next.js لإدارة محتوى بعد الترحيل؟ لا. تقوم معظم الفرق بدمج Next.js مع CMS بدون رأس مثل Sanity أو Contentful أو حتى WordPress نفسه يُستخدم كـ CMS بدون رأس (عبر REST API). محررو المحتوى لا يلمسون الكود أبدًا. يحصلون على واجهة تحرير نظيفة، وتسحب الواجهة الأمامية المحتوى عبر API. إذا كنت تريد الاحتفاظ بمحرر WordPress الذي يعرفه فريقك بالفعل، يمكنك بالتأكيد -- فقط قم بإزالة واجهة WordPress الأمامية واستخدمها كخادم خلفي للمحتوى.
كم من الوقت يستغرق ترحيل WordPress نموذجي إلى Next.js؟ لموقع يركز على المحتوى مع مدونة وصفحات قياسية: 4-6 أسابيع. لموقع مع التجارة الإلكترونية وحسابات المستخدمين وأنواع المشاركات المخصصة والوظائف المعقدة: 8-14 أسبوع. أكبر متغير هو تعقيد المحتوى -- المواقع التي لديها محتوى يعتمد بكثافة على الرموز القصيرة أو كتل Gutenberg المخصصة بعمق تستغرق وقتًا أطول للترحيل بنظافة.
هل سأفقد تصنيفات Google الخاصة بي أثناء الترحيل؟ لا إذا تعاملت مع عمليات إعادة التوجيه بشكل صحيح. إعادة التوجيه 301 تحافظ على 90-99% من أسهم الرابط. عادة ما نشهد انخفاضًا صغيرًا في أول 1-2 أسابيع بعد الترحيل (يحتاج Google إلى زحف إعادة)، متبوعًا بتحسن في التصنيفات بسبب أفضل درجات Core Web Vitals. المفتاح هو خريطة كل عنوان URL واحد وعدم الإطلاق حتى تكون خريطة إعادة التوجيه كاملة.
هل Supabase جاهز للإنتاج للمواقع عالية الحركة؟ نعم. يعمل Supabase على بنية AWS ويتم استخدامه في الإنتاج من قبل الشركات التي تتعامل مع ملايين الطلبات. قاعدة البيانات الخاصة بهم هي فقط PostgreSQL -- ربما أكثر قاعدة بيانات مختبرة في الوجود. اعتبارًا من عام 2025، تقدم Supabase أكثر من 1 مليون قاعدة بيانات وتعالج مليارات طلبات API يوميًا. للمزيد من الحجم، تتضمن خطط Pro ($25/mo) و Team ($599/mo) الموارد المخصصة والدعم ذو الأولوية.
هل يمكنني ترحيل WooCommerce إلى هذا المكدس؟ يمكنك، لكن التجارة الإلكترونية تضيف تعقيدًا كبيرًا. تذهب معظم الفرق التي تهاجر من WooCommerce إما إلى Shopify (باستخدام Storefront API مع واجهة أمامية Next.js) أو حل مفتوح المصدر مثل Medusa.js أو Saleor. يمكن لـ Supabase التعامل مع فهارس المنتجات وإدارة الطلبات، لكنك ستحتاج إلى بناء الدفع ومعالجة الدفع وإدارة المخزون وحساب الضريبة بنفسك. بالنسبة لمعظم الشركات، استخدام خادم خلفي مخصص للتجارة الإلكترونية والاتصال به مع Next.js أكثر منطقية.
بخصوص WordPress multisite -- هل يمكن لهذا المكدس استبداله؟ بالتأكيد. يتمتع Next.js بدعم ممتاز للأنظمة متعددة المستأجرين باستخدام middleware والتوجيه الديناميكي. يوفر Supabase's Row Level Security طريقة بسيطة لتقسيم البيانات حسب المستأجر. لقد قمنا بترحيل شبكات WordPress multisite بـ 50+ موقع إلى تطبيق Next.js واحد مع توجيه خاص بالمستأجر، وكان التبسيط التشغيلي ضخمًا.
هل أحتاج إلى CMS، أم يمكنني فقط استخدام Supabase مباشرة؟ يعطيك Supabase محرر جدول يعمل للمطورين، لكن محررو المحتوى عادة يريدون شيئًا أكثر بريقًا. الأساليب الأكثر شيوعًا هي: (1) استخدام CMS مخصص بدون رأس مثل Sanity أو Storyblok للمحتوى و Supabase لبيانات التطبيق، (2) بناء واجهة مسؤول بسيطة باستخدام شيء مثل Next.js + Supabase Auth، أو (3) الاحتفاظ بـ WordPress كـ CMS خلفي بدون رأس. الخيار 1 الأكثر شيوعًا للمواقع الغنية بالمحتوى. إذا كنت تستكشف الخيارات، فإننا نحدد المقارنات في Astro development و headless CMS pages.
إذا حدث خطأ في الترحيل -- هل يمكنني العودة إلى WordPress؟ نعم، وينبغي أن تخطط لهذا. احتفظ بموقع WordPress الخاص بك قيد التشغيل على نطاق فرعي طوال عملية الترحيل. استخدم التبديل على مستوى DNS (غيّر A record أو CNAME) بحيث يمكنك الرجوع للخلف في دقائق. نوصي بالاحتفاظ بمثيل WordPress القديم قيد التشغيل لمدة 30 يوم على الأقل بعد الإطلاق. قم بإيقاف تشغيله فقط بعد أن تؤكد أن جميع عمليات إعادة التوجيه تعمل وتصنيفات البحث مستقرة وتم التحقق من جميع الوظائف. إذا كنت تريد مساعدة في التخطيط لترحيل مع إجراءات rollback مناسبة، تواصل مع فريقنا -- لقد فعلنا هذا عدد مرات كافية لمعرفة أين توجد الحفر.