AI ক্রলারগুলো আপনার ট্রাফিক সংখ্যা বাড়িয়ে দিচ্ছে, আর সাধারণ শর্টকাট—User-Agent হেডার চেক করা—তা ধরতে পারে না।

সাম্প্রতিক আট দিনের একটি লগ সুইপে দেখা গেছে যে ৪৬৮টি প্রকৃত নিবন্ধ ফেচ (fetch) করা হয়েছে, কিন্তু ৯৯১টি রিকোয়েস্ট AI বট হওয়ার ভান করছিল যা আসলে .env বা .git-এর মতো ফাইল খুঁজছিল। এর কারণ কী? যে কেউ HTTP রিকোয়েস্টে GPTBot বা ChatGPT-User-এর মতো একটি স্বঘোষিত User-Agent স্ট্রিং যুক্ত করতে পারে।

কেন এই মেট্রিকটি গুরুত্বপূর্ণ

ওয়েবসাইটগুলো "AI ট্রাফিক"-এর বৃদ্ধিকে প্রাসঙ্গিকতার লক্ষণ হিসেবে বিবেচনা করে। তারা বিজ্ঞাপনের রেট নির্ধারণ করতে, সার্ভার রিসোর্স বরাদ্দ করতে এবং বিনিয়োগকারীদের কাছে নিজেদের জাহির করতে এই সংখ্যাগুলো ব্যবহার করে। যখন রিপোর্ট করা AI হিটগুলোর অর্ধেকই কেবল অপ্রাসঙ্গিক নয়েজ (noise), তখন বাজেট ভুল পথে পরিচালিত হয় এবং ড্যাশবোর্ড বিভ্রান্তিকর হয়ে ওঠে।

দাবি এবং বাস্তবতার পার্থক্যকারী দুটি ফিল্টার

  1. Cloudflare-এর verifiedBotCategory – Cloudflare এই ফিল্ডটি কেবল তখনই পূরণ করে যখন এটি reverse DNS-এর মাধ্যমে রিকোয়েস্টের IP-কে একটি পরিচিত বট ডোমেইনের সাথে মিলিয়ে নিতে পারে। যদি হেডার বলে "GPTBot" কিন্তু IP লুকআপে তা ব্যর্থ হয়, তবে রিকোয়েস্টটি "unverified" ক্যাটাগরিতে পড়ে।
  2. Sitemap ক্রস-চেক – একটি বট তখনই আপনার কন্টেন্ট প্রকৃতপক্ষে পড়ে যখন অনুরোধ করা URLটি আপনার XML sitemap-এ থাকে। সাইটম্যাপে নেই এমন পাথের (path) রিকোয়েস্টগুলো নিবন্ধ ইনডেক্স করার পরিবর্তে সম্ভবত দুর্বলতা (vulnerabilities) খোঁজার চেষ্টা করে।

একই আট দিনের নমুনার ওপর উভয় ফিল্টার প্রয়োগ করে কিছু স্পষ্ট সংখ্যা পাওয়া গেছে:

  • ChatGPT-User – ৩৯% রিকোয়েস্ট ভেরিফিকেশন পাস করেছে।
  • GPTBot – ১৩% ভেরিফাইড।
  • PerplexityBot – ০% ভেরিফাইড।
  • Google-Extended – ০% ভেরিফাইড; এই স্ট্রিংটি কোনো অফিসিয়াল Google ক্রলারের সাথে মেলে না।

এমনকি ভেরিফাইড কলগুলোর মধ্যেও অনেক বট কেবল robots.txt বা সাইটম্যাপটিই ফেচ করেছে, আপনার প্রয়োজনীয় নিবন্ধের পেজগুলো নয়।

ডেভেলপাররা আজ যা করতে পারেন

  • আপনার অ্যানালিটিক্স পাইপলাইনে Cloudflare বট ভেরিফিকেশন চালু করুন। verifiedBotCategory ফিল্ডটি রিকোয়েস্ট হেডারে দেখা যায় এবং এটি আপনার নিজস্ব লগগুলোর সাথে সংরক্ষণ করা যেতে পারে।
  • একটি আপ-টু-ডেট সাইটম্যাপ বজায় রাখুন এবং একটি অটোমেটেড চেক ব্যবহার করুন যাতে প্রতিটি ইনকামিং রিকোয়েস্টের পাথ কন্টেন্ট ভিউ হিসেবে গণনা করার আগে সেখানে বিদ্যমান থাকে।
  • non-GET মেথড এবং সাধারণ ডেভেলপমেন্ট ফাইল (.env, .git, .bak) টার্গেট করা রিকোয়েস্টগুলো ফিল্টার করে বাদ দিন। এগুলো প্রায় সবসময়ই ক্ষতিকারক স্ক্যান।

পাল্টা যুক্তি

কেউ কেউ যুক্তি দেন যে reverse DNS চেক স্পুফ (spoof) করা সম্ভব, এবং একটি বটের বৈধ উদ্দেশ্য হতে পারে সাইটম্যাপে তালিকাভুক্ত নয় এমন নতুন URL খুঁজে বের করা। এই উদ্বেগগুলো যৌক্তিক: একজন determined আক্রমণকারী একটি DNS রেকর্ডের ক্ষতি করতে পারে, এবং পরবর্তী জেনারেশন সাইকেল না আসা পর্যন্ত নতুন কন্টেন্ট স্বাভাবিকভাবেই বর্তমান সাইটম্যাপে অনুপস্থিত থাকবে।

বাস্তবসম্মত সমাধান হলো ভেরিফিকেশনকে একটি পরম গেট (absolute gate) হিসেবে না দেখে একটি কনফিডেন্স স্কোর (confidence score) হিসেবে বিবেচনা করা। আপনি যা "প্রকৃত AI ট্রাফিক" হিসেবে গণনা করবেন তার মানদণ্ড বাড়াতে DNS ভেরিফিকেশন, সাইটম্যাপ উপস্থিতি এবং রিকোয়েস্ট-মেথড চেক—সবগুলো মিলিয়ে দেখুন। যদি কোনো রিকোয়েস্ট তিনটি চেকের মধ্যে দুটিতে পাস করে, তবে সেটিকে সরাসরি বাদ না দিয়ে ম্যানুয়াল রিভিউয়ের জন্য ফ্ল্যাগ করুন।

পরবর্তীতে যা খেয়াল রাখতে হবে

  • Cloudflare-এর ভেরিফিকেশন API-তে পরিবর্তনverifiedBotCategory লজিকে যেকোনো পরিবর্তন ভেরিফিকেশন রেট বদলে দিতে পারে।
  • নতুন স্ব-পরিচয়িত বটের আবির্ভাব – আপনার লগে আসা User-Agent স্ট্রিংগুলোর দিকে নজর রাখুন; হঠাৎ কোনো স্পাইক দেখা দিলে তা AI ক্রলার সেজে আসা নতুন কোনো স্ক্যানার নির্দেশ করতে পারে।
  • Sitemap জেনারেশনের ফ্রিকোয়েন্সি – দীর্ঘ বিরতি থাকলে বৈধ ক্রলারগুলো ভুলভাবে ক্লাসিফাই হওয়ার সম্ভাবনা বেড়ে যায়।

মূল কথাটি সহজ: User-Agent স্ট্রিংকে প্রমাণ হিসেবে দেখা বন্ধ করুন। DNS ভেরিফিকেশন এবং সাইটম্যাপ ভ্যালিডেশনের স্তর যুক্ত করুন, তাহলেই আপনি দেখতে পাবেন আসলে কারা আপনার কন্টেন্ট পড়ছে।

উৎস: https://dev.to/aulvem/ai-crawler-user-agents-are-self-reported-468-real-fetches-991-fake-ones-bgo