Robots.txt হলো একটা সাইটের সবচে সোজাসাপ্টা ফাইল, কিন্তু এই ফাইলটাই কিন্তু সবচে বেশি ভজগট পাকাতে সক্ষম। জায়গা থেকে শুধুমাত্র একটা ক্যারেকটার এদিক ওদিক হলেই সেরেছে – আপনার SEO এর বারোটা বাজবে আর সার্চ ইঞ্জিনগুলোও কোনভাবে আপনার সাইটের জরুরি কন্টেন্টগুলোতে এক্সেস পাবে না।

এই কারণেই Robots.txt কনফিগারেশনে ঝামেলা পাকানো খুবই কমন একটা ব্যাপার। এমনকি এক্সপার্ট SEO প্রফেশনালরাও প্রায়ই এই ঝামেলায় পড়েন।

আজকের গাইডে আমরা যা যা জানবোঃ

  • txt ফাইল কী
  • txt ফাইল দেখতে কেমন
  • txt ইউজার-এজেন্ট আর ডিরেক্টিভ
  • আপনার আদৌ txt ফাইল লাগবে কি না
  • কীভাবে আপনার txt ফাইল খুঁজে পাবেন
  • কীভাবে txt ফাইল তৈরি করবেন
  • txt ফাইলের সেরা প্র্যাক্টিস
  • txt ফাইলের উদাহরণ
  • ঝামেলার জন্য কীভাবে আপনার txt ফাইল অডিট করবেন

 

Robots.txt ফাইল কী

Robots.txt ফাইল সার্চ ইঞ্জিনকে নির্দেশনা দেয় যে কোথায় সে যেতে পারবে আর কোথায় পারবে না। শুরুতেই এটা গুগল টাইপের সার্চ ইঞ্জিত থেকে যেসব কন্টেন্ট আপনি সার্চ হওয়া থেকে লক করে রাখতে চান, সেটার একটা লিস্ট তৈরি করে রাখে। আপনি অনেক সার্চ ইঞ্জিনকে (গুগল নয়) এটাও বলে দিতে পারেন যে ‘কীভাবে’ তারা অনুমতি দেয়া কন্টেন্টে ক্রল করবে।

জরুরি নোটঃ সব সার্চ ইঞ্জিনই মোটামুটি রেস্ট্রিকশানগুলো মেনে চলে। তবে এমনও কিছু আছে যারা অনেক সময় লক করা কন্টেন্টেও এক্সেস নিতে পারে। গুগল এমন করে না। Robots.txt ফাইলে যা ইন্সট্রাকশন থাকে, গুগল তা ঠিকই মেনে চলে। তবে জানিয়ে রাখা আর কি, যে কিছু কিছু সার্চ ইঞ্জিন এত কিছু মেনে নাও চলতে পারে।

 

Robots.txt ফাইল দেখতে কেমন

একটা বেসিক Robots.txt ফাইল দেখতে এরকম

Sitemap: [URL location of sitemap]

User-agent: [bot identifier]
[directive 1]
[directive 2]
[directive ...]

User-agent: [another bot identifier]
[directive 1]
[directive 2]
[directive ...]

আগে কখনো যদি এমন ফাইল না দেখে থাকেন, তাহলে এটা বুঝতে একটু কষ্ট হবে। তবে এর সিন্টেক্স কিন্তু অনেকটাই সোজা। সোজা ভাষায়, আপনি ইউজার-এজেন্ট আর তাদের ডিরেক্টিভস দেখিয়ে দিয়ে বটকে কিছু নিয়ম শিখিয়ে দেবেন।

আসুন ইউজার-এজেন্ট আর ডিরেক্টিভস নিয়ে আরেকটু বিস্তারিত আলাপ করি।

ইউজার-এজেন্ট

প্রতিটা সার্চ ইঞ্জিনই নিজেকে ভিন্ন ভিন্ন ইউজার-এজেন্ট হিসবে পরিচয় দেয়। আপনার Robots.txt এ আপনি প্রতিটার জন্য ভিন্ন ভিন্ন ইন্সট্রাকশন দিতে পারবেন। ইউজার-এজেন্ট শত শত হতে পারে। তবে SEO এর জন্য জরুরি কয়েকটা হলোঃ

Google: Googlebot
Google Images: Googlebot-Image
Bing: Bingbot
Yahoo: Slurp
Baidu: Baiduspider
DuckDuckGo: DuckDuckBot

(সাইড নোটঃ সব ইউজার-এজেন্ট কিন্তু কেইস-সেন্সেটিভ। লেটার খেয়াল করতে হবে।)

ইউজার-এজেন্টগুলোতে ডিরেক্টিভস এসাইন করতে আপনি চাইলে স্টার (*) ওয়াইল্ডকার্ডও ব্যবহার করতে পারেন।

যেমন, ধরি আপনি আপনার সাইট থেকে Googlebot ছাড়া বাকি সব ইউজার-এজেন্টকে ক্রল করা থেকে লক করতে চান। কাজটা এভাবে করতে হবে –

User-agent: *
Disallow: /

User-agent: Googlebot
Allow: /

 

Robots.txt ফাইলে আপনি যত চান তত ইউজার-এজেন্টের জন্য ডিরেক্টিভস সেট করতে পারেন। অর্থাৎ, আপনি যখনই নতুন কোন ইউজার-এজেন্ট ডিক্লার দেবেন, সে এটাকে একদম পরিষ্কার ধরে নেবে। আপনি যদি একাধিক ইউজার-এজেন্টের জন্য ডিরেক্টিভস অ্যাড করেন, প্রথম ইউজার-এজেন্টের জন্য ডিক্লার করা ডিরেক্টিভস দ্বিতীয় ইউজার-এজেন্টে বা তৃতীয় ইউজার-এজেন্টে, ইত্যাদিতে খাটবে না।

এই নিয়মের ব্যত্যয় ঘটে তখনই যখন আপনি একই ইউজার-এজেন্ট একাধিকবার ডিক্লার করবেন। এইক্ষেত্রে সব রিলেভেন্ট ডিরেক্টিভ একসাথে ফলো করবে।

জরুরি নোটঃ ক্রলারগুলো ইউজার-এজেন্টে ডিক্লার দেয়া নিয়মের মধ্যে সেটাই ফলো করে যেটা তাদের ক্ষেত্রে সবচে বেশি খাটে। তাই উপরের Robots.txt এ সব বটকেই ব্লক করা হয়েছে Googlebot ছাড়া। একদম স্পেসিফিক ইন্সট্রাকশন না পেলে Googlebot সেসব ইউজার-এজেন্ট ডিক্লারেশানকে পাত্তা দেয় না।

 

ডিরেক্টিভস

ডিরেক্টিভস হলো সেসব নিয়ম যা ডিক্লার দেয়ে ইউজার-এজেন্টরা ফলো করবে।

সাপোর্টেড ডিরেক্টিভস

গুগল বর্তমানে এই ডিরেক্টিভগুলোকে, তাদের ইউজারসহ সাপোর্ট করে।

Disallow 

একটা নির্দিষ্ট পাথ ফলো করে কোন ফাইল বা পেইজে যদি আপনি সার্চ ইঞ্জিনকে এক্সেস দিতে না চান, তাহলে Disallow ডিরেক্টিভ ব্যবহার করুন। যেমন, আপনি যদি চান আপনার ব্লগ আর সব পোস্ট-এ কোন সার্চ ইঞ্জিন এক্সেস পাবে না, তাহলে আপনার Robots.txt ফাইল এমন দেখাবে  –

User-agent: *
Disallow: /blog

(সাইড নোটঃ Disallow ডিরেক্টিভ এর পর আপনি যদি পাথ ঠিকমত ডিফাইন করতে না পারেন, সার্চ ইঞ্জিন সেটাকে এড়িয়ে যাবে।)

Allow

কোন সাবক্যাটাগরি বা পেইজে সার্চ ইঞ্জিনকে এক্সেস দিতে চাইলে এই ডিরেক্টিভ ব্যবহার করতে হবে। যদিও অন্য কোন ডিরেক্টিভস এ সেটা Disallow থাকতে পারে। যেমন ধরুন আপনি চাইছেন সার্চ ইঞ্জিন আপনার সাইটের একটা পোস্ট বাদে বাকি সবগুলোতে এক্সেস না পাক, তাহলে Robots.txt এইভাবে সেট করুন।

User-agent: *
Disallow: /blog
Allow: /blog/allowed-post

এইক্ষেত্রে, সার্চ ইঞ্জিন /blog/allowed-post এ এক্সেস পাবে। কিন্তু

/blog/another-post
/blog/yet-another-post
/blog/download-me.pdf

এইসব এক্সেস পাবে না। গুগল আর বিং দু’টোই এই ডিরেক্টিভ সাপোর্ট করে।

(সাইড নোটঃ Disallow ডিরেক্টিভ এর মতই, আপনি যদি Allow ডিরেক্টিভ এর পাথ ঠিকমত ডিফাইন করতে না পারেন, সার্চ ইঞ্জিন সেটাকে এড়িয়ে যাবে।)

 

(কনফ্লিক্টিং রুল নিয়ে টুকরো আলাপ

একটু সতর্ক না হলে কিন্তু Allow আর Disallow ডিরেক্টিভস কিন্ত একটার সাথে একটা কনফ্লিক্ট করতে পারে। যেমন এই উদাহরণে, আমরা /blog/ এ এক্সেস দিচ্ছি, আর /blog এ এক্সেস দিচ্ছি না।

User-agent: *
Disallow: /blog/
Allow: /blog

তো এই ক্ষেত্রে, /blog/post-title/ দেখে মনে হচ্ছে এটা একই সাথে Allowed আবার Disallowed. তাহলে এখন কী হবে?

গুগল আর বিং এর ক্ষেত্রে, যেই ডিরেক্টিভ এ ক্যারেক্টার বেশি, সেটাই শিরোধার্য।

Disallow: /blog/ (৬ ক্যারেক্টার)
Allow: /blog (৫ ক্যারেক্টার)

এই ক্ষেত্রে তাই Disallow ডিরেক্টিভই ধরে নেবে গুগল আর বিং।

আর যদি Allow আর Disallow ডিরেক্টিভ দুটোই একই পরিমান ক্যারেক্টারের হয়, তাহলে রেস্ট্রিকশান যেটাতে কম, সেটাকে ধরে নেবে সার্চ ইঞ্জিন। অর্থাৎ, Allow কেই মেনে নেবে।

সাইডনোটঃ এই সূত্র কেবল গুগল আর বিং এর জন্য। অন্যান্য সার্চ ইঞ্জিনগুলো প্রথমে যেটা পাবে, সেটাকেই মেনে নেবে। এই ক্ষেত্রে যেমন Disallow.)

 

Sitemap

এই ডিরেক্টিভ দিয়ে সার্চ ইঞ্জিনের জন্য আপনার সাইটম্যাপ (অথবা সাইটম্যাপগুলোর) লোকেশান স্পেসিফাই করে দেবেন। আপনি যদি সাইটম্যাপের সাথে তেমন পরিচিত না হয়ে থাকেন, তাহলে বলে রাখি, সাইটম্যাপে মূলত সেইসব পেইজ থাকে, যেগুলো আপনি সার্চি ইঞ্জিনকে ক্রল আর ইন্ডেক্স করতে এলাউ করেন।

Robots.txt ফাইল কীভাবে সাইটম্যাপ ডিরেক্টিভ ব্যবহার করে দেখুন

Sitemap: https://www.domain.com/sitemap.xml

User-agent: *
Disallow: /blog/
Allow: /blog/post-title/ 

Robots.txt তে আপনার সাইটম্যাপ এড করা কতটা জরুরি? যদি আপনি সার্চ কনসোলের মাধ্যমে ইতিমধ্যেই সাবমিট করে থাকেন, তাহলে গুগলের এটা দরকার নেই। তবে বিং টাইপের অন্যান্য সার্চ ইঞ্জিনকে এটা সাইটম্যাপ খুঁজে দিতে সাহায্য করে। তাই এটা এখনো কাজের জিনিস।

মনে রাখবেন, প্রতিটা ইউজার-এজেন্টের জন্য বারবার সাইটম্যাপ ডিরেক্টিভ রিপিট করার দরকার নেই। এটা কেবল একটার জন্য খাটে না। তাই আপনি Robots.txt এর শুরুতে বা শেষে সাইটম্যাপ ডিরেক্টিভ ব্যবহার করতে পারেন। যেমন,

Sitemap: https://www.domain.com/sitemap.xml

User-agent: Googlebot
Disallow: /blog/
Allow: /blog/post-title/

User-agent: Bingbot
Disallow: /services/

 

সাইটম্যাপ ডিরেক্টিভ গুগল, বিং আস্ক আর ইয়াহু সবাই সাপোর্ট করে।

(সাইডনোটঃ Robots.txt তে যত চাই তত সাইটম্যাপ এড করতে পারেবেন।)

আনসাপোর্টেড ডিরেক্টিভস

এখন দেখবো সেসব ডিরেক্টিভস যা এখন আর গুগল সাপোর্ট করে না। কিছু কিছু আসলে আগেও করতো না।

Crawl-delay

আগে এই ক্রল ডিলে ডিরেক্টিভ ব্যাবহার করে আপনি চাইলে এক মুহূর্তেই ক্রল-ডিলে সেট করতে পারতেন। ধরা যাক গুগলবটকে প্রতিটা ক্রল একশানের পরে ৫ সেকেন্ড অপেক্ষা করার জন্য ক্রল-ডিলে ৫ সেকেন্ডে দেয়া যেতো।

User-agent: Googlebot
Crawl-delay: 5

গুগল আর এই ডিরেক্টিভ সাপোর্ট করে না। তবে বিং আর ইয়ান্ডেক্স করে।

তবে এই ডিরেক্টিভ সেট করার আগে একটু সতর্ক হতে হবে। যদি আপনার অনেক বড় সাইট হয়, তবে ৫ সেকেন্ড ক্রল-ডিলে সেট করলে আপনি বটকে একদিনে সর্বোচ্চ ১৭,২৮০ URL ক্রল করতে এলাউ করছেন। আপনার যদি লাখ লাখ পেইজ থাকে, তাহলে এটা আপনাকে খুব একটা সুবিধা দেবে না। ছোট সাইট হলে কিছুটা ব্যান্ডউইথ বাঁচবে।

Noindex

এই ডিরেক্টিভ অফিশিয়ালি কখনই গুগল সাপোর্টেড ছিলো না। যদিও সম্প্রতি এটা ধারণা করা হচ্ছে যে গুগলের কিছু কোড আছে যা কিছু আন-সাপোর্টেড আর আনপাবলিশ নিয়মকে ম্যানেজ করে। তাই যদি আপনার ব্লগের সব পেইজকে আপনি গুগলে ইন্ডেক্স করতে না দিতে চান, তাহলে নিচের ডিরেক্টিভ লেখা লাগবে।

User-agent: Googlebot
Noindex: /blog/

 

তবে গত ১ সেপ্টেম্বর, ২০১৯ এ গুগল স্পষ্ট জানিয়েছে এই ডিরেক্টিভটা সাপোর্টেড না। যদি সার্চ ইঞ্জিন থেকে কোন পেইজ বা ফাইল আলাদা করতে চান, তাহলে Meta Robot tag বা X-Robots HTTP হেডার ব্যবহার করুন।

 

Nofollow

এটাও আরেকটা ডিরেক্টিভ যেটা গুগল কখনই সাপোর্ট করে নি। স্পেসিফিক পাথের ভেতর কোন ফাইল বা কোন পেইজের নির্দিষ্ট লিংক যাতে সার্চ ইঞ্জিন ফলো না করে – সেই জন্যে এই ডিরেক্টিভ ব্যবহৃত হতো। যদি আপনার ব্লগের সব লিংক গুগলকে ফলো করতে না দিতে চান, তাহলে লিখতে হবে

User-agent: Googlebot
Nofollow: /blog/

১ সেপ্টেম্বর ২০১৯ এ গুগল জানিয়েছে এই ডিরেক্টিভ অফিশিয়ালি সাপোর্টেড না। কোন পেইজে nofollow দিতে চাইলে Meta Robot tag বা X-Robots HTTP হেডার ব্যবহার করুন। গুগলকে পেইজের  কোন স্পেসিফিক লিংক ফলো করতে না দিতে চাইলে rel=“nofollow” লিংক এট্রিবিউট ব্যবহার করতে পারেন।

 

আপনার আদৌ Robots.txt ফাইল লাগবে কি না

Robots.txt সব সাইটের জন্যেই জরুরি না। বিশেষ করে ছোট সাইটের জন্য লাগে না। তবে একদম না রাখার তো কোন দরকার নেই। এটা আপনাকে সার্চ ইঞ্জিনের ওপর অনেক বেশি কন্ট্রোল দেবে। আপনি এইসব কাজ একদম সহজেই করতে পারবেন –

  • ডুপ্লিকেট কন্টেন্ট ক্রলিং করতে বাধা দিতে পারবেন
  • ওয়েবসাইটের কোন সেকশান প্রাইভেট রাখতে পারবেন
  • ইন্টার্নাল সার্চ রেজাল্ট পেইজ ক্রল করতে বাধা দিতে পারবেন
  • সার্ভার ওভার-লোড আটকাতে পারবেন
  • ক্রল-বাজেট অপচয় থেকে গুগলকে থামাতে পারবেন
  • ইমেজ, ভিডিও আর রিসোর্স ফাইল গুগল সার্চ রেজাল্টে শো করা বন্ধ করতে পারবেন

ভালো কথা, যদিও Robots.txt তে ব্লক করা পেইজ গুগল ইন্ডেক্স করে না, তবে সার্চ রেজাল্টে Robots.txt ফাইল ব্যবহার করে এসে পড়া কিন্তু অসম্ভব কিছু না। যেমন গুগল বলছে, যদি ওয়েবের অন্য কোথাও থেকে কন্টেন্ট লিংক পাওয়া যায়, তাহলে সেটা সার্চ রেজাল্টে আসতেও পারে।

 

কীভাবে আপনার Robots.txt ফাইল খুঁজে পাবেন

যদি আপনার সাইটে Robots.txt ফাইল থাকে, তাহলে সেটা domain.com/robots.txt এ খুঁজে পাবেন। আপনার ব্রাউজারের URL এ নেভিগেট করুন। নিচের মত কিছু যদি দেখেন, তাহলে আপনার Robots.txt সেটাই।

ahrefs-robots

 

কীভাবে Robots.txt ফাইল তৈরি করবেন

আপনার যদি একোটা Robots.txt ফাইল থাকে, তাহলে আরেকটা তৈরি করা একদম সোজা। একটা ব্ল্যাঙ্কগ TXT ফাইল ওপেন করুন আর ডিরেক্টিভ টাইপ করুন। যেমন, আপিন যদি চান কোন সার্চ ইঞ্জিন আপনার /admin/  ডিরেক্টরিতে এক্সেস নেবে না, তাওলে লিখতে হবে

User-agent: *
Disallow: /admin/

যতক্ষন সন্তুষ্ট হচ্ছেন না, ডিরেক্টিভ লিখতেই থাকুন। কাজ শেষে ফাইলটা সেভ করুন robots.txt নামে।

তাছাড়া এটার মত Robots.txt জেনারেটর দিয়েও কাজ চালাতে পারেন।

robots-creator

এই ধরণের টুল ব্যবহারের সুবিধা হলো সিন্টেক্স এরর কম হয়। এইটা কিন্তু ভালো কাজ, কারণ একটা মাত্র সিন্টেক্স এরর আপনার SEO এর বারোটা বাজাতে পারে – আগেই বলেছি। তবে এর খারাপ দিক হলো এটাকে কাস্টমাইজ করা কঠিন। এই যা।

Robots.txt ফাইল কোথায় রাখবেন

যেই সাবডোমেইনে Robots.txt কাজ করবে, সেই সাবডোমেইনের রুট ডিরেক্টরিতে Robots.txt রাখতে হবে। যেমন আপনি যদি Domain.com এর ক্রলিং বিহেভিয়র কন্ট্রোল করতে চান, তাহলে আপনার ফাইলটি domain.com/robots.txt তে এক্সেস পেতে হবে। আর যদি কোন সাবডোমেইন কন্ট্রোল করতে চান যেমন blog.domain.com, তাহলে ফাইলটি প্লেস করতে হবে এখানে – blog.domain.com/robots.txt.

Robots.txt ফাইলের সেরা প্র্যাক্টিস

কমন ভুলগুলো থেকে বেঁচে থাকতে হলে এগুলো মাথায় রাখুন।

প্রতিটি ডিরেক্টিভ এর জন্য নতুন লাইন ব্যবহার করুন

প্রতিটা ডিরেক্টিভ নতুন লাইনে লেখা চাই। নইলে সার্চ ইঞ্জিন কনফিউজড হয়ে যাবে।

অকাজেরঃ    

User-agent: * Disallow: /directory/ Disallow: /another-directory/

কাজেরঃ

User-agent: * 
Disallow: /directory/ 
Disallow: /another-directory/

ইন্সট্রাকশনকে সহজ করতে ওয়াইল্ডকার্ড ব্যবহার করুন

সব ইউজার এজেন্টে ডিরেক্টিভ এপ্লাই করতে আপনি ওয়াইল্ডকার্ড ব্যবহার করতে পারেন। শুধু তাই না, ডিরেক্টিভ ডিক্লার করার সময় URL প্যাটার্ন ম্যাচ করাতেও এটা ব্যবহার করতে পারেন। যেমন, আপনি যদি সার্চ ইঞ্জিককে প্যারামিটারাইজড প্রডাক্ট ক্যাটাগরি URL গুলোতে এক্সেস নিতে বাধা দিতে চান, আপনি সেগুলো এভাবে লিস্ট করতে পারেন।

User-agent: * 
Disallow: /products/t-shirts?
Disallow: /products/hoodies?
Disallow: /products/jackets?
…

 

কিন্তু এটা এতটা এফিশিয়েন্ট কোন কিছু না। ওয়াইল্ডকার্ড দিয়ে আরো সহজে করে ফেলা যায় এই কাজ। যেমন,

User-agent: * 
Disallow: /products/*?

 

এই উদাহরণে, সার্চ ইঞ্জিনগুলো /Product/ subfolder এর ভেতর থাকা কোন URL এ কোয়েশ্চান মার্ক থাকলে ক্রল করতে পারবে না। অর্থাৎ যে কোন প্যারামিটারাইজড প্রডাক্ট ক্যাটাগরি URL ।

 

URL এর শেষ স্পেসিফাই করতে “$” ব্যবহার করুন

URL এর শেষে “$” বসিয়ে URL এর শেষটা নির্দিষ্ট করতে হবে। যদি চান সার্জ ইঞ্জিন আপনার সাইটের কোন .pdf ফাইলে এক্সেস পাবে না, তাহলে এমন করুন –

User-agent: * 
Disallow: /*.pdf$

 

এখানে সার্চ ইঞ্জিন .pdf এ শেষ হওয়া কোন URL এ এক্সেস পাবে না। অর্থাৎ /file.pdf এ এক্সেস পাবে না, কিন্তু /file.pdf?id=68937586 এ পাবে, কারণ এটি .pdf এ শেষ হয় নি।

 

প্রতিটা ইউজার-এজেন্ট একবার ব্যবহার করুন

আপনি যদি একই ইউজার-এজেন্ট একাধিকবার ব্যবহার করেন, গুগলের তাতে কোন সমস্যা নেই। গুগল সবগুলোকে কম্বাইন করে রুল সেট করে নেবে আর সেই অনুযায়ী কাজ করবে। যেমন আপনার Robots.txt এ যদি এমন ডিরেক্টিভ থাকে

User-agent: Googlebot
Disallow: /a/

User-agent: Googlebot 
Disallow: /b/

 

গুগল কোন সাবফোল্ডারেই যাবে না। তবে, আলাদা আলাদাভাবে না দিয়ে একসাথেই দিয়ে দেয়া ভালো, যাতে কোনরকম কনফিউশন তৈরি না হয়। অন্যভাবে বললে, আপনার ভুল বা ঝামেলা পাকানোর সম্ভাবনা কমে যাবে।

 

অনাকাঙ্ক্ষিত ঝামেলা এড়াতে সুনির্দিষ্টতা মেনে চলুন

সুনির্দিষ্ট ডিরেক্টিভস না দিলে একদম সহজ টাইপের ভুলের কারণে আপনার সাইটের SEO এর বেহাল দশা যে হবে, তা বলাই বাহুল্য।  যেমন ধরুন আপনার একটা মাল্টিলিংগুয়াল সাইট আছে আর আপনি চাইছেন সাইটের জার্মান ভার্সন /de/ সাবক্যাটাগরির আন্ডারে থাকুক।

যেহেতু এটা এখনো ততটা তৈরি হয়ে ওঠেনি, তাই আপনি চান সার্চ ইঞ্জিন যাতে এখানে এক্সেস না নেয়। নিচের Robots.txt ফাইলটি আপনার সাইটের এই অংশে সার্চ ইঞ্জিনকে এক্সেস নিতে দেবে না।

User-agent: *
Disallow: /de

কিন্তু এটি /de দিয়ে শুরু হওয়া কোন পেইজ বা ফাইলেই আর এক্সেস দেবে না।

যেমন,

/designer-dresses/
/delivery-information.html
/depeche-mode/t-shirts/
/definitely-not-for-public-viewing.pdf

সব দেখুন, /de দিয়ে শুরু। এই ধরণের ঝামেলায় যা করা লাগবে, তা হলো একটা ট্রেইলিং স্ল্যাশ লাগিয়ে দেয়া।

User-agent: *
Disallow: /de/

 

Robots.txt ফাইলে ডিরেক্টিভস বুঝতে কমেন্ট যোগ করুন

আপনার সাইটের ডেভেলাপারদের জন্য কোন ডিরেক্টিভস স্পষ্টভাবে বুঝতে কমেন্ট যোগ করা উচিৎ। এতে আপনার নিজেরও লাভ। ভবিষ্যতে কোন ডিরেক্টিভ ঠিক মত না বুঝলে নিজের কমেন্ট যথেষ্ট কাজে লাগবে। কমেন্ট যোগ করতে লাইনের শুরুতে হ্যাশ # বসিয়ে দিন।

# This instructs Bing not to crawl our site.
User-agent: Bingbot
Disallow: /

 

কোন লাইনের শুরুতে হ্যাশ # থাকলে ক্রলার সে লাইন এড়িয়ে যাবে।

 

প্রতিটা সাবডোমেইনের জন্য আলাদা আলাদা Robots.txt ব্যবহার করুন

Robots.txt শুধুমাত্র সেই সাবডোমেইনের ক্রলিং বিহেভিয়র কন্ট্রোল করবে যেখানে সেটাকে হোস্ট করা হয়। যদি ভিন্ন সাবডোমেইনে ক্রলিং কন্ট্রোল করা লাগে, তবে সেটার জন্য আলাদা Robots.txt ফাইল ওপেন করতে হবে। যদি আপনার সাইট হয় domain.com আর blog.domain.com, তাহলে দুটোর জন্য দুটো ভিন্ন Robots.txt লাগবে। একটা মূল ডোমেইনের রুট ডিরেক্টরিতে যাবে, আরেকটা যাবে ব্লগের রুট ডিরেক্টরিতে।

 

Robots.txt ফাইলের উদাহরণ

নিচে কিছু Robots.txt ফাইলের উদাহরণ দেয়া হলো। এগুলো আসলে বুঝার জন্য দেয়া, কিন্তু যদি কোনটা আপনার কোন কাজের সাথে মিলে যায়, তাহলে টেক্সট ডকুমেন্টে কপি-পেস্ট করে Robots.txt নামে সেইভ করে নিতে পারেন। আর যথাযথ ডিরেক্টরিতে প্লেস করতে পারেন।

সব বটের জন্য সব এক্সেস দেয়া

User-agent: *
Disallow:

সাইডনোটঃ কোন ডিরেক্টিভ এর পর কোন URL না দেয়ার অর্থ হলো ডিরেক্টিভটা কোন কাজের না। মানে সার্চ ইঞ্জিন সেটাকে ইগ্নোর করবে। ফলে এই ডিরেক্টিভ সাইটে কোন প্রভাব ফেলে না। সার্চ ইঞ্জিন সব পেইজ আর ফাইলে এক্সেস পাবে।

কোন বটের জন্য কোন এক্সেস দেয়া হবে না

User-agent: *
Disallow: /

 

সব বটের জন্য একটা সাবডিরেক্টরি ব্লক হবে

User-agent: *
Disallow: /folder/

 

সব বটের জন্য একটা সাবডিরেক্টরি ব্লক হবে (শুধু একটা ফাইল এলাও থাকবে)

User-agent: *
Disallow: /folder/
Allow: /folder/page.html

 

সব বটের জন্য একটা ফাইল ব্লক হবে

User-agent: *
Disallow: /this-is-a-file.pdf

 

একটা নির্দিষ্ট ফাইলটাইপ (PDF) সব বটের জন্য ব্লক হবে

User-agent: *
Disallow: /*.pdf$

 

সব প্যারামিটারাইজড URL শুধু গুগলবটের জন্য ব্লক হবে

User-agent: Googlebot
Disallow: /*?

 

ঝামেলার জন্য কীভাবে আপনার Robots.txt ফাইল অডিট করবেন

Robots.txt এর ভুল গুলো একেবারেই চোখ এড়িয়ে যাওয়া সম্ভব। তাই যথাসম্ভব চেক করে রাখলে আপনারই উপকার। এই জন্যে সার্চ কনসোলের ‘কভারেজ’ রিপোর্টের মাধ্যমে নিয়মিত Robots.txt কে চেক করা দরকার। নিচে Robots.txt এর কিছু এরর এর উদাহরণ দেয়া হলো, যা হয়তো আপনিও খুঁজে পাবেন, সেগুলোর মানে কী, আর সেসবের সমাধানও দেয়া হলো।

 

(একটা নির্দিষ্ট পেইজের এরর খুঁজছেন? সার্চ কনসোলে Google URL Inspection Tool এ URL পেস্ট করুন। যদি সেটা Robots.txt দ্বারা ব্লক হয়, তাহলে এমন কিছু দেখা যাবে

blocked-by-robots-txt

 

Submitted URL blocked by robots.txt

এর মানে হলো আপনার সাবমিট করা সাইটম্যাপের অন্তত একটা URL Robots.txt ব্লক করে রেখেছে। যদি আপনি আপনার সাইটম্যাপ ঠিকমত তৈরি করে থাকেন, ক্যানোনিক্যালাইযড, নো ইন্ডেক্সড, আর রিডিরেক্টেড পেইজ বাদ দিয়ে থাকেন, তাহলে সাবমিট করা পেইজ Robots.txt দিয়ে ব্লক থাকার কথা না। যদি ব্লক করে থাকে, তাহলে কোন পেইজে ঝামেলা হয়েছে তা খুঁজে দেখুন আর সে অনুযায়ী Robots.txt ফাইলকে ঠিক করে নিন আর ব্লক তুলে দিন।

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

robots-txt-tester

Blocked by robots.txt

blocked-by-robots-txt

এর মানে হলো Robots.txt গুগল ইন্ডেক্সড হয় নি এমন কোন কন্টেন্ট ব্লক করে রেখেছে। যদি এটা জরুরি হয় আর ইন্ডেক্সট হতে হয়, তাহলে ক্রল ব্লক রিমুভ করে ফেলতে হবে (এটাও নিশ্চিত করতে হবে যে কন্টেন্টটা noindexed নয়)। গুগল ইন্ডেক্স থেকে বাদ দেয়ার জন্য যদি আপনি Robots.txt দিয়ে কন্টেন্টটা ব্লক করে থাকেন, তাহলে ক্রল ব্লক রিমুভ করুন, আর Robots meta tag বা x-robots-header ব্যবহার করুন। গুগল ইন্ডেক্স থেকে কন্টেন্টকে বাদ দিতে এটাই একমাত্র উপায়।

(সাইড নোটঃ সার্চ রেজাল্ট থেকে কোন পেইজকে বাদ দিতে হলে ক্রল রিমুভ করা খুবই জরুরি। এটা না করলে গুগল noindex ট্যাগ দেখবে না আর ইন্ডেক্সডই রেখে দেবে।)

Indexed, though blocked by robots.txt

indexed-though-blocked

এর মানে হলো কিছু কন্টেন্ট যা Robots.txt দ্বারা ব্লক করা হয়েছে, তা এখনো গুগলে ইন্ডেক্সড হয়ে আছে। তাই আবারো বলি, যদি এটাকে গুগল সার্চ থেকে বাদ দিতে চান, Robots.txt দিয়ে এখানে কিছু হবে না। ক্রল ব্লক রিমুভ করুন, আর Robots meta tag বা x-robots-header ব্যবহার করুন। যদি ভুলে ব্লক দিয়ে থাকেন আর ইন্ডেক্সড রাখতে চান, তাহলে Robots.txt তে ক্রল ব্লক রিমুভ করুন। আশা করি গুগল সার্চে ভিসিবল থাকবে।

FAQs

কিছু প্রশ্নোত্তর যা আমাদের এই আলোচনায় নানাভাবে আসে নি। কোন কিচু বাদ গিয়ে থাকলে দয়া করে কমেন্টে জানাবেন। আমরা আপডেট করে নেব।

প্রশ্নঃ Robots.txt ফাইলের ম্যাক্সিমাম সাইজ কত?
উত্তরঃ ৫০০ কিলোবাইট।

প্রশ্নঃ ওয়ার্ডপ্রেসে Robots.txt কোথায় থাকে?
উত্তরঃ একই জায়গায়। domain.com/robots.txt

প্রশ্নঃ ওয়ার্ডপ্রেসে Robots.txt কীভাবে এডিট করে?
উত্তরঃ ম্যানুয়ালি করা যায়। তাছাড়া অনেক ওয়ার্ডপ্রেস SEO Plugin আছে, যেমন Yoast, যা ওয়ার্ডপ্রেস ব্যাকএন্ড থেকে আপনারকে Robots.txt এডিট করতে দেবে।

প্রশ্নঃ Robots.txt তে যদি noindexed কন্টেন্টে আমি এক্সেস disallow করি, তাহলে কী হবে?
উত্তরঃ গুগল noindexed ডিরেক্টিভটা কখনই দেখবে না, কারণ সেই পেইজ ক্রল করতে পারবে না।

শেষ কথা

Robots.txt একটা সিম্পল কিন্তু বেশ শক্তিশালী ফাইল। ঠিকমত ব্যবহার করলে এটি আপনার সাইটের SEO এর চেহারা পালটে দিতে পারে। আর একটু এদিক-ওদিক হলে, বুঝতেই পারছেন, পরে মাথায় হাত পড়বে।

Source: https://ahrefs.com/blog/robots-txt