আপনার পেজ গুগল র‍্যাঙ্কিংয়ে ১ নম্বরে থাকতে পারে, তবুও ChatGPT-এর কাছে তা অদৃশ্য থাকতে পারে

গুগলের ক্রলার আপনার জাভাস্ক্রিপ্ট রান করে, রেন্ডার করা HTML-কে তার ইনডেক্সে নিয়ে আসে এবং ক্লায়েন্ট-সাইড রেন্ডার করা সাইটকে সার্চ রেজাল্টের প্রথম পাতায় স্থান দিতে পারে। একই পেজ যখন ChatGPT বা Bing-এর AI সার্চের মাধ্যমে খোঁজা হয়, তখন তা হারিয়ে যায় কারণ সেই সার্ভিসগুলোকে চালিত করা বটগুলো কখনোই জাভাস্ক্রিপ্ট এক্সিকিউট (execute) করে না। এর ফলে একটি টপ-র‍্যাঙ্কিং সাইট তৈরি হয় যা কোনো AI অ্যাসিস্ট্যান্ট খুঁজে পায় না।

কেন AI ক্রলার আপনার কন্টেন্ট মিস করে

সবচেয়ে বেশি ব্যবহৃত দুটি AI ক্রলার—OpenAI-এর GPTBot এবং Anthropic-এর ClaudeBot—একেবারেই জাভাস্ক্রিপ্ট রেন্ডার করে না। Vercel এবং MERJ-এর করা ডিসেম্বর ২০২৪-এর একটি গবেষণায় দেখা গেছে যে, উভয় বটই কেবল র (raw) HTML এবং যেকোনো লিঙ্ক করা জাভাস্ক্রিপ্ট ফাইল ডাউনলোড করে এবং সেখানেই থেমে যায়। স্ক্রিপ্টগুলো কখনোই রান করা হয় না, তাই বটগুলো কেবল একটি ফাঁকা কাঠামো (empty shell) দেখতে পায়।

বিপরীতে, Googlebot পেজটিকে কিউতে (queue) রাখে, স্ক্রিপ্টগুলো এক্সিকিউট করে এবং ফলাফল হিসেবে প্রাপ্ত DOM ইনডেক্স করে। এই মৌলিক পার্থক্যের কারণে একটি সাইট যা শুধুমাত্র ক্লায়েন্ট-সাইড ফ্রেমওয়ার্ক (React, Vue, ইত্যাদি) দিয়ে তৈরি, তা গুগলের কাছে পুরোপুরি দৃশ্যমান হতে পারে কিন্তু AI-চালিত সার্চের কাছে একটি ফাঁকা পাতার মতো থেকে যায়।

Google বনাম AI: রেন্ডারিংয়ের ব্যবধান

গুগল দীর্ঘকাল ধরে হেডলেস রেন্ডারিংয়ে (headless rendering) বিনিয়োগ করেছে। এর বট জটিল single-page application প্রসেস করতে পারে, সেগুলোকে হাইড্রেট (hydrate) করতে পারে এবং প্রাথমিক লোডিংয়ের পরে আসা স্ট্রাকচার্ড ডেটা এক্সট্রাক্ট করতে পারে। তবে AI ক্রলারগুলো এখনও "শুধুমাত্র ডাউনলোড" মোডে রয়েছে। তারা react-helmet-এর মতো টুল দিয়ে ইনজেক্ট করা JSON-LD পার্স করতে পারে, তবে তা কেবল তখনই সম্ভব যদি সেই মার্কআপটি র (raw) HTML-এ উপস্থিত থাকে।

ডেভেলপার টুলস বিভ্রান্তিকর হতে পারে। ক্রোমের Elements প্যানেল জাভাস্ক্রিপ্ট রান করার পরের পেজটি দেখায়, যা একটি ভুল ধারণা দেয় যে মার্কআপটি সোর্সের অংশ। “view-source” (অথবা ব্রাউজার ছাড়া curl) ব্যবহার করলে বোঝা যায় একটি বট আসলে কী পায়। যদি সেখানে কন্টেন্ট বা স্ট্রাকচার্ড ডেটা না থাকে, তবে AI ক্রলারগুলো তা কখনোই দেখতে পাবে না।

সমস্যাটি কীভাবে প্রকাশ পায়

একটি সাধারণ React সাইট যা ক্লায়েন্ট-সাইড রেন্ডারিংয়ের ওপর নির্ভর করে, সেটি "best coffee maker" বা "how to fix a leaky faucet"-এর মতো কিওয়ার্ডের জন্য গুগলে উচ্চ র‍্যাঙ্ক পেতে পারে। তবুও একজন ব্যবহারকারী যখন ChatGPT-কে জিজ্ঞাসা করবেন, “What are the best coffee makers?”, তখন তিনি এমন উত্তর পাবেন যেখানে সেই সাইটটি সম্পূর্ণ বাদ পড়ে যাবে। একই ব্যবধান Bing-এর AI-এর ক্ষেত্রেও বিদ্যমান, যা ChatGPT-এর এজেন্ট কুয়েরির প্রায় ৯২% পরিষেবা প্রদান করে। Bing-এর জাভাস্ক্রিপ্ট রেন্ডারিং ক্ষমতা সীমিত, তাই একটি ক্লায়েন্ট-সাইড নির্ভর সাইট উভয় প্রধান AI সার্চ প্রোভাইডারের কাছেই অদৃশ্য থাকতে পারে।

সমস্যাটি নিঃশব্দে ঘটে। গুগল র‍্যাঙ্কিং ট্র্যাক করা SEO ড্যাশবোর্ডগুলো একটি ভালো অবস্থানের রিপোর্ট দেবে, অথচ AI অ্যাসিস্ট্যান্ট থেকে সাইটের ট্রাফিক থাকবে শূন্য। এই অমিলটি ব্যবসার জন্য ডিসকভারি ট্রাফিকের একটি ক্রমবর্ধমান অংশ হারানো নিশ্চিত করতে পারে, বিশেষ করে যখন আরও বেশি ব্যবহারকারী দ্রুত উত্তরের জন্য কনভারসেশনাল ইন্টারফেসের ওপর নির্ভর করছেন।

ডেভেলপাররা কী ভুল করছেন

অনেক টিম ধরে নেয় যে গুগল যদি পেজটি পড়তে পারে, তবে যেকোনো ক্রলারই তা পারবে। তারা প্রায়ই:

  • পেজ লোড হওয়ার পর JSON-LD ইনজেক্ট করার জন্য react-helmet বা অনুরূপ লাইব্রেরির ওপর নির্ভর করে, এই বিশ্বাসে যে মার্কআপটি "সেখানে" আছে।
  • শুধুমাত্র ব্রাউজারের Elements ভিউতে পরীক্ষা করে, র (raw) সোর্সে নয়।
  • একটি সাধারণ curl চেক এড়িয়ে যায়, ফলে তারা বুঝতে পারে না যে হেডলাইন বা মূল শব্দগুলো প্রাথমিক HTML রেসপন্সে কখনোই উপস্থিত থাকে না।

এই পদ্ধতিগুলো SEO সুস্থতার একটি বিভ্রম তৈরি করে, অথচ সাইটটিকে AI সার্চের কাছে অন্ধ করে রাখে।

এটি কীভাবে সমাধান করবেন

এর প্রতিকার হলো প্রথম HTTP রেসপন্সেই আসল কন্টেন্ট পৌঁছে দেওয়া। তিনটি প্রমাণিত পদ্ধতি কাজ করে:

  • Server-Side Rendering (SSR) – সার্ভার জাভাস্ক্রিপ্ট রান করে, সম্পূর্ণ HTML রেন্ডার করে এবং ক্লায়েন্টের কাছে পাঠায়। পেজটি আগে থেকেই কন্টেন্টসহ আসে।
  • Static Generation – বিল্ড টাইমে, ফ্রেমওয়ার্কটি এমন স্ট্যাটিক HTML ফাইল তৈরি করে যাতে সমস্ত কন্টেন্ট অন্তর্ভুক্ত থাকে। কোনো রানটাইম রেন্ডারিংয়ের প্রয়োজন হয় না।
  • Prerendering – একটি মিডলওয়্যার সার্ভিস পেজটি একবার রেন্ডার করে, ফলাফলটি ক্যাশ (cache) করে এবং ক্রলারদের কাছে স্ট্যাটিক স্ন্যাপশটটি পৌঁছে দেয়।

Next.js (React) এবং Nuxt (Vue)-এর মতো ফ্রেমওয়ার্কগুলো এই কৌশলগুলোর জন্য বিল্ট-ইন সাপোর্ট প্রদান করে। শুধুমাত্র ক্লায়েন্ট-সাইড বান্ডেল থেকে উপরের যেকোনো একটি পদ্ধতিতে পরিবর্তন করলে নিশ্চিত হওয়া যায় যে Googlebot এবং AI ক্রলার উভয়ই একই কন্টেন্ট দেখতে পাচ্ছে।

একটি দ্রুত পরীক্ষা (sanity test):

curl -s https://yourpage.com | grep "your headline text"

যদি কমান্ডটি কিছুই রিটার্ন না করে, তবে হেডলাইনটি র (raw) HTML-এ নেই এবং AI বটগুলো এটি মিস করবে।

যা খেয়াল রাখতে হবে

বর্তমান অবস্থাটি একটি স্পষ্ট অমিল: গুগলের রেন্ডারিং ইঞ্জিন অত্যন্ত উন্নত; কিন্তু AI ক্রলারগুলো তেমন নয়। এই ব্যবধানটি উন্মোচনকারী গবেষণাটি মাত্র কয়েক মাস পুরনো, এবং OpenAI ও Anthropic উভয়ই তাদের ইনডেক্সিং পাইপলাইন উন্নত করার আগ্রহ প্রকাশ করেছে। তবুও কোনো পাবলিক রোডম্যাপ নিশ্চিত করে না যে শীঘ্রই পূর্ণাঙ্গ জাভাস্ক্রিপ্ট এক্সিকিউশন যুক্ত করা হবে।

ইতিমধ্যে, এই সমস্যাটি উপেক্ষা করার পরিণাম বদলে গেছে। দশ বছর আগে, এর শাস্তি ছিল Google-এর ধীরগতির ইনডেক্সিং; আজ, এর পরিণাম হলো দ্রুততম বর্ধনশীল ডিসকভারি চ্যানেল—AI-চালিত সার্চ থেকে বাদ পড়া। যে কোম্পানিগুলো অর্গানিক ট্রাফিকের ওপর নির্ভরশীল, তাদের উচিত র-সোর্স টুলস দিয়ে তাদের পেজগুলো অডিট করা, যেখানে সম্ভব সেখানে SSR বা স্ট্যাটিক জেনারেশন গ্রহণ করা এবং AI-নির্দিষ্ট ইনডেক্সিং রিপোর্টগুলো পাওয়া মাত্রই তা পর্যবেক্ষণ করা।

মূল কথা: একটি সাইট যা Google র‍্যাঙ্কিংয়ে নিখুঁত দেখায়, সেটি ChatGPT এবং Bing AI-এর কাছে অদৃশ্য হয়ে থাকতে পারে যদি এটি শুধুমাত্র ক্লায়েন্ট-সাইড রেন্ডারিংয়ের ওপর নির্ভর করে। প্রাথমিক HTML-এর মাধ্যমে—SSR, স্ট্যাটিক জেনারেশন বা প্রিরেন্ডারিংয়ের সাহায্যে—কনটেন্ট প্রদান করা এই ব্যবধান কমিয়ে দেয় এবং প্রথাগত ও AI সার্চ উভয় ক্ষেত্রেই সাইটটি খুঁজে পাওয়ার বিষয়টি নিশ্চিত করে।