robots.txt ফাইলের গ্রুপ নির্বাচন এবং ক্রলার মেলানোর নিয়ম
সার্চ ইঞ্জিন বট বা ওয়েব ক্রলার যখন কোনো ওয়েবসাইটে প্রবেশ করে, তখন প্রথমে robots.txt ফাইলটি পরীক্ষা করে। RFC 9309 স্ট্যান্ডার্ড অনুযায়ী এই ফাইলে বিভিন্ন নিয়মের গ্রুপ বা ব্লক সাজানো থাকে। প্রতিটি গ্রুপ এক বা একাধিক User-agent নির্দেশিকা দিয়ে শুরু হয়। ক্রলার যখন ফাইলটি পড়ে, তখন সে নিজের নামের সাথে সবচেয়ে নিখুঁতভাবে মিলে যাওয়া গ্রুপটি বেছে নেয়।
উদাহরণস্বরূপ, কোনো ক্রলারের নাম Googlebot হলে সে প্রথমে নিজের নামের জন্য নির্ধারিত নির্দিষ্ট গ্রুপটি খুঁজে দেখে। যদি নির্দিষ্ট গ্রুপ থাকে, তবে সে কেবল সেই গ্রুপের নিয়মগুলোই অনুসরণ করবে এবং সাধারণ User-agent: গ্রুপের সব নিয়ম সম্পূর্ণ উপেক্ষা করবে। নির্দিষ্ট গ্রুপটি সাধারণ নিয়মগুলোর সাথে যোগ হয় না, বরং সেগুলোকে প্রতিস্থাপন করে। যদি নির্দিষ্ট গ্রুপ না থাকে, তবে হাইফেনযুক্ত নামের ক্ষেত্রে প্যারেন্ট টোকেন (যেমন Googlebot-Image এর ক্ষেত্রে Googlebot) খোঁজা হয়। সেটিও না থাকলে ক্রলার User-agent: গ্রুপে ফিরে যায়। যদি কোনো গ্রুপই না মিলে, তবে কোনো বিধিনিষেধ প্রযোজ্য হয় না এবং ক্রলার সম্পূর্ণ সাইট অ্যাক্সেস করতে পারে। Robots.txt টেস্টার এই বাছাই প্রক্রিয়াটি নিখুঁতভাবে সিমুলেট করে কার্যকর গ্রুপ ও ফলাফল উপস্থাপন করে।
দীর্ঘতম নিয়মের অগ্রাধিকার এবং ওয়াইল্ডকার্ড প্যাটার্ন
যখন একটি নির্দিষ্ট ইউআরএল একই সাথে Allow এবং Disallow নিয়মের আওতায় পড়ে, তখন দীর্ঘতম অক্ষরের প্যাটার্নযুক্ত নিয়মটি জয়ী হয়। একে দীর্ঘতম ম্যাচ নীতি বলা হয়। স্ট্রিংয়ের দৈর্ঘ্য অনুযায়ী যে নিয়মের পাথ সবচেয়ে বিস্তারিত, ক্রলার সেই নিয়মটিকেই চূড়ান্ত নির্দেশ হিসেবে গ্রহণ করে।
যদি Allow এবং Disallow উভয় নিয়মের পাথ দৈর্ঘ্যে সমান হয়, তবে স্ট্যান্ডার্ড অনুযায়ী Allow নিয়মটি অগ্রাধিকার পায়। এছাড়া ফাঁকা Disallow: লাইনের অর্থ হলো ক্রলিংয়ের পূর্ণ অনুমতি প্রদান করা।
| নিয়ম নির্দেশিকা | পরীক্ষিত ইউআরএল | ফলাফল | কার্যকর কারণ | | Disallow: /bangla/ | /bangla/post | ব্লক | পাথের মিল পাওয়া গেছে | | Allow: /bangla/post | /bangla/post | অনুমোদিত | দীর্ঘতম প্যাটার্ন জয়ী | | Disallow: /*.pdf$ | /file.pdf | ব্লক | $ দিয়ে ইউআরএল সমাপ্তি চিহ্নিত |
এখানে * প্রতীক যেকোনো অক্ষরের সাথে মেলে এবং $ প্রতীক ইউআরএলের সমাপ্তি নিশ্চিত করে। Robots.txt টেস্টার এই নিয়মগুলো বিস্তারিত বিশ্লেষণ করে প্রতিটি ইউআরএলের জন্য কোন লাইনটি কার্যকর হলো তা লাইন নম্বরসহ দেখিয়ে দেয়।
এআই ক্রলার নিয়ন্ত্রণ এবং কনটেন্ট সিগন্যাল যাচাই
আধুনিক কৃত্রিম বুদ্ধিমত্তা মডেল চালিত বট যেমন GPTBot, ClaudeBot কিংবা Google-Extended প্রতিনিয়ত ওয়েব কনটেন্ট সংগ্রহ করছে। এই বটগুলো সাধারণ সার্চ ইঞ্জিনের মতো শুধু ইনডেক্স করে না, বরং এআই মডেলের প্রশিক্ষণের জন্য ডেটা সংগ্রহ করে। তাই সাইট মালিকদের জন্য এই বটগুলোর অ্যাক্সেস আলাদাভাবে নিয়ন্ত্রণ করা গুরুত্বপূর্ণ।
ওয়েবসাইটের robots.txt ফাইলে Content-Signal নামের একটি নতুন নির্দেশিকাও ব্যবহৃত হচ্ছে। এর মাধ্যমে কনটেন্ট ব্যবহারের অনুমোদন যেমন search, ai-input বা ai-train সরাসরি ঘোষণা করা যায়। এটি প্রযুক্তিগতভাবে নেটওয়ার্ক রিকোয়েস্ট ব্লক করে না, বরং মেশিন রিডেবল নীতি প্রকাশ করে। সঠিক নিয়ম লেখার জন্য এআই ক্রলার robots.txt জেনারেটর ব্যবহার করা যেতে পারে এবং এআই সিস্টেমের উপযোগী ডকুমেন্ট কাঠামোর জন্য llms.txt জেনারেটর সাহায্য করে। Robots.txt টেস্টার এই সমস্ত বট টোকেন এবং সিগন্যাল শনাক্ত করে প্রতিটি বটের জন্য নির্ধারিত অ্যাক্সেস রিপোর্ট তৈরি করে।
robots.txt ফাইলে সাধারণ ভুল ও পার্সার সতর্কতা
robots.txt ফাইল লেখার সময় অসাবধানতাবশত ভুল হলে তা সম্পূর্ণ সাইটের ট্রাফিকের ক্ষতি করতে পারে। একটি বহুল প্রচলিত ভুল হলো কোনো User-agent উল্লেখ করার আগেই Allow বা Disallow নিয়ম লিখে ফেলা। RFC 9309 অনুযায়ী এমন নিয়ম ক্রলার পুরোপুরি বাতিল করে দেয়।
আরেকটি সাধারণ ভুল হলো পাথের শুরুতে স্ল্যাশ (/) বাদ দেওয়া। যেমন Disallow: private লিখলে তা ভুল সিনট্যাক্স হিসেবে গণ্য হয়, সঠিক রূপ হলো Disallow: /private। অনেকে সার্চ রেজাল্ট থেকে পেজ সরাতে এই ফাইলে Noindex লিখে রাখেন, যা গুগল এবং অন্যান্য আধুনিক ক্রলার সমর্থন করে না। ক্রলিং আটকানো এবং ইনডেক্সিং আটকানো সম্পূর্ণ ভিন্ন বিষয়। কোনো পেজ ক্রলিং থেকে ব্লক করা থাকলেও বাহ্যিক লিঙ্কের মাধ্যমে তা সার্চ ইঞ্জিনে ইনডেক্স হতে পারে। এছাড়া Crawl-delay নির্দেশিকাটিও গুগল উপেক্ষা করে। Robots.txt টেস্টার ফাইলে থাকা এই ধরণের অকার্যকর বা ভুল লাইনগুলো চিহ্নিত করে পার্সার সতর্কতা হিসেবে তুলে ধরে।