بناء أداة توليد عناوين جذابة بناءً على الكلمات المفتاحية
بناء أداة توليد عناوين جذابة بناءً على الكلمات المفتاحية
إنشاء عناوين قوية لم يعد مهمة تحريرية فقط، بل أصبح جزءاً مباشراً من هندسة النمو العضوي وتحسين معدل النقر من نتائج البحث. عندما تمتلك قائمة كلمات مفتاحية ضخمة قادمة من ربط Google Search Console API لاستخراج آلاف الكلمات المفتاحية أو من تحليل المنافسين، فإن كتابة عنوان مخصص لكل مجموعة يدوياً تصبح عملية بطيئة وغير قابلة للتوسع.
هنا تظهر قيمة الأتمتة الذكية: بناء أداة تستقبل الكلمة المفتاحية، تفهم نية البحث، ثم تولّد عدة عناوين متوافقة مع السيو، قابلة للنشر، وغير مضللة. هذا النوع من الأدوات مفيد للمدونات، صفحات الهبوط، فرق المحتوى، وحتى لمتخصص السيو الذي يريد اختبار أكثر من زاوية تحريرية بسرعة ودقة.
في هذا المقال سنبني تصوراً عملياً لأداة تعتمد على Python وواجهة ذكاء اصطناعي مثل OpenAI API أو Gemini API، مع طبقة تحقق تمنع العناوين الضعيفة، وتحافظ على الملاءمة، وتدعم إخراجاً منظماً بصيغة JSON.
لماذا نحتاج أداة مخصصة لتوليد العناوين؟
كثير من الأدوات التجارية تنتج عناوين عامة أو مبالغاً فيها، ما يخلق فجوة بين الوعد في العنوان والمحتوى الفعلي. هذه الفجوة قد ترفع النقر مؤقتاً، لكنها تضر الثقة، وترفع الارتداد، وتضعف إشارات الجودة. من منظور EEAT، العنوان يجب أن يكون دقيقاً، واضحاً، وعاكساً لخبرة حقيقية.
الأداة المخصصة تمنحك تحكماً في قواعد التوليد، مثل طول العنوان، إدراج الكلمة المفتاحية في البداية أو الوسط، استبعاد الصياغات المضللة، وتكييف النتيجة حسب نوع الصفحة: مقال، صفحة خدمة، مراجعة، أو دليل عملي. وهذا ينسجم مع فكرة منطق البرمجة المعتمد على المهام (Task-Oriented Programming) حيث تُبنى كل خطوة حول نتيجة قابلة للقياس.
المعمارية المقترحة للأداة
الأداة الناجحة لا تعتمد فقط على استدعاء نموذج لغوي، بل على خط معالجة واضح. عملياً يمكن تقسيمها إلى أربع طبقات مترابطة:
- طبقة إدخال الكلمات المفتاحية من ملف
CSVأوGoogle Sheets. - طبقة فهم السياق مثل نية البحث، اللغة، ونوع الصفحة المستهدفة.
- طبقة التوليد عبر
APIمناسب. - طبقة تحقق وتصفية ثم حفظ النتائج في جدول أو ملف منظم.
إذا لم تكن قد أعددت البيئة البرمجية بعد، فمن المفيد الرجوع إلى تهيئة بيئة العمل: تثبيت Python والمكتبات الأساسية، وكذلك إلى الحماية والأمان: كيف تخفي مفاتيحك السرية في الكود؟ قبل تخزين مفاتيح API.
ما الذي يجعل العنوان جذاباً فعلاً؟
الجاذبية ليست مرادفاً للمبالغة. العنوان الجيد يحقق توازناً بين الوضوح، الفائدة، الخصوصية، والقابلية للنقر. عند تصميم قواعد التوليد، من الأفضل تقييم كل عنوان وفق مؤشرات محددة بدلاً من الاكتفاء بالصياغة اللغوية.
عناصر يجب أن تراعيها الأداة
- وجود الكلمة المفتاحية الأساسية بصيغة طبيعية.
- الإشارة إلى فائدة واضحة مثل تعلم، مقارنة، حل مشكلة، أو توفير وقت.
- تجنب الوعود المطلقة مثل “الأفضل دائماً” أو “مضمون 100%”.
- الملاءمة مع نية البحث: معلوماتية، تجارية، ملاحية، أو تنفيذية.
- طول مناسب لعرضه في نتائج البحث دون قطع مفرط.
وهنا يمكن دمج نتائج كود لتصنيف الكلمات المفتاحية حسب نية البحث (Search Intent) حتى لا تنتج الأداة عنواناً تعليمياً لكلمة هدفها شرائي أو مقارناتي.
تصميم الـ Prompt بشكل احترافي
جودة المخرجات تعتمد كثيراً على دقة التعليمات. بدلاً من طلب عام مثل “اقترح عناوين”، يجب تقييد النموذج بسياق الصفحة، اللغة، النبرة، وعدد النتائج، مع فرض بنية مخرجات ثابتة. ولتحقيق نتائج مستقرة، راجع أيضاً كيفية كتابة “Prompt” برمجي للحصول على نتائج ثابتة (JSON).
أنت مساعد متخصص في SEO. ولّد 5 عناوين عربية أصلية لكلمة مفتاحية محددة، مع مراعاة نية البحث، وتجنب الصياغات المضللة، واجعل العنوان مناسباً لمقال تقني احترافي. أعد النتيجة بصيغة JSON فقط، بحيث يحتوي كل عنصر على: title, angle, ctr_score.
هذا النوع من التعليمات يقلل الانحراف، ويسهّل على الكود قراءة النتيجة مباشرة دون تنظيف يدوي واسع.
بناء السكربت باستخدام Python
من الناحية العملية، سنقرأ الكلمات المفتاحية من قائمة، نرسل كل كلمة إلى دالة توليد، ثم نتحقق من جودة النتائج ونحفظها. يمكن لاحقاً ربط نفس المنطق مع كيفية ربط Google Sheets بالعالم الخارجي عبر Script إذا رغبت في تشغيل الأداة على جداول فريق التحرير.
import os
import json
import pandas as pd
from openai import OpenAI
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
def build_prompt(keyword, intent="informational", page_type="blog post"):
return f"""
You are an SEO headline generation assistant.
Generate 5 unique Arabic headlines for the keyword: "{keyword}".
Rules:
- Search intent: {intent}
- Page type: {page_type}
- Keep headlines clear, specific, and trustworthy
- Avoid misleading clickbait
- Include the keyword naturally
- Return JSON only as a list of objects
- Each object must contain:
title, angle, ctr_score
"""
def generate_headlines(keyword, intent="informational", page_type="blog post"):
prompt = build_prompt(keyword, intent, page_type)
response = client.chat.completions.create(
model="gpt-4o-mini",
temperature=0.7,
messages=[
{"role": "system", "content": "You produce structured SEO outputs only."},
{"role": "user", "content": prompt}
]
)
content = response.choices[0].message.content
return json.loads(content)
def validate_headline(title, keyword):
if len(title) < 25 or len(title) > 75:
return False
if keyword.split()[0] not in title:
return False
banned_patterns = ["مضمون 100%", "لن تصدق", "سري للغاية"]
for pattern in banned_patterns:
if pattern in title:
return False
return True
def process_keywords(input_file, output_file):
df = pd.read_csv(input_file)
results = []
for _, row in df.iterrows():
keyword = row["keyword"]
intent = row.get("intent", "informational")
try:
headlines = generate_headlines(keyword, intent=intent)
valid_headlines = [
h for h in headlines
if validate_headline(h["title"], keyword)
]
results.append({
"keyword": keyword,
"intent": intent,
"headlines": json.dumps(valid_headlines, ensure_ascii=False)
})
except Exception as e:
results.append({
"keyword": keyword,
"intent": intent,
"headlines": json.dumps({"error": str(e)}, ensure_ascii=False)
})
pd.DataFrame(results).to_csv(output_file, index=False, encoding="utf-8-sig")
if __name__ == "__main__":
process_keywords("keywords.csv", "generated_headlines.csv")
كيف نطوّر الأداة من نموذج أولي إلى نظام إنتاجي؟
1) إضافة طبقة تقييم داخلية
لا تكتفِ بنتيجة النموذج. أنشئ دوال تقييم تحسب وجود الرقم، وضوح الفائدة، ملاءمة الطول، وتكرار الكلمات. يمكن أيضاً منح كل عنوان درجة داخلية إضافية بجانب ctr_score الصادر من النموذج.
2) استخدام بياناتك الفعلية
إذا كانت لديك بيانات من بناء أداة لمراقبة ترتيب الكلمات المفتاحية يومياً بدون أدوات مدفوعة أو من Search Console، فغذِّ الأداة بمتوسط الظهور والنقر والموضع. هذا يساعد في إعطاء أولوية للكلمات التي تحتاج تحسين عنوان فعلاً.
3) تحليل النتائج على نطاق واسع
عند تضخم البيانات، تصبح استخدام مكتبة Pandas لتحليل بيانات الـ SEO الضخمة خطوة محورية لفلترة التكرار، واكتشاف القوالب الأعلى أداءً، ومقارنة زوايا العناوين حسب التصنيف أو النية.
ربط الأداة بسير عمل المحتوى
القيمة الحقيقية لا تظهر عند توليد العنوان فقط، بل عند دمجه في سير عمل تحريري متكامل. مثال عملي:
- استخراج الكلمات المفتاحية من مصدر موثوق.
- تصنيف نية البحث.
- توليد 3 إلى 5 عناوين لكل كلمة.
- تمرير النتائج على محرر بشري للمراجعة النهائية.
- حفظ النسخة المقبولة في
CMSأو جدول التحرير.
هذا مهم جداً لأن الاعتماد الكامل على الذكاء الاصطناعي دون مراجعة بشرية قد ينتج عناوين صحيحة لغوياً لكنها لا تعكس خبرة العلامة أو لا تتماشى مع أسلوبها التحريري.
أخطاء شائعة يجب تجنبها
- توليد عناوين كثيرة دون فلترة، ثم استخدام أول نتيجة عشوائياً.
- إهمال نية البحث والتركيز فقط على إدخال الكلمة المفتاحية.
- استخدام
API keyمباشرة داخل الكود دون متغيرات بيئية. - عدم فرض صيغة
JSONمنظمة، ما يؤدي إلى مخرجات فوضوية. - السعي وراء عناوين صادمة على حساب الدقة والمصداقية.
أفضل ممارسة عملية: اجعل الأداة تقترح العنوان، لكن اجعل القرار النهائي يمر عبر قواعد تحريرية ثابتة مرتبطة بالعلامة التجارية، وبنية المقال، وهدف الصفحة الفعلي.
خاتمة
بناء أداة توليد عناوين جذابة بناءً على الكلمات المفتاحية ليس مشروعاً تجميلياً، بل أصل تشغيلي يرفع سرعة الإنتاج ويحسن جودة القرار التحريري. عندما تجمع بين فهم نية البحث، تصميم Prompt منضبط، وطبقة تحقق برمجية، ستحصل على نتائج أقرب كثيراً إلى العناوين القابلة للنشر فعلاً.
ابدأ بنموذج صغير، اختبره على عشرات الكلمات، ثم حسّن قواعده اعتماداً على بيانات الأداء الحقيقية. بهذه الطريقة تتحول الأداة من مجرد تجربة مع مقدمة في OpenAI API وGemini API للمطورين إلى مكوّن إنتاجي ذكي داخل منظومة أتمتة السيو لديك.
1 comment