استكشف أدلة التدقيق

ست حالات HTTP محلية وليست فحصًا لموقعك. اختُبرت استجابات قبل الإصلاح وبعده محليًا؛ فهرسة Google والزيارات والترتيب ما تزال مجهولة.

تعكس الأولوية هدف المثال وليست درجة سيو عامة. الاستجابة الناجحة وحدها لا تثبت الفهرسة.

A01 · صفحة عامة تتضمن noindex

الأولوية: عالية

الملاحظة
يعيد GET /launch الرمز 200 ووسم robots بقيمة noindex. الهدف صفحة عامة مؤهلة للبحث.
لماذا تهم؟
التوجيه يناقض الهدف. وجوده مثبت، لكن قراءة Google له غير معروفة.
الإجراء المقترح
أزل التوجيه غير المقصود من القالب العام. افحص الترويسات وHTML المعروض أيضًا، لا المصدر فقط.
المسؤول
مطوّر الويب
معيار القبول
يعيد /fixed/launch الرمز 200 دون noindex. أعد فحص النشر الفعلي ونفّذ فحص URL المصرح به على نحو منفصل.

مؤكد في هذه الحالة المحلية؛ نطاق الإنتاج ونتائج البحث لم يُتحقق منهما.

قبل

GET /launch
HTTP 200
Content-Type: text/html; charset=utf-8

<!doctype html><html lang="en"><head><title>Local audit fixture</title><meta name="robots" content="noindex"></head><body><h1>Guide</h1><p>Local practice content.</p></body></html>

بعد

GET /fixed/launch
HTTP 200
Content-Type: text/html; charset=utf-8

<!doctype html><html lang="en"><head><title>Local audit fixture</title><link rel="canonical" href="/fixed/launch"></head><body><h1>Guide</h1><p>Local practice content.</p></body></html>

A02 · Robots يمنع قراءة توجيه الاستبعاد

الأولوية: عالية

الملاحظة
يحظر robots.txt المسار /blocked/ بينما تتضمن /blocked/page توجيه noindex. الهدف الاستبعاد من البحث وليس تقييد الوصول.
لماذا تهم؟
لا يستطيع الزاحف الملتزم قراءة التوجيه. قواعد robots ليست وسيلة مصادقة.
الإجراء المقترح
اسمح بزحف الصفحة المطلوب استبعادها مع إبقاء noindex. استخدم المصادقة للمحتوى الخاص فعلًا.
المسؤول
مسؤول المنصة
معيار القبول
يقع /fixed/blocked/page خارج البادئة المحظورة ويحتفظ بـ noindex. تحقق من قواعد المضيف الفعلية والفهرسة اللاحقة بصورة مستقلة.

مؤكد في هذه الحالة المحلية؛ نطاق الإنتاج ونتائج البحث لم يُتحقق منهما.

قبل

GET /robots.txt
HTTP 200
Content-Type: text/plain; charset=utf-8

User-agent: *
Disallow: /blocked/


────────

GET /blocked/page
HTTP 200
Content-Type: text/html; charset=utf-8

<!doctype html><html lang="en"><head><title>Local audit fixture</title><meta name="robots" content="noindex"></head><body><h1>Guide</h1><p>Local practice content.</p></body></html>

بعد

GET /robots.txt
HTTP 200
Content-Type: text/plain; charset=utf-8

User-agent: *
Disallow: /blocked/


────────

GET /fixed/blocked/page
HTTP 200
Content-Type: text/html; charset=utf-8

<!doctype html><html lang="en"><head><title>Local audit fixture</title><meta name="robots" content="noindex"></head><body><h1>Guide</h1><p>Local practice content.</p></body></html>

A03 · إعادة توجيه دائمة تنتهي بخطأ

الأولوية: عالية

الملاحظة
يعيد /old-guide الرمز 301 إلى /missing-guide الذي يعيد 404. يفترض المثال أن /guide بديل مناسب.
لماذا تهم؟
لا يصل المسار إلى المحتوى المقصود. وجود إعادة توجيه لا يثبت نجاح الوجهة.
الإجراء المقترح
وجّه العنوان مباشرة إلى البديل المناسب العامل وحدّث الروابط الداخلية. لا توجّه جميع الصفحات المحذوفة إلى الرئيسية.
المسؤول
مطوّر التوجيه
معيار القبول
يعيد /fixed/old-guide تحويلًا واحدًا 301 ثم /guide بالرمز 200 والمحتوى المتوقع. افحص السلسلة كاملة بعد النشر.

مؤكد في هذه الحالة المحلية؛ نطاق الإنتاج ونتائج البحث لم يُتحقق منهما.

قبل

GET /old-guide
HTTP 301
Location: /missing-guide



────────

GET /missing-guide
HTTP 404
Content-Type: text/html; charset=utf-8

<!doctype html><html lang="en"><head><title>Local audit fixture</title></head><body><h1>Not found</h1></body></html>

بعد

GET /fixed/old-guide
HTTP 301
Location: /guide



────────

GET /guide
HTTP 200
Content-Type: text/html; charset=utf-8

<!doctype html><html lang="en"><head><title>Local audit fixture</title><link rel="canonical" href="/guide"></head><body><h1>Guide</h1><p>Local practice content.</p></body></html>

A04 · Canonical يشير إلى موضوع غير مرتبط

الأولوية: متوسطة

الملاحظة
تحدد /variant المسار /other-topic كعنوان أساسي رغم أن محتواها يكرر /guide.
لماذا تهم؟
التفضيل يتعارض مع علاقة المحتوى. لا يكشف ذلك العنوان الأساسي الذي اختاره Google.
الإجراء المقترح
أكد تكافؤ المحتوى ثم وحّد canonical والروابط الداخلية وخريطة الموقع مع /guide. أبق الصفحات ذات الأهداف المختلفة منفصلة.
المسؤول
مسؤول السيو والمطوّر
معيار القبول
تحدد /fixed/variant العنوان /guide وتعمل الوجهة. تحقق من اختيار Google منفصلًا عندما يتوفر الوصول.

مؤكد في هذه الحالة المحلية؛ نطاق الإنتاج ونتائج البحث لم يُتحقق منهما.

قبل

GET /variant
HTTP 200
Content-Type: text/html; charset=utf-8

<!doctype html><html lang="en"><head><title>Local audit fixture</title><link rel="canonical" href="/other-topic"></head><body><h1>Guide</h1><p>Local practice content.</p></body></html>

بعد

GET /fixed/variant
HTTP 200
Content-Type: text/html; charset=utf-8

<!doctype html><html lang="en"><head><title>Local audit fixture</title><link rel="canonical" href="/guide"></head><body><h1>Guide</h1><p>Local practice content.</p></body></html>

A05 · صفحة مفقودة تعيد استجابة نجاح

الأولوية: متوسطة

الملاحظة
تعيد /gone الرمز 200 مع عنوان Not found. لا يوجد بديل مناسب في المثال.
لماذا تهم؟
هناك تعارض بين محتوى الخطأ ورمز النجاح: حالة مرشحة لـ soft 404 وليست تصنيفًا مرصودًا من Google.
الإجراء المقترح
أعد رمز المورد المفقود المناسب وأزل الروابط الداخلية القديمة. احتفظ بصفحة خطأ مفيدة للزائر.
المسؤول
مطوّر الويب
معيار القبول
تعيد /fixed/gone الرمز 404 مع محتوى الخطأ. الملاحظة اللاحقة في Search Console دليل مستقل.

مؤكد في هذه الحالة المحلية؛ نطاق الإنتاج ونتائج البحث لم يُتحقق منهما.

قبل

GET /gone
HTTP 200
Content-Type: text/html; charset=utf-8

<!doctype html><html lang="en"><head><title>Local audit fixture</title></head><body><h1>Not found</h1></body></html>

بعد

GET /fixed/gone
HTTP 404
Content-Type: text/html; charset=utf-8

<!doctype html><html lang="en"><head><title>Local audit fixture</title></head><body><h1>Not found</h1></body></html>

A06 · حالة الضبط السليمة لا تحتاج إصلاحًا تخمينيًا

الأولوية: دون تغيير

الملاحظة
تعيد /guide الرمز 200 وتحدد نفسها canonical ولا تحظرها قواعد robots الحالية. لا تتضمن هذه الاستجابة noindex.
لماذا تهم؟
تجتاز الفحوص المحلية، لكن جودة المحتوى والعرض والاكتشاف والفهرسة والترتيب غير مثبتة.
الإجراء المقترح
سجّل حالة الضبط الناجحة. ابحث في إشارات أخرى فقط عندما يبرر ذلك سؤال محدد ودليل.
المسؤول
مراجع التدقيق
معيار القبول
تبقى استجابات قبل وبعد متطابقة. احتفظ بالدليل الناجح بدل اختراع مشكلة لزيادة عدد الأخطاء.

مؤكد في هذه الحالة المحلية؛ نطاق الإنتاج ونتائج البحث لم يُتحقق منهما.

قبل

GET /guide
HTTP 200
Content-Type: text/html; charset=utf-8

<!doctype html><html lang="en"><head><title>Local audit fixture</title><link rel="canonical" href="/guide"></head><body><h1>Guide</h1><p>Local practice content.</p></body></html>

بعد

GET /guide
HTTP 200
Content-Type: text/html; charset=utf-8

<!doctype html><html lang="en"><head><title>Local audit fixture</title><link rel="canonical" href="/guide"></head><body><h1>Guide</h1><p>Local practice content.</p></body></html>

شغّل الحالات

شغّل الحالات

ست حالات HTTP محلية وليست فحصًا لموقعك. اختُبرت استجابات قبل الإصلاح وبعده محليًا؛ فهرسة Google والزيارات والترتيب ما تزال مجهولة.

يلزم Python 3.10 أو أحدث. فك ZIP في مجلد محلي. يبدأ أمر التحقق خادمًا محليًا مؤقتًا ويختبر الحالات ويطبع JSON ثم يتوقف. لا يتصل بمواقع خارجية.

python3 audit_lab.py --verify

للفحص اليدوي شغّل الخادم بالأمر أدناه وافتح العناوين المحلية ثم أوقفه بـ Ctrl+C. اختر منفذًا محليًا آخر إذا كان 8765 مشغولًا.

python3 audit_lab.py --port 8765

http://127.0.0.1:8765/robots.txt

http://127.0.0.1:8765/launch

http://127.0.0.1:8765/fixed/launch

http://127.0.0.1:8765/blocked/page

http://127.0.0.1:8765/fixed/blocked/page

http://127.0.0.1:8765/old-guide

http://127.0.0.1:8765/missing-guide

http://127.0.0.1:8765/fixed/old-guide

http://127.0.0.1:8765/guide

http://127.0.0.1:8765/variant

http://127.0.0.1:8765/fixed/variant

http://127.0.0.1:8765/gone

http://127.0.0.1:8765/fixed/gone

http://127.0.0.1:8765/guide

http://127.0.0.1:8765/guide

الأوامر والمسارات معرّفات تقنية؛ نص التقرير مترجم.

نتيجة الفهرسة في البحث: مجهولة

نتيجة الفهرسة في البحث: مجهولة