محمد قتيبة شيخانيأبني. أستكشف. أشارك

المشاريع

Crawlix: أداة تدقيق سيو لسطح المكتب

زحفٌ كاملٌ للموقع و102 فحصًا، تعمل كلّها على جهازك: لا حساب، ولا رفع بيانات، ولا تتبّع.

2026الدور التصميم والبرمجة والنشرالخدمات بناء، SEO
  • Electron
  • Fastify
  • React
  • SQLite
  • TypeScript
لقطة من لوحة تحكّم Crawlix تُظهر النتيجة الصحية للموقع وقائمة أهمّ المشكلات

السياق

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

المشكلة

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

المقاربة

بنيتُها تطبيق سطح مكتب، لا خدمةً على الويب. القرار يحلّ العقبة الأولى من جذرها: الزحف يجري من جهازك، والنتائج تُحفظ في قاعدة SQLite على قرصك، ولا يمرّ شيءٌ بخادمٍ وسيط. ولأنّ الحساب يجري على جهازك لا على خادمي، لا يوجد سببٌ تقنيّ لتوقيت الطبقة المجانية: هي حدُّ صفحاتٍ فقط، لا مدّةٌ تنتهي.

ما بنيتُه

محرّك الزحف مكتوبٌ من الصفر: اتّصال HTTP/2 مع تراجعٍ إلى HTTP/1.1، وعشرون عاملًا متزامنًا، وطابور أولويّات بخمسة مستويات، ومرشّح بلوم يستبعد ما زُحف مرّةً بلا إعادة فحصه. ويقرأ ملفّ robots.txt على معيار RFC 9309، ويحترم تأخير الزحف المطلوب فيه. وإن كان الموقع يبني صفحاته بجافاسكربت، شغّل متصفّحًا حقيقيًّا لعرضها وقياس مؤشّرات الويب الأساسية منها.

وفوق ذلك طبقة الفحص: 102 فحصًا في تسع فئات، من التقنيّ وداخل الصفحة إلى المحتوى والروابط والصور والبيانات المنظّمة والأمن والوصولية والتدويل. ولكلّ فحصٍ وصفٌ وأثرٌ ودليل إصلاح، لا رمز خطأٍ يتركك تبحث عن معناه.

وفيها ثلاثة أشياء لم أجدها مجتمعةً في أداةٍ أخرى: تحليل ملفّ robots.txt لثلاثة عشر زاحفًا من زواحف الذكاء الاصطناعي، وقارئ سجلّات خادمٍ يفهم صيغ أباتشي وnginx وIIS وكلاودفلير وAWS ويميّز الزاحف الحقيقيّ من المنتحل، ومؤشّر قابلية قراءةٍ عربيّ كتبتُه لأنّ فليش لا يصلح للعربية.

والأمن جزءٌ من التصميم لا طبقةٌ فوقه. الزاحف يرفض العناوين الداخلية وعنوان ما وراء الشبكة 169.254.169.254 ومنافذ قواعد البيانات، ويفحص كلّ تعبيرٍ نمطيّ يكتبه المستخدم قبل تنفيذه حتى لا يُعلَّق المعالج بتعبيرٍ خبيث، ويحدّ حجم الاستجابة ومقدار ما يُفكّ ضغطه حتى لا يُفجّره ملفٌّ مضغوطٌ صغير.

الحال الآن

الإصدار 1.0.0 منشورٌ ومتاحٌ للتنزيل على ويندوز ولينكس. ونسخة ماك مؤجّلة لأنّها تحتاج شهادة توقيعٍ من آبل، والمُثبِّت الحاليّ غير موقَّع، وهذا مكتوبٌ صراحةً في صفحة التنزيل لأنّ ويندوز سيحذّر منه في أوّل تشغيل. أفضّل أن يقرأ المستخدم هذا منّي قبل أن يراه من نظامه.

النتائج

الفحوصات
102 فحصًا في تسع فئات
قاعدة البيانات
39 جدولًا، محليّة على القرص
زواحف الذكاء الاصطناعي
13 زاحفًا تُفحص إعداداتها
المنصات
ويندوز ولينكس، الإصدار 1.0.0
الطبقة المجانية
100 صفحة لكلّ زحفة، بلا مدّةٍ تنتهي
كُتِبت2026-07-30

بيد محمد قتيبة شيخاني CC BY 4.0 · يُعاد استخدامه مع الإسناد