মার্কেটপ্লেসের এসইও টিম তাদের ইনডেক্সিং রুলটি নতুন করে লিখেছে, কারণ একটি সাধারণ “fewer-than-3-listings = noindex” পলিসির কারণে গুগল থেকে ক্যাটাগরি পেজগুলো হারিয়ে যাচ্ছিল এবং সেগুলো পুনরায় ফিরে আসতে কয়েক সপ্তাহ সময় লেগে যাচ্ছিল। একটি ওয়ান-ওয়ে (one-way) “unlock” রেকর্ড যোগ করার মাধ্যমে, যা একটি পেজকে noindex থেকে index-এ যেতে সাহায্য করে কিন্তু কখনোই উল্টো পথে নয়, সাইটটি এই সমস্যাটি সমাধান করেছে।

কেন মূল রুলটি উল্টো ফল দিয়েছিল

ক্লাসিফাইড প্ল্যাটফর্মটি প্রচুর পরিমাণে category-and-location পেজ তৈরি করে। যখন একটি পেজ প্রথমবার আসে, তখন এতে প্রায়ই খুব সামান্য সংখ্যক লিস্টিং থাকে, তাই টিম সিদ্ধান্ত নিয়েছিল যে অন্তত তিনটি লিস্টিং না হওয়া পর্যন্ত পেজটিকে সার্চ ইঞ্জিন থেকে লুকিয়ে রাখা হবে। এর লজিক ছিল খুবই সহজ:

  • < ৩টি লিস্টিং → একটি noindex মেটা ট্যাগ যোগ করুন
  • ≥ ৩টি লিস্টিং → ট্যাগটি সরিয়ে ফেলুন (ইনডেক্স করার অনুমতি দিন)

শুরুতে এটি গুগল সার্চ রেজাল্ট থেকে অপ্রয়োজনীয় বা কম মানের (thin) পেজগুলোকে দূরে রাখতে সাহায্য করেছিল। সমস্যাটি দেখা দেয় যখন লিস্টিংগুলোর মেয়াদ শেষ হয়ে যেতে শুরু করল। একদিন একটি পেজে পাঁচটি লিস্টিং থাকতে পারে, কিন্তু পরের দিন তা কমে দুটিতে নেমে আসতে পারে, ফলে সেটি তাৎক্ষণিকভাবে আবার noindex হয়ে যায়। গুগল সেই নির্দেশ মেনে চলে, ইনডেক্স থেকে URL-টি সরিয়ে ফেলে এবং পেজটি তার অর্জিত র‍্যাঙ্কিং হারিয়ে ফেলে। যখন একটি নতুন লিস্টিং আসে, পেজটি আবার ইনডেক্সযোগ্য হয়, কিন্তু পুনরায় ইনডেক্সে ফিরে আসার প্রক্রিয়াটি কয়েক সপ্তাহ সময় নেয়।

এর ফলে একটি অনবরত “on-off” চক্র তৈরি হয়েছিল: পেজগুলো ইনডেক্সে প্রবেশ করে, হারিয়ে যায়, আবার প্রবেশ করে, এবং এভাবেই চলতে থাকে।

ওয়ান-ওয়ে “unlock” সমাধান

মূল ত্রুটি ছিল যে রুলটির কোনো মেমরি বা স্মৃতি ছিল না; এটি প্রতিবার রিকোয়েস্টের সময় থ্রেশহোল্ডটি পুনরায় গণনা করত। টিম একটি ছোট ডাটাবেস টেবিল—seo_unlocks—তৈরি করেছে যা রেকর্ড করে রাখে যে একটি পেজ প্রথম কবে তিনটি লিস্টিংয়ের সীমা স্পর্শ করেছে। নতুন কাজের ধারাটি হলো:

  1. লিস্টিং সংখ্যা পরীক্ষা করুন। যদি পেজে তিনটি বা তার বেশি সক্রিয় লিস্টিং থাকে, তবে পরবর্তী ধাপে যান।
  2. একটি unlock রো (row) লিখুন। seo_unlocks-এ ওই পেজের জন্য একটি রেকর্ড ইনসার্ট করুন।
  3. পেজটিকে স্থায়ীভাবে ইনডেক্সযোগ্য হিসেবে গণ্য করুন। পরবর্তীতে লিস্টিংয়ের সংখ্যা তিনের নিচে নেমে গেলেও, একটি unlock রো থাকার কারণে পেজটি noindex প্রক্রিয়ায় পড়বে না।

যেহেতু আনলকটি কেবল একবারই লেখা যায়, তাই একটি পেজ “noindex” থেকে “index”-এ যেতে পারে কিন্তু কখনোই উল্টো পথে ফিরতে পারে না। টিম কিছু সুরক্ষা ব্যবস্থা (safeguards) যোগ করেছে যাতে ফিল্টার করা URL (যেমন: প্রাইস রেঞ্জ সহ সার্চ রেজাল্ট) তাদের প্যারেন্ট ক্যাটাগরির জন্য আনলক তৈরি করতে না পারে, এবং ডাটাবেস ফেইলিউরের কারণে পুরো সাইট ক্র্যাশ হওয়া রোধ করতে ডাটাবেস কলটিকে একটি try/catch ব্লকের মধ্যে রাখা হয়েছে।

ক্রল বাজেট এবং থিন পেজের ক্ষেত্রে এর গুরুত্ব

একটি সাধারণ ভুল ধারণা হলো যে noindex ব্যবহার করলে ক্রল বাজেট বাঁচে। গুগলকে তবুও পেজটি ফেচ (fetch) করতে হয়, ট্যাগটি পড়তে হয় এবং তারপর ইনডেক্স থেকে সরিয়ে ফেলতে হয়। যদি লক্ষ্য হয় গুগলকে একটি নির্দিষ্ট URL প্যাটার্ন রিকোয়েস্ট করা থেকে বিরত রাখা, তবে সঠিক টুল হলো robots.txtnoindex শুধুমাত্র তখনই ব্যবহার করুন যখন আপনি চান গুগল পেজটি দেখুক কিন্তু সার্চ রেজাল্টে প্রদর্শন না করুক।

ডিরেক্টরি, জব বোর্ড এবং মার্কেটপ্লেসগুলোর জন্য যারা প্রচুর পরিমাণে অটো-জেনারেটেড পেজের ওপর নির্ভর করে, তাদের জন্য শিক্ষাটি স্পষ্ট: থিন-পেজ রুলগুলোর সাথে একটি পারসিস্টেন্স লেয়ার (persistence layer) থাকা আবশ্যক যা মনে রাখতে পারে যে একটি পেজ কখন ইনডেক্সে জায়গা পাওয়ার যোগ্য হয়েছে। সেই মেমরি ছাড়া, কন্টেন্টের সাময়িক হ্রাস একটি পেজকে তার অর্জিত র‍্যাঙ্কিং হারাতে বাধ্য করতে পারে এবং পুনরায় ইনডেক্সে ফিরে আসতে কয়েক সপ্তাহ সময় নিতে পারে।

সারসংক্ষেপ

ডাইনামিক লিস্টিং সাইটগুলোর জন্য একটি স্ট্যাটিক “if count < 3 then noindex” রুল এসইও অস্থিরতা (SEO volatility) তৈরি করে। একটি ওয়ান-ওয়ে আনলক রেকর্ড যোগ করার মাধ্যমে রুলটিতে মেমরি যোগ করা হয়, যা লিস্টিংয়ের ওঠানামা সত্ত্বেও পেজগুলোকে তাদের ইনডেক্স স্ট্যাটাস অর্জন করতে এবং ধরে রাখতে সাহায্য করে। প্রকৃত ক্রল-বাজেট সাশ্রয়ের জন্য এটিকে robots.txt-এর সঠিক ব্যবহারের সাথে যুক্ত করুন, এবং আপনি র‍্যাঙ্কিং ও সার্ভার রিসোর্স—উভয়ই রক্ষা করতে পারবেন।