রিডাইরেক্ট পরীক্ষক

একটি URL-এর HTTP রিডাইরেক্ট চেইন অনুসরণ করুন। প্রতিটি স্ট্যাটাস ও গন্তব্য দেখুন এবং পর্যবেক্ষণ করা রিপোর্ট JSON হিসেবে ডাউনলোড করুন।

শুধু HTTP রিডাইরেক্ট পরীক্ষা করে; JavaScript রিডাইরেক্ট, meta refresh ও ব্রাউজারের আচরণ পরীক্ষার বাইরে।

রিডাইরেক্ট পরীক্ষক দিয়ে একটি সর্বসাধারণের জন্য উন্মুক্ত URL-এর HTTP রিডাইরেক্টগুলো অনুসরণ করুন এবং শেষে পাওয়া প্রতিক্রিয়াটি দেখুন। রিপোর্টে পর্যবেক্ষণ করা ঠিকানা, স্ট্যাটাস কোড ও রিডাইরেক্টের গন্তব্য দেখা যায়। লিংকটি যেখানে যাওয়ার কথা, তার সঙ্গে এই তথ্য মিলিয়ে নিন: একটি সম্পূর্ণ চেইনও ভুল পৃষ্ঠায় পৌঁছাতে পারে, আর অসম্পূর্ণ পরীক্ষা চূড়ান্ত গন্তব্য নিশ্চিত করে না।

যে URL পরীক্ষা করতে চান, সেটি দিন

মানুষ যে ঠিকানা ব্যবহার করে, সেটি দিয়েই শুরু করুন; পাথ ও প্রাসঙ্গিক কোয়েরি প্যারামিটারও রাখুন। শুধু হোমপেজ পরীক্ষা করলে পুরোনো পণ্যের লিংকের কী হয়, তা জানা যায় না। যেমন, http://example.com/products/old-mug/ একটি শুরুর ঠিকানার উদাহরণ; এর বদলে আপনি যে উন্মুক্ত URL পরীক্ষা করতে চান, সেটি দিন।

জমা দেওয়ার আগে প্রত্যাশিত গন্তব্য ঠিক করুন এবং স্থানান্তরটি স্থায়ী না সাময়িক হওয়ার কথা, তা নির্ধারণ করুন। পণ্যের URL বদলালে নতুন ঠিকানায় একই পণ্য প্রত্যাশিত গন্তব্য হতে পারে। সাময়িকভাবে সেবা বন্ধ থাকলে পুরোনো ঠিকানাটিকেই দীর্ঘমেয়াদি প্রবেশপথ হিসেবে রাখতে হতে পারে।

একটি সম্পূর্ণ HTTP বা HTTPS URL দিন এবং পরীক্ষা চালান। Screpy একটি GET অনুরোধ পাঠায় ও সমর্থিত HTTP রিডাইরেক্ট অনুসরণ করে। এটি আপনার ডোমেইনের সব বিকল্প ঠিকানা খুঁজে বের করে না, ব্রাউজারে লগইন করা সেশন ব্যবহার করে না এবং স্ক্রিপ্ট চালায় না। আলাদা পাথ, প্রোটোকল বা হোস্টনেম তুলনা করতে চাইলে প্রতিটি শুরুর URL আলাদাভাবে জমা দিন।

রিডাইরেক্ট চেইন ও শেষ প্রতিক্রিয়া পড়ুন

প্রতিক্রিয়ার সারিগুলো ক্রমানুসারে পড়ুন। প্রতিটি সারিতে অনুরোধ করা URL, তার HTTP স্ট্যাটাস এবং সমর্থিত রিডাইরেক্টে দেওয়া Location গন্তব্য থাকে। Location মান পূর্ণ ঠিকানায় রূপান্তর করে দেখানো হয়। কোনো প্রতিক্রিয়া /products/new-mug/ দেখালে রিপোর্ট সেই প্রতিক্রিয়া পাঠানো URL-এর ভিত্তিতে পাথটি সমাধান করে। তাই দেখানো ঠিকানা মূল হেডারের হুবহু লেখার মতো নাও হতে পারে।

এই উদাহরণের চেইনে তিনটি প্রতিক্রিয়া ও দুটি রিডাইরেক্ট রয়েছে। এটি বোঝানোর জন্য তৈরি উদাহরণ, কোনো বাস্তব ওয়েবসাইট পরীক্ষার ফল নয়:

http://example.com/products/old-mug/       301 → https://example.com/products/old-mug/
https://example.com/products/old-mug/      301 → https://example.com/products/new-mug/
https://example.com/products/new-mug/      200

এখানে প্রথম স্ট্যাটাস 301, শেষ স্ট্যাটাস 200 এবং চূড়ান্ত URL হলো পণ্যের নতুন ঠিকানা। শেষের 200 সারিটি একটি প্রতিক্রিয়া, অতিরিক্ত রিডাইরেক্ট নয়। সম্পূর্ণ পরীক্ষায় রিডাইরেক্টের সংখ্যা পর্যবেক্ষণ করা প্রতিক্রিয়াগুলোর মধ্যকার স্থানান্তর বোঝায়। পরীক্ষা আগেই থেমে গেলে সংরক্ষিত সারিগুলোর সঙ্গে সংখ্যাটি পড়ুন; একে পুরো চেইনের দৈর্ঘ্য ধরে নেবেন না।

এই বিবরণগুলোর সঙ্গে ফলাফলের রং মিলিয়ে দেখুন:

  • সবুজ: কোনো রিডাইরেক্ট অনুসরণ না করেই সরাসরি সফল প্রতিক্রিয়া পাওয়া গেছে। URL-টিই গন্তব্য হওয়ার কথা থাকলে এই ফল কাজে লাগে।
  • হলুদ: রিডাইরেক্ট, এমনকি সেটি সফল প্রতিক্রিয়ায় শেষ হলেও, অথবা অন্য কোনো প্রতিক্রিয়া যা পর্যালোচনা দরকার। হলুদ রিডাইরেক্ট মানেই ভাঙা লিংক নয়।
  • লাল: শেষ প্রতিক্রিয়ায় HTTP ত্রুটি, যেমন 404 বা 500। কী ঠিক করবেন, তা নির্ধারণের আগে গন্তব্য ও কোড পড়ুন।
  • ধূসর: পরীক্ষায় শেষ প্রতিক্রিয়া নির্ধারণ করা যায়নি। সংরক্ষিত সারিগুলো আংশিক প্রমাণ।

রংগুলো প্রতিক্রিয়ার শ্রেণি বোঝায়। এগুলো পৃষ্ঠার বিষয়বস্তুর স্কোর দেয় না, ইনডেক্সিং প্রমাণ করে না এবং রিডাইরেক্ট আপনার উদ্দেশ্যের সঙ্গে মেলে কি না, তা নির্ধারণ করে না।

301, 302, 303, 307 ও 308 বুঝুন

আগে প্রত্যাশিত আচরণ ঠিক করুন, তারপর স্ট্যাটাস বেছে নিন। এই পরীক্ষক নিচের পাঁচটি রিডাইরেক্ট কোড অনুসরণ করে:

কোড HTTP-তে অর্থ কী পর্যালোচনা করবেন
301 স্থায়ী স্থানান্তর ভবিষ্যতের লিংকগুলো কি নতুন ঠিকানা ব্যবহার করবে?
302 সাময়িক স্থানান্তর মূল ঠিকানাটি কি ব্যবহার করা অব্যাহত থাকবে?
303 প্রতিক্রিয়ার জন্য অন্য রিসোর্স দেখুন এটি কি ইচ্ছাকৃত পরবর্তী রিসোর্স, স্থায়ী প্রতিস্থাপন নয়?
307 অনুরোধের পদ্ধতি অপরিবর্তিত রাখা সাময়িক রিডাইরেক্ট পদ্ধতি না বদলে সাময়িক রিডাইরেক্ট কি উদ্দেশ্য ছিল?
308 অনুরোধের পদ্ধতি অপরিবর্তিত রাখা স্থায়ী রিডাইরেক্ট পদ্ধতি না বদলে স্থায়ী স্থানান্তর কি উদ্দেশ্য ছিল?

পার্থক্যগুলো RFC 9110-এর HTTP রিডাইরেক্টের সংজ্ঞা অনুসরণ করে। শুধু GET দিয়ে পরীক্ষা করলে পাঠানো POST অনুরোধ বা তার বডির কী হয়, তা যাচাই করা যায় না। এখানে 307 বা 308 দেখা মানে ফর্ম জমা দেওয়ার প্রক্রিয়া পরীক্ষা করা নয়।

রিডাইরেক্ট সম্পর্কে Google-এর নির্দেশনা স্থায়ী URL পরিবর্তনের জন্য সার্ভার থেকে স্থায়ী রিডাইরেক্ট দেওয়ার পরামর্শ দেয়। Google গন্তব্যকে ক্যানোনিক্যাল URL হিসেবে বেছে নেওয়ার পক্ষে এগুলোকে সংকেত হিসেবে ব্যবহার করে; সাময়িক রিডাইরেক্টের উদ্দেশ্য আলাদা। তাই প্রতিটি 302 SEO ত্রুটি নয়, আর 301 দিলেই সঙ্গে সঙ্গে সার্চ ফল বদলাবে—এমন নিশ্চয়তাও নেই।

স্থায়ী স্থানান্তরে অপ্রত্যাশিতভাবে সাময়িক কোড ফিরলে সেই কোড তৈরি করা নিয়ম পরীক্ষা করুন। ইচ্ছাকৃত সাময়িক বিকল্প পথের ক্ষেত্রে শুধু ফলকে ভালো দেখানোর জন্য স্ট্যাটাস বদলাবেন না।

গন্তব্যটি সঠিক পৃষ্ঠা কি না দেখুন

সম্পূর্ণ চেইন দেখায় এই অনুরোধ কোথায় শেষ হয়েছে। এর থেকে পৃষ্ঠাটি উপযুক্ত প্রতিস্থাপন কি না জানা যায় না। পরীক্ষক প্রতিক্রিয়ার স্ট্যাটাস ও রিডাইরেক্টের গন্তব্য পড়ে; শেষ পৃষ্ঠার বিষয়বস্তু পরীক্ষা করে না।

পরীক্ষা চালানোর আগে ঠিক করা গন্তব্যের সঙ্গে চূড়ান্ত URL মিলিয়ে নিন। হোস্টনেম, পাথ ও প্রাসঙ্গিক কোয়েরি প্যারামিটার দেখুন। পুরোনো পণ্যের লিংক 200 দিয়ে হোমপেজে শেষ হলেও দর্শকের কাজ অসম্পূর্ণ থাকতে পারে। গন্তব্য খুলে দেখুন সেখানে প্রত্যাশিত পণ্য, নিবন্ধ বা অন্য প্রাসঙ্গিক বিকল্প আছে কি না। উপযুক্ত বিকল্প না থাকলে শুধু রিপোর্ট থেকে ত্রুটি সরানোর জন্য একটি গন্তব্য বানিয়ে নেবেন না।

HTTPS থেকে HTTP-তে যাওয়ার সতর্কতাও দেখুন। রিডাইরেক্টের নিয়ম প্রত্যাশিত নিরাপদ ঠিকানা দেখাচ্ছে কি না নির্ধারণ করুন এবং অনিচ্ছাকৃতভাবে HTTP-তে যাওয়া ঠিক করুন। সতর্কতা এই স্থানান্তর বোঝায়; এটি গন্তব্যের নিরাপত্তা নিরীক্ষা নয়।

যে পৃষ্ঠা সার্চে থাকার কথা, তার ঘোষিত পছন্দের URL আলাদাভাবে পড়তে ক্যানোনিক্যাল ট্যাগ পরীক্ষক ব্যবহার করুন। সফল রিডাইরেক্ট ক্যানোনিক্যাল ঘোষণা, noindex না থাকা বা Google-এর ইনডেক্সিং সিদ্ধান্ত নিশ্চিত করে না। সঠিক HTTP চেইন ও সঠিক পৃষ্ঠা-স্তরের ঘোষণা দুটি আলাদা পর্যবেক্ষণ।

অসম্পূর্ণ চেইনের কারণ খুঁজুন

চূড়ান্ত URL বা শেষ স্ট্যাটাস না পাওয়া গেলে আসলে সংরক্ষিত শেষ প্রতিক্রিয়া দিয়ে শুরু করুন। Location মান দেখায় সেই প্রতিক্রিয়া অনুরোধকে কোথায় পাঠাতে চেয়েছিল। পরের ঠিকানায় পৌঁছানো গেছে বা সেটি সফল প্রতিক্রিয়া দিয়েছে—তা এর থেকে প্রমাণিত হয় না। ফল না পাওয়া ও পর্যবেক্ষণ করা HTTP ত্রুটিও আলাদা: সময়সীমা পেরোলে নিশ্চিত শেষ কোড থাকে না, কিন্তু পাওয়া প্রতিক্রিয়া স্পষ্টভাবে 404 বা 403 ফিরিয়ে দিতে পারে।

সংরক্ষিত সারি দিয়ে অনুসন্ধানের পরিসর ছোট করুন:

  • একই ঠিকানা আবার আসা: উদাহরণের A → B → A একটি লুপ। অনুরোধকে আগেই যাওয়া URL-এ ফেরত পাঠায় এমন নিয়ম দেখুন, যেমন হোস্টনেম বা পাথের পরস্পরবিরোধী নিয়ম।
  • পুনরাবৃত্তি ছাড়া দীর্ঘ ধারা: পরীক্ষক সর্বোচ্চ পাঁচটি রিডাইরেক্ট অনুসরণ করে। এই সীমায় পৌঁছানো লুপ প্রমাণ করে না এবং চেইনের বাকি অংশও দেখায় না। শেষ সংরক্ষিত গন্তব্য আলাদা করে পরীক্ষা করুন।
  • ব্যবহারযোগ্য গন্তব্য ছাড়া রিডাইরেক্ট স্ট্যাটাস: সংশ্লিষ্ট প্রতিক্রিয়ায় বৈধ Location আছে কি না দেখুন। অনুপস্থিত বা অবৈধ গন্তব্যকে সম্পূর্ণ স্থানান্তর বলা যায় না।
  • পরের প্রতিক্রিয়া নেই: উন্মুক্ত প্রবেশাধিকার, ডোমেইন নাম থেকে ঠিকানা নির্ধারণ, সংযোগ বা নিরাপদ সংযোগের সমস্যা পরীক্ষায় বাধা দিতে পারে। পুরো URL চেইনের জন্য আট সেকেন্ড থাকে, প্রতিটি ধাপের জন্য আট সেকেন্ড নয়। প্রতিক্রিয়ার হেডারের সীমা এবং ব্যক্তিগত বা অসমর্থিত গন্তব্যও পরীক্ষা থামাতে পারে।

গন্তব্যে প্রবেশাধিকার বা অনুরোধের সংখ্যার সীমা দেখা গেলে বিষয়বস্তু মুছে গেছে ধরে নেওয়ার আগে সেটি তদন্ত করুন। এই অনুরোধ আপনার লগইন করা ব্রাউজারের থেকে ভিন্ন প্রতিক্রিয়া পেতে পারে। JavaScript রিডাইরেক্ট, meta refresh ও ব্রাউজারের আচরণ পরীক্ষার বাইরে, তাই HTTP ফল পর্দায় দেখা প্রতিটি নেভিগেশন ব্যাখ্যা করতে পারে না।

কারণ ঠিক করে একই URL আবার পরীক্ষা করুন

নিয়ম বদলানোর আগে JSON রিপোর্ট ডাউনলোড করুন। জমা দেওয়া URL ও প্রত্যাশিত গন্তব্যও সঙ্গে রাখুন, যাতে সংশোধনকারী ব্যক্তি কী হয়েছে এবং কী হওয়ার কথা ছিল, তা আলাদা করতে পারেন। এই টুল JSON রিপোর্ট দেয়; ফিল্টার করা CSV দেয় না বা নিজে রিডাইরেক্ট বদলায় না।

  1. কোন প্রতিক্রিয়ায় ঠিকানা বা স্ট্যাটাস প্রথম আপনার উদ্দেশ্য থেকে আলাদা হয়েছে, তা খুঁজুন। পৃষ্ঠার অপ্রাসঙ্গিক মেটাডেটা বদলানোর বদলে সেই প্রতিক্রিয়া তৈরি করা সেটিং খুঁজুন।
  2. অনিচ্ছাকৃত গন্তব্য, স্ট্যাটাস, লুপ বা HTTP-তে নামিয়ে দেওয়া ঠিক করুন। যেখানে নিয়ম আপনার নিয়ন্ত্রণে, সেখানে অপ্রয়োজনীয় মধ্যবর্তী ধাপ সরান; তবে নির্দিষ্ট উদ্দেশ্যের রাউটিং বা ট্র্যাকিং রাখুন। দর্শকের কাজের উপযোগী হলে অভ্যন্তরীণ লিংক সরাসরি প্রত্যাশিত গন্তব্যে পাঠান।
  3. সংশোধিত উন্মুক্ত প্রতিক্রিয়া পাওয়া গেলে হুবহু একই শুরুর URL আবার পরীক্ষা করুন। সংরক্ষিত রিপোর্টের সঙ্গে ধারা, প্রথম ও শেষ কোড, চূড়ান্ত ঠিকানা এবং এখনও না পাওয়া তথ্য তুলনা করুন।
  4. পুরোনো পাথ বা আলাদা হোস্টনেমের মতো প্রাসঙ্গিক শুরুর ঠিকানা আলাদা করে পরীক্ষা করুন। একটি ঠিকানা ঠিক হওয়া মাইগ্রেশনের প্রতিটি URL ম্যাপিং সঠিক হওয়ার প্রমাণ নয়।

তালিকা পরীক্ষা করতে একসঙ্গে HTTP স্ট্যাটাস পরীক্ষক ব্যবহার করুন। এটি সর্বোচ্চ 50টি URL নেয় এবং ফিল্টার করা CSV এক্সপোর্ট সমর্থন করে। একটি চেইন বিস্তারিত পড়তে এই এক-URL পরীক্ষক ব্যবহার করুন। সফল পুনঃপরীক্ষা এখন পর্যবেক্ষণ করা প্রতিক্রিয়া যাচাই করে; ভবিষ্যতের দর্শক, ব্রাউজার বা সার্চ ক্রলার একই আচরণ পাবে—তা প্রমাণ করে না।

সাধারণ প্রশ্ন

একটি URL-এর HTTP রিডাইরেক্ট চেইন অনুসরণ করুন। প্রতিটি স্ট্যাটাস ও গন্তব্য দেখুন এবং পর্যবেক্ষণ করা রিপোর্ট JSON হিসেবে ডাউনলোড করুন।

হলুদ রিডাইরেক্ট ফল কি ত্রুটি?

সবসময় নয়। সফল প্রতিক্রিয়ায় শেষ হওয়া রিডাইরেক্টও হলুদ দেখায়। শেষ স্ট্যাটাস ও ঠিকানা পড়ে চেইনটি প্রত্যাশিত আচরণের সঙ্গে মিলিয়ে দেখুন।

Location দেখা গেলেও চূড়ান্ত URL পাওয়া যাচ্ছে না কেন?

Location প্রস্তাবিত পরবর্তী গন্তব্য সংরক্ষণ করে। লুপ, অবৈধ বা বাধাপ্রাপ্ত গন্তব্য, সময়সীমা পেরোনো বা অনুরোধের অন্য সীমা শেষ প্রতিক্রিয়া নিশ্চিত হওয়ার আগেই পরীক্ষা থামাতে পারে। পর্যবেক্ষণ করা সারিগুলো আংশিক প্রমাণ হিসেবে রাখুন।

কতগুলো রিডাইরেক্ট অনুসরণ করতে পারে?

পুরো URL চেইনের আট সেকেন্ড সময়সীমার মধ্যে সর্বোচ্চ পাঁচটি। এগুলো এই টুলের সীমা, Google-এর ক্রলার সম্পর্কে দাবি নয়। অসম্পূর্ণ ফলে পুরো চেইন দেখা যায় না।

এই পরীক্ষক কি JavaScript বা meta refresh রিডাইরেক্ট অনুসরণ করে?

না। সমর্থিত স্ট্যাটাস কোড ও Location গন্তব্যসহ HTTP রিডাইরেক্ট অনুসরণ করে। এটি স্ক্রিপ্ট চালায় না, meta refresh প্রক্রিয়াকরণ করে না এবং ব্রাউজারের নেভিগেশন অনুকরণ করে না।