ব্লগে ফিরে যান
১ অক্টোবর, ২০২৫Sergei Solod4 মিনিট পড়া

Yandex Search থেকে এক রাতেই ২,০০০ পেজ উধাও। আসলে এখান থেকে কী নিশ্চিতভাবে বোঝা গিয়েছিল?

Yandex Webmaster-এ দেখলাম, প্রায় ৮,০০০ পেজের মধ্যে ২,০০০ পেজ আর search-এ অংশ নিচ্ছে না। ২৫% পতন বড় ছিল, কিন্তু আসল শিক্ষা ছিল—দেখা search-status change-কে প্রমাণিত cause ধরে নেওয়া যাবে না।

SEOYandex Webmasterইনডেক্সিংসার্চ ভিজিবিলিটিটেকনিক্যাল SEO

Yandex Webmaster খুলে এমন একটা সংখ্যা দেখলাম যেটা উপেক্ষা করা কঠিন: ২,০০০ পেজ এক রাতেই Yandex Search থেকে উধাও হয়ে গেছে। পুরো প্রজেক্টে প্রায় ৮,০০০ পেজ ছিল, অর্থাৎ প্রায় ২৫% পেজ আর search-এ অংশ নেওয়া হিসেবে দেখাচ্ছিল না।

প্রথম প্রতিক্রিয়া ছিল সহজ: SEO কখনও খুব কঠিন হতে পারে। কিন্তু বেশি গুরুত্বপূর্ণ শিক্ষা আরও নির্ভুল। “Pages in search” হঠাৎ কমে যাওয়া একটি observation, diagnosis নয়। সংখ্যাটা নিশ্চিত ছিল। কারণটা তখনও নিশ্চিত ছিল না।

আমি আসলে কী নিশ্চিত করতে পেরেছিলাম

সেই মুহূর্তে আমার কাছে তিনটি fact ছিল: Yandex Webmaster ২,০০০ পেজ কম দেখাচ্ছিল, প্রজেক্টে প্রায় ৮,০০০ পেজ ছিল, আর পরিবর্তনটি এক রাতের মধ্যে দেখা গিয়েছিল। কিন্তু Yandex site-কে penalize করেছে, crawling ব্যর্থ হয়েছে, বা কোনো নির্দিষ্ট technical change এই পতন ঘটিয়েছে—এমন প্রমাণ আমার কাছে ছিল না।

এই পার্থক্য গুরুত্বপূর্ণ, কারণ Yandex কয়েকটি আলাদা state পৃথকভাবে দেখায়, যেগুলোকে আমরা সহজেই এক কথায় “indexing” বলে ফেলি। কোনো URL crawl হতে পারে, তবু search থেকে exclude হতে পারে। Yandex আরও বলে, robot database-এ এমন page থাকতে পারে যা সেই মুহূর্তে search result-এ দেখানো যায় না। তাই দরকারি প্রশ্ন শুধু “crawler URL-টি দেখেছে?” নয়; বরং “page-টি এখন search-এ participate করছে কি না, আর না করলে কোন status exclusion ব্যাখ্যা করছে?”

Yandex-এর official documentation-এ search-এ থাকা pages এবং excluded pages নিয়ে এই পার্থক্য ব্যাখ্যা করা হয়েছে।

Crawling, search participation, ranking আর traffic আলাদা সমস্যা

এই ঘটনা আমাকে আবার মনে করিয়ে দিয়েছে, চারটি layer কত সহজে গুলিয়ে যায়: crawling, search system-এ থাকা, search-এ participate করা, আর বাস্তব ranking বা traffic। এগুলো সম্পর্কিত, কিন্তু এক জিনিস নয়।

  • Crawling: robot URL fetch করেছে কি না।
  • Search participation: Yandex এখন page-টিকে result-এ দেখানোর যোগ্য মনে করছে কি না।
  • Ranking: নির্দিষ্ট query-তে page কোথায় দেখা যাচ্ছে।
  • Traffic: ranking ছাড়াও demand, snippet, CTR, seasonality এবং আরও অনেক কিছুর ওপর নির্ভর করে।

তাই search-এ অংশ নেওয়া page ২৫% কমে গেলে স্বয়ংক্রিয়ভাবে traffic-ও ২৫% কমেছে—এমন নয়। এটাও crawling problem বা algorithmic penalty প্রমাণ করে না।

তবু ২,০০০ URL-এর scale কেন গুরুত্বপূর্ণ ছিল

২,০০০ URL এমন সংখ্যা যেখানে random কয়েকটি page ভাবার বদলে pattern খোঁজা উচিত। আমি দেখতাম affected URL-গুলোর directory, template, content type, canonical setup, HTTP status, internal-linking pattern বা publishing period-এ কোনো common feature আছে কি না।

একটি total number-এর দিকে তাকিয়ে থাকার চেয়ে এই segmentation বেশি কার্যকর। অধিকাংশ excluded page যদি একটি technical characteristic শেয়ার করে, investigation দ্রুত narrow হয়। loss যদি unrelated section জুড়ে ছড়িয়ে থাকে, hypothesis বদলায়। তবে এটি investigation strategy, আমার case-এর প্রকৃত cause সম্পর্কে দাবি নয়।

Algorithm-কে দায়ী করার আগে কী দেখতাম

  1. Metric verify করতাম। Change সত্যিই “pages in search”-এ কি না নিশ্চিত করে excluded pages ও dates দেখতাম।
  2. Exclusion reason দেখতাম। Yandex Webmaster low-value/low-demand, non-canonical, noindex, redirect বা error-এর মতো কারণ দেখাতে পারে। এই status evidence; graph দেখে অনুমান evidence নয়।
  3. Affected URLs group করতাম। Directory, template, page type, language, generated section আর publishing period compare করতাম।
  4. Sample-এ technical basics check করতাম। HTTP code, robots directive, canonical, redirect, availability এবং robot আসলে কোন HTML পাচ্ছে।
  5. Index change-কে ranking ও traffic থেকে আলাদা রাখতাম। Search participation, impressions, clicks আর analytics sessions আলাদা প্রশ্নের উত্তর দেয়।
  6. তারপর causal hypothesis বানাতাম। Configuration, deployment, template update বা content pattern affected pages-এর সঙ্গে মিললে সেটি candidate cause, proof নয়।

Yandex নির্দিষ্ট exclusion reason দেখার এবং বাস্তব সমস্যা ঠিক করার পর page-টি recrawl-এর জন্য submit করার পরামর্শ দেয়। বড় সংখ্যা দেখে পরে গল্প বানানোর চেয়ে এই workflow অনেক শক্ত।

এই ঘটনা থেকে আমি কী দাবি করতাম না

আমি বলতাম না “Yandex site-কে punish করেছে”, কারণ সেটি প্রমাণ হয়নি। Crawler-রা শুধু “আরও picky হয়েছে” বলতাম না, কারণ এতে বিভিন্ন technical state লুকিয়ে যায়। ২,০০০ page-কে permanently lost বলতাম না এবং status না দেখে ধরে নিতাম না যে সব page একই কারণে disappeared হয়েছে।

যে শিক্ষা আমার সঙ্গে রয়ে গেছে

৮,০০০-এর মধ্যে ২,০০০ page এক রাতেই search থেকে হারানো এখনও brutal মনে হয়। কিন্তু useful conclusion “SEO random” নয়। Search system-এ একাধিক state layer থাকে, এবং কেন বদলেছে তা বলার আগে কোন layer বদলেছে তা খুঁজে বের করতে হয়।

আমার practical rule সহজ: প্রথমে observation লিখে রাখি, cause open রাখি, তারপর page-level evidence দিয়ে hypothesis narrow করি। সংখ্যাটা ছিল ২,০০০। কারণটা তখনও একটি প্রশ্ন ছিল।