حساب عدد المشاهدات لصفحة متجاهلة محركات البحث؟

StackOverflow https://stackoverflow.com/questions/45824

  •  09-06-2019
  •  | 
  •  

سؤال

لقد لاحظت أن StackOverflow لديه عدد مشاهدات لكل سؤال وأن أرقام المشاهدة هذه منخفضة ودقيقة إلى حد ما.

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

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

هل كانت مفيدة؟

المحلول

سوف يقوم استدعاء AJAX بذلك، ولكن عادةً لن تقوم محركات البحث بتحميل الصور أو ملفات جافا سكريبت أو CSS، لذلك قد يكون من الأسهل تضمين أحد هذه الملفات في الصفحة، وتمرير عنوان URL للصفحة التي تريد تسجيل طلب ضدها كمعلمة في طلب الملف.

مثلا في الصفحة...

http://www.example.com/example.html

قد تدرج في قسم الرأس

<link href="empty.css?log=example.html" rel="stylesheet" type="text/css" />

واطلب من الخادم الخاص بك تسجيل الطلب، ثم إرجاع ملف CSS فارغ.سيتم تطبيق نفس الأسلوب على JavaScript أو ملف الصورة، على الرغم من أنك ستحتاج في جميع الحالات إلى النظر بعناية فيما قد يحدث في التخزين المؤقت.

هناك خيار آخر يتمثل في إزالة محركات البحث بناءً على مواقعها وكيل المستخدم.هناك قائمة كبيرة من وكلاء المستخدم المحتملين في http://user-agents.org/ للبدء.بالطبع، يمكنك السير في الاتجاه الآخر، واحتساب الطلبات الواردة فقط من الأشياء التي تعرفها هي متصفحات الويب (مثل IE وFirefox وSafari وOpera وهذا الشيء الجديد من Chrome سيوصلك إلى 99% من الطريق إلى هناك).

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

نصائح أخرى

لحل هذه المشكلة، قمت بتطبيق مرشح بسيط من شأنه أن ينظر إلى رأس وكيل المستخدم في طلب HTTP ومقارنته بقائمة من الروبوتات المعروفة.

حصلت على قائمة الروبوت من www.robotstxt.org.إنه قابل للتنزيل بتنسيق نص بسيط يمكن تحليله بسهولة لإنشاء "القائمة السوداء" تلقائيًا.

لا تحتاج حقًا إلى استخدام AJAX، فقط استخدم JavaScript لإضافة iFrame خارج الشاشة.أبقيها بسيطة

<script type="javascript">
document.write('<iframe src="myLogScript.php" style="visibility:hidden" width="1" height="1" frameborder="0">');
</script>

قد يكون امتداد إجابة Matt Sheppard كما يلي:

  <script type="text/javascript">
  var thePg=window.location.pathname;
  var theSite=window.location.hostname;
  var theImage=new Image;
  theImage.src="/test/hitcounter.php?pg=" + thePg + "?site=" + theSite;
  </script>

والتي يمكن توصيلها بقالب رأس أو تذييل الصفحة دون الحاجة إلى استبدال جانب خادم اسم الصفحة.لاحظ أنه إذا قمت بتضمين سلسلة الاستعلام (window.location.search)، فيجب أن يقوم إصدار قوي من هذا بتشفير السلسلة لمنع الأشرار من صياغة طلبات الصفحات التي تستغل الثغرات الأمنية بناءً على أشياء غريبة في عناوين URL.الشيء الجميل في هذا مقابل.عادي <img> العلامة أو <iframe> هو أن المستخدم لن يرى علامة X حمراء إذا كانت هناك مشكلة في البرنامج النصي hitcounter.في بعض الحالات، من المهم أيضًا معرفة عنوان URL الذي شاهده المتصفح، قبل إعادة كتابته، وما إلى ذلك.الذي يحدث من جانب الخادم، وهذا يمنحك ذلك.إذا كنت تريد ذلك في كلا الاتجاهين، فقم بإضافة معلمة أخرى من جانب الخادم تقوم بإدراج هذا الإصدار من اسم الصفحة في سلسلة الاستعلام أيضًا.

مثال على ملفات السجل من اختبار هذه الصفحة:

10.1.1.17 - - [13/Sep/2008:22:21:00 -0400] "GET /test/testpage.html HTTP/1.1" 200 306 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16"
10.1.1.17 - - [13/Sep/2008:22:21:00 -0400] "GET /test/hitcounter.php?pg=/test/testpage.html?site=www.home.***.com HTTP/1.1" 301 - "http://www.home.***.com/test/testpage.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16"

السبب وراء احتواء Stack Overflow على عدد مشاهدات دقيق هو أنه يحسب كل مشاهدة/مستخدم مرة واحدة فقط.

غالبًا ما يقوم تطبيق عداد النتائج (وإحصاءات الويب) التابع لجهة خارجية بتصفية محركات البحث وعرضها في نافذة/علامة تبويب/قسم منفصل.

سيتعين عليك إما أن تفعل ما قلته في سؤالك مع AJAX.أو استبعاد سلاسل وكيل المستخدم المعروفة بمحركات البحث.الطريقة الوحيدة المؤكدة لإيقاف الروبوتات هي باستخدام AJAX.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top