The Closing Window
Agent: هل تفهم الكلمات التي تخرج من فمي؟ image
Photo by Jason Rosewell on Unsplash

Agent: هل تفهم الكلمات التي تخرج من فمي؟

AI Insights

TL;DR

من المحتمل أن موقعك غير مرئي لمحركات الإجابة المدعومة بالذكاء الاصطناعي مثل Perplexity. من خلال إضافة مجموعة من الملفات الثابتة (llms.txt، ملفات markdown لكل منشور، JSON feeds) وبعض علامات HTML (Schema.org JSON-LD، روابط hreflang، اكتشاف sitemap)، يمكنك جعل محتواك سهل الاكتشاف والتحليل والاستشهاد من قبل وكلاء AI. لا شيء من هذا يتطلب framework أو خدمة طرف ثالث — مجرد templates تُشغَّل مرة واحدة وتغطي كل منشور مستقبلي.

قبل بضعة أسابيع، عندما بدأت أكتب أكثر عن AI، فكرت أن ما أنشره على الويب يجب أن يكون سهل الوصول من قبل التقنية التي أكتب عنها. طلبت من Claude Code مراجعة هيكل موقعي وتقديم اقتراحات حول كيفية جعله أكثر ملاءمة لوكلاء AI.

أضفت أيضاً ترجمات تلقائية إلى ثلاث لغات أخرى في عملية النشر الخاصة بي. بالإضافة إلى جعل المحتوى أكثر وصولاً لمزيد من الأشخاص، فإن لذلك فائدة جانبية تتمثل في الظهور في عمليات بحث وكلاء AI بتلك اللغات.

هذا الصباح صادفت منشور Julia Solorzano حول تحسين محركات الإجابة، مما أعطاني بعض الأفكار الإضافية. منشورها يتناول الموضوع من زاوية مختلفة قليلاً، وهذا جعلني أدرك أن هذه المعلومات قد تكون مفيدة للآخرين.

إذاً إليكم ما تعلمته: وكلاء AI ومحركات الإجابة (مثل Perplexity) أصبحت بشكل متزايد الطريقة التي يجد بها الناس المعلومات. إذا لم يكن موقعك مُعداً لها، فقد تفوتك زيارات إضافية. إليك ما تحتاج فعله، مرتباً حسب التأثير. إذا كنت تستخدم وكيل AI للبرمجة، هناك prompt جاهز للصق في النهاية لتنفيذ كل هذا نيابةً عنك.

1. أضف llms.txt و llms-full.txt

قدّم ملفين نصيين من جذر النطاق الخاص بك وفقاً لمعيار llms.txt.

  • /llms.txt — وصف الموقع متبوعاً بقائمة بكل صفحة مع العنوان وعنوان URL والوصف والكلمات المفتاحية. خفيف بما يكفي ليجلبه أي وكيل في طلب واحد.
  • /llms-full.txt — نفس الهيكل، لكن يتضمن محتوى الصفحة الكامل. حدد سقفاً للحجم (100KB معقول) واستخدم العنوان + الوصف فقط للصفحات المتبقية عند تجاوز الحد.

هذه الملفات تعطي وكلاء AI نظرة عامة سريعة ومنظمة على موقعك بالكامل دون الحاجة للزحف.

2. قدّم ملفات Markdown خام لكل منشور

أنشئ ملف .md مستقل لكل صفحة منشورة بنمط URL متوقع (مثلاً /blog/{slug}.md). ضمّن YAML front matter يحتوي على العنوان والتاريخ والوصف واللغة والكلمات المفتاحية وعنوان URL الأساسي وأي روابط ترجمة، متبوعاً بمحتوى markdown الخام.

اضبط الخادم ليقدم ملفات .md بصيغة text/plain حتى تظهر مباشرة في المتصفحات وتكون سهلة التحليل من قبل الآلات.

ثم أضف علامة اكتشاف في <head> الخاص بـ HTML لكل منشور:

<link rel="alternate" type="text/markdown" href="/blog/{slug}.md" />

هذا يتيح لأي وكيل يقرأ HTML الخاص بك اكتشاف النسخة القابلة للقراءة آلياً دون معرفة نمط URL الخاص بك.

3. أضف Schema.org JSON-LD

BlogPosting على كل صفحة منشور

ضمّن schema من نوع BlogPosting في <head> مع العنوان وتاريخ النشر وعنوان URL والوصف والصورة والكلمات المفتاحية. يجب أن يكون المؤلف من نوع Person مع name وurl وروابط sameAs لملفاتك الشخصية على الشبكات الاجتماعية (LinkedIn، GitHub، Bluesky، إلخ). يجب أن يكون الناشر من نوع Organization باسم موقعك.

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

Person على صفحتك الرئيسية

أضف schema مستقل من نوع Person إلى صفحتك الرئيسية مع الاسم وعنوان URL والمسمى الوظيفي وروابط sameAs لجميع خصائصك على الويب. هذا يعطي محركات الإجابة عقدة هوية أساسية لربطك عبر الويب.

منشور Julia Solorzano يوصي أيضاً بـ schema من نوع CollectionPage مع عناصر CreativeWork لصفحات المعرض — يستحق الاعتبار إذا كنت تعرض مشاريعك.

4. وفّر Feeds منظمة

JSON Feed

قدّم نقطة وصول JSON Feed v1.1 مع المحتوى الكامل بصيغتي HTML (content_html) ونص عادي (content_text)، بالإضافة إلى الملخص والصورة والعلامات والمرفقات التي تشير إلى ملفات .md لكل منشور.

أضف الاكتشاف التلقائي في <head>:

<link rel="alternate" type="application/feed+json" title="My Blog (JSON Feed)" href="/feed.json" />

فهرس المنشورات

قدّم ملف posts.json يحتوي على جميع المنشورات مع البيانات الوصفية: slug والعنوان والتاريخ والوصف والتصنيف والصورة والكلمات المفتاحية وعنوان URL لملف markdown وروابط الترجمة. هذا يعطي الوكلاء كتالوجاً منظماً لكل شيء دون تحليل الـ feeds.

Atom/RSS Feed

ملف Atom أو RSS feed قياسي مع محتوى HTML الكامل. كثير من الوكلاء لا يزالون يبحثون عن هذا أولاً.

5. رحّب بزواحف AI في robots.txt

اسمح صراحةً لزواحف AI الرئيسية حسب user-agent:

User-agent: GPTBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: GoogleOther
Allow: /

User-agent: Amazonbot
Allow: /

User-agent: Applebot-Extended
Allow: /

User-agent: Meta-ExternalAgent
Allow: /

User-agent: Bytespider
Allow: /

User-agent: cohere-ai
Allow: /

ضمّن عنوان URL الخاص بـ sitemap في الأسفل. القائمة أعلاه تغطي الزواحف الرئيسية حتى أوائل 2026 — تحقق دورياً من الزواحف الجديدة.

6. اجعل Sitemap قابلاً للاكتشاف بطريقتين

لا تعتمد على robots.txt وحده. أضف علامة link في <head> على كل صفحة:

<link rel="sitemap" type="application/xml" href="/sitemap.xml" />

بهذه الطريقة يمكن للزواحف التي تقرأ HTML الصفحة (وليس فقط robots.txt) أن تجد sitemap أيضاً.

7. اكتب أوصاف Meta حقيقية

كل صفحة تحتاج <meta name="description"> فريداً في <head>. هذه هي الجملة التي تستخدمها محركات الإجابة لتقرر ما إذا كانت صفحتك تستحق الاستشهاد. لا تتركها فارغة، ولا تستخدم نفس الوصف العام عبر صفحات متعددة.

إذا كانت منشوراتك تحتوي على كلمات مفتاحية، أضف <meta name="keywords"> أيضاً وأظهر تلك الكلمات المفتاحية في Schema.org JSON-LD والـ feeds و llms.txt و .md front matter. الاتساق عبر كل هذه الأسطح يعزز إشارات الموضوع الخاصة بك. حافظ على الأوصاف تحت 160 حرفاً واجعلها محددة.

8. ترجم محتواك وأضف روابط Hreflang

تفضل محركات الإجابة الاستشهاد بمحتوى موجود بالفعل باللغة المطلوبة بدلاً من ترجمة الإنجليزية فوراً. إذا استطعت ترجمة منشوراتك — حتى عبر ترجمة AI مع مراجعة بشرية — افعل ذلك. كل لغة تضاعف مساحة ظهورك في الاستعلامات الخاصة بتلك اللغة.

تأكد من أن صفحاتك المترجمة تحصل على نفس المعاملة التي تحصل عليها صفحاتك الإنجليزية: ملفات .md خاصة بها بعناوين URL متوقعة (مثلاً /{lang}/{slug}.md)، وتضمينها في feeds و llms.txt. يجب ألا تكون الترجمة مواطناً من الدرجة الثانية — يجب أن تكون قابلة للاكتشاف والقراءة آلياً تماماً مثل الأصل.

ثم أضف علامات <link rel="alternate" hreflang="{lang}"> في <head> لكل ترجمة حتى يتمكن وكلاء AI من اكتشاف جميع النسخ اللغوية من أي صفحة واحدة.

Quick Reference

Feature What to Add Why
llms.txt Plain-text site overview at domain root Fast agent discovery without crawling
Per-post .md files Raw markdown at predictable URLs Machine-readable content
Markdown link tag <link rel="alternate" type="text/markdown"> HTML discovery of .md files
BlogPosting JSON-LD Schema in <head> on post pages Structured authorship + content metadata
Person JSON-LD Schema on homepage Canonical identity node
JSON Feed Feed endpoint with full content Structured feed for agents
Post index posts.json with all post metadata Full catalog without feed parsing
Atom/RSS feed Standard XML feed Legacy agent compatibility
robots.txt Explicit Allow for AI crawlers Clear permission signal
Sitemap link <link rel="sitemap"> in <head> Dual-path sitemap discovery
Meta descriptions Unique per page, under 160 chars Citation decision input
Meta keywords In HTML, JSON-LD, feeds, llms.txt, .md Consistent topic signals
Translations + hreflang Full posts in target languages + <link rel="alternate" hreflang> Surface area in non-English queries

هذا كل شيء. لا يتطلب framework، ولا خدمة طرف ثالث. معظم هذه الأشياء عبارة عن ملفات ثابتة وعلامات HTML يمكن لأي مولد مواقع ثابتة إنتاجها. الجزء الأصعب هو الإعداد الأولي — بمجرد إنشاء القوالب، كل منشور جديد يحصل على كل هذا تلقائياً.

Prompt لوكيل AI الخاص بك

إذا كنت تستخدم وكيل AI للبرمجة، الصق الـ prompt التالي ليقوم بمراجعة موقعك وتنفيذ هذه الميزات نيابةً عنك.

Audit my website for AI agent discoverability and implement the following features. Analyze my existing setup first and skip anything already in place.

1. **llms.txt + llms-full.txt** — Generate two plain-text files at the domain root following the llms.txt standard (https://llmstxt.org/). llms.txt: site description + list of pages with title, URL, description, keywords. llms-full.txt: same but with full page content inline, with a 100KB size cap (fall back to title + description when exceeded). Both should auto-generate from existing content.

2. **Per-post markdown files** — For every published page, generate a .md file at a predictable URL (e.g., /blog/{slug}.md). Include YAML front matter (title, date, description, language, keywords, canonical URL, markdown URL, translation links) followed by the raw markdown body. Configure the server to serve .md as text/plain. Add `<link rel="alternate" type="text/markdown" href="...">` in <head> on every post page.

3. **Schema.org JSON-LD** — Add BlogPosting schema in <head> on every post with: headline, datePublished, url, description, image, keywords. Author as Person with name, url, sameAs (social profile URLs). Publisher as Organization. Add a standalone Person schema on the homepage with name, url, jobTitle, sameAs links to all web properties.

4. **Structured feeds** — JSON Feed v1.1 endpoint with content_html, content_text, summary, image, tags, and attachments linking to .md files. Add feed auto-discovery in <head>. A posts.json index with all posts and metadata (slug, title, date, description, category, image, keywords, markdown URL, translation links). Atom or RSS feed with full HTML content.

5. **robots.txt** — Explicitly Allow / for these user-agents: GPTBot, ClaudeBot, PerplexityBot, GoogleOther, Amazonbot, Applebot-Extended, Meta-ExternalAgent, Bytespider, cohere-ai. Include Sitemap URL.

6. **Sitemap discovery** — Add `<link rel="sitemap" type="application/xml" href="/sitemap.xml">` in <head> on every page (in addition to robots.txt Sitemap directive).

7. **Meta descriptions + keywords** — Ensure every page has a unique <meta name="description"> (under 160 chars). Add <meta name="keywords"> where keywords exist. Surface keywords consistently in JSON-LD, feeds, llms.txt, and .md front matter.

8. **Translations + hreflang** — If the site has translations, ensure they get equal treatment: their own .md files, hreflang cross-references, inclusion in feeds and llms.txt. Add `<link rel="alternate" hreflang="{lang}">` tags in <head> for each translation.

Present a plan showing what already exists vs. what needs to be added before making changes.

Powered by Buttondown.