كيف تُكتشف روابط الصفحة وتُفحص؟
الرابط عنصر a (أو area) يُحل الـ href فيه، نسبةً إلى عنوان الصفحة أو عنصر base فيها، إلى عنوان مطلق؛ ومن خلال هذه الروابط بالذات تكتشف الزواحف الصفحات، لا من الأزرار أو الشيفرة البرمجية. ويُفحص الرابط بطلب عنوانه وقراءة رمز الحالة: 2xx يعمل، و3xx ينتقل إلى مكان آخر، و4xx أو 5xx معطل — مع أن 401 و403 و429 تعني غالباً أن الخادم رفض عميلاً آلياً لا أن الصفحة اختفت.
كيفية استخدام فاحص الروابط المعطلة
- أدخل عنوان الصفحة التي تريد فحص روابطها.
- اختر كل الروابط أو الداخلية أو الخارجية، وعدد الروابط المراد فحصها (حتى 30؛ ولا يفحص الخادم في المرة الواحدة أكثر من 9 إن لم تكن مسجّل الدخول، و29 إن كنت مسجّلاً).
- اضغط «فحص الروابط» وانتظر — يطلب الخادم الروابط أربعةً أربعة خلال نحو 20 ثانية.
- أصلح الروابط المعطلة أو احذفها، وافتح في المتصفح الروابط التي لم ترد، ووجّه الروابط المعاد توجيهها إلى عناوينها النهائية.
مزايا فاحص الروابط المعطلة
- يجلب خادم متقن الصفحة، ويستخرج روابط http(s) فيها، ويطلبها بترتيب ورودها: 30 على الأكثر في الفحص الواحد، وحالياً 9 إن لم تكن مسجّل الدخول و29 إن كنت مسجّلاً
- يُرسل لكل رابط طلب HEAD، أو GET إذا رد الخادم على HEAD بالرمز 405 أو 501؛ ولا يُنزَّل محتوى الصفحة أبداً
- لا تُتتبَّع إعادة التوجيه بل تُعرض مع وجهتها، فيتميّز الرابط المنقول عن الرابط المعطل
- تُسرد الروابط المعطلة (4xx و5xx) أولاً، ثم الروابط التي لم ترد (انتهاء المهلة، مضيف غير معروف، عنوان مرفوض)، ثم إعادات التوجيه، ثم الروابط السليمة
- يعرض لكل رابط رمز الحالة وزمن الاستجابة ونص الرابط ونوعه داخلي أو خارجي، مع إمكانية التنزيل بصيغة CSV
- يوجّه طلبات الروابط المتاحة لك حيث تحتاجها: كل الروابط، أو الداخلية فقط، أو الخارجية فقط
- ينبّه إلى الردود التي تعني غالباً «رُفض العميل الآلي» (401 و403 و429 و999) لا رابطاً ميتاً
المدخلات والمخرجات
المدخلات
- عنوان الصفحة — الصفحة العامة التي تُفحص روابطها؛ يجلبها خادم متقن.
- الروابط المراد فحصها — كل الروابط، أو الداخلية فقط (النطاق القابل للتسجيل نفسه وفق قائمة اللاحقات العامة)، أو الخارجية فقط.
- الحد الأقصى للروابط المفحوصة — من 1 إلى 30، بترتيب ورودها في الصفحة. وقد يفحص الخادم أقل من ذلك — 9 في الفحص إن لم تكن مسجّل الدخول، و29 إن كنت مسجّلاً — ويعدّ الباقي غير مفحوص.
المخرجات
- الملخص — الروابط الموجودة والمفحوصة وغير المفحوصة، وأعداد «سليمة» و«معطلة» و«معاد توجيهها» و«بلا رد».
- فحص الروابط — كل رابط مفحوص بعنوانه وحالته ونتيجته ووجهة إعادة توجيهه وزمنه ونصه ونوعه؛ المعطلة أولاً؛ قابل للتنزيل باسم link-check.csv.
- الملاحظات — ما يجب إصلاحه، وما يجب التحقق منه يدوياً، وسبب تخطّي الروابط إن تُخطّيت.
- الصفحة المفحوصة — عنوان الصفحة، والعنوان النهائي بعد إعادة التوجيه، وحالة HTTP.
مثال على فاحص الروابط المعطلة
مقال مدونة فيه رابط دليل ميت
الإدخال:
https://www.example.com/blog/post · الروابط المراد فحصها: كل الروابط · الحد الأقصى: 30النتيجة:
Links found 6 · Checked 6 · Not checked 0 · OK 2 · Broken 2 · Redirected 1 · No answer 1
https://www.example.com/guides/old-guide — 404 — Broken
https://www.linkedin.com/company/example — 999 — Broken
https://partner.example.net/offer — Timed out
https://www.example.com/pricing — 301 — Redirect → https://www.example.com/plans
Findings: 2 links answer with an error (4xx or 5xx): fix or remove them. · Some links answered 401, 403, 429 or 999: many sites refuse automated requests from data-centre addresses, so open these in a browser before calling them broken.كيف تقرأ نتائج فاحص الروابط المعطلة
Broken مع 404 أو 410: الوجهة لم تعد موجودة — حدّث الرابط أو احذفه. ومع 500–599: خادم الوجهة يعاني عطلاً؛ أعد الفحص لاحقاً قبل حذف الرابط.
Broken مع 401 أو 403 أو 429 أو 999: غالباً ترفض الوجهة العملاء الآليين، والصفحة ليست ميتة. افتحها في المتصفح قبل أن تتصرّف.
Redirect: الرابط يعمل لكنه يسلك طريقاً أطول. وجّهه إلى العنوان المذكور في عمود «تعيد التوجيه إلى» — خصوصاً الروابط الداخلية التي تتحكم فيها.
Timed out أو Host not found أو Connection failed: لم يتلقَّ الطلب أي رد عند خادم متقن. قد يكون المضيف متوقفاً أو بطيئاً أو يحظر حركة مراكز البيانات؛ والمضيف غير الموجود يعني عادةً نطاقاً مكتوباً خطأً أو منتهي الصلاحية.
متى تستخدم فاحص الروابط المعطلة
- افحص مقالاً أو صفحة توثيق أو صفحة هبوط بحثاً عن روابط ميتة قبل النشر وبعده.
- اكتشف الروابط التي ما زالت تشير إلى العناوين القديمة بعد نقل الموقع وصارت تعيد التوجيه.
- راجع المراجع الخارجية لصفحة قديمة بحثاً عن الروابط التي تآكلت مع الوقت.
- تأكد من أن تغيير قائمة التنقل أو التذييل لم يكسر الروابط الداخلية.
استكشاف الأخطاء وإصلاحها
- رسالة بلوغ حد الطلبات: فحوصات الروابط محدودة بـ 10 كل 10 دقائق لكل عنوان IP. انتظر ثم أعد المحاولة؛ فالحد يحمي المواقع التي تُفحص.
- عدد الروابط المفحوصة أقل من الموجودة مع ملاحظة: يُحدَّد حجم كل فحص برصيدك من طلبات الروابط في الدقيقة — حالياً 9 روابط إن لم تكن مسجّل الدخول و29 إن كنت مسجّلاً — وقد استهلك فحص سابق في الدقيقة نفسها جزءاً منه. تذكر الملاحظة عدد ما تُخطّي؛ سجّل الدخول، أو أعد الفحص بعد دقيقة، أو اقصره على الروابط الداخلية أو الخارجية.
- «المفحوصة» 0 مع تحذير بأنه لم يُفحص أي رابط: استهلك فحص سابق الرصيد كله، أو كان الخادم مشغولاً. وتذكر الملاحظات مدة الانتظار بالثواني، ويعرضها قسم «الصفحة المفحوصة» في سطر «أعد المحاولة بعد».
- «الروابط الموجودة» 0: إن اخترت الروابط الداخلية أو الخارجية فقط فقد لا تحوي الصفحة روابط من هذا النوع أصلاً، فاختر «كل الروابط». وإن كانت «كل الروابط» مختارة، فالصفحة تبني روابطها بـ JavaScript، أو أعاد العنوان خطأً أو ملفاً ليس HTML؛ اعرض مصدر الصفحة في المتصفح لترى ما يرسله الخادم.
- ردود 403 كثيرة من موقع واحد: ذلك الموقع يحظر الطلبات الآلية. تحقّق من روابطه يدوياً.
الأسئلة الشائعة حول فاحص الروابط المعطلة
كم رابطاً يغطي الفحص الواحد؟
ثلاثون رابطاً على الأكثر، وكثيراً ما يكون العدد أقل. فكل رابط طلب يرسله خادم متقن باسمه، لذا يُحدَّد حجم كل فحص برصيدك من طلبات الروابط في الدقيقة: حالياً 9 روابط إن لم تكن مسجّل الدخول و29 إن كنت مسجّلاً، بعد طلب واحد للصفحة نفسها. والفحص الثاني في الدقيقة نفسها يأخذ من الرصيد ذاته، فقد يفحص روابط أقل أو لا يفحص شيئاً، ومن يشاركونك عنوان IP يتقاسمون معك أيضاً رصيداً خاصاً بالعنوان. وتذكر ملاحظة النتيجة عدد الروابط التي تُخطّيت ومتى تعيد المحاولة، ولكل عنوان IP عشرة فحوصات كل 10 دقائق. لفحص موقع كامل، افحصه صفحةً صفحة أو استخدم زاحفاً تشغّله بنفسك.
هل تُعدّ إعادة التوجيه رابطاً معطلاً؟
لا. لا تُتتبَّع إعادة التوجيه: تُعرض 301 و302 و307 و308 بوصفها Redirect مع وجهتها، لأن الرابط ما زال يقود إلى مكان ما. وتحديثه إلى العنوان النهائي يوفّر على الزوار والزواحف رحلة إضافية. ولا يُعدّ معطلاً إلا الرد 4xx أو 5xx.
الرابط يعمل في متصفحي لكنه يظهر هنا بـ 403 أو 429، لماذا؟
كثير من المواقع ترفض الطلبات القادمة من عناوين مراكز البيانات أو من عملاء ليسوا متصفحات، وبعضها يحدّ من معدّلها. تُعرض هذه الردود كما وصلت مع ملاحظة — افتح الرابط في المتصفح قبل أن تحكم بأنه معطل. والرمز 999 هو رد LinkedIn المعتاد على الطلبات الآلية.
ما الروابط التي تُفحص؟
روابط a وarea بـ http(s) في HTML الذي يرسله الخادم، بترتيب ورودها، دون تكرار، ودون المراسي # وروابط mailto: وtel: والصفحة نفسها. ولا تُرى الروابط التي يبنيها JavaScript. اختر الداخلية أو الخارجية فقط لتوجّه طلبات الروابط المتاحة لك حيث تحتاجها.
لماذا يظهر رابط بعبارة "Not checked (address refused)"؟
لأن مضيفه يُحل إلى عنوان خاص أو محلي أو محجوز، أو يستخدم منفذاً لا يُسمح لخادم متقن بالاتصال به. هذه الروابط (صفحات الشبكة الداخلية وخوادم الاختبار المحلية) لا تُطلب أبداً من الإنترنت؛ افحصها من داخل شبكتك.
ملاحظات تقنية
تُجلب الصفحة مع تتبّع حتى خمس عمليات إعادة توجيه (10 ثوانٍ)، وتُستخرج روابط a وarea فيها وتُحل نسبةً إلى العنوان النهائي، ويُحذف منها الجزء بعد # وتُزال المكرّرات، وتُتخطّى روابط mailto: وtel: وjavascript: والصفحة نفسها.
يُطلب كل رابط مرة واحدة من خادم متقن بمجموعة ثابتة من الترويسات: HEAD، ثم GET مع إهمال المحتوى إذا رد HEAD بـ 405 Method Not Allowed أو 501 Not Implemented (يُلزم RFC 9110 الخوادم العامة بدعم HEAD، لكن بعض التطبيقات لا تفعل). تجري أربعة طلبات معاً، لكل منها 8 ثوانٍ، و22 ثانية للفحص كله. وتمر كل قفزة بفحوص العناوين نفسها التي تمر بها الصفحة: لا يُتصل أبداً بالعناوين الخاصة أو المحجوزة أو المرفوضة.
الحالة الأقل من 400 تُعدّ سليمة (وتُعرض 3xx كإعادة توجيه دون تتبّعها)، و4xx و5xx تُعدّان معطلتين، وغياب الحالة يعني فشل الطلب، ويُذكر السبب في عمود النتيجة.
الحدود ومنهجية القياس
ثلاثون رابطاً على الأكثر في الفحص — وحالياً 9 إن لم تكن مسجّل الدخول و29 إن كنت مسجّلاً، يتقاسمها ما تجريه من فحوص خلال دقيقة واحدة — و10 فحوصات كل 10 دقائق لكل عنوان IP؛ هذه أداة لفحص صفحة لا زاحف لموقع كامل.
تأتي الطلبات من خادم متقن على شبكة Cloudflare، لا من متصفحك ولا من بلدك. والمواقع التي تحظر حركة مراكز البيانات أو تتطلب تسجيل دخول أو تختلف بحسب المنطقة قد ترد على الزوار الحقيقيين بغير ذلك.
لا يُفحص إلا رمز الحالة: الصفحة التي ترد بـ 200 وفيها عبارة «غير موجودة» (soft 404) أو بمحتوى خاطئ تُعدّ سليمة. ولا تُرى الروابط التي يبنيها JavaScript.
الأمان والخصوصية
يُرسل عنوان الصفحة إلى خادم متقن، فيجلب الصفحة ويرسل طلب HEAD (أو GET) واحداً إلى كل رابط مفحوص بمجموعة ثابتة من الترويسات. ولا يُخزَّن أي شيء؛ ولا تسجّل التحليلات إلا أن نقطة النهاية استُخدمت.
لا تحمل الطلبات ملفات تعريف الارتباط الخاصة بك ولا بيانات اعتمادك، فترد الصفحات المحمية بتسجيل الدخول كما ترد على غريب. افحص فقط الصفحات والمواقع المصرّح لك باختبارها.
المراجع
- HTML Standard — 4.6 Linksكيف تُنشئ عناصر a وarea الروابط التشعبية: سمات href وtarget وrel، وأنواع الروابط مثل nofollow وnoopener وnoreferrer، وكيف يُحل عنوان الرابط نسبةً إلى أساس المستند.
- SEO Link Best Practices for Googleالروابط التي يستطيع Google تتبّعها (عناصر a ذات href يُحل إلى عنوان حقيقي)، وكيف يُكتب نص الرابط، وكيف توصف الروابط الخارجية بـ rel="nofollow" و"sponsored" و"ugc".
- RFC 9110: HTTP Semanticsمعاني أساليب HTTP وحقول الترويسات ورموز الحالة والتفاوض على المحتوى، بغضّ النظر عن إصدار البروتوكول.