ধরা যাক, কোনো ডেভেলপার robots.txt-এ কয়েকশ URL বন্ধ করে দিয়েছেন। তাঁর ধারণা ছিল, Googlebot যখন পেজগুলোতে ঢুকতেই পারবে না, তখন সেগুলো আর গুগলের সার্চ ফলাফলেও থাকবে না। কয়েক সপ্তাহ পর Google Search Console খুলে দেখা গেল, কিছু URL এখনও সার্চে দেখা যাচ্ছে।
উল্টো ঘটনাও কম ঘটে না। কোনো পেজে Noindex দেওয়া হয়েছে, অথচ Googlebot সেটি বারবার ক্রল করছে। তখন মনে হয়, Noindex বুঝি কাজ করছে না।
আসলে দুই ক্ষেত্রেই বিভ্রান্তির জায়গা এক: Noindex ও Robots.txt (Noindex and Robots.txt) একই কাজ করে না। Robots.txt মূলত কোনো URL ক্রল করা যাবে কি না, সেটি নিয়ন্ত্রণ করে। Noindex বলে দেয়, কোনো পেজ গুগলের সার্চ ইনডেক্সে রাখা হবে কি না।
সহজ ভাষায়, একটি crawler-কে পেজে ঢুকতে বাধা দেয়; অন্যটি crawler-কে পেজ দেখতে দিয়েই বলে—এই পেজটি সার্চ ফলাফলে রেখো না।
টেকনিক্যাল এসইওতে (technical SEO) এই পার্থক্য ছোট মনে হলেও ভুল সিদ্ধান্তের প্রভাব অনেক পরে ধরা পড়ে। গুরুত্বপূর্ণ পেজ ক্রলের বাইরে চলে যেতে পারে, আবার যেসব URL সার্চে থাকার কথা নয় সেগুলো ইনডেক্সে রয়ে যেতে পারে। বড় পরিসরে সাইটের ক্রলযোগ্যতা ও ইনডেক্সযোগ্যতা যাচাই করতে চাইলে Technical SEO Audit Guide: ধাপে ধাপে সম্পূর্ণ গাইড কাজে আসবে। এখানে আমরা শুধু একটি প্রশ্নেরই পরিষ্কার উত্তর খুঁজব—কখন Robots.txt, কখন Noindex, আর কেন দুটিকে একে অপরের বিকল্প ভাবা ঠিক নয়।
Noindex ও Robots.txt-এর পার্থক্য বুঝতে Crawl আর Index আলাদা করে ভাবতে হবে

Robots.txt আর Noindex নিয়ে বিভ্রান্তি কমাতে প্রথমেই Crawl আর Index-কে দুটি আলাদা ধাপ হিসেবে বুঝতে হবে।
Google কোনো URL-এর অস্তিত্ব জানতে পারে সাইটের অভ্যন্তরীণ লিংক (internal link), অন্য ওয়েবসাইটের লিংক বা বাহ্যিক লিংক (external link), এক্সএমএল সাইটম্যাপ (XML sitemap) কিংবা অন্য কোনো উৎস থেকে। URL সম্পর্কে Google জানে মানেই Googlebot সেটি ইতিমধ্যে ক্রল করেছে—এমন নয়।
আবার Googlebot কোনো পেজ ক্রল করলেই সেটি ইনডেক্সে ঢুকবে, এমন নিশ্চয়তাও নেই।
এই জায়গাতেই বিষয়টি অনেকের কাছে প্রথমে অস্বাভাবিক লাগে। একটি URL Google-এর জানা থাকতে পারে, অথচ তার ভেতরের কনটেন্ট Googlebot কখনো পড়েনি। আবার Googlebot কোনো পেজ পড়ে গেলেও Google সিদ্ধান্ত নিতে পারে সেটি সার্চ ইনডেক্সে রাখবে না।
Crawl, Index এবং Rank কীভাবে আলাদা ধাপে কাজ করে, সেটির ভিত্তি আরও পরিষ্কারভাবে জানতে চাইলে Crawl, Index ও Rank: তিনটি ধাপ কীভাবে আলাদা নিবন্ধটি দেখা যেতে পারে। এই পার্থক্যটি বোঝা গেলেই Noindex ও Robots.txt কেন এক কাজের জিনিস নয়, সেটি অনেক সহজ হয়ে যায়।
| বিষয় | Robots.txt (Disallow) | Noindex Directive |
| মূল কাজ | crawler-কে URL ক্রল করতে না বলা | পেজকে সার্চ ইনডেক্সে না রাখতে বলা |
| কোন ধাপে কাজ করে | ক্রল নিয়ন্ত্রণ | ইনডেক্স নিয়ন্ত্রণ |
| Googlebot পেজের কনটেন্ট পড়তে পারে? | Disallow থাকলে সাধারণত পারে না | পারে; কারণ Noindex বুঝতে পেজটি পড়তে হয় |
| URL সার্চে দেখা যেতে পারে? | হ্যাঁ, কিছু ক্ষেত্রে পারে | Noindex প্রক্রিয়াকরণের পর সাধারণত না |
| HTML প্রয়োজন? | না; Robots.txt আলাদা ফাইল | meta robots tag হলে HTML প্রয়োজন |
| non-HTML ফাইলে ব্যবহার | ক্রল বন্ধ করা যায় | X-Robots-Tag দিয়ে Noindex দেওয়া যায় |
| গোপন তথ্য রক্ষার উপায়? | না | না |
| প্রধান ব্যবহার | অপ্রয়োজনীয় ক্রল কমানো | পেজকে সার্চ ফলাফল থেকে বাদ রাখা |
Robots.txt আসলে কী করে?
একটি সাধারণ robots.txt নিয়ম এমন হতে পারে:
User-agent: *
Disallow: /search/
এর অর্থ হলো, নিয়মটি মেনে চলা crawler-দের /search/ পথের URL ক্রল না করতে বলা হচ্ছে।
কিন্তু এখানে কোথাও বলা হচ্ছে না যে URL ইনডেক্স করা যাবে না।
এটাই সবচেয়ে বেশি ভুল বোঝা জায়গা।
ধরা যাক, /search/blue-shoes/ URL-টি Robots.txt দিয়ে ক্রল-নিষিদ্ধ করা হয়েছে। কিন্তু সাইটের অন্য কোনো পেজে অথবা অন্য ওয়েবসাইটে ওই URL-এর লিংক আছে। Google সেই লিংক দেখে URLটির অস্তিত্ব জানতে পারে।
Robots.txt-এর কারণে Googlebot পেজে ঢুকে ভেতরের লেখা পড়তে না পারলেও URL-টি যে আছে, সেটি Google-এর জানা হয়ে গেছে।
ফলে কিছু ক্ষেত্রে পেজটির পূর্ণ কনটেন্ট না জেনেও URL সার্চ ফলাফলে দেখা যেতে পারে। সেখানে স্বাভাবিক শিরোনাম বা বিবরণ নাও থাকতে পারে; Google অন্য উৎস থেকে পাওয়া সীমিত তথ্য ব্যবহার করতে পারে।
অর্থাৎ Robots.txt-এর বক্তব্য হলো:
“এই URL ক্রল করবেন না।”
এটি বলে না:
“এই URL সার্চ ইনডেক্সে রাখবেন না।”
Robots.txt দিয়ে কি কোনো পেজ Index থেকে সরানো যায়?
না, নির্ভরযোগ্যভাবে নয়।
ধরা যাক /old-offer/ URL-টি ইতিমধ্যে Google-এ ইনডেক্স হয়েছে। এরপর Robots.txt-এ লিখলেন:
User-agent: *
Disallow: /old-offer/
এখন Googlebot ওই পেজে ভবিষ্যতে ঢুকতে না-ও পারে। কিন্তু পেজ ক্রল বন্ধ হয়েছে মানেই Google সঙ্গে সঙ্গে সেটিকে ইনডেক্স থেকে সরিয়ে দেবে না।
বরং একটি নতুন সমস্যা তৈরি হলো: Google এখন আর পেজটির বর্তমান অবস্থা সহজে যাচাই করতে পারছে না।
এরপর আপনি যদি একই পেজের HTML-এ Noindex বসান, Googlebot Robots.txt-এর বাধার কারণে পেজে ঢুকতে না পারলে সেই Noindex দেখবেই না।
Already indexed পেজকে শুধু Disallow দিয়ে সরানোর চেষ্টা, অথবা এমন কোনো গুরুত্বপূর্ণ পেজ Robots.txt-এ বন্ধ করে রাখা যেটি আসলে Google-কে ক্রল করতে দেওয়া দরকার—এসব Robots.txt ব্যবহারের পরিচিত ভুল। এ ধরনের সমস্যা নিয়ে বিস্তারিত আলোচনা আছে Robots.txt-এর SEO Errors: কোনগুলো আসলে সমস্যা নিবন্ধে।
কোনো ইনডেক্স হওয়া URL সার্চ থেকে সরাতে চাইলে সাধারণভাবে সঠিক পদ্ধতি হলো URL-টি Googlebot-এর জন্য ক্রলযোগ্য রাখা এবং পেজে Noindex দেওয়া। এরপর Googlebot পুনরায় পেজটি ক্রল করলে সেই নির্দেশ বুঝতে পারবে।
প্রয়োজনে Google Search Console-এর URL Inspection ব্যবহার করে পেজটির বর্তমান অবস্থা দেখা এবং পুনরায় ক্রলের অনুরোধ করা যায়।
Noindex আসলে কী বলে?
Noindex-এর কাজ আরও নির্দিষ্ট।
এটি Googlebot-কে পেজে ঢুকতে বাধা দেয় না। বরং এর বক্তব্য অনেকটা এমন:
“এই পেজটি দেখতে পারেন, কিন্তু সার্চ ইনডেক্সে রাখবেন না।”
HTML পেজে সাধারণত <head> অংশে meta robots tag ব্যবহার করে Noindex দেওয়া হয়:
<meta name=”robots” content=”noindex”>
শুধু Googlebot-এর জন্য নির্দেশ দিতে চাইলে ব্যবহার করা যায়:
<meta name=”googlebot” content=”noindex”>
Googlebot পেজটি ক্রল করে Noindex দেখার পর সেটি সার্চ ইনডেক্সে না রাখার নির্দেশ পায়।
পেজটি আগে থেকেই ইনডেক্সে থাকলে Noindex যোগ করার পরও সেটি সঙ্গে সঙ্গে সার্চ থেকে উধাও হবে—এমন আশা করা ঠিক নয়। Googlebot-কে আবার পেজটি ক্রল করে নতুন নির্দেশটি দেখতে হবে।
এখানে আরেকটি গুরুত্বপূর্ণ বিষয় আছে।
Noindex থাকা মানে Googlebot আর পেজটি ক্রল করবে না—এমন নয়।
বরং Noindex কার্যকর হওয়ার জন্য Googlebot-এর পেজে ঢোকার সুযোগ থাকা দরকার।
তাই Search Console-এ কোনো Noindex পেজের ক্রল দেখা মানেই নির্দেশটি ব্যর্থ—এমন সিদ্ধান্ত নেওয়া যাবে না। অনেক ক্ষেত্রে সেই ক্রলই Google-কে বুঝতে সাহায্য করছে যে URL-টি সার্চ ইনডেক্সে রাখা উচিত নয়।
Noindex ও Robots.txt একসাথে ব্যবহার করলে কী হয়?
এই অংশটাই পুরো বিষয়টির সবচেয়ে গুরুত্বপূর্ণ জায়গা।
ধরা যাক, একটি পেজের HTML-এ আছে:
<meta name=”robots” content=”noindex”>
কিন্তু Robots.txt-এ একই URL-এর জন্য লেখা:
User-agent: Googlebot
Disallow: /example-page/
দেখতে মনে হতে পারে, পেজটিকে দুই স্তরে আটকে দেওয়া হয়েছে। Googlebot ঢুকতেও পারবে না, আবার Noindex-ও আছে। ফলে নিশ্চয়ই পেজটি সার্চে আসবে না।
বাস্তবে বিষয়টি উল্টো।
ঘটনাটি ধাপে ধাপে দেখলে বোঝা যায়:
Google URLটির অস্তিত্ব জানতে পারল।
তারপর Robots.txt পরীক্ষা করল।
সেখানে দেখল /example-page/ ক্রল করা নিষেধ।
তাই Googlebot পেজটিতে গেল না।
পেজে না গেলে HTML পড়তে পারল না।
HTML পড়তে না পারায় <meta name=”robots” content=”noindex”> নির্দেশটিও দেখল না।
অর্থাৎ Noindex সেখানে থাকলেও Googlebot-এর দৃষ্টিতে সেটি অদৃশ্য।
এ কারণেই Disallow + Noindex কোনো বাড়তি নিরাপত্তা নয়।
বরং URL-টির দিকে অন্য কোনো পেজ থেকে লিংক থাকলে Google URL-এর অস্তিত্ব জানতে পারে, কিন্তু Robots.txt-এর বাধায় Noindex পড়তে না পেরে URL-টি সার্চে রেখে দিতে পারে।
এখানেই অনেক সাইটে দীর্ঘদিন ধরে অদ্ভুত সমস্যা দেখা যায়—ওয়েবমাস্টার নিশ্চিত যে Noindex বসানো আছে, অথচ URL এখনও সার্চে। পরে দেখা যায়, পেজটি একই সঙ্গে Robots.txt-এও বন্ধ করা।
| কনফিগারেশন | আসলে কী হয় | ঝুঁকি |
| ক্রল অনুমোদিত + ইনডেক্স অনুমোদিত | Googlebot পেজ পড়তে পারে এবং পেজ ইনডেক্সযোগ্য থাকে | স্বাভাবিক |
| Robots.txt Disallow | Googlebot পেজ ক্রল করে না | URL অন্য উৎস থেকে জানা থাকলে সার্চে দেখা যেতে পারে |
| ক্রল অনুমোদিত + Noindex | Googlebot Noindex পড়তে পারে | সার্চ থেকে বাদ দেওয়ার সঠিক পদ্ধতি |
| Robots.txt Disallow + Noindex | Googlebot Noindex পড়তে না-ও পারে | URL প্রত্যাশার বিপরীতে ইনডেক্সে থাকতে পারে |
| সাইটম্যাপ + Noindex | সাইটম্যাপ URL সামনে আনছে, Noindex ইনডেক্সে না রাখতে বলছে | উদ্দেশ্যের অসামঞ্জস্য |
| সাইটম্যাপ + Robots.txt block | URL আবিষ্কারের সংকেত দেওয়া হচ্ছে, আবার ক্রলও বন্ধ করা হচ্ছে | অপ্রয়োজনীয় ও পরস্পরবিরোধী ব্যবস্থা |
কখন Robots.txt ব্যবহার করাই যুক্তিযুক্ত?
Robots.txt-এর সবচেয়ে কার্যকর ব্যবহার হলো অপ্রয়োজনীয় ক্রল কমানো।
বিশেষ করে বড় ই-কমার্স, মার্কেটপ্লেস, শ্রেণিবদ্ধ বিজ্ঞাপনের সাইট বা প্রচুর প্যারামিটারযুক্ত ওয়েবসাইটে একই মূল কনটেন্ট ঘিরে হাজার হাজার কিংবা লাখ লাখ URL তৈরি হতে পারে।
ধরা যাক, কোনো পণ্যের তালিকা পেজে রং, মাপ, দাম ও সাজানোর ধরন অনুযায়ী নতুন URL তৈরি হচ্ছে:
/products?color=blue
/products?color=blue&size=m
/products?color=blue&size=m&sort=price
এভাবে কয়েকটি ফিল্টার মিলিয়েই বিপুলসংখ্যক URL তৈরি হতে পারে।
প্রতিটি URL যদি Google Search-এর জন্য আলাদা মূল্য না দেয়, তবে crawler-কে সবগুলো ঘুরিয়ে দেখানোর তেমন লাভ নেই। বরং সার্ভারের সম্পদ নষ্ট হতে পারে এবং বড় সাইটে গুরুত্বপূর্ণ পেজ পুনরায় ক্রলের অগ্রাধিকার কমে যেতে পারে।
Robots.txt ব্যবহার করা যুক্তিযুক্ত হতে পারে যখন:
- সাইটের অভ্যন্তরীণ সার্চ ফলাফলের অসংখ্য URL তৈরি হচ্ছে;
- ফ্যাসেটেড নেভিগেশন (faceted navigation) থেকে বিপুলসংখ্যক ফিল্টার URL তৈরি হচ্ছে;
- সেশন আইডি (session ID) যুক্ত URL তৈরি হচ্ছে;
- crawler এমন action URL-এ যাচ্ছে যেগুলোর সার্চে কোনো মূল্য নেই;
- বড় সাইটে অল্প-মূল্যের URL ক্রলে অযথা সময় ব্যয় হচ্ছে।
এখানে crawl budget বা ক্রল বাজেটের কথাও আসে। তবে ছোট বা মাঝারি সাইটে ক্রল বাজেট নিয়ে অকারণ আতঙ্কের প্রয়োজন নেই। মূল উদ্বেগটা বেশি প্রাসঙ্গিক এমন বড় সাইটে, যেখানে URL-এর সংখ্যা অনেক এবং নতুন বা পরিবর্তিত পেজ দ্রুত আবিষ্কার করানো গুরুত্বপূর্ণ।
আরেকটি কথা স্পষ্ট থাকা দরকার: Robots.txt কোনো নিরাপত্তাব্যবস্থা নয়।
গোপন ফাইল, প্রশাসনিক অংশ, ব্যক্তিগত ড্যাশবোর্ড বা সংবেদনশীল তথ্য রক্ষার জন্য Robots.txt ব্যবহার করা উচিত নয়। প্রয়োজন হলে লগইন, প্রমাণীকরণ (authentication), পাসওয়ার্ড সুরক্ষা কিংবা উপযুক্ত অনুমতি-ব্যবস্থা ব্যবহার করতে হবে।
কখন Noindex সঠিক পছন্দ?

Noindex তখনই ভালো সমাধান, যখন পেজটি ব্যবহারকারীর জন্য সচল থাকবে এবং Googlebot চাইলে সেটি দেখতে পারবে, কিন্তু সার্চ ফলাফলে সেই পেজের আলাদা উপস্থিতি দরকার নেই।
উদাহরণ হিসেবে ধরা যায় কোনো ফর্ম জমা দেওয়ার পরের ধন্যবাদ পেজ।
ব্যবহারকারী হয়তো /thank-you/ পেজে গিয়ে দেখছেন তাঁর আবেদন জমা হয়েছে। পেজটি ওয়েবসাইটের কাজের অংশ। কিন্তু “আপনার আবেদন গ্রহণ করা হয়েছে”—এমন পেজ Google Search-এ আলাদা ফলাফল হিসেবে দেখানোর তেমন প্রয়োজন নেই।
এ ধরনের ক্ষেত্রে Noindex যথার্থ।
একইভাবে ব্যবহার করা যেতে পারে:
- publicly accessible কিছু utility page;
- নির্দিষ্ট প্রচারণার এমন landing page, যেটি Google Search-এর জন্য তৈরি নয়;
- কার্যকরী কিন্তু খুব অল্প কনটেন্টের পেজ;
- এমন archive page, যেগুলো ব্যবহারকারীর জন্য প্রয়োজনীয় হলেও সার্চে রাখার মূল্য নেই।
তবে staging site বা internal dashboard-এর ক্ষেত্রে শুধু Noindex দিয়ে নিশ্চিন্ত হওয়া যাবে না।
যদি কোনো অংশ সত্যিই গোপন হয়, তাহলে সেটিকে password protection বা authentication-এর পেছনে রাখতে হবে। Noindex শুধু Search visibility নিয়ন্ত্রণ করে; কেউ সরাসরি URL জানলে পেজে ঢুকতে পারবে কি না, সেটি নিয়ন্ত্রণ করে না।
Pagination পেজে কি সব সময় Noindex দেওয়া উচিত?
না।
একসময় অনেক SEO পরামর্শে দেখা যেত প্রথম পেজ ছাড়া সব pagination URL-এ Noindex বসানোর কথা বলা হচ্ছে। কিন্তু সব সাইটে এটি ভালো পদ্ধতি নয়।
ধরা যাক, একটি category archive-এর দ্বিতীয়, তৃতীয় বা চতুর্থ পেজে এমন পণ্যের লিংক আছে, যেগুলো অন্য কোথাও থেকে সহজে পাওয়া যায় না। ওই pagination পেজগুলো Googlebot ক্রল করতে পারলে সেখান থেকে নতুন product URL আবিষ্কার করতে পারে।
তাই “page 2 থেকে সব Noindex”—এমন একক নিয়মে যাওয়া ঠিক নয়।
সাইটের গঠন, লিংক ব্যবস্থা এবং গুরুত্বপূর্ণ URL আবিষ্কারের অন্য পথ আছে কি না—এসব দেখে সিদ্ধান্ত নিতে হবে।
| পরিস্থিতি | সঠিক টুল | কারণ |
| অসংখ্য অল্প-মূল্যের faceted URL | Robots.txt | অপ্রয়োজনীয় ক্রল কমানো |
| অভ্যন্তরীণ সার্চ ফলাফলের URL | Robots.txt, যদি সার্চে দরকার না থাকে | crawler-এর অযথা সময় ব্যয় কমায় |
| Session-ID বা অনিয়ন্ত্রিত parameter URL | Robots.txt অথবা URL গঠন ঠিক করা | URL-এর অস্বাভাবিক বৃদ্ধি নিয়ন্ত্রণ |
| Thank-you page | Noindex | পেজ থাকবে, কিন্তু সার্চে প্রয়োজন নেই |
| এমন public utility page যা Google-এ চান না | Noindex | crawler নির্দেশটি পড়তে পারবে |
| PDF সার্চে চান না | X-Robots-Tag: noindex | PDF-তে HTML meta tag বসানো যায় না |
| গোপন dashboard বা private staging | Authentication/password protection | Noindex বা Robots.txt নিরাপত্তা দেয় না |
| আগে থেকেই ইনডেক্স হওয়া URL সরাতে চান | ক্রল অনুমোদিত + Noindex | Google-কে নির্দেশটি পড়তে দিতে হবে |
| একই কনটেন্টের একাধিক বৈধ URL | সাধারণত Canonical | মূল বা পছন্দের সংস্করণ বোঝানো উদ্দেশ্য |
Noindex কি Meta Tag ছাড়াও দেওয়া যায়?
হ্যাঁ।
HTML পেজে meta robots tag ব্যবহার করা সবচেয়ে পরিচিত পদ্ধতি। কিন্তু সব কনটেন্ট তো HTML নয়।
ধরা যাক, একটি PDF Google Search-এ দেখা যাচ্ছে:
https://example.com/files/internal-report.pdf
PDF ফাইলে HTML-এর <head> অংশ নেই। ফলে সেখানে সাধারণ meta robots tag বসানোর সুযোগও নেই।
এ ধরনের ক্ষেত্রে সার্ভারের HTTP response header-এর মাধ্যমে ব্যবহার করা যায়:
X-Robots-Tag: noindex
উদাহরণ:
HTTP/1.1 200 OK
Content-Type: application/pdf
X-Robots-Tag: noindex
এখানে X-Robots-Tag মূলত HTTP header-এর মাধ্যমে crawler-কে ইনডেক্সিং নির্দেশ পাঠায়।
PDF, image, video বা অন্য non-HTML resource-এর ক্ষেত্রে এটি বিশেষভাবে কাজে লাগে, কারণ এসব ফাইলে HTML meta tag যোগ করা যায় না।
কিন্তু মূল নিয়ম এখানেও একই।
PDF URL-টি যদি Robots.txt দিয়ে ক্রল-নিষিদ্ধ করা থাকে, Googlebot সেই ফাইলের HTTP response-ই পাবে না। ফলে X-Robots-Tag: noindex-ও দেখবে না।
তাই HTML হোক বা PDF—Noindex কাজ করতে হলে crawler-কে আগে URL-এ পৌঁছাতে দিতে হবে।
Sitemap, Robots.txt ও Noindex-এর সংকেত একদিকে রাখা ভালো
একটি এক্সএমএল সাইটম্যাপ (XML sitemap) সাধারণত search engine-কে এমন URL সামনে এনে দেয় যেগুলো আপনি আবিষ্কার ও প্রক্রিয়াকরণের জন্য গুরুত্বপূর্ণ বলে মনে করেন।
এখন ধরুন, /thank-you/ URL-টি সাইটম্যাপে রাখা হয়েছে, অথচ পেজে Noindex দেওয়া আছে।
একদিকে সাইটম্যাপ বলছে:
“এই URL-টি দেখুন।”
অন্যদিকে Noindex বলছে:
“এই URL-টি সার্চ ইনডেক্সে রাখবেন না।”
একইভাবে কোনো URL সাইটম্যাপে রেখে Robots.txt-এ সেটি ক্রল-নিষিদ্ধ করলে একদিকে URL সামনে আনা হচ্ছে, অন্যদিকে Googlebot-কে সেখানে যেতে মানা করা হচ্ছে।
এমন অবস্থায় Google যে বুঝতেই পারবে না—এমন কথা বলা ঠিক নয়। বিভিন্ন সংকেত আলাদাভাবে প্রক্রিয়া করার ক্ষমতা Google-এর আছে।
তবে সাইটের নিজের উদ্দেশ্য পরিষ্কার রাখার দিক থেকে এটি ভালো ব্যবস্থা নয়। বিশেষ করে বড় সাইটে এতে অপ্রয়োজনীয় ক্রল, Search Console-এর প্রতিবেদন বিশ্লেষণ এবং সমস্যা খুঁজে বের করা আরও জটিল হতে পারে।
কোন URL সাইটম্যাপে রাখা উচিত নয়, বিশেষ করে Noindex বা Robots.txt দিয়ে বন্ধ করা URL নিয়ে কীভাবে সিদ্ধান্ত নিতে হবে, সেটি XML Sitemap-এ কোন URLs রাখবেন না নিবন্ধে আরও বিস্তারিতভাবে আলোচনা করা হয়েছে।
সাধারণভাবে সাইটম্যাপে এমন URL রাখাই পরিষ্কার পদ্ধতি, যেগুলো:
- স্বাভাবিকভাবে 200 status code দেয়;
- Googlebot ক্রল করতে পারে;
- ইনডেক্সযোগ্য;
- এবং আপনি সত্যিই Google Search-এ রাখতে চান।
Noindex আর Canonical-ও একই সমাধান নয়
Duplicate content দেখলেই অনেকের প্রশ্ন হয়, “Canonical দেব, নাকি Noindex?”
দুইটির উদ্দেশ্য এক নয়।
ধরা যাক, একই পণ্যের দুটি URL:
/product/shoe/
এবং
/product/shoe/?utm_source=email
দুটি URL-তেই প্রায় একই কনটেন্ট দেখা যাচ্ছে।
আপনার উদ্দেশ্য যদি হয় Google-কে বোঝানো যে /product/shoe/-ই মূল বা পছন্দের সংস্করণ, তাহলে canonical প্রাসঙ্গিক।
Noindex-এর উদ্দেশ্য হলো নির্দিষ্ট URL-টিকে Search Index থেকে বাদ রাখা।
অর্থাৎ canonical বলছে:
“একাধিক মিল থাকা URL-এর মধ্যে এইটিকে প্রধান সংস্করণ হিসেবে বিবেচনা করুন।”
Noindex বলছে:
“এই URL-টি সার্চে রাখবেন না।”
Duplicate URL-এর ক্ষেত্রে canonical, parameter, redirect ও Noindex কোথায় কীভাবে কাজে আসে, সেটির বিস্তৃত ব্যাখ্যা আছে Canonical Tag ও Duplicate URLs: SEO-তে কীভাবে সমাধান করবেন নিবন্ধে।
আরেকটি ঝুঁকিপূর্ণ ব্যবস্থা হলো এমন কোনো URL-কে canonical destination বা মূল সংস্করণ হিসেবে দেখানো, যেটিতেই আবার Noindex দেওয়া আছে।
এক সংকেত বলছে URL-টিকে প্রধান হিসেবে বিবেচনা করতে, আর অন্যটি বলছে সেটি Search-এ না রাখতে। এমন পরস্পরবিরোধী ব্যবস্থা না রাখাই ভালো।
বাস্তবে সাধারণ ভুলগুলো কোথায় হয়?
সমস্যা অধিকাংশ সময় code syntax না জানার কারণে হয় না। বরং একটি সমস্যার জন্য ভুল tool বেছে নেওয়া থেকে শুরু হয়।
| ভুল | কেন ঘটে | সমাধান |
| ইনডেক্স হওয়া URL Robots.txt দিয়ে সরানোর চেষ্টা | Robots.txt-কে de-indexing ব্যবস্থা ভাবা | Robots.txt block সরিয়ে Noindex দিন এবং পুনরায় ক্রল হতে দিন |
| Noindex ও Robots.txt block একসঙ্গে দেওয়া | “দুটো দিলে আরও নিশ্চিত” ধারণা | Noindex পড়ানোর জন্য URL ক্রলযোগ্য রাখুন |
| Noindex URL সাইটম্যাপে রাখা | সাইটম্যাপ স্বয়ংক্রিয়ভাবে সব URL নিচ্ছে | সাইটম্যাপ থেকে non-indexable URL বাদ দিন |
| Robots.txt-এ বন্ধ URL সাইটম্যাপে রাখা | crawl ও sitemap settings আলাদা জায়গা থেকে নিয়ন্ত্রিত | দুটির নিয়ম মিলিয়ে দেখুন |
| গোপন পেজে শুধু Noindex দেওয়া | Noindex-কে access control ভাবা | authentication বা password protection দিন |
| সব pagination page-এ Noindex দেওয়া | পুরোনো পরামর্শ অন্ধভাবে অনুসরণ | discovery path ও পেজের মূল্য বিচার করুন |
| Duplicate URL-এ Canonical ও Noindex এলোমেলো ব্যবহার | দুই নির্দেশের উদ্দেশ্য গুলিয়ে ফেলা | আগে ঠিক করুন URL বাদ দেবেন, নাকি মূল সংস্করণ বোঝাবেন |
সিদ্ধান্ত নেবেন কীভাবে: আগে দুটি প্রশ্ন করুন
Robots.txt আর Noindex-এর মধ্যে বেছে নেওয়ার সময় “কোন tag দেব?”—এই প্রশ্ন দিয়ে শুরু করলে বিষয়টি অকারণে জটিল হয়ে যায়।
তার বদলে প্রতিটি URL নিয়ে দুটি প্রশ্ন করুন।
প্রশ্ন ১: Search crawler-এর এই URL ক্রল করার প্রয়োজন আছে কি?
যদি উত্তর না হয়, এবং URL-টি মূলত বিপুলসংখ্যক অপ্রয়োজনীয় ক্রল তৈরি করছে, তাহলে Robots.txt উপযুক্ত হতে পারে।
যেমন:
- হাজার হাজার faceted filter URL;
- session parameter;
- অপ্রয়োজনীয় internal search URL;
- action URL যেগুলোর Search-এর জন্য কোনো মূল্য নেই।
তবে URL যদি আগে থেকেই ইনডেক্সে থাকে এবং আপনার আসল উদ্দেশ্য সেটিকে Google Search থেকে সরানো হয়, তখন সরাসরি Robots.txt দিয়ে বন্ধ করা উচিত নয়।
Googlebot-কে আগে Noindex পড়ার সুযোগ দিতে হবে।
প্রশ্ন ২: URL-টি Search Index-এ থাকা উচিত কি?
যদি crawler পেজে আসতে পারে, কিন্তু Search result হিসেবে পেজটির প্রয়োজন না থাকে, তখন Noindex ব্যবহার করুন।
এই সিদ্ধান্তের ধারাবাহিকতাই সবচেয়ে গুরুত্বপূর্ণ।
Robots.txt আর Noindex একই প্রশ্নের দুটি বিকল্প উত্তর নয়।
Robots.txt জিজ্ঞেস করে:
“এই URL ক্রল করা হবে কি?”
Noindex জিজ্ঞেস করে:
“এই পেজ ইনডেক্সে থাকবে কি?”
দুটি প্রশ্ন আলাদা করে ভাবলেই বেশির ভাগ ভুল কমে যায়।
Google Search Console-এ কী যাচাই করবেন?
কোনো পরিবর্তন করার পর শুধু source code দেখে কাজ শেষ হয়েছে ধরে নেওয়া উচিত নয়।
Google Search Console-এর URL Inspection দিয়ে গুরুত্বপূর্ণ URL আলাদাভাবে পরীক্ষা করা যায়। সেখানে Google পেজে পৌঁছাতে পারছে কি না, URL-এর বর্তমান indexing status কী এবং Googlebot কী তথ্য পেয়েছে—এসব বোঝা যায়।
কোনো Noindex পেজ এখনও Google Search-এ থাকলে কয়েকটি বিষয় যাচাই করুন:
- Robots.txt কি URL-টিকে ক্রল করতে বাধা দিচ্ছে?
- Googlebot কি Noindex যোগ করার পর পেজটি আবার ক্রল করেছে?
- HTML-এর meta robots tag কি সত্যিই চূড়ান্ত rendered page-এ আছে?
- server response-এ কোনো ভুল X-Robots-Tag যাচ্ছে কি?
- ভিন্ন user-agent-এর জন্য ভিন্ন নির্দেশ দেওয়া হয়েছে কি?
উল্টোভাবে কোনো গুরুত্বপূর্ণ পেজ Google-এ না থাকলে Robots.txt-ও প্রথম দিকের পরীক্ষার একটি হওয়া উচিত।
বিশেষ করে সাইট নতুন করে তৈরি, server migration বা staging থেকে production-এ নেওয়ার পর পুরোনো Disallow rule থেকে যাওয়ার ঘটনা বাস্তবে ঘটে।
টেকনিক্যাল এসইওতে অনেক সময় বড় সমস্যার পেছনে বড় কোনো রহস্য থাকে না। একটি গুরুত্বপূর্ণ folder-এর সামনে ভুল Disallow থাকলেই যথেষ্ট।
Tool নয়, উদ্দেশ্যটাই আগে ঠিক করুন
Noindex ও Robots.txt এত ঘন ঘন গুলিয়ে যাওয়ার কারণ এদের syntax কঠিন নয়। আসল কারণ হলো Crawl আর Index বাইরে থেকে একই প্রক্রিয়ার অংশ বলে মনে হয়। Search engine-এর দৃষ্টিতে কিন্তু এগুলো আলাদা ধাপ।
কোনো URL নিয়ে কাজ করার সময় তাই প্রথমে ঠিক করুন—Googlebot কি এখানে আসবে?
তারপর ঠিক করুন—পেজটি কি সার্চ ইনডেক্সে থাকবে?
এই দুটি প্রশ্ন নিয়মিতভাবে করলে Robots.txt-কে de-indexing ব্যবস্থা হিসেবে ব্যবহার করার ভুল কমবে। একই সঙ্গে Robots.txt দিয়ে ক্রল বন্ধ করে Noindex-কে Googlebot-এর চোখের আড়ালে রাখার সমস্যাটিও এড়ানো যাবে।
টেকনিক্যাল এসইওর অনেক ভুলের প্রভাব তাৎক্ষণিকভাবে ধরা পড়ে না। কয়েক সপ্তাহ বা কয়েক মাস পরে Search Console-এর প্রতিবেদন অস্বাভাবিক হলে গিয়ে বোঝা যায়, ক্রল ও ইনডেক্স নিয়ন্ত্রণের কোথাও সংকেত মিলছে না। তাই Noindex ও Robots.txt-কে একই ধরনের বাধা হিসেবে না দেখে দুটি আলাদা নিয়ন্ত্রণব্যবস্থা হিসেবে ভাবাই দীর্ঘমেয়াদে সাইটের ইনডেক্স-স্বাস্থ্য ভালো রাখার সবচেয়ে নিরাপদ অভ্যাস।
Noindex ও Robots.txt নিয়ে সাধারণ প্রশ্ন
Robots.txt-এ Disallow করলে কি পেজ Google থেকে সরে যাবে?
না, নিশ্চিতভাবে নয়। Disallow মূলত Googlebot-কে URL ক্রল করতে বাধা দেয়। অন্য লিংক বা উৎস থেকে Google URL-এর অস্তিত্ব জানতে পারলে সেটি সার্চে দেখা যেতেও পারে। সার্চ ইনডেক্স থেকে URL বাদ দিতে চাইলে সাধারণত Noindex ব্যবহার করা হয়।
Noindex দিলে Googlebot কি আর পেজ Crawl করবে না?
না। Noindex একটি indexing directive। Googlebot-কে পেজ ক্রল করেই নির্দেশটি দেখতে হয়। তাই Noindex পেজে Googlebot-এর ক্রল দেখা স্বাভাবিক।
Noindex কি Meta Tag ছাড়াও দেওয়া যায়?
হ্যাঁ। HTML পেজে meta robots tag ব্যবহার করা যায়। PDF বা অন্য non-HTML file-এর ক্ষেত্রে HTTP response header-এর মাধ্যমে X-Robots-Tag: noindex দেওয়া যায়।
Sitemap-এ Noindex পেজ রাখলে কি সমস্যা হয়?
সাধারণত ইচ্ছাকৃতভাবে Noindex করা URL সাইটম্যাপ থেকে বাদ রাখাই পরিষ্কার ব্যবস্থা। একদিকে সাইটম্যাপ দিয়ে URL সামনে আনা এবং অন্যদিকে Noindex দিয়ে Search থেকে বাদ দিতে বলা সাইটের উদ্দেশ্যকে অপ্রয়োজনীয়ভাবে অস্পষ্ট করে।

