WordPress

WordPress প্লাগইন নিয়ে যেসব ভুল সাইট ভাঙে — আর তার উত্তর

ডিঅ্যাক্টিভ করলেই কি নিরাপদ? আপডেট দিলে ভাঙে বলে বন্ধ রেখেছেন? হোস্টিং সাসপেন্ড হলো কেন? — প্লাগইন-বিপর্যয়ের পর যে প্রশ্নগুলো ওঠে, তার সোজা উত্তর।

স্ট্যাক অ্যালিক্স টিমস্ট্যাক অ্যালিক্স টিম৫ সেপ, ২০২৬ মিনিট পড়া
শেয়ার করুন

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

এই লেখাটা সেই মুহূর্তগুলোর জন্য। প্লাগইন নিয়ে বিপদে পড়ার পর মানুষ যে প্রশ্নগুলো করেন — এবং যেগুলোর উত্তর আগে জানলে বিপদটাই ঘটত না — সেগুলোকে সাজিয়ে একটা একটা করে ধরা হয়েছে। WordPress নিজে খুব কমই ভাঙে; নিরাপত্তা দুর্বলতার প্রায় পুরোটাই আসে প্লাগইন আর থিম থেকে। তাই ভুলগুলো চেনা মানে কার্যত সাইটকে চেনা।

“প্লাগইনটা তো ডিঅ্যাক্টিভ করাই আছে, তাহলে ঝুঁকি কোথায়?”

ডিঅ্যাক্টিভ করা মানে প্লাগইনটা চলছে না — কিন্তু তার ফাইলগুলো সার্ভারে অক্ষত অবস্থায় বসে আছে। অনেক প্লাগইনের ভেতরের PHP ফাইল সরাসরি URL দিয়ে ডাকা যায়, WordPress লোড না করেই। ফলে ওই ফাইলে যদি কোনো দুর্বলতা থাকে, প্লাগইন চালু আছে না বন্ধ — আক্রমণকারীর তাতে কিছুই যায় আসে না। অটোমেটেড স্ক্যানার দিনরাত ইন্টারনেট চষে ঠিক এই জিনিসটাই খোঁজে।

তাই নিয়মটা সোজা: যেটা ব্যবহার করছেন না, সেটা ডিলিট করুন — ডিঅ্যাক্টিভ করে ফেলে রাখবেন না। “পরে লাগতে পারে” বলে রেখে দেওয়া প্লাগইনগুলোই অডিটে সবচেয়ে বেশি পাওয়া যায়, আর সেগুলোই সবচেয়ে পুরনো, সবচেয়ে অপ্যাচড। সত্যিই যদি পরে লাগে, ডিরেক্টরি থেকে আবার নামিয়ে নেবেন — তখন অন্তত আপডেটেড ভার্সনটাই পাবেন।

“লাখখানেক ইনস্টল আর ৪.৮ রেটিং দেখেই বসিয়েছিলাম, তাও ঝামেলা হলো কেন?”

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

দ্বিতীয়টা আরও সূক্ষ্ম: মালিকানা বদল। জনপ্রিয় ফ্রি প্লাগইন কিনে নেয় অন্য কোম্পানি, আর তার পরের আপডেটে ঢুকে পড়ে অ্যাফিলিয়েট লিংক, ট্র্যাকিং কোড, কিংবা ড্যাশবোর্ড জুড়ে বিজ্ঞাপন। আপনি একই প্লাগইন ব্যবহার করছেন ভাবছেন, কিন্তু কোডটা আর সেই আগের মানুষের নয়। এজন্যই আপডেটের আগে চেঞ্জলগে চোখ বোলানোর অভ্যাসটা দামি — “Added: new dashboard experience” লেখা দেখলে সাবধান হওয়ার সময় হয়েছে।

সংখ্যা দেখে নয়, তারিখ দেখে সিদ্ধান্ত নিন। শেষ আপডেট এক বছরের পুরনো মানে প্লাগইনটা পরিত্যক্ত — সেখানে দশ লাখ ইনস্টল থাকলেও সেটা দশ লাখ ঝুঁকিপূর্ণ সাইটের হিসাব, ভালো থাকার প্রমাণ নয়।

“দুটো প্লাগইন একই কাজ করলে ক্ষতি কী? ব্যাকআপ তো ডাবল হলো!”

এই ভুলটা এত সাধারণ যে অডিটে প্রায় প্রতিটা সাইটেই পাওয়া যায় — আর ক্ষতিটা যোগ নয়, গুণ। দুটো ক্যাশ প্লাগইন একসঙ্গে চললে একটা আরেকটার তৈরি করা ফাইল ক্যাশ করে; ফল হয় পুরনো পেজ দেখানো, স্টাইল ভেঙে যাওয়া, কখনো সাদা স্ক্রিন। WooCommerce সাইটে এর মানে কাস্টমার কার্টে জিনিস যোগ করছেন, কিন্তু ক্যাশ করা পুরনো পেজ দেখাচ্ছে কার্ট খালি।

  • দুটো SEO প্লাগইন — দুই সেট মেটা ট্যাগ আর দুটো canonical URL। গুগল বিভ্রান্ত হয়, আর আপনি ভাবেন র‍্যাংক হচ্ছে না কেন।
  • দুটো সিকিউরিটি প্লাগইন — দুটোই লগইন অ্যাটেম্পট গুনতে থাকে, দুটোই ফায়ারওয়াল বসাতে চায়। ফল: নিজেই নিজের সাইট থেকে লকড আউট, আর সার্ভারে অকারণ লোড।
  • দুটো ইমেজ অপটিমাইজার — একই ছবি দুবার কম্প্রেস হয়ে ঝাপসা হয়ে যায়, আর মূল ফাইল ফেরানোর উপায় থাকে না।

কাজেই একটা কাজের জন্য একটাই প্লাগইন — এই নিয়মটা আলোচনার বাইরে রাখুন। নতুন প্লাগইন বসানোর আগে লিস্টে চোখ বুলিয়ে দেখুন এই কাজটা ইতিমধ্যেই কেউ করছে কি না।

“আপডেট দিলেই তো সাইট ভাঙে, তাই বন্ধ রেখেছি”

যুক্তিটা বোঝা যায়, কিন্তু হিসাবটা উল্টো। হ্যাক হওয়া WordPress সাইটের বিপুল সংখ্যাগরিষ্ঠ অংশ ভাঙে এমন দুর্বলতা দিয়ে, যার প্যাচ অনেক আগেই বেরিয়ে গেছে — মালিক শুধু আপডেট দেননি। অর্থাৎ আপডেট বন্ধ রেখে আপনি ঝুঁকি এড়াচ্ছেন না, ঝুঁকিটা জমাচ্ছেন। আর দুর্বলতা প্রকাশিত হওয়ার পর আক্রমণ শুরু হতে দিন লাগে না, ঘণ্টা লাগে।

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

“প্লাগইন তো কম, তাও সাইট ধীর কেন?”

কারণ সমস্যাটা সংখ্যায় নয়, আচরণে। একটা কনট্যাক্ট ফর্ম প্লাগইন সাধারণত তার CSS আর JavaScript সাইটের প্রতিটা পেজে লোড করে — এমনকি যে পেজে কোনো ফর্মই নেই, সেখানেও। দশটা প্লাগইন এভাবে আচরণ করলে হোমপেজে অকারণে ৩০০-৪০০ কিলোবাইট বাড়তি ফাইল নামে, যা ফোরজি নেটওয়ার্কে স্পষ্ট দেরি তৈরি করে। Perfmatters বা Asset CleanUp দিয়ে পেজভিত্তিক অ্যাসেট বন্ধ করা যায় — বেশিরভাগ সাইটে এটাই একদিনের কাজে সবচেয়ে বড় গতি এনে দেয়।

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

  • ট্রাফিক বাড়লে wp-cron-ও সমস্যা হয়ে দাঁড়ায়, কারণ এটা প্রতিটা পেজলোডে চেক করে কোনো শিডিউলড কাজ বাকি আছে কি না। wp-config.php-তে DISABLE_WP_CRON চালু করে cPanel থেকে প্রতি ১৫ মিনিটে একটা সত্যিকারের ক্রন জব বসিয়ে দিন — সার্ভারের উপর চাপ অনেকটাই কমে।

“দুই লাইনের কাজের জন্যও একটা প্লাগইন — সমস্যা কী?”

হেডারে একটা স্ক্রিপ্ট বসাতে একটা প্লাগইন, ফেভিকন বদলাতে একটা, ফুটারের কপিরাইট লেখা পাল্টাতে আরেকটা — এভাবে ছয়টা মাইক্রো-প্লাগইন জমে যায়, যার প্রতিটাই আলাদা ডেভেলপারের, আলাদা আপডেট চক্রের, আলাদা ঝুঁকির। এগুলোর প্রতিটা কাজ আসলে দুই থেকে দশ লাইনের কোড।

এর সঠিক জায়গা একটা কোড স্নিপেট ম্যানেজার — WPCode বা Code Snippets। ছয়টা নির্ভরতার বদলে একটা, আর কোডটা আপনার নিজের হাতে থাকে। এখানে একটা কথা মনে রাখবেন: স্নিপেটগুলো থিমের functions.php ফাইলে লিখবেন না। থিম আপডেট হলে বা ক্লায়েন্ট থিম বদলালে আপনার কোড হাওয়া হয়ে যাবে — আর সাইটের অর্ধেক ফিচার হঠাৎ উধাও হওয়ার রহস্য কেউ ধরতে পারবে না।

“লাইসেন্স তো শুধু আপডেটের জন্য, এক্সপায়ার হলে কী আর হবে?”

যা হয় তা হলো, প্রিমিয়াম প্লাগইনটা কার্যত পরিত্যক্ত প্লাগইনে পরিণত হয়। কোড চলতেই থাকে, সাইট ঠিকঠাক দেখায়, কিন্তু নতুন সিকিউরিটি প্যাচ আর আসে না। বাংলাদেশে আরেকটা প্রচলিত ভুল হলো একটা লাইসেন্স কিনে দশটা ক্লায়েন্ট সাইটে বসানো — যেদিন লাইসেন্স ভেরিফিকেশন কড়া হয়, সেদিন দশটা সাইটেই আপডেট একসঙ্গে বন্ধ হয়ে যায়, আর দায়টা এসে পড়ে আপনার ঘাড়ে।

ক্র্যাক করা প্লাগইনের ব্যাপারটা আরও নির্মম। ওগুলোতে সাধারণত uploads ফোল্ডারে একটা লুকানো ব্যাকডোর ফাইল বসে যায় আর ডাটাবেসে একটা বাড়তি অ্যাডমিন ইউজার তৈরি হয়। ফলে প্লাগইনটা মুছে ফেললেও সাইট সংক্রমিত থেকেই যায় — ম্যালওয়্যার ক্লিন করার পর সপ্তাহখানেকের মধ্যে আবার ফিরে আসে।

সাইট ভাঙার পর যে প্রশ্নগুলো আসে

প্লাগইন সরানোর পর পেজে অদ্ভুত লেখা [contact-form id=3] ভেসে উঠছে কেন? ওটা শর্টকোড। যে প্লাগইন শর্টকোডটা তৈরি করত, সে চলে যাওয়ায় WordPress লেখাটাকে সাধারণ টেক্সট হিসেবে দেখাচ্ছে। প্লাগইন সরানোর আগে সাইটে সার্চ দিয়ে দেখে নিন তার শর্টকোড কোথায় কোথায় ব্যবহার হয়েছে, আর পেজগুলো আগে ঠিক করে নিন।

কোন প্লাগইনটা সমস্যা করছে, বের করব কীভাবে? wp-config.php-তে WP_DEBUG আর WP_DEBUG_LOG চালু করুন — এরর তখন wp-content/debug.log ফাইলে জমা হবে, স্ক্রিনে নয়, ফলে ভিজিটর কিছু দেখবেন না। লগে সাধারণত ফাইলের পাথেই দোষী প্লাগইনের নাম লেখা থাকে। সাইট একেবারে খুলছে না? File Manager থেকে wp-content/plugins ফোল্ডারের নাম পাল্টে দিন — সব প্লাগইন বন্ধ হয়ে যাবে, সাইট ফিরে আসবে।

ক্লায়েন্ট নিজেই প্লাগইন বসিয়ে সাইট ভেঙে ফেলছেন, কী করব? ক্লায়েন্টকে অ্যাডমিন নয়, এডিটর রোল দিন — কনটেন্ট লিখতে অ্যাডমিন লাগে না। আর wp-config.php-তে define('DISALLOW_FILE_MODS', true); বসিয়ে দিলে ড্যাশবোর্ড থেকে প্লাগইন ইনস্টল বা আপডেট করার অপশনটাই আর দেখা যায় না।

সাইট হ্যাক হয়েছিল, প্লাগইনটা ডিলিট করেছি — এখন কি নিরাপদ? না। যে দুর্বলতা দিয়ে ঢুকেছে সেটা বন্ধ হয়েছে, কিন্তু ঢোকার পর যা রেখে গেছে তা রয়ে গেছে — লুকানো অ্যাডমিন ইউজার, uploads ফোল্ডারে PHP ফাইল, wp-config-এ বাড়তি কোড। ইউজার লিস্ট মিলিয়ে দেখুন, সব পাসওয়ার্ড বদলান, wp-config-এর সিকিউরিটি সল্ট নতুন করে বসান (এতে সবাই লগআউট হয়ে যাবে, যেটাই কাম্য), আর সম্ভব হলে হ্যাকের আগের একটা পরিষ্কার ব্যাকআপ থেকে ফিরে যান।

প্লাগইন নিয়ে বেশিরভাগ দুর্ঘটনা আসলে অবহেলার ফল নয়, তথ্যের অভাবের ফল — কেউ ইচ্ছে করে সাইট ভাঙে না। নিজের বা ক্লায়েন্টের WordPress সাইটের প্লাগইন লিস্ট নিয়ে অস্বস্তি থাকলে Stack Alix-এ আমরা অডিট করে দেখিয়ে দিই কোনটা ঝুঁকি, কোনটা অকারণ, আর কোনটা সরালে সাইট দ্রুত হবে — তারপর চাইলে মাসিক আপডেট আর ব্যাকআপের দায়িত্বটাও আমরাই রাখি।

ট্যাগ:WordPress#wordpress#wordpress plugins#plugin conflicts#website security#site speed#shared hosting#site maintenance
স্ট্যাক অ্যালিক্স টিম
লেখক সম্পর্কে
স্ট্যাক অ্যালিক্স টিম
Stack Alix কন্ট্রিবিউটর

ডিজিটাল প্রোডাক্ট, ডেভেলপমেন্ট ও অনলাইন ব্যবসা নিয়ে নিয়মিত লেখেন।

নতুন আর্টিকেল ইনবক্সে পেতে চান?

সপ্তাহের সেরা টিপস ও গাইড সরাসরি আপনার ইমেইলে।