أتمتة كتابة المحتوى وتحسين السيو ببايثون والذكاء الاصطناعي
تعلّم كيف تبني أدواتٍ ببايثون والذكاء الاصطناعي تُنتج محتوىً محسَّناً للسيو تلقائياً، وتوفّر ساعاتٍ من العمل اليدوي لكل مقالةٍ تكتبها.
عدد الكلمات: ~١٩٠٠ · مدة القراءة: ١٠ دقائق
أتمتة المحتوى ببايثون والذكاء الاصطناعي
أدواتٌ ذكيةٌ تُنتج محتوىً محسَّناً لمحركات البحث وتوفّر ساعاتٍ من العمل اليدوي
ملاحظة للقارئ: هذا المقال مستقلٌّ تماماً ويمكنك تطبيق كل ما فيه دون قراءة مقالاتٍ سابقة. لكن إذا لم تكن قد تعلّمت كيف تُدمج نماذج الذكاء الاصطناعي في بايثون بعد، فننصحك بمراجعة مقالتنا: كيف تستخدم نماذج الذكاء الاصطناعي داخل مشاريعك ببايثون.
كتابة مقالةٍ واحدة محسَّنة للسيو SEO تستغرق من المدوّن المحترف ما بين ثلاث ساعاتٍ وخمس: البحث عن الكلمات المفتاحية، صياغة العناوين، كتابة المحتوى، تدقيقه، كتابة الوصف التعريفي Meta Description، اقتراح الروابط الداخلية. كل هذا قبل أن تُضغط على زر النشر.
ماذا لو استطعت أن تُنجز الجزء الميكانيكي من هذه العملية: البحث، الهيكلة، الصياغة الأولى، البيانات التعريفية، وفي دقائق بدلاً من ساعات؟ هذا ما يفعله الجمع بين بايثون ونماذج اللغة الكبيرة. في هذا المقال من منصة ذي يزن، سنبني أداةً متكاملةً لإنتاج المحتوى المحسَّن للسيو خطوةً بخطوة، ونتعلم كيف نُدمجها في سير عملٍ يومي فعلي.
ما الذي يمكن أتمتته فعلاً في كتابة المحتوى؟
قبل كتابة سطرٍ واحدٍ من الكود، يجب أن نكون صادقين مع أنفسنا بشأن ما يُمكن للأتمتة إنجازه وما لا يُمكنها. الأتمتة ليست سحراً يُغني عن الكاتب، هي أداةٌ تُحرّره من العمل المتكرر والميكانيكي، وتترك له وقتاً أكبر للعمل الإبداعي.
| المهمة | قابلةٌ للأتمتة؟ | ملاحظة |
|---|---|---|
| اقتراح الكلمات المفتاحية | ✅ نعم — بالكامل | بايثون + APIs البحث |
| هيكل المقالة والعناوين | ✅ نعم — بالكامل | نماذج اللغة الكبيرة تُتقنه |
| الصياغة الأولى للمحتوى | ⚡ جزئياً | تحتاج مراجعةً بشرية دائماً |
| البيانات التعريفية Meta | ✅ نعم — بالكامل | عنوانٌ وصفٌ وعلاماتٌ في ثوانٍ |
| اقتراح الروابط الداخلية | ✅ نعم — بالكامل | من قائمةٍ “جدول” بمقالاتك الموجودة |
| الرأي الشخصي والتجربة الحقيقية | ❌ لا | هذا ما يُميّز كاتباً عن آخر |
| التدقيق النهائي والتحقق من المعلومات | ❌ لا | مسؤوليةٌ بشريةٌ دائماً |
الخطوة الأولى: بحثٌ آليٌّ عن الكلمات المفتاحية
قبل كتابة أي مقالة، يحتاج الكاتب لمعرفة الكلمات التي يبحث عنها جمهوره فعلاً. سنستخدم واجهة برمجة تطبيقات DataForSEO أو نستعيض عنها مجاناً بتحليلٍ يعتمد على اقتراحاتٍ بحث غوغل “Google” عبر بايثون:
import requests
import json
from openai import OpenAI
import os
client_ai = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
def get_google_suggestions(keyword: str, lang: str = "ar") -> list[str]:
"""
جلب اقتراحاتٍ بحثيةٍ من Google Autocomplete مجاناً.
تُظهر ما يبحث عنه الناس فعلاً حول موضوعٍ ما.
"""
url = "http://suggestqueries.google.com/complete/search"
params = {
"client": "firefox",
"q": keyword,
"hl": lang,
}
try:
response = requests.get(url, params=params, timeout=5)
suggestions = response.json()[1]
return suggestions[:10]
except Exception:
return []
def analyze_keywords_with_ai(seed_keyword: str) -> dict:
"""
يُحلّل الكلمات المفتاحية المقترحة ويُصنّفها حسب نيّة البحث.
"""
suggestions = get_google_suggestions(seed_keyword)
suggestions_text = "\n".join(f"- {s}" for s in suggestions)
prompt = f"""أنت خبير سيو SEO متخصص في المحتوى العربي.
الكلمة المفتاحية الأساسية: {seed_keyword}
الاقتراحات من محرك البحث:
{suggestions_text}
حلّل هذه الكلمات وأنتج JSON يحتوي:
1. الكلمات المفتاحية الرئيسية الأفضل (3 فقط)
2. كلماتٌ طويلةٌ مشتقة Long-tail (5 كلمات)
3. نيّة البحث Search Intent: هل الباحث يريد معلومات أم يريد الشراء أم يبحث عن موقع؟
4. مستوى صعوبة التنافس: سهل/متوسط/صعب
أجب بـ JSON فقط:
{{
"primary_keywords": ["...", "...", "..."],
"long_tail_keywords": ["...", "...", "...", "...", "..."],
"search_intent": "informational/commercial/navigational",
"competition_level": "easy/medium/hard",
"recommendation": "جملةٌ واحدةٌ تشرح الاستراتيجية المثلى"
}}"""
response = client_ai.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}],
temperature=0.2,
response_format={"type": "json_object"}
)
return json.loads(response.choices[0].message.content)
# تجربة الأداة
result = analyze_keywords_with_ai("تعلم بايثون للمبتدئين")
print(json.dumps(result, ensure_ascii=False, indent=2))
الخطوة الثانية: توليد هيكل المقالة ومخططها
بعد اختيار الكلمة المفتاحية، نطلب من الذكاء الاصطناعي بناء هيكلٍ متكاملٍ للمقالة محسَّنٍ للسيو من البداية:
def generate_article_outline(
keyword: str,
target_audience: str,
word_count: int = 1500
) -> dict:
"""
يُنشئ مخططاً كاملاً لمقالةٍ محسَّنة للسيو.
"""
prompt = f"""أنت كاتبٌ محترفٌ ومتخصصٌ في تحسين السيو للمحتوى العربي.
الكلمة المفتاحية المستهدَفة: {keyword}
الجمهور المستهدَف: {target_audience}
عدد الكلمات المطلوب: {word_count} كلمة تقريباً
أنشئ مخططاً شاملاً للمقالة يتضمن:
- عنواناً رئيسياً جذاباً يحتوي الكلمة المفتاحية (أقل من 60 حرفاً)
- مقدمةً تصف ما ستتعلمه (4-5 جمل)
- 5 عناوينٍ فرعية H2 واضحة ومتسلسلة منطقياً
- لكل H2: عنوانٌ فرعيٌّ H3 اختياري ونقطتا محتوى
- خاتمةٌ تتضمن دعوةً للتحرك Call to Action
- عنوان الميتا Meta Title (أقل من 60 حرفاً)
- وصف الميتا Meta Description (بين 120 و155 حرفاً)
- 5 وسوماتٍ مقترحة Tags
أجب بـ JSON فقط:
{{
"h1_title": "...",
"meta_title": "...",
"meta_description": "...",
"tags": ["...", "...", "...", "...", "..."],
"introduction_summary": "...",
"sections": [
{{
"h2": "...",
"h3": "...",
"key_points": ["...", "..."]
}}
],
"conclusion_cta": "..."
}}"""
response = client_ai.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}],
temperature=0.4,
response_format={"type": "json_object"}
)
return json.loads(response.choices[0].message.content)
# تجربة الأداة
outline = generate_article_outline(
keyword="أفضل مكتبات بايثون للفريلانسر",
target_audience="فريلانسرز يعرفون HTML ويبدؤون تعلم بايثون",
word_count=1500
)
print(f"العنوان: {outline['h1_title']}")
print(f"وصف الميتا: {outline['meta_description']}")
الخطوة الثالثة: كتابة أقسام المقالة تلقائياً
بعد الحصول على المخطط المُعتمَد، نطلب من النموذج كتابة كل قسمٍ على حدة. الكتابة المقسّمة أفضل من طلب المقالة كاملةً دفعةً واحدة لأنها تُنتج محتوىً أكثر تعمّقاً وأقل عشوائية:
def write_section(
section_title: str,
key_points: list[str],
keyword: str,
section_index: int,
total_sections: int,
tone: str = "عملي وواضح وقريب من القارئ"
) -> str:
"""
يكتب قسماً واحداً من المقالة بناءً على العنوان والنقاط المحددة.
"""
is_first = section_index == 0
is_last = section_index == total_sections - 1
context = ""
if is_first:
context = "هذا أول قسمٍ في المقالة — اجعل البداية جذابةً تُشوّق القارئ للإكمال."
elif is_last:
context = "هذا آخر قسمٍ في المقالة — اختم بملخصٍ عمليٍّ وتوجيهٍ واضح."
prompt = f"""أنت كاتبٌ تقنيٌّ محترف. اكتب قسماً لمقالةٍ عن: {keyword}
عنوان القسم: {section_title}
النقاط الجوهرية التي يجب تغطيتها:
{chr(10).join(f'- {p}' for p in key_points)}
الأسلوب المطلوب: {tone}
{context}
التعليمات:
- اكتب بالعربية الفصحى الواضحة
- استخدم ضمير «نحن» بدلاً من «أنت»
- أضف مثالاً عملياً واحداً على الأقل
- لا تذكر عنوان القسم في النص — سيُضاف تلقائياً
- الطول المطلوب: 200-280 كلمة
اكتب النص فقط دون أي تعليقٍ أو مقدمة."""
response = client_ai.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}],
temperature=0.6,
max_tokens=600
)
return response.choices[0].message.content.strip()
def write_full_article(outline: dict, keyword: str) -> str:
"""
يجمع كل الأقسام في مقالةٍ HTML كاملة.
"""
sections = outline.get("sections", [])
html_parts = []
# المقدمة
intro = write_section(
"مقدمة المقالة",
[outline.get("introduction_summary", "")],
keyword,
section_index=0,
total_sections=len(sections)
)
html_parts.append(f"<p>{intro}</p>")
# الأقسام الرئيسية
for i, section in enumerate(sections):
section_content = write_section(
section["h2"],
section.get("key_points", []),
keyword,
section_index=i,
total_sections=len(sections)
)
html_parts.append(f'<h2 style="color: #c0392b;">{section["h2"]}</h2>\n<p>{section_content}</p>')
if section.get("h3"):
html_parts.append(f'<h3>{section["h3"]}</h3>')
# الخاتمة
html_parts.append(f'<h2 style="color: #f5223b;">خلاصة المقال</h2>\n<p>{outline.get("conclusion_cta", "")}</p>')
return "\n\n".join(html_parts)
الخطوة الرابعة: تدقيقٌ آليٌّ للجودة والسيو
قبل النشر، نُمرّر المقالة على فحصٍ آليٍّ يُقيّم جاهزيّتها للسيو ويقترح تحسينات:
import re
def seo_quality_check(article_text: str, keyword: str, meta_description: str) -> dict:
"""
فحصٌ آليٌّ لجودة المقالة من منظور السيو.
لا يحتاج استدعاء الذكاء الاصطناعي — قواعد برمجية بحتة.
"""
word_count = len(article_text.split())
keyword_count = article_text.lower().count(keyword.lower())
keyword_density = round((keyword_count / word_count) * 100, 2) if word_count > 0 else 0
# حساب وقت القراءة (150 كلمة/دقيقة للعربية)
reading_time = round(word_count / 150, 1)
# فحص طول وصف الميتا
meta_len = len(meta_description)
meta_ok = 120 <= meta_len <= 155
# فحص وجود قوائم وعناوين فرعية
has_lists = "<ul>" in article_text or "<ol>" in article_text
h2_count = article_text.count("<h2")
h3_count = article_text.count("<h3")
issues = []
suggestions = []
if word_count < 1000:
issues.append(f"المقالة قصيرةٌ ({word_count} كلمة) — يُفضَّل 1200 كلمةٍ على الأقل")
if keyword_density < 0.5:
issues.append(f"كثافة الكلمة المفتاحية منخفضة ({keyword_density}%) — يُفضَّل 0.5%-1.5%")
if keyword_density > 2.5:
issues.append(f"كثافة الكلمة المفتاحية مرتفعة ({keyword_density}%) — خطر حشو الكلمات")
if not meta_ok:
issues.append(f"وصف الميتا ({meta_len} حرف) خارج النطاق المثالي (120-155 حرفاً)")
if h2_count < 3:
suggestions.append("أضف المزيد من العناوين H2 لتحسين البنية")
if not has_lists:
suggestions.append("أضف قائمةً نقطية أو مُرقَّمة لتحسين القراءة")
score = 100
score -= len(issues) * 15
score -= len(suggestions) * 5
score = max(score, 0)
return {
"seo_score": score,
"word_count": word_count,
"reading_time_minutes": reading_time,
"keyword_density_percent": keyword_density,
"keyword_occurrences": keyword_count,
"h2_count": h2_count,
"h3_count": h3_count,
"meta_description_length": meta_len,
"issues": issues,
"suggestions": suggestions,
"status": "✅ جاهزٌ للنشر" if score >= 70 else "⚠️ يحتاج تحسيناً"
}
تجميع كل شيء: سير العمل الكامل في دالةٍ واحدة
الآن نجمع الخطوات الأربع في أداةٍ واحدةٍ متكاملة:
def full_content_pipeline(
seed_keyword: str,
target_audience: str,
output_file: str = "article_output.html"
) -> None:
"""
سير عملٍ كاملٌ من الكلمة المفتاحية إلى مقالةٍ HTML جاهزة.
"""
print(f"\n🚀 بدء إنتاج مقالة عن: {seed_keyword}\n")
# 1. تحليل الكلمات المفتاحية
print("📊 الخطوة 1: تحليل الكلمات المفتاحية...")
kw_analysis = analyze_keywords_with_ai(seed_keyword)
best_keyword = kw_analysis["primary_keywords"][0]
print(f" الكلمة المختارة: {best_keyword}")
# 2. توليد المخطط
print("📝 الخطوة 2: توليد مخطط المقالة...")
outline = generate_article_outline(best_keyword, target_audience)
print(f" العنوان: {outline['h1_title']}")
# 3. كتابة المقالة
print("✍️ الخطوة 3: كتابة المقالة قسماً قسماً...")
article_html = write_full_article(outline, best_keyword)
# 4. فحص الجودة
print("🔍 الخطوة 4: فحص جودة السيو...")
quality = seo_quality_check(
article_html,
best_keyword,
outline["meta_description"]
)
print(f" نتيجة السيو: {quality['seo_score']}/100 — {quality['status']}")
if quality["issues"]:
for issue in quality["issues"]:
print(f" ⚠️ {issue}")
# 5. حفظ الملف
wordpress_comment = f"""<!--
SEO Title: {outline['meta_title']}
Focus Keyword: {best_keyword}
Meta Excerpt: {outline['meta_description']}
WP Tags: {', '.join(outline['tags'])}
Slug: {seed_keyword.replace(' ', '-')}-ar
-->"""
final_output = f"{wordpress_comment}\n\n<article dir=\"rtl\" lang=\"ar\">\n\n{article_html}\n\n</article>"
with open(output_file, "w", encoding="utf-8") as f:
f.write(final_output)
print(f"\n✅ اكتمل! الملف محفوظٌ في: {output_file}")
print(f" عدد الكلمات: {quality['word_count']}")
print(f" وقت القراءة: {quality['reading_time_minutes']} دقائق\n")
# تشغيل الأداة كاملةً
full_content_pipeline(
seed_keyword="مكتبات بايثون للفريلانسر",
target_audience="مطوّرو ويبٍ ومدوّنون عرب يتعلمون بايثون",
output_file="generated_article.html"
)
نصائح عمليةٌ لاستخدام الأداة بذكاء
الأداة التي بنيناها ليست «اضغط زراً واحصل على مقالة»، بل هي «اضغط زراً واحصل على مسودةٍ جيدةٍ تُكملها أنت». إليك كيف يستخدمها المحترفون:
- استخدمها للمسودة الأولى لا للنشر المباشر: الذكاء الاصطناعي يُنتج هيكلاً ومحتوىً مقبولاً، لكن صوتك الشخصي وخبرتك الحقيقية هما ما يجعل المقالة تتصدر نتائج البحث فعلاً.
- أضف دائماً معلوماتٍ لا يعرفها النموذج: إحصاءاتٌ حديثة، تجربةٌ شخصية، اقتباسٌ من شخصٍ في مجالك، هذا ما يُميّزك.
- لا تنشر نفس المحتوى عشر مرات: محركات البحث أصبحت تكتشف المحتوى المتكرر والمولَّد بالكامل آلياً. التنويع والتخصيص ضروريان.
- وظّف الأداة لتوليد أفكار المقالات لا المقالات كاملةً: اطلب منها 20 فكرةً لمقالاتٍ في مجالك، واختر أفضلها لتكتبه أنت بعمق.
الكُتّاب الأذكياء لا يخشون أدوات الذكاء الاصطناعي ولا يُفوّضون لها كل شيء، بل يستخدمونها لمضاعفة إنتاجيّتهم مع الحفاظ على صوتهم المميّز.
خلاصة المقال والخطوة القادمة
بنينا اليوم خطَّ إنتاجٍ كاملاً للمحتوى يبدأ من كلمةٍ مفتاحيةٍ ولا ينتهي إلا بملفٍّ HTML جاهزٍ للنشر مع تقييمٍ آليٍّ للسيو. الأداة مؤلفةٌ من أربع مراحلٍ متسلسلة: تحليل الكلمات، توليد المخطط، كتابة الأقسام، فحص الجودة. وكل مرحلةٍ مستقلةٌ ويمكنك استخدامها وحدها حسب حاجتك.
الخطوة التالية الموصى بها:
أتقنّا كتابة المحتوى وتحسين السيو، لكن الفريلانسر الحقيقي لا يتوقف عند أداةٍ واحدة. في المقال القادم نُوسّع الأفق ونبني أدواتٍ ذكيةً متعددة تُحلّل المنافسين وتُولّد عروض أسعار ومقترحاتٍ تجاريةٍ بأسلوبٍ مخصَّصٍ لكل عميل.
تابع معنا المقال الخامس عشر: بناء أدواتٍ ذكيةٍ خاصةٍ بك باستخدام بايثون.
المراجع والمصادر:
- دليل Google لتحسين محركات البحث للمبتدئين: Google SEO Starter Guide
- التوثيق الرسمي لـ OpenAI API: OpenAI API Documentation
- دراسة Backlinko عن طول المحتوى والترتيب في البحث: Backlinko — Google Ranking Factors


