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

SEO-তে আমার প্রথম মাস: ৬৩২ অর্গানিক ভিজিটর এবং বট ট্রাফিক নিয়ে একটি বাস্তবতা যাচাই

কাজের একটি বড় SEO উদ্যোগের প্রস্তুতি হিসেবে আমি ব্যক্তিগত side project-কে পরীক্ষার ক্ষেত্র বানিয়েছিলাম। এক মাসে ৬৩২ অর্গানিক ভিজিটর এলেও, ৮৩ ভিজিটরের একটি দিন দেখিয়েছে সন্দেহজনক ট্রাফিক ও analytics-এর সীমাবদ্ধতা কত সহজে ফলাফলের গল্প বদলে দিতে পারে।

SEOWeb AnalyticsBot TrafficYandex MetricaSEO Experiments

ব্যক্তিগত side project-কে SEO পরীক্ষার ক্ষেত্র হিসেবে ব্যবহার করার এক মাস পর আমার ছিল ৬৩২ জন অর্গানিক ভিজিটর। সংখ্যাটি উৎসাহজনক ছিল, কিন্তু সবচেয়ে গুরুত্বপূর্ণ শিক্ষা এসেছিল আরেকটি সংখ্যা থেকে: ১৫ অক্টোবর সাইটটি সেই সময় পর্যন্ত সর্বোচ্চ দৈনিক ৮৩ জন ভিজিটর পায়, এবং সেই spike-এর একটি অংশ মানুষের ট্রাফিকের মতো লাগছিল না।

তখন আমি কর্মক্ষেত্রের একটি বড় SEO উদ্যোগের প্রস্তুতি নিচ্ছিলাম। আরও তত্ত্ব পড়ার বদলে বাস্তব অভিজ্ঞতা দরকার ছিল। Side project আমাকে পরিবর্তন করতে, data দেখতে এবং ভুল হতে দিয়েছে—প্রতিটি observation-কে সঙ্গে সঙ্গে production decision না বানিয়েই।

এই পার্থক্য দ্রুত গুরুত্বপূর্ণ হয়ে ওঠে। কোনো পরিবর্তনের সময় metric নড়লেই প্রমাণ হয় না যে পরিবর্তনটিই কারণ। Traffic spike source ভেঙে না দেখা পর্যন্ত growth মনে হতে পারে। Session replay-তেও অদ্ভুত কিছু দেখা যেতে পারে, কিন্তু শুধু সেটি দিয়ে কারণ জানা যায় না।

৬৩২ অর্গানিক ভিজিটর আসলে আমাকে কী বলেছিল

প্রথম মাসে ৬৩২ জন অর্গানিক ভিজিটর পাওয়া—এটাই আমি নিশ্চিতভাবে বলতে পারি। এই সংখ্যা একা প্রমাণ করে না যে আমি পুনরাবৃত্তিযোগ্য SEO formula পেয়েছি, প্রতিটি পরিবর্তন ranking বাড়িয়েছে, বা একই trend চলতেই থাকবে।

শেখার প্রকল্প হিসেবে আসল মূল্য ছিল পর্যবেক্ষণ করার মতো বাস্তব search traffic পাওয়া। আমি পরিবর্তন করতে পারতাম, কোন metric নড়েছে দেখতে পারতাম, তারপর আরও নির্দিষ্ট প্রশ্ন করতে পারতাম। SEO-কে এমন checklist হিসেবে দেখার চেয়ে এটি বেশি উপকারী ছিল যেখানে প্রতিটি “best practice” স্বয়ংক্রিয় ranking gain দেবে বলে ধরে নেওয়া হয়।

Font size আমাকে correlation আর causation আলাদা করতে শিখিয়েছে

আমাকে সবচেয়ে অবাক করেছিল font-size adjustments এবং performance metrics-এর মধ্যে correlation। এটিকে “ছোট UX detail ranking-এ প্রভাব ফেলতে পারে” বলা সহজ ছিল। আমার data এত শক্ত দাবি সমর্থন করে না।

আমি যা সত্যিই দেখেছি: font size বদলেছি, এরপর কিছু related metric নড়েছে। এমন controlled experiment করিনি যেখানে font size-কে অন্য সব change থেকে আলাদা করা হয়েছে, এবং search engine ওই নির্দিষ্ট CSS change-এর কারণে ranking বদলেছে—এমন প্রমাণও নেই। Font size line wrapping, layout এবং element position বদলাতে পারে, ফলে কিছু rendering বা UX measurement বদলাতে পারে। আমার ক্ষেত্রে exact mechanism এখনও প্রমাণিত নয়।

এ ধরনের experiment-এর জন্য বেশি নিরাপদ নিয়ম হলো: আগে observation লিখি, explanation পরে দিই। “Change Y-এর পরে metric X নড়েছে” data। “Y, X-এর কারণ” যথেষ্ট evidence না আসা পর্যন্ত hypothesis।

৮৩ ভিজিটরের দিনটি Webvisor খোলার আগে বেশি ভালো দেখাচ্ছিল

১৫ অক্টোবর সাইটটি সেই সময় পর্যন্ত সর্বোচ্চ daily total পায়: ৮৩ জন ভিজিটর। এটি অবশ্যই ৮৩ organic visitor বোঝায় না; আমি যে মোট দৈনিক traffic peak বিশ্লেষণ করছিলাম সেটিই ছিল। Source breakdown-এ একটি উল্লেখযোগ্য অংশ চীন থেকে এসেছে এবং direct traffic হিসেবে classify হয়েছে।

“Direct” শুনলে “কেউ URL নিজে টাইপ করেছে” ভাবা সহজ। কিন্তু Yandex Metrica-তে referrer না পাঠানো session-ও, আরও কিছু অবস্থার সঙ্গে, এই category-তে পড়তে পারে। Yandex তার traffic-source documentation-এ বিষয়টি ব্যাখ্যা করেছে। তাই source label একা visitor কে ছিল বা সে page কীভাবে পেয়েছে তা বলে না।

তারপর Yandex Webvisor-এ suspicious sessionগুলো দেখি। Page-টি এমন দেখাচ্ছিল যেন CSS disabled অবস্থায় খোলা হয়েছে। আমি যে pattern দেখেছি তার ভিত্তিতে অনুমান করি, ওই “user”দের মধ্যে প্রায় ২০ জন সম্ভবত bot ছিল।

CSS না থাকা ছিল clue, proof নয়

এই সংখ্যা এখনও estimate। অন্তত দুটি broad explanation সম্ভব।

  • Request সত্যিই automated হতে পারে। Scraper শুধু HTML নিতে পারে এবং stylesheet, image বা অন্য অপ্রয়োজনীয় asset বাদ দিতে পারে। Bandwidth বাঁচানো plausible কারণ, কিন্তু motive যে এটিই ছিল আমি confirm করিনি।
  • Replay original session পুরোপুরি reproduce করতে নাও পারে। Session-replay system recorded data থেকে page reconstruct করে। Yandex নিজেও এমন case document করে যেখানে recording visitor যা দেখেছিল তার থেকে আলাদা হতে পারে, যার মধ্যে stylesheet change-এর পরে CSS-related replay সমস্যা রয়েছে।

তাই “Webvisor page-টি CSS ছাড়া দেখিয়েছে” observation। “Visitor ইচ্ছা করে CSS বন্ধ করেছে” interpretation। “তাই সে bot” আরও একটি inference। Pattern দেখে bot hypothesis আমার কাছে plausible লেগেছে, কিন্তু replay-এর একটি বৈশিষ্ট্য দিয়ে নিশ্চিত classification করা যায় না।

Logs-এ আমি কী যাচাই করব

এ ধরনের anomaly-তে visual replay-এর চেয়ে server logs-কে বেশি বিশ্বাস করব। User-Agent, IP বা network range, request timing ও repetition, কোন asset চাওয়া হয়েছে, path, HTTP status code এবং referrer compare করব। Client শুধু HTML চেয়েছে নাকি CSS, JavaScript ও image-ও নিয়েছে, এবং একই pattern browser, JavaScript support, region, session duration ও landing page-এর মতো analytics dimension-এ দেখা যায় কি না তাও দেখব।

একটি signal-ও একা perfect নয়। কিন্তু একসঙ্গে দেখলে এগুলো “replay অদ্ভুত লাগছিল” কথাটির চেয়ে bot hypothesis-কে অনেক ভালোভাবে support বা weaken করতে পারে।

সবচেয়ে বড় শিক্ষা ranking নয়, measurement নিয়ে

কাজের বড় SEO উদ্যোগের আগে practical experience পেতে side project শুরু করেছিলাম। এক মাস পরে দরকারি ফল শুধু ৬৩২ জন অর্গানিক ভিজিটর ছিল না। অসম্পূর্ণ data থেকে কত দ্রুত আকর্ষণীয় গল্প তৈরি হয়ে যায়, সেটিও গুরুত্বপূর্ণ শিক্ষা ছিল।

৮৩ ভিজিটরের peak-কে growth বলতে পারতাম। Font change-এর পরে metric movement-কে “ranking factor” বলতে পারতাম। CSS-less প্রতিটি session-কে bot বলতে পারতাম। তিনটি গল্পই সহজ হতো। কোনোটিই যথেষ্ট প্রমাণিত হতো না।

পরের experiment-গুলোর জন্য বেশি defensible workflow হবে: traffic source আলাদা করা, changelog রাখা, before/after compare করা কিন্তু causation ধরে না নেওয়া, anomaly HTTP request level-এ দেখা, এবং analytics tool-কেও সীমাবদ্ধতাসহ measurement system হিসেবে দেখা।

আমার কাছে এখন পর্যন্ত experiment-এর সবচেয়ে মূল্যবান অংশ এটিই। SEO আমাকে study করার traffic দিয়েছে; কঠিন skill হলো data আসলে কী প্রমাণ করে তা ঠিক করা।

আমি এখনও logs দেখছি, বিশেষ করে চীন থেকে আসা direct traffic। Repeatable request pattern খুঁজে পেলে মূল প্রশ্নের অনেক শক্ত উত্তর পাব: ওই প্রায় ২০টি visit কি সত্যিই bot ছিল, এবং CSS skip করা কি তাদের behavior-এর অংশ ছিল?