জাভাস্ক্রিপ্ট SEO সম্পর্কে প্রাথমিক ধারণা

জাভাস্ক্রিপ্ট ওয়েব প্ল্যাটফর্মের একটি গুরুত্বপূর্ণ বিষয়। তার কারণ হল এটিতে একাধিক ফিচার আছে যা ওয়েবকে একটি শক্তিশালী অ্যাপ্লিকেশন প্ল্যাটফর্মে পরিণত করে। আপনি আপনার যে ওয়েব অ্যাপ্লিকেশনগুলিতে জাভাস্ক্রিপ্ট ব্যবহার করেছেন সেইগুলিকে Google সার্চের মাধ্যমে খুঁজে পাওয়ার যোগ্য করে রাখলে, আপনার ওয়েব অ্যাপের দেওয়া কনটেন্ট খুঁজছেন এমন নতুন ব্যবহারকারী পেতে পারবেন এবং বর্তমান ব্যবহারকারীদের নতুন করে আপনার কনটেন্টের প্রতি আগ্রহী করে তুলতে পারবেন। Chromium-এর একটি এভারগ্রিন ভার্সন ব্যবহার করে Google Search জাভাস্ক্রিপ্ট রান করলেও, কিছু জিনিস আপনি অপ্টিমাইজ করতে পারেন

Google সার্চ কীভাবে জাভাস্ক্রিপ্ট প্রসেস করে এবং Google সার্চের জন্য জাভাস্ক্রিপ্ট দিয়ে তৈরি ওয়েব অ্যাপ উন্নত করার পেশাদার পদ্ধতি সম্পর্কে বিবরণ এই নির্দেশিকায় দেওয়া আছে।

Googlebot-এর জাভাস্ক্রিপ্ট প্রসেস করার পদ্ধতি

Googlebot তিনটি প্রধান ধাপে জাভাস্ক্রিপ্ট দিয়ে তৈরি ওয়েব অ্যাপ প্রসেস করে:

  1. ক্রলিং
  2. রেন্ডারিং
  3. ইন্ডেক্সিং

Googlebot কোনও একটি পৃষ্ঠা ক্রল, রেন্ডার এবং ইন্ডেক্স করে।

Googlebot ক্রলের জন্য অপেক্ষার সারি থেকে কোনও একটি ইউআরএল বেছে নিয়ে, সেটিকে ক্রল করে এবং তারপরে প্রসেসিংয়ের জন্য পরের ধাপে পাঠিয়ে দেয়।প্রসেসিংয়ের ধাপে, লিঙ্কগুলিকে আলাদা করা হয় যা আবার ক্রলের জন্য অপেক্ষার সারিতে ফিরে যায় এবং রেন্ডার করার জন্য পৃষ্ঠাকে অপেক্ষার সারিতে রাখা হয়।পৃষ্ঠা রেন্ডার করার জন্য অপেক্ষার সারি থেকে রেন্ডারের কাছে চলে যায় যা রেন্ডার হওয়া HTML-কে আবার প্রসেসিংয়ে পাঠিয়ে দেয়। প্রসেসিংয়ের পরে কন্টেন্ট ইন্ডেক্স হয় এবং লিঙ্ক বেছে নিয়ে ক্রলের জন্য অপেক্ষার সারিতে পাঠিয়ে দেওয়া হয়।

HTTP অনুরোধের পরে Googlebot যখন ক্রলিংয়ের জন্য অপেক্ষার সারিতে থাকা ইউআরএল ফেচ করে তখন সেটি দেখে নেয় যে ক্রলিংয়ের অনুমতি আছে কিনা। Googlebot robots.txt ফাইলটি পরীক্ষা করে। ইউআরএলটির জন্য অনুমতি নেই এই হিসেবে মার্ক-আপ করা থাকলে, Googlebot এই ইউআরএলের জন্য কোনও HTTP অনুরোধ করে না এবং ইউআরএলটি এড়িয়ে যায়।

এরপরে, Googlebot HTML লিঙ্কের href অ্যাট্রিবিউটের হিসেবে অন্য ইউআরএলের প্রতিক্রিয়া পার্স করে এবং ক্রল করার জন্য অপেক্ষার তালিকাতে ইউআরএলগুলি যোগ করে। লিঙ্কটি শনাক্ত করা আটকাতে, nofollow mechanism ব্যবহার করা হয়।

ক্লাসিক ওয়েবসাইট অথবা সার্ভার-সাইড রেন্ডার করা হচ্ছে এমন পৃষ্ঠা যেখানে HTTP প্রতিক্রিয়ায় থাকা HTML-এ সব কন্টেন্ট থাকে, সেই ক্ষেত্রে কোনও একটি ইউআরএল ক্রল এবং HTML প্রতিক্রিয়া পার্স করার কাজটি ভাল হয়। কিছু জাভাস্ক্রিপ্ট সাইটে অ্যাপ শেল মডেল ব্যবহার করা হতে পারে। অ্যাপ শেল মডেল যাতে প্রাথমিক HTML-এ আসল কন্টেন্ট থাকে না এবং জাভাস্ক্রিপ্টের তৈরি করা আসল পৃষ্ঠার কন্টেন্ট দেখতে Googlebot-এর জাভাস্ক্রিপ্ট ব্যবহার করার প্রয়োজন হয়।

যদি না রোবট মেটা ট্যাগ বা হেডার Googlebot-কে পৃষ্ঠা ইন্ডেক্স করতে নিষেধ করে, Googlebot রেন্ডার করার জন্য সব পৃষ্ঠা অপেক্ষার সারিতে রাখে। পৃষ্ঠা এই অপেক্ষার সারিতে কয়েক সেকেন্ড থাকার কথা, কিন্তু তার থেকেও আরও বেশি সময় লাগতে পারে। Googlebot-এর রিসোর্স একবার অনুমতি দিলেই, কোনও একটি হেডলেস Chromium পৃষ্ঠা রেন্ডার এবং জাভাস্ক্রিপ্ট ব্যবহার করবে। Googlebot লিঙ্কের জন্য রেন্ডার করা হচ্ছে এমন HTML আবার পার্স করে এবং ক্রলিংয়ের জন্য যে ইউআরএল পায় তা অপেক্ষার সারিতে রাখে। পৃষ্ঠা ইন্ডেক্স করতেও Googlebot রেন্ডার করা হচ্ছে এমন HTML ব্যবহার করে।

মনে রাখবেন যে সার্ভার-সাইড বা প্রি-রেন্ডারিং/0} এখনও একটি দারুণ পদ্ধতি কারণ এটি আপনার ওয়েবসাইটকে ব্যবহারকারী এবং ক্রলারের জন্য আরও দ্রুত ব্যবহারযোগ্য করে এবং সব বট জাভাস্ক্রিপ্ট রান করতে পারে না।

অনন্য শীর্ষক এবং স্নিপেট ব্যবহার করে পৃষ্ঠার বিবরণ দেওয়া

ব্যবহারকারীরা যে কন্টেন্ট খুঁজছে তার সেরা ফলাফল দ্রুত শনাক্ত করতে, তাদের অনন্য, বিবরণযুক্ত শীর্ষক এবং সহায়তাকারী মেটা বিবরণ সাহায্য করে এবং আমাদের নির্দেশিকায় ভাল শীর্ষক এবং বিবরণ কীভাবে লেখা হয় তার বিবরণ দেওয়া হয়েছে।

মেটা বিবরণের মতো শীর্ষক সেট বা পরিবর্তন করতে আপনি জাভাস্ক্রিপ্ট ব্যবহার করতে পারেন।

মানানসই কোড লেখার পদ্ধতি

ব্রাউজার এমন অনেক কোডে লেখা এপিআই এবং জাভাস্ক্রিপ্ট অফার করে যা খুব তাড়াতাড়ি বদলে যায়। এপিআই এবং জাভাস্ক্রিপ্টের ফিচার এমন কিছু কোড ব্যবহার করে যা Googlebot পরীক্ষা করতে পারে না। Googlebot আপনার লেখা কোড পরীক্ষা করতে পারবে কিনা তা ভাল করে দেখে নিতে আমাদের জাভাস্ক্রিপ্ট সংক্রান্ত সমস্যার সমাধান করার জন্য নির্দেশিকা দেখুন।

প্রয়োজনীয় HTTP স্ট্যাটাস কোড ব্যবহার

পৃষ্ঠা ক্রল করার সময়ে কোনও সমস্যা হলে কী হয়েছে তা জানতে Googlebot HTTP স্ট্যাটাস কোড ব্যবহার করে।

যদি কোনও 404 কোড এবং লেখা থাকে পৃষ্ঠা খুঁজে পাওয়া যায়নি অথবা পৃষ্ঠায় 401 কোড লেখা আছে যা লগ-ইন সংক্রান্ত সমস্যার জন্য দেখা দিয়েছে, এমন ক্ষেত্রে পৃষ্ঠা ক্রল বা ইন্ডেক্স করার কথা নয়। সেই বিষয়ে Googlebot-কে জানাতে হলে প্রয়োজনীয় স্ট্যাটাস কোড ব্যবহার করতে হবে। নতুন ইউআরএলে কোনও পৃষ্ঠা সরানো হলে Googlebot-কে জানাতে HTTP স্ট্যাটাস কোড ব্যবহার করতে পারেন, যাতে সেই হিসেবে ইন্ডেক্স আপডেট হয়ে যায়।

এখানে HTTP স্ট্যাটাস কোডের তালিকা এবং কখন তা ব্যবহার করতে হবে তার উল্লেখ করা হল:

HTTP স্ট্যাটাস কখন ব্যবহার করবেন
301 / 302 কোনও একটি নতুন ইউআরএলে পৃষ্ঠা সরানো হলে।
401 / 403 অনুমতি সংক্রান্ত সমস্যা থাকায় পৃষ্ঠা দেখা যাচ্ছে না।
404 / 410 পৃষ্ঠা আর দেখা যাবে না।
5xx সার্ভার সাইড প্রক্রিয়াতে কোনও সমস্যা আছে।

সতর্কভাবে মেটা রোবট ট্যাগের ব্যবহার

Googlebot-কে কোনও একটি পৃষ্ঠা ইন্ডেক্স করা থেকে আটকাতে বা মেটা রোবট ট্যাগের মাধ্যমে নিচে উল্লেখ করা লিঙ্ক আপনি বন্ধ করতে পারেন। যেমন, পৃষ্ঠার হেডারে নিচে উল্লেখ করা মেটা ট্যাগ যোগ করলে Googlebot পৃষ্ঠাটি ইন্ডেক্স করতে পারে না:

<!-- Googlebot won't index this page or follow links on this page -->
<meta name="robots" content="noindex, nofollow">

কোনও পৃষ্ঠায় মেটা robots ট্যাগ যোগ করতে বা সেটির কন্টেন্টে পরিবর্তন করতে আপনি জাভাস্ক্রিপ্ট ব্যবহার করতে পারেন। কোনও এপিআই কলে কন্টেন্ট পাওয়া না গেলে বর্তমান পৃষ্ঠার ইন্ডেক্সিং বন্ধ করতে জাভাস্ক্রিপ্টের সাহায্যে কীভাবে মেটা robots ট্যাগে পরিবর্তন করতে হয় তা নিম্নলিখিত উদাহরণ কোডে দেওয়া হল।

fetch('/api/products/' + productId)
  .then(function (response) { return response.json(); })
  .then(function (apiResponse) {
    if (apiResponse.isError) {
      // get the robots meta tag
      var metaRobots = document.querySelector('meta[name="robots"]');
      // if there was no robots meta tag, add one
      if (!metaRobots) {
        metaRobots = document.createElement('meta');
        metaRobots.setAttribute('name', 'robots');
        document.head.appendChild(metaRobots);
      }
      // tell Googlebot to exclude this page from the index
      metaRobots.setAttribute('content', 'noindex');
      // display an error message to the user
      errorMsg.textContent = 'This product is no longer available';
      return;
    }
    // display product information
    // ...
  });
    

জাভাস্ক্রিপ্ট রান করার আগে Googlebot যদি robots মেটা ট্যাগে noindex খুঁজে পায় তাহলে সেটি আর পৃষ্ঠা রেন্ডার বা ইন্ডেক্স করে না।

ছবি ও লেজি-লোড করা কন্টেন্ট সংক্রান্ত সমস্যার সমাধান

ব্যান্ডউইথ এবং পারফর্ম্যান্সে ছবি যথেষ্ট মূল্যবান হতে পারে। তাই সুকৌশলে লেজি লোডিং কন্টেন্ট ব্যবহার করা হলে, ব্যবহারকারীরা যখনই আপনার ছবি দেখতে যাবেন শুধুমাত্র তখনই ছবি লোড হবে। সার্চের পক্ষে উপযুক্ত পদ্ধতিতে আপনি লেজি-লোড ব্যবহার করছেন কিনা তা নিশ্চিত করতে আমাদের লেজি-লোড সংক্রান্ত নির্দেশিকা পড়ুন।