OTOMY
SEO٦ يونيو ٢٠٢٦6 min

إنشاء 50 صفحة محلية في أسبوع واحد باستخدام الذكاء الاصطناعي

يتيح تحسين محركات البحث البرمجي إنشاء عشرات الصفحات المحلية المحسّنة دون كتابة سطر واحد من المحتوى يدويًا. إليكم الطريقة الدقيقة والأدوات وسير العمل الذي نعتمده في Otomy لصالح عملائنا من المؤسسات الصغيرة والمتوسطة.

M

بقلم

Melissa Slimani

إنشاء 50 صفحة محلية في أسبوع واحد باستخدام الذكاء الاصطناعي

لماذا تحسين محركات البحث البرمجي للصفحات المحلية؟

إذا كنت سبّاكًا في ليون، أو صانع أقفال في مارسيليا، أو مستشار تكنولوجيا المعلومات في الجزائر العاصمة، فأنت بحاجة إلى صفحة مخصصة لـكل مدينة تغطيها. المشكلة: كتابة 50 صفحة فريدة يدويًا تستغرق أسابيع.

يحل تحسين محركات البحث البرمجي للصفحات المحلية هذه المشكلة من خلال الجمع بين قاعدة بيانات مهيكلة وقوالب ديناميكية والذكاء الاصطناعي التوليدي لإنتاج محتوى فريد على نطاق واسع.

في Otomy، طبّقنا هذه الطريقة لعملاء B2B في فرنسا والجزائر. النتيجة: زيادة بنسبة 340% في حركة المرور العضوية المحلية خلال 3 أشهر على موقع خدمات تكنولوجيا المعلومات.


البنية التقنية في 5 طبقات

قبل الانطلاق، إليكم البنية الكاملة للنظام:

  1. قاعدة البيانات ← Supabase (PostgreSQL مُدار)
  2. توليد المحتوى ← Claude AI عبر API
  3. التنسيق ← n8n (مستضاف ذاتيًا) أو Make
  4. الواجهة الأمامية الديناميكية ← Next.js منشور على Vercel
  5. مراقبة تحسين محركات البحث ← Google Search Console + Screaming Frog

الخطوة 1: إعداد قاعدة بيانات المدن

أنشئ جدول cities في Supabase بالأعمدة التالية:

CREATE TABLE cities (
  id SERIAL PRIMARY KEY,
  city_name TEXT NOT NULL,
  department TEXT,
  region TEXT,
  population INTEGER,
  slug TEXT UNIQUE NOT NULL,
  meta_title TEXT,
  meta_description TEXT,
  content TEXT,
  status TEXT DEFAULT 'draft'
);

أدخل المدن الخمسين المستهدفة. بالنسبة لفرنسا، استخدم ملف البيانات المفتوحة للبلديات من INSEE. أما بالنسبة للجزائر، فقائمة الولايات تكفي في الغالب.

نصيحة من Otomy: أضف عمود local_signals (TEXT) لتخزين بيانات سياقية — اسم الحي الرئيسي، النشاط الاقتصادي السائد، عدد السكان. سيستخدم Claude AI هذه الإشارات لتخصيص كل صفحة.


الخطوة 2: توليد المحتوى باستخدام Claude AI

أنشئ سير عمل في n8n بالعقد التالية:

  1. المُشغّل: Cron أو تشغيل يدوي
  2. عقدة Supabase: استرجاع المدن ذات الحالة status = 'draft'
  3. HTTP Request: استدعاء API الخاصة بـ Claude (Anthropic) باستخدام prompt مهيكل
  4. عقدة Supabase: تحديث السطر بالمحتوى المُولَّد

إليكم الـ prompt الذي نستخدمه (يُكيَّف حسب نشاطكم):

أنت كاتب محتوى خبير في تحسين محركات البحث. اكتب صفحة خدمة محلية لـ {type_de_service} في {city_name} ({department}).

السياق المحلي: {local_signals}

الهيكل الإلزامي:
- H1 يتضمن المدينة والخدمة
- مقدمة من 80 كلمة تذكر المدينة بشكل طبيعي
- قسم "خدماتنا في {city_name}" مع 4-5 نقاط
- قسم "لماذا تختار [الشركة] في {city_name}؟" مع 3 حجج
- فقرة من 100 كلمة عن المنطقة الجغرافية المغطاة
- دعوة لاتخاذ إجراء نهائية مع ذكر المدينة

القيود:
- 500-700 كلمة
- أسلوب مهني وسهل الفهم
- لا محتوى عام قابل للتبديل بين المدن
- الكلمة المفتاحية الرئيسية: "{service} {city_name}"

نقطة جوهرية: حقل local_signals يصنع الفرق بين محتوى معاد صياغته آليًا ومحتوى مفيد فعلاً. اذكروا السوق المحلي والأحياء والمحاور الطرقية. Google يكشف المحتوى القابل للتبديل.


الخطوة 3: بناء الصفحات الديناميكية باستخدام Next.js

في مشروع Next.js (App Router)، أنشئ مسارًا ديناميكيًا:

app/services/[slug]/page.tsx
import { createClient } from '@supabase/supabase-js'

export async function generateStaticParams() {
  const supabase = createClient(process.env.SUPABASE_URL!, process.env.SUPABASE_KEY!)
  const { data: cities } = await supabase.from('cities').select('slug').eq('status', 'published')
  return cities?.map((city) => ({ slug: city.slug })) || []
}

export default async function LocalPage({ params }: { params: { slug: string } }) {
  const supabase = createClient(process.env.SUPABASE_URL!, process.env.SUPABASE_KEY!)
  const { data: city } = await supabase.from('cities').select('*').eq('slug', params.slug).single()

  return (
    <article>
      <h1>{city.meta_title}</h1>
      <div dangerouslySetInnerHTML={{ __html: city.content }} />
    </article>
  )
}

انشره على Vercel مع تفعيل ISR (Incremental Static Regeneration) حتى تكون كل مدينة جديدة قابلة للفهرسة فورًا.


الخطوة 4: الربط الداخلي التلقائي

لا ينجح تحسين محركات البحث البرمجي للصفحات المحلية إلا إذا كانت الصفحات مترابطة فيما بينها. أضف تلقائيًا:

  • تذييل محلي يحتوي على روابط لأقرب 5 مدن
  • صفحة محورية /services/ تسرد جميع المدن بنصوص ربط محسّنة
  • خريطة موقع ديناميكية مُولَّدة بواسطة Next.js (app/sitemap.ts)
// app/sitemap.ts
export default async function sitemap() {
  const supabase = createClient(process.env.SUPABASE_URL!, process.env.SUPABASE_KEY!)
  const { data: cities } = await supabase.from('cities').select('slug, updated_at').eq('status', 'published')
  return cities?.map((city) => ({
    url: `https://votresite.com/services/${city.slug}`,
    lastModified: city.updated_at,
  })) || []
}

الخطوة 5: مراقبة الجودة قبل النشر

لا تنشر أبدًا دون مراجعة. إليكم قائمة التحقق المعتمدة لدينا في Otomy:

  • كل صفحة تذكر المدينة 5 مرات على الأقل بشكل طبيعي
  • meta_title أقل من 60 حرفًا ويتضمن المدينة + الخدمة
  • meta_description أقل من 155 حرفًا
  • لا توجد صفحة منسوخة من أخرى (استخدم Screaming Frog لاكتشاف المحتوى شبه المكرر)
  • البيانات المهيكلة LocalBusiness موجودة (schema.org)
  • الصفحات تُحمَّل في أقل من ثانيتين (Vercel + ISR = لا مشكلة)

مرّر الصفحات الخمسين عبر Screaming Frog في وضع القائمة للتحقق من الوسوم والتكرارات والأخطاء التقنية في 10 دقائق.


جدول زمني واقعي: أسبوع واحد

اليوم المهمة
الاثنين بحث الكلمات المفتاحية المحلية + إعداد قاعدة بيانات Supabase
الثلاثاء تهيئة سير عمل n8n + هندسة الـ prompt لـ Claude AI
الأربعاء توليد المحتويات الخمسين + المراجعة الأولى
الخميس تطوير قالب Next.js + الربط الداخلي
الجمعة فحص الجودة عبر Screaming Frog + schema.org + النشر على Vercel

الأخطاء التي تقتل صفحاتكم المحلية

  • محتوى قابل للتبديل: إذا كان بإمكانك استبدال اسم المدينة دون أن يتغير المعنى، فإن Google سيلاحظ ذلك أيضًا.
  • غياب الإشارات المحلية: اذكر الأحياء والمناطق الصناعية والخصوصيات الجهوية.
  • تجاهل الهاتف المحمول: 70% من عمليات البحث المحلية تتم عبر الهاتف. اختبر كل قالب.
  • إهمال السرعة: صفحة محلية تستغرق 4 ثوانٍ للتحميل لن تتصدر النتائج. التركيبة Next.js + Vercel + ISR تحل هذه المشكلة.

الخلاصة

لم يعد تحسين محركات البحث البرمجي للصفحات المحلية حكرًا على الشركات الكبرى. باستخدام Supabase وClaude AI وn8n وNext.js، يمكن لأي مؤسسة صغيرة أو متوسطة نشر 50 صفحة محلية محسّنة في أسبوع واحد — بجزء بسيط من تكلفة الكتابة اليدوية.

في Otomy، نرافق المؤسسات الصغيرة والمتوسطة في فرنسا والجزائر في هذا التحول. إذا كنتم ترغبون في السيطرة على نتائج البحث المحلية في قطاعكم، تواصلوا معنا للحصول على تدقيق مجاني.

OTOMY

هل تريد أتمتة عملك؟

احجز مكالمة مجانية — 30 دقيقة لتحديد ما يمكن أتمتته.