أحمد حايس
الرئيسيةمن أناالدوراتالمدونةالعروض
أحمد حايس

دورات عربية متخصصة في التقنية والبرمجة والذكاء الاصطناعي.

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

تعلم أسرعوصول مباشر للدورات والمسارات من الموبايل.
تنقل أوضحالروابط الأساسية والدعم في مكان واحد بدون تشتيت.

المنصة

  • الرئيسية
  • من أنا
  • الدورات
  • العروض
  • المدونة

الدعم

  • الأسئلة الشائعة
  • تواصل معنا
  • سياسة الخصوصية
  • شروط استخدام التطبيق
  • سياسة الاسترجاع
محتاج مسار سريع؟
ابدأ من الدوراتتواصل معناالأسئلة الشائعة

© 2026 أحمد حايس. جميع الحقوق محفوظة.

الرئيسيةالدوراتالعروضالمدونةالدخول
الأوتوميشن

أتمتة IndexNow: بلّغ محركات البحث بعد النشر

📅 ٢٦ أبريل ٢٠٢٦⏱ 4 دقائق قراءة
أتمتة IndexNow: بلّغ محركات البحث بعد النشر

أتمتة IndexNow: بلّغ محركات البحث بعد النشر

مستوى القارئ: متوسط

لو بتنشر صفحة جديدة ومش عايز تنتظر الزحف العشوائي، الأوتوميشن هنا يخلي إشعار محركات البحث خطوة ثابتة بعد النشر.

المشكلة باختصار

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

ركز: IndexNow مش وعد بالترتيب، ومش بديل عن جودة المحتوى. هو مجرد إشعار إن URL اتضاف أو اتعدل أو اتحذف. المكسب إنك تقلل زمن الإبلاغ من مراجعة يدوية أسبوعية حوالي 35 دقيقة إلى تشغيل تلقائي بعد النشر في 2 إلى 3 دقائق. الافتراض إن عندك موقع static أو CMS يقدر يشغّل GitHub Actions بعد كل push أو publish event.

مخطط تدفق يوضح نشر صفحة جديدة ثم تحديث sitemap وإرسال URL إلى IndexNow مع تسجيل نتيجة التشغيل

مثال بسيط قبل الشرح العلمي

لنفترض إن عندك متجر صغير. أضفت صفحة منتج جديدة: https://example.com/products/desk-lamp. بدل ما تدخل Search Console أو تنتظر الزحف، السكربت يعمل 3 حاجات: يتأكد إن الرابط كامل وموجود في sitemap، يرسل الرابط إلى IndexNow، ثم يحفظ log بالنتيجة. لو حصل فشل 429 أو 5xx، يعيد المحاولة لاحقًا بدل ما يضيع الإشعار.

بالظبط زي إنك تغيّر عنوان مكتبك وتبعت إخطار رسمي للبريد. الإخطار لا يضمن إن كل شخص هيزورك النهارده، لكنه يقلل فرصة إن الناس تفضل رايحة للعنوان القديم.

علميًا، sitemap هو ملف يعرّف محركات البحث بالروابط المهمة عندك، وIndexNow بروتوكول HTTP بسيط لإرسال URLs تغيرت. Google توضح إن sitemap مجرد hint وليس ضمانًا للزحف، وIndexNow يطلب مفتاحًا منشورًا على موقعك للتحقق من ملكية الإرسال.

الخطوات العملية

  1. اعمل مفتاح IndexNow عشوائيًا من 8 إلى 128 حرفًا، مثل 2f4a9c21-index-key.
  2. انشر ملف المفتاح على جذر الموقع: https://example.com/2f4a9c21-index-key.txt، ومحتواه نفس قيمة المفتاح.
  3. تأكد إن sitemap.xml يستخدم روابط مطلقة، مش /page فقط.
  4. بعد النشر، استخرج الروابط التي تغيرت من ملف أو من آخر commit.
  5. أرسلها إلى endpoint يدعم IndexNow، واحفظ status code في log.
YAML
name: notify-indexnow

on:
  push:
    branches: [main]
    paths:
      - "content/**"
      - "public/sitemap.xml"
  workflow_dispatch:

jobs:
  notify:
    runs-on: ubuntu-latest
    env:
      SITE_HOST: example.com
      INDEXNOW_KEY: ${{ secrets.INDEXNOW_KEY }}
    steps:
      - uses: actions/checkout@v4

      - name: Pick changed URLs
        id: urls
        run: |
          git fetch --depth=2 origin main
          git diff --name-only HEAD~1 HEAD | awk '/^content\// {print}' > changed.txt
          node scripts/changed-urls.js changed.txt > urls.json
          cat urls.json

      - name: Submit to IndexNow
        run: |
          curl -sS -X POST "https://api.indexnow.org/indexnow" \
            -H "Content-Type: application/json" \
            -d @- <
JavaScript
// scripts/changed-urls.js
const fs = require('fs');
const files = fs.readFileSync(process.argv[2], 'utf8').trim().split('\n').filter(Boolean);
const urls = files.map((file) => {
  const slug = file.replace(/^content\//, '').replace(/\.mdx?$/, '');
  return `https://example.com/${slug}`;
});
process.stdout.write(JSON.stringify(urls));

القياس اللي يهمك

قِس حاجتين فقط في البداية. الأولى: زمن من لحظة merge إلى لحظة إرسال IndexNow. الثانية: نسبة التشغيلات الفاشلة. في فريق صغير بينشر 20 صفحة أسبوعيًا، المراجعة اليدوية قد تأخذ 30 إلى 40 دقيقة أسبوعيًا. نفس العملية بعد الأوتوميشن تتحول إلى 2 أو 3 دقائق انتظار داخل CI، ومعظمها وقت build موجود أصلًا.

رسم أعمدة يقارن زمن إخطار محركات البحث يدويًا مقابل أوتوميشن IndexNow بعد النشر

الـ trade-off هنا واضح. بتكسب انتظامًا وسجلًا قابلًا للمراجعة، وبتخسر بعض التعقيد في مفاتيح التحقق ومتابعة الأخطاء. لو GitHub Actions عندك بياخد دقائق كثيرة أصلًا، حط الخطوة بعد build الناجح فقط، مش قبل الاختبارات.

أخطاء شائعة لازم تمنعها

  • لا تبعت روابط نسبية. Google تنصح بالروابط الكاملة داخل sitemap، وده مهم كمان في logs.
  • لا تبعت كل الموقع بعد كل تعديل. ابعت URLs التي تغيرت فقط، وإلا هتعمل ضوضاء بدون قيمة.
  • لا تخزن المفتاح داخل الكود. استخدم GitHub Secrets، وانشر ملف التحقق العام فقط.
  • لا تعتبر 200 أو 202 معناه ranking. ده معناه إن الإشعار اتقبل أو اتسجل، مش إن الصفحة هتتصدر.

متى لا تستخدم هذه الطريقة

لا تستخدمها لو موقعك فيه 10 صفحات ثابتة ونادرًا بتتغير. sitemap في robots.txt كفاية غالبًا. لا تستخدمها أيضًا لو URLs عندك غير مستقرة، أو بتغيّر canonical كل يوم، لأنك هتبعت إشارات متضاربة. ولو عندك CMS جاهز فيه plugin موثوق لـ IndexNow، استخدمه بدل بناء workflow مخصص إلا لو محتاج logs وتحكم أكثر.

المصادر

  • توثيق IndexNow الرسمي لإرسال URL أو مجموعة URLs
  • Google Search Central: بناء وإرسال sitemap
  • GitHub Actions workflow syntax وجدولة وتشغيل workflows

الخطوة التالية

افتح مستودع الموقع، وانشر ملف مفتاح IndexNow على الجذر، ثم شغّل workflow يدويًا على URL واحد فقط. لو الـ log رجّع status مقبول، اربطه بعد النشر وليس قبله.

هل استفدت من المقال؟

اطّلع على المزيد من المقالات والدروس المجانية من نفس المسار المعرفي.

تصفّح المدونة