ওয়ার্ডপ্রেস ডেটাবেজ অপটিমাইজেশন গাইড: ক্যাশ প্লাগইন দিয়েও সাইট স্লো কেন থাকে
WP Rocket বা LiteSpeed Cache বসিয়ে দিয়েছেন, তারপরও সাইট লোড হতে সময় নিচ্ছে? সমস্যাটা ক্যাশে না, ডেটাবেজে। সঠিক ওয়ার্ডপ্রেস ডেটাবেজ অপটিমাইজেশন ছাড়া যেকোনো ক্যাশ প্লাগইন আসল সমস্যা ঢেকে রাখে, সমাধান করে না।
এটা এমন এক সমস্যা যেটা বেশিরভাগ ওয়ার্ডপ্রেস ইউজার কখনো চেক করেই দেখেন না। প্লাগইন ইনস্টল হয়, আনইনস্টল হয়, থিম বদলায়, ফর্ম সাবমিশন জমা হতে থাকে, পোস্ট রিভিশন সেভ হতেই থাকে। বছরখানেক পর দেখা যায় ডেটাবেজের সাইজ কয়েকশো মেগাবাইট, অথচ আসল কনটেন্ট হয়তো ১০ মেগাবাইটও না।
ক্যাশ প্লাগইন কেন যথেষ্ট না
ক্যাশ প্লাগইন শুধু আগে থেকে বানানো HTML পেজ সার্ভ করে, ডেটাবেজ কোয়েরি এড়িয়ে যায়। কিন্তু অ্যাডমিন প্যানেল, লগইন করা ইউজার, WooCommerce কার্ট, বা যেকোনো ডাইনামিক কনটেন্টের ক্ষেত্রে ক্যাশ কাজে আসে না। তখন প্রতিটা রিকোয়েস্টে ব্লোটেড ডেটাবেজের পুরো বোঝা টানতে হয়।
আগের একটা পোস্টে বিস্তারিত লিখেছিলাম কেন শুধু ক্যাশ প্লাগইন দিয়ে সাইট ফাস্ট হবে না। ওয়ার্ডপ্রেস ডেটাবেজ অপটিমাইজেশন হলো সেই লেখার পরের ধাপ, যেটা বেশিরভাগ মানুষ এড়িয়ে যান।
wp_options টেবিল আর অটোলোডেড ডেটা আসলে কী
প্রতিবার কেউ সাইট ভিজিট করলে ওয়ার্ডপ্রেস wp_options টেবিল থেকে একগুচ্ছ ডেটা স্বয়ংক্রিয়ভাবে লোড করে, একে বলে অটোলোডেড অপশন। এটা শুধু জরুরি সেটিংসের জন্য বানানো হয়েছিল, কিন্তু প্লাগইনগুলো নিজেদের ডেটা এখানে জমা করতে থাকে, আর ডিঅ্যাক্টিভেট বা ডিলিট করার পরও সেই ডেটা মুছে যায় না।
ফলাফল হিসেবে, একটা পুরনো সাইটে অটোলোডেড ডেটা কয়েক মেগাবাইট পর্যন্ত পৌঁছে যায়, যেটা প্রতিটা সিঙ্গেল পেজ লোডে মেমোরিতে টেনে আনতে হয়। এই সমস্যা কোনো ক্যাশ প্লাগইন ঠিক করতে পারে না।
আপনার ডেটাবেজ ব্লোটেড কিনা কীভাবে বুঝবেন
সবচেয়ে দ্রুত উপায় হলো WP-CLI দিয়ে চেক করা। হোস্টিং যদি SSH অ্যাক্সেস দেয়, নিচের কমান্ড দুটো চালিয়ে দেখুন।
wp db size --tables
wp option list --autoload=on --format=table
অটোলোডেড ডেটার সাইজ ১ মেগাবাইট পার হয়ে গেলে সেটা স্পষ্ট সমস্যার লক্ষণ। ৫০০ কিলোবাইট পার হলেও নজর দেওয়া দরকার। SSH অ্যাক্সেস না থাকলে Query Monitor প্লাগইন দিয়েও অ্যাডমিন প্যানেল থেকে একই তথ্য দেখা যায়।
ধাপে ধাপে ওয়ার্ডপ্রেস ডেটাবেজ ক্লিনআপ প্রসেস
ক্লিনআপ শুরু করার আগে ফুল ব্যাকআপ নেওয়া বাধ্যতামূলক, কোনো ব্যতিক্রম নেই। এরপর নিচের ধাপগুলো এক এক করে করতে হবে।
- পোস্ট রিভিশন এবং অটোসেভ ডিলিট করুন
- এক্সপায়ার্ড ট্রানজিয়েন্ট মুছুন
- স্প্যাম ও ট্র্যাশ কমেন্ট খালি করুন
- ট্র্যাশে থাকা পোস্ট আর মিডিয়া পার্মানেন্টলি ডিলিট করুন
- অরফ্যান্ড ডেটাবেজ টেবিল খুঁজে বের করে মুছুন, পুরনো প্লাগইনের ফেলে যাওয়া টেবিল সাধারণত এখানেই লুকানো থাকে
- ডেটাবেজ টেবিল অপটিমাইজ (OPTIMIZE TABLE) চালিয়ে প্রসেস শেষ করুন
প্রতিটা ধাপের পর সাইট চেক করা জরুরি। একসাথে সব ধাপ করে ফেললে কোনো সমস্যা হলে সেটার আসল কারণ ধরা কঠিন হয়ে যায়।
কোন প্লাগইন কাজ করে, কোনটা এড়িয়ে চলবেন
WP-Optimize এখনো সবচেয়ে নির্ভরযোগ্য অল-ইন-ওয়ান অপশন, রিভিশন-ট্রানজিয়েন্ট ক্লিনআপ আর টেবিল অপটিমাইজেশন দুটোই একসাথে করে। অটোলোডেড ডেটা নির্দিষ্টভাবে টার্গেট করতে আলাদা টুলও কাজে লাগে।
কোনো প্লাগইনেই ব্লাইন্ডলি “ক্লিন অল” বাটনে ক্লিক করা ঠিক না। কিছু অটোলোডেড অপশন সত্যিই দরকারি, ভুল করে ডিজেবল বা ডিলিট করলে সাইট ভেঙে যেতে পারে। প্রতিটা এন্ট্রি চেক করে বোঝা দরকার এটা আসলে কোন প্লাগইনের আর সেটা এখনো অ্যাক্টিভ কিনা।
কখন নিজে করবেন, কখন প্রফেশনাল সাহায্য নেবেন
ছোট সাইট, কম প্লাগইন হলে উপরের ধাপগুলো নিজে করা সম্ভব। কিন্তু WooCommerce স্টোর বা বছরের পর বছর ধরে চলা সাইটে ডেটাবেজ রিলেশন জটিল হয়ে যায়, তখন ভুল টেবিল ডিলিট করলে পুরো সাইট ভেঙে যাওয়ার ঝুঁকি থাকে।
এই ঝুঁকি এড়াতে Coders Foundation-এর ওয়ার্ডপ্রেস স্পিড অপটিমাইজেশন সার্ভিস মানি-ব্যাক গ্যারান্টিসহ ৳২,৯৯৫ থেকে শুরু, যেখানে ডেটাবেজ ক্লিনআপ, ক্যাশ কনফিগারেশন, আর কোর ওয়েব ভাইটালস অপটিমাইজেশন একসাথে করা হয়।
আর যদি নিজে পুরো প্রসেসটা শিখে ফেলতে চান, যাতে ভবিষ্যতে প্রতিটা ক্লায়েন্ট সাইটে নিজেই এই কাজ করতে পারেন, সেটার জন্য WordPress Pro কোর্সে ডেটাবেজ মেইনটেন্যান্স আলাদা মডিউলে কভার করা আছে।
শেষ কথা
ওয়ার্ডপ্রেস ডেটাবেজ অপটিমাইজেশন একবারের কাজ না, এটা নিয়মিত মেইনটেন্যান্সের অংশ। ক্যাশ প্লাগইন দিয়ে সমস্যা ঢেকে না রেখে প্রতি ২-৩ মাসে অন্তত একবার ডেটাবেজ চেক করুন। সাইট যত পুরনো হবে, এই অভ্যাসটা তত বেশি সময় আর টাকা বাঁচাবে।