যারা ব্লগিং করেন কিংবা নিজের একটা দুইটা সাইট আছে তাদের কাছে ওয়ার্ডপ্রেস নতুন কিছু নয়। ওয়ার্ডপ্রেস দিয়ে সাইট বানিয়ে এফিলিয়েশন করছেন এরকম মানুষের সংখ্যাও কম নয়। কাজেই ওয়ার্ডপ্রেস পরিচিতিতে আমি আর যাবো না।
আজকে বিশদ আলোচনা হবে কিভাবে আপনার ওয়ার্ডপ্রেস সাইটকে আরো দ্রুত লোড করার চেষ্টা করবেন তা নিয়ে। এসইও নিয়ে যারা চিন্তিত থাকেন সবসময় তাদের কাছে সাইট স্পীড খুবই গুরুত্বপুর্ন বিষয়। সাইটের স্পীডের উপর নির্ভর করে ক্রেতা বা পাঠক আপনার সাইটে থাকবে নাকি চলে যাবে।
Google এবং Amazon এর মত বড় বড় কোম্পানিও লসের মুখ দেখবে যদি তাদের ওয়েব সার্ভিস ৪-৫ সেকেন্ডের জন্যও ধীর গতির হয়ে যায়। সবথেকে বেশি ক্ষতি হবে বোধহয় আমাজনের। তার বিক্রির অনেকটাই ক্ষতিগ্রস্থ হবে সাইট স্লো হয়ে গেলে।
গুগলের সার্চ র্যাঙ্কিং এর অনেক বড় একটা ফ্যাক্টর হল সাইট স্পীড। কাজেই আপনার ওয়ার্ডপ্রেসের সাইট স্পীড অপ্টিমাইজেশনের প্রয়োজনীয়তা অনেক।
কাজে নামার আগে করনীয়
এই লেখাটা খুব সহজ ভাবে লেখার চেষ্টা করেছি যাতে শুধুমাত্র ওয়ার্ডপ্রেসের বেসিক জানলেই আপনি আপনারসাইট অপ্টিমাইজ করতে পারেন। কিন্তু যারা একদম ওয়ার্ডপ্রেস কি, এর ব্যাকএন্ড কিভাবে কাজ করে এর কিছুই জানেন না তারা দয়া করে আগে এই জিনিসগুলো দেখে নেবেন। আরেকটি কথা হল, আপনাকে আপনার থিমের চাইল্ড থিম বানাতে জানতে হবে অথবা চাইল্ড থিম আছে এইরকম একটি থিম ব্যবহার করুন।
কারন অনেক সময় আমরা বিভিন্ন কোড বসাব বা মডিফিকেশন করব যা মূল থিমে করলে আপডেট করতে গিয়ে ঝামেলায় পড়তে পারেন। আশার বিষয় হল বেশিরভাগ পেইড থিমেরই চাইল্ড থিম থাকে এবং এতে কোড বসানোর জন্যও থিম অপশনে আলদা প্যানেল দেয়া থাকে। তখন আপনাকে থিমে আর কোন ধরনের মডিফিকেশন করতে হয় না। যা এডিট বা এড করতে চান তা ওয়ার্ডপ্রেসের এডমিন প্যানেল থেকেই করতে পারবেন।
তো চলুন দেখে নেয়া যাক আমরা একটা সাইটের উপর কাজ করার আগে কোন কোন টুলসগুলো দিয়ে দেখে নেব সাইটের স্পীডঃ –
০১. গুগল পেইজ স্পিড
০২. পিংডম টুলস
০৩. জিটি ম্যাট্রিক্স
গুগল পেইজ স্পীডে আমার একটি সাইটঃ এই তিনটি ওয়েব টুলসই ফ্রিতে আপনাকে ধারনা দেবে কোন কোন এলিমেন্টের কারনে আপনার সাইটেরর পেইজ স্পীড কমে যাচ্ছে আর অপ্টিমাইজেশনটা কোথায় করা দরকার।
কিছু বিষয় যা সাইট বানানোর আগে থেকেই ঠিক করে রাখা উচিতঃ
০১. ভালো ওয়েব হোষ্টিং খুঁজুনঃ
একটা ভালোমানের ওয়েব হোস্টিং আপনার সাইটের লোডিং স্পিড বাড়িয়ে দিতে পারে শুরুতেই। আপনার ওয়েব হোস্টিং যদি যথাযথ মানের না হয়, তবে বেশিরভাগ সময়ই সাইট ডাউন এবং স্লো লোডিং জনিত সমস্যায় ভুগবেন। আমি হোষ্টিং নিয়ে আগেও লিখেছে আমার সেই লেখাটা এখান থেকে দেখে নিতে পারেন।
হোস্টিং এবং ডোমেইন কোনটা ব্যবহার করব, দাম কেমন এবং কোথা থেকে কিনব?
আমি কখনই ফ্রি হোস্টিং এ আপনার প্রোডাক্টিভ সাইট রাখার পক্ষপাতি নই। আসল কথা হল এই দুনিয়ায় ফ্রি বলে কিছু নাই। ফ্রি হোস্টিং নানা ধরনের বাটপারি করতে পারে আপনার সাথে। তার মধ্যে সব থেকে উল্যেখযোগ্য হল যে কোন সময় সাইট গায়েব করে দেয়া। প্র্যাক্টিস করার জন্য ঠিক আছে কিন্তু বিজনেস করার জন্য ফ্রি হোস্টিং থেকে ১০০ হাত দূরে থাকুন।
একটা ভালোমানের ওয়েব হোস্টিং খোজার আগে আপনাকে যে বিষয়গুলো মাথায় রাখতে হবেঃ-
০১. সার্ভার এর রেস্পন্স কেমন (স্পিড, ডাটা ট্রান্সফার রেট)
০২. কি ধরনের প্রযুক্তি এই কোম্পনি ব্যবহার করছে (ব্যাক আপ সিস্টেম, স্টোরেজ ক্যপাসিটি, লোড ব্যালেন্সিং)
০৩. সাপোর্ট যেকোন সার্ভিসের সব থেকে বড় অস্ত্র হল এর সাপোর্ট সিস্টেম। যদি সাপোর্ট ভালো না হয় তবে কোন হোস্টিং কোম্পানিই মার্কেটে টিকে থাকতে পারবে না।
সাজেশনঃ ওয়ার্ডপ্রেস সাইটের জন্য সাইটগ্রাউন্ডের (Siteground Hosting) হোস্টিং আমার মতে সব থেকে ভালো। আমি নিজে সাইট গ্রাউন্ডের হোস্টিং ব্যবহার করেছি এবং কথায় বলা যায় এদের শেয়ারড হোস্টিং ও অনেক ডেডিকেটেড হোস্টিং থেকে ভালো।
ওয়ার্ডপ্রেস নিজে যে কয়টি হোস্টিং কে ফিচার করেছে তার লিস্ট এখানে পাবেনঃ https://wordpress.org/hosting/
০২. ভালো এবং অপটিমাইজড থিম ব্যবহার করুনঃ
অনেকেই আছেন অনেক টাকা খরচ করে সাইট বানাবেন, কন্টেন্ট লেখাবেন কিন্তু সাইটের থিমের পেছনে খরচ করতে চান না। এখানেই সবথেকে বড় ভুলটা করেন। একটা ওয়েল কোডেড পেইড থিম যা SEO এর জন্য ভালো এবং স্পীড অপ্টিমাইজড করা, আপনার সাইটের স্পীড স্বাভাবিক ভাবেই বাড়িয়ে দেবে।
থিম খালি দেখতে সুন্দর হলেই হবে না। আপনাকে বেছে নিতে হবে এমন কোন থিম যা হালকা, লোডিং টাইম কম এবং আপনার কন্টেন্ট এর সাথে খাপ খায়।
আমি সাধারনত MyThemeshop এর থিমগুলো ব্যবহার করি। এদের কন্ট্রোল প্যানেল এবং থিমের কোডিং বেশ ভালো। ফলে লোডিং স্পিড অনেক ভালো থাকে সাইটের।
থিম কন্ট্রোল প্যানেল থেকেই Lazy Load, Font, CSS এমন ভাভে এডিট করা যায় যা কোডিং এর ঝামেলা অনেকটাই কমিয়ে দেয়।
মার্কেটে আরো অনেক ভালো এবং বিখ্যাত থিম আছে যেগুলো একটু মডিফাই করে নিতে পারলে সহজেই আপনার চাহিদা ফিলাপ করতে পারবে। উধাহরনঃ থিসিস, জেনেসিস, থ্রাইভ ইত্যাদি।
নিশ সাইটের জন্য আমি সাধারনত theme forest এর থিম কম ব্যবহার করি। এদের মার্কেটে বেশিরভাগ থিমই দেখতে সুন্দর কিন্তু লোডিং টাইম ভালো নয়।
থিম নিয়ে আরো বিস্তারিত আলোচনা হতে পারে। আপনারা কে কোন থিম ব্যবহার করছেন জানালে সবাই উপকৃত হবে।
০৩. থিম, প্লাগিন এবং ওয়ার্ডপ্রেস ভার্সন আপডেটেড রাখাঃ
ওয়ার্ডপ্রেস ভার্সন আপডেট রাখা আপনার সাইট স্পিড এর জন্য যেমন জরুরী, তেমনি সিকিউরিটির কথা মাথায় রাখলে আপডেট আসার সাথে সাথে তা দিয়ে দেয়া জরুরী। একমাত্র যখন পুরোপুরি একটা ভার্সন পরিবর্তন হয় তখন কিছুদিন দেরি করে ওয়ার্ডপ্রেসের ভার্সন আপডেট করুন। যেমন সামনে ভার্সন ৫ আসলে তা একটে দেখে বুঝে শুনে আপডেট করতে হবে।
অনেক থিম এবং প্লাগিনই এই আপডেটে কাজ নাও করতে পারে। এক্টিভ থিম এবং প্লাগিন অথররা অবশ্য যত যলদি পারে আপডেটের কাজ শুরু করে দেন।
মনে রাখতে হবে আপনার থিম এবং প্লাগিন যদি আপডেট না থাকে তবে নানা কারনে সাইট স্লো এবং হ্যাক হয়ে যাবার সম্ভাবনাও বেড়ে যায়।
সাজেশনঃ প্রতিটি আপডেটের আগে সাইটের ব্যাকাপ নিতে ভুলবেন না।
০৪. পিএইচপি (PHP) ভার্সন ৭.২ অথবা তার উপরে ব্যবহার করুনঃ
PHP (Hypertext Preprocessor) হল সার্ভার সাইড স্ক্রিপ্টিং ল্যাঙ্গুয়েজ। মূলত এর উপর ভিত্তি করেই ওয়ার্ডপ্রেস বানানো হয়েছে। এটি প্রতিটি সার্ভারেই দেয়া থাকে যখন আপনি হোস্টিং কেনেন।
ব্যপারটা অনেকটা এরকম, ওয়ার্ডপ্রেস হল একটা রেডিমেড এপার্টমেন্ট যা আপনি যে কোন সার্ভারের স্পেসেই বানাতে (ইন্সটল দিতে) পারেন। PHP হল এই এপার্ট্মেন্ট বানানোর মসলা। মসলা যত আপগ্রেডেড হবে আপনার ওয়ার্ডপ্রেস তত ভালো চলবে।
ওয়ার্ডপ্রেস নিজেই এখন সাজেস্ট করে PHP 7.2 বা তার থেকে বেটার কোন ভার্সন ব্যবহার করার জন্যঃ https://wordpress.org/about/requirements/
কিন্তু আফসোসের বিষয় হল আমরা অনেকেই এখন সেই ২০১৪ এর PHP 5.6 ভার্সনটি ব্যবহার করছি। যা আপনার সাইটের জন্য ক্ষতির কারন হয়ে দাঁড়াচ্ছে।
যদি আপনার বর্তমান হোস্টের PHP ভার্সন আপগ্রেডেড না থাকে তবে তাদের কাছে আপগ্রেড করতে বলুন। না হলে সার্ভার পরিবর্তন করুন।
সাজেশনঃ যদি সি-প্যানেল ব্যবহার করে থাকেন তবে সি-প্যানেলে লগিন করে সার্চ বক্সে PHP লিখলেই ভার্শন পরিবর্তন করার অপশনটি খুঁজে পাবেন।
০৫. SSL ব্যবহার করুন
SSL যদিও সরাসরি সাইট স্পিডের সাথে সম্পর্কযুক্ত কোন ফ্যাক্টর নয়, তারপরেও আমার উপদেশ হল আপনার যে কোন সাইটে প্রথম থেকেই SSL ব্যবহার করা শুরু করুন।
কেন করবেন? চলুন কয়েকটা কারন জেনে নেয়া যাক।
SSL দেয়া সাইটগুলোকে গুগল সার্চ রেজাল্টে কিছুটা ফেবার দেখানো শুরু করছে। যারা SEO নিয়ে কাজ করছেন তারা জানেন SSL এখনো কোন রাঙ্কিং ফ্যাক্টর না হলেও যেকোন দিন গুগল বলে বসতে পারে SSL বাদে সাইট তার র্যাঙ্কিং হারাবে। তখন কি করা যাবে? তাই থেকে আগে থাকতেই সাবধান হওয়া ভালো।
কনজিউমার ট্রাস্ট আরেকটা বড় বিষয়। SSL না থাকা সাইটগুলেকে গুগল দেখায় ” This site is not secure / You connection is not encrypted” ইত্যাদি। ব্রাউজার ভেদে মেসেজের তারতম্য হতে পারে।
যদি আপনি একটা ই-কমার্স সাইট চালিয়ে থাকেন তবে SSL আপনার জন্য একটা অবশ্যিক বিষয়। আপনার কাস্টমারদের ডিটেইলস, প্রোডাক্ট অর্ডার করা পর্যন্ত সাইট ব্রাউজিং বিহেভিয়ার ইত্যাদি SSL না থাকলে সুরক্ষিত থাকে না। এর সাথে আপনার বিজনেসের উন্নতি জড়িত।
আমার কথাই বলি, আমি যদি কোন দেশি বা বিদেশী ই-কমার্স সাইটে সবজ কালারে প্যাডলক আইকন না দেখি তবে তাদের প্রফেশনালিজম নিয়ে সন্দেহ প্রকাশ করি এবং তাদের থেকে পন্য অর্ডার করি না।
যে-দিক দিয়েই চিন্তা করুন না কেন, SSL আপনার সাইটের জন্য এখন অতি প্রয়োজনীয় একটা বিষয়।
সাজেশনঃ ভালো হোস্টিং প্রোভাইডাররা SSL ফ্রি করে দিয়েছে অনেকেই। নেইমচিপে একটা সি-প্যানেলে ৫০ টা SSL ফ্রিতে পাবেন। সাইট গ্রাউন্ড থেকে হোস্টিং কিনলে তারাও ৩ রকমের SSL ফ্রিতে ঝামেলা বিহীন ভাবে ইন্সটল করতে দিচ্ছে।
আপনি ফ্রি-তে SSL নিতে পারবেন এই সাইট থেকেঃ https://letsencrypt.org/
Let’s Encrypt এর ওয়ার্ডপ্রেস প্লাগিনও আছে। যাতে সহজেই আপনি ওয়ার্ডপ্রেস ড্যাশবোর্ড থেকেই SSL ইস্যু করতে পারবেন। এই বিষয়ে বিস্তারিত জানতে হলে কমেন্ট বক্সে আপনার প্রশ্নটি করুন।
০৬. প্লাগিন ব্যবহারে সতর্কতাঃ
ওয়ার্ডপ্রেসের পারফরমেন্সের সব থেকে বড় সমস্যা হয় যখন আপনি অতিরিক্ত প্লাগিন ব্যবহার করেন। ওয়ার্ডপ্রেসের জন্য প্লাগিন ব্যবহার অপরিহার্য, কিন্তু কিছু প্লাগিন আছে যা আপনি চাইলেই ব্যবহার না করতে পারেন। যেমন ধরুন সোশ্যাল মিডিয়া শেয়ারের জন্য যে সকল অ্যাজাক্স বেইসড প্লাগিন ব্যবহার করা হয় সেগুলো। আপনার থিমে যদি সোশ্যাল মিডিয়া শেয়ারের অপশন থাকে তবে সেটা ব্যবহার করায় ভালো প্লাগিন ব্যবহার করার থেকে।
অনেক সময় আবার দেখা যায় একেকটা কাজের জন্য আলাদা আলাদা প্লাগিন ব্যবহার করেন অনেকেই। স্ট্যাটিক্টিস দেখার জন্য, পোস্ট অটো শেয়ারের জন্য, কমেন্ট বক্সের জন্য, স্প্যাম ঠেকানোর জন্য আলদা আলদা ৪-৫ টা প্লাগিন ব্যবহার না করে Jetpack এর মত একটা প্লাগিন ব্যবহার করা যাতে এক প্লাগিনেই অনেক ধরনের কাজ হয়ে যায়।
এর ফলে আপনাকে আলদা আলাদা প্লাগিন ব্যবহার করতে হবে না এবং আপডেট সহ আরো অনেক কিছু সহজেই করতে পারবেন।
একটা পেইড থিম ব্যবহার করলে অনেক প্লাগিন ব্যবহার করতেই হয় না। MyThemeshop এর থিম গুলোতে কাস্টম সিএসএস, ইমেজ অপ্টিমাইজেশনের জন্য Lazy Load, ফন্ট আপলোড করার জন্য প্যানেল অনেক কিছুই আলাদা ভাবে দেয়া আছে। যার ফলে প্লাগিনের ব্যবহার যেমনে কমাতে পারেন তেমনে ভাবে কাস্টম কোড করার ঝামেলাও অনেকাংশে কমে যায়।
যারা ভিজুয়াল কমপোজারের মত প্লাগিন ব্যবহার করেন তাদেরও প্লাগিন সবসময় আপডেট করে রাখতে হবে নাহলে ওয়ার্ডপ্রেস আপডেটের পরপরই ঝামেলায় পড়তে পারেন।
০৭. ক্যাশিং প্লাগিন এর ব্যবহারঃ
ওয়ার্ডপ্রেসের ক্যাশিং প্লাগিন গুলোর কাজ বেশ উপকারে আসে আমাদের। ক্যাশিং নিয়ে বিস্তারিত আলোচনার দরকার আছে। তবে আপাতত এটুকু জেনে রাখুন, ক্যাশিং বলতে আমরা বুঝি আপনার পেইজ এবং পোস্টগুলো কে আগে থেকেই স্ট্যাটিক হিসেবে সার্ভারে সেইভ করে রাখা এবং ভিসিটর আসলে তাকে সেখান থেকে পেইজটি সার্ভ করা।
সাধারনত যখন কোন ভিজিটর আপনার সাইটে আসে এবং কোন লিঙ্কে ক্লিক করে তখন সেই পেইজের জন্য প্রয়োজনীয় লেখা, ছবি, স্টাইল ইত্যাদি ডাটাবেইজ কোয়েরি করে তারপর পেইজটি তৈরি করে ভিজিটরের ব্রাউজার উইন্ডোতে সার্ভ করা হয়। এখন যদি পেইজটি আগে থেকেই ক্রিয়েট করা থাকে তবে এই কোয়েরির দরকার হয় না বা পরিমানে কম লাগে।
W3 Total Cache, Rocket Loader ইত্যাদি ভালো ক্যাশিং প্লাগিন। তবে এর ব্যবহারেও আপনাকে সতর্কতা অবলম্বন করতে হবে। W3 Total Cache এর মত প্লাগিন কনফিগার করাটা একটু সময় সাপেক্ষ এবং এক্সপার্ট না হলে সব অপ্সহন ব্যবহার করতে পারবেন না।
০৮. পোস্ট এর ছবি এবং মিডিয়া ফাইল গুলো অপ্টিমাইজ করুন
অনেক ক্লায়েন্ট হ্যান্ডেল করেছি যারা পোস্টের মাঝে ইয়া বড় বড় সাইজের ইমেজ আপলোড করে রেখেছে। ইমেজের ডিমেনশন হয়ত দরকার ৮০০ X ৬০০ পিক্সেলের কিন্তু সে আপলোড করেছে ৩৪৫০ X ২২০০ পিক্সেলের ইমেজ। দেখুন তো এরকম ভুল কি আপনার ও হচ্ছে?
পোস্টে ছবি ব্যবহারে অবশ্যই পোস্টের সৌন্দর্য এবং গ্রহনযোগ্যতা বাড়ে। কিন্তু সতর্ক থাকতে হবে কোন সাইজের ছবি ব্যবহার করছেন আর কতগুলো ছবি দিচ্ছেন একটা পোস্টে।
কিছু বিষয় মাথায় রাখলেই অবশ্য এই লোডিং এর সমস্যা থেকে মুক্ত হওয়া যায়। যেমনঃ PNG ফরমেটের ছবি দেয়ার থেকে JPG বা JPEG এর ফরমেটে ছবি দিলে সাইজ কিছু কমে আসবে।
মনে রাখবেন যে কোন পোস্টের সাইজ বড় হয় শুধু মাত্র তাতে গ্রাফিক্সের ব্যবহারের কারনে। হতে পারে তা ইমেজ অথবা ভিডিও, কিংবা GIF ফরমেটের ছবি।
আপনি যদি ইনফোগ্রাফিক পোস্ট করে থাকেন তবে তা আরো বড় হবে। একারনেই ছবি অপটিমাইজ করা SEO এর জন্য অনেক বড় একটা ফ্যাক্টর।
সাজেশনঃ যেকোন ছবি ছোট করার জন্য আমি ঃ https://tinypng.com/ এই সাইটটা ব্যবহার করে থাকি। এদের ওফিসিয়াল কোন ওয়ার্ডপ্রেস প্লাগিন না থাকলেও API প্রোভাইড করে এরা। চাইলেই ওয়ার্ডপ্রেসে সরাসরি ব্যবহার করতে পারবেন।
ওয়ার্ডপ্রেস রেপোতে খুঁজলে বেশ কয়েকটা ভালো প্লাগিনও পেয়ে যাবেন ছবি কমপ্রেস করার। মোদ্দা কথা হল ছবির কোয়ালিটি যথাসম্ভব ঠিক রেখে সাইজ চেবং ডিমেনশন ছোট করে আনুন প্রয়োজনমত।
০৯. CloudFlare এর ব্যবহার আপনার সাইটের স্পীড বাড়াতে পারে
ক্লাউডফ্লেয়ার একটা ফ্রি কন্টেন্ট ডেলিভারি এবং রিভার্স প্রক্সি ক্যাশিং সিস্টেম। যদি এই টেকনিক্যাল টার্ম গুলোর মানে না জানেন তবেও কোন সমস্যা নেই। বেশিরভাগ ভালো হোস্টিং প্রোভাইডারই তাদের সি-প্যানেলে ক্লাউডফ্লেয়ারের ব্যবস্থা রাখে। আপনার প্রয়োজনমত তা চালু করে নিন।
যদি স-প্যানেলে নাও থেকে থাকে তবে cloudflare.com এ গিয়ে আপনার ফ্রি একাউন্ট রেজিস্টার করুন এবং আপনার ডোমেইনটি লিঙ্কআপ করে নিন। এরপর তারাই আপনাকে ইন্সট্রাকশন দিয়ে দেবে কিভাবে আপনার ডোমেইন প্যানেলে গিয়ে ক্লাউড ফ্লেয়ারের নেইম সার্ভার বসাবেন। ব্যাস, হয়ে গেল, এখন থেকে এর সুবিধা আপনি ব্যবহার করতে পারবেন।
ক্লাউড ফ্লেয়ার এর মত আরো CDN সার্ভিস আছে কিন্তু বেশিরভাগই ফ্রি নয়। ক্লাউডফ্লেউয়ার নিয়ে বিস্তারিত ব্যাখ্যার দরকার আছে, কিন্তু আমাদের আলোচনার সুবিধার জন্য আমরা অত গভীরে যেতে পারছি না। তবে আশা করি নিচে ইউটিউব ভিডিওটি আপনাদের কাজে দেবে।
ক্লাউড ফ্লেয়ার মূলত আপনার সাইটের কন্টেন্ট নিয়ে ক্যাশ করে রাখে এবং ইউজারকে সেখান থেকে দেখায়। যার ফলে সরাসরি সার্ভারের উপর লোড পড়ে না এবং এদের প্রক্সি সার্ভার ফাস্ট হবার কারনে কনটেন্ট ও অনেক দ্রুত লোড হয়।
MAXCDN এরকম আরেকটি কন্টেন্ট ডেলিভারি নেওটোয়ার্ক, কিন্তু এরা ফ্রি দেয় না।
আরেকটি মজার বিষয় হল যারা অটোমেটিক এর জেটপ্যাক ব্যবহার করে থাকেন, তারাও কিন্তু এইরকম একটা ক্যাশিং এর সুবিধা পেয়ে থাকেন ইমেজ এর জন্য। ইমেজ ক্যাশিং অন রাখলে আপনার সাইটের ইমেজ লোড হয় ওয়ার্ডপ্রেসের সার্ভার থেকে।
ক্লাউডফ্লেয়ার এর ব্যবহার একদিকে যেমন আপনার সাইতের স্পিড, ছবি লোডিং এর ক্ষমতা বাড়ায় তেমনি সাইটকে Brute Force এর মত এটাক থেকে বাচাঁতে সাহায্য করে।
তবে সব ফ্রি জিনিসের মত এর ব্যবহারেরও সীমাবদ্ধতা আছে। যদি আপনি তাদের পেইড প্যাকেজ নিতে পারেন তবে সবথেকে ভালো।
১০. Lazy Loading সিস্টেম এর ব্যবহার
আমি MyThemeshop এর যে থিমগুলো ব্যবহার করে থাকি তার প্রতিটার থিম অপশন প্যানেলেই Lazy Load for Image এর ব্যবস্থা দেখেছি। এখন মোটামুটি সব থিম ডেভেলপারই এই অপশন তাদের থিমে দিয়ে দেয়ার চেষ্টা করেন।
ধরুন আপনার সাইটের কোন একটা পেইজে ১৫ টা ইমেজ আছে। এখন সেই পেইজে ঢুকলেই যদি সব ইমেজ একবারে লোড হয় তাহলে পেইজে স্পিড এমনিতেই কমে যাবে। Lazy Loading সিস্টেমে যখন শুধুমাত্র ভিজিটর পেইজ স্ক্রল করবে এবং ইমেজ স্ক্রিনের কাছে আসবে তখন ইমেজ লোড হবে। পেইজের নিচে থাকা ইমেজ আগে থেকেই লোড হবে না। ফলে অনেক ইমেজ থাকা পেইজেও ইমেজের কারনে লোডিং স্পিড কমবে না।
যারা মোবাইলে ফেইসবুক ব্রাউজ করেন, তখন দেখবেন যত স্ক্রল করেন নিচের দিকে ইমেজ আস্তে আস্তে তত লোড হতে থাকে। যদি সব একসাথে লোড করতে হয় তাহলে পেইজলোড অনেক বেড়ে যাবে। সেই একই ধরনের সিস্টেম এখানেও ব্যবহার করা হচ্ছে।
যারা মাইথিম শপের থিম ব্যবহার করছেন না, বা আপনার থিমে Lazy Load অপশন নেই তারা এই দুটি প্লাগিন ব্যবহার করতে পারেন।
০১. BJ Lazy Load
০২. a3 Lazy Load
আর যদি আপনি জাভাস্ক্রিপ্ট পন্ডিত হয়ে থাকেন তবে নিজেই নিজের Lazy Loading সিস্টেম বানিয়ে নিতে পারবেন বা মডিফাই করে নিতে পারবেন। GitHub এ এখানে দেখুনঃ https://github.com/ressio/lazy-load-xt
Lazy Load শুধু ইমেজ নয়, আপনার সাইটের বেহুদা স্ক্রিপ্টকেও অপ্টিমাইজড ভাবে লোডিং এ সাহায্য করবে। আপনার শুধু দরকার হিসাব করে অপশন চালু রাখা বা বন্ধ করা।
১১. পোস্ট রিভিশন লিমিট করা
পোস্ট রিভিশন আমাদের কাছে নতুন কিছু নয়। সব ওয়ার্ডপ্রেস ব্যবহারকারীই জানে, যতবার আপনি পোস্ট এডিটড় করবেন বা আপডেট করবেন ততবার একটা রিভিশন ফাইল ডাটাবেইজে সেইভ হয়ে যাবে। এটা ওয়ার্ডপ্রেসের ডিফল্ট অপশন।
একটা কমা বা দাড়ি পরিবর্তন করলেও তা লিস্টেড থাকবে ডাটাবেইজে। এর সুবিধা হল যাতে আপনি কোন ভুল করলে রিভিশন কপি থেকে আবার কনটেন্ট পুনরুদ্ধার করতে পারেন।
অসুবিধা হল ডাটাবেইজে অহেতুক ডাটা জমে যাবার কারনে কোয়েরি করতে সময় বেশী লাগে এবং সাইট স্লো হয়ে যায়। Wp-Optimize এর মত প্লাগিন ব্যবহার করে আপনি খুব সহজেই এই জঞ্জাল পরিষ্কার করতে পারবেন।
তবে সব থেকে ভালো হল আপনার পোস্ট রিভিশন এর নাম্বার লিমিট করে দেয়া। এজন্য নিচের কোডটি আপনার wp-config.php ফাইলে বসিয়ে দিন।
define ('WP_POST_REVISIONS', 3);
এই কোড দিয়ে আমরা পোস্ট রিভিশন এর পরিমান ৩ এ নামিয়ে আনলাম। এখন থেকে যেকোন পোস্ট এর ৩ টার বেশি রিভিশন ডাটাবেইজে সেইভ হবে না।
মনে রাখতে হবে কোডটা বসাতে হবে এই লাইনে আগেঃ require_once(ABSPATH . ‘wp-settings.php’);
আপনার কোড এডিটরে wp-config.php খোলার পরে এই লাইন কপি করে সার্চ দিলেই খুঁজে পাবেন।
আর যদি পোস্ট রিভিশন একবারেই বন্দ করে দিতে চান তবে উপরেরটার বদলে নিচের কোড লাইনটা বসান।
define ('WP_POST_REVISIONS', false);
এই কোড কিন্তু আপনার পূর্বের পোস্টগুলোর রিভিশন ডিলিট করবে না, কিন্তু নতুন পোস্টগুলোর জন্য কাজ করবে। তাই আগের পোস্ট রিভিশন ডিলিট করার জন্য যেকোন একটা ক্লিনার বা অপ্টিমাইজেশন প্লাগিন ব্যবহার করুন।
যাই করেন না কেন, তার আগে অবশ্যই ডাটাবেইজ এবং ফাইলের ব্যাকআপ নিয়ে নেবেন।
১২. AMP (Accelerated Mobile Pages) এর ব্যবহার
AMP এর ধারনাটা খুব বেশিদিনের পুরনো নয়। মোবাইল ডিভাইসের উত্থানের পরপরপরি ডেভেলপারদের অনেকে চিন্তা ভাবনা করতে হয়েছে কিভাবে এই ডিভাইস গুলোতে পেইজ লোডিং সমস্যার সমাধান করা যায়।
গুগল ২০১৫ সালে আরো অনেক পাবলিশারের সাথে মিলে এই প্রোজেক্টের ঘোষনা করে। এরপর তারা দেখে AMP স্ট্যান্ডার্ড ডিজাইন ফলো করা কন্টেন্ট পেইজগুলো সাধারন পেইজ থেকে ৭৫% দ্রুত লোড হয় এবং শতকরা ১০ভাগ ব্যান্ডউইথ কম খায়।
AMP এখন গুগলের জন্য একটা SEO ফ্যাক্টর হয়ে দাঁড়িয়েছে।
আসুন দেখা যাক কিভাবে আপনার সাইটে এই AMP এর ব্যবহার করতে পারবেন।
যদি ক্লাউডফ্লেয়ার ব্যবহার করে থাকেন তবে এই কাজটা অনেক সোজা হয়ে যায়। আপনার ক্লাউডফ্লেয়ার একাউন্টের স্পিড সেটিংসে চলে যান। সেখানে দেখবেন ‘Enable Accelerated Mobile Links’ দেয়া আছে।
সেখান থেকেই এটি চালু করে নিতে পারবেন।
যদি ক্লাউডফ্লেয়ার ব্যবহার করে না থাকেন তবে ওয়ার্ডপ্রেসের এর নিজস্ব AMP প্লাগিনটি ব্যবহার করতে পারেনঃ https://wordpress.org/plugins/amp/
প্লাগিন ইন্সটল করার পর ওয়ার্ডপ্রেসের ড্যাশবোর্ড এ Appearance > AMP সেকশনে গিয়ে আপনার AMP পেইজ এর সেটিংস ঠিক করে নিন।
AMP পেইজগুলো ঠিকভাবে কাজ করছে কিনা তার জন্য আপনার ওয়েবমাস্টার টুলসে এ গিয়ে চেক করবেন। যেই সাইটে AMP ইন্সটল করছেন তার প্রোপার্টি সিলেক্ট করুন। বাম দিকেন মেনু অপশনে ‘Accelerated Mobile Pages’ অপ্সহনটি খুঁজে নিন।
AMP নিয়ে বিস্তারিত জানতে হলে এইখানে পড়তে পারেনঃ https://www.ampproject.org/
১৩. ওয়েব স্পাইডার এবং বট ক্রলিং এর পরিমান কমান
একটু যদি আপনার সি-প্যানেল স্ট্যাট বা অন্য যাই ব্যবহার করছেন স্ট্যাট কালেক্ট করার জন্য, তাতে ঢু মারেন তবে দেখতে পাবেন তারা কি পরিমানে আপনার সাইট ভিসজিট করছে এবং কত মেগাবাইট প্রতিমাসে ডাউনলোড করছে সার্ভার থেকে।
সব BOT যে ভালো এবং সাইট ইন্ডেক্স করতেই আসে তা কিন্তু নয়। ওয়েবে নানা রকম বট/স্পাইডার থাকে যেমনঃ স্প্যাম বট, ইমেইল স্ক্রাপার, গুগল বট, এডভারটাইজমেন্ট বট ইত্যাদি।
অনেক সময় হ্যাকাররাও সাইট এক্সপ্লয়েট করার জন্য সাইটে বিভিন্ন রকম বট পাঠায়।
মোদ্দা কথা হল এই বটের কারনে সাইটের প্রচুর ব্যান্ডউইথ নষ্ট হয়। অনেক সময় সাইটের মূল ভিসিটর থেকে এদের সংখ্যা বেশি হয়ে যায়।
গুগল এর বট অনেক রিসোর্স খায়, চাইলেই আপনি এর ক্রলিং এর পরিমান নিয়ন্ত্রন করতে পারবেন। আপনার ওয়েবমস্টার টুলস এ সাইট সেটিংস এ চলে যান সেখান থেকেই ক্রল রেট নিয়ন্ত্রন করতে পারবেন। গুগল এবং বিং দুই ওয়েবমাস্টার টুলস এই অপশন পাবেন।
আরো ভালো ভাবে যারা বটের অত্যাচার নিয়ন্ত্রন করতে চান তাদের জন্য .htaccess হল সব থেকে ভালো সমাধান।
আর প্লাগিন ব্যবহার করতে চাইলে Wordfence এর মত একটা প্লাগিন ব্যবহার করলেই হবে।
১৪. ওয়ার্ডপ্রেস ভার্সন লুকিয়ে ফেলুন
শুধু সাইটের অপটিমাইজেশন নয়, সিকিউরিটির জন্যও অনেকেই ওয়ার্ডপ্রেস ভার্সন লুকিয়ে রাখার পক্ষে। ওয়ার্ডপ্রেসের ডিফল্ট সিস্টেম অনুযায়ী প্রতিটা পেইজের হেডারেই এই ভার্সন দেখা যায়ঃ
<meta name="generator" content="WordPress 4.9.7" />
এই একটা লাইন সরিয়ে দিলেই কিছু বাইটের ডাটা কমে যাবে। হয়ত উল্লেখ করার মত কিছু নয়, কিন্তু আপনার সাইট যখন হাজার হাজার ভিসিটর সার্ভ করে তখন এই কয়েক বাইটও অনেক কাজে দেবে।
তবে সব থেকে জরুরী দরকার হল যাতে কেউ আপনার সাইটের ওয়ার্ডপ্রেস ভার্সনের সিকিউরিটি ফ্ল জেনে এটাক করতে না পারে সেজন্যে।
নিচের কোডটি আপনার থিমের functions.php ফাইলে সংযুক্ত করে নিন। আমি আগেই চাইল্ড থিমের কথা বলেছি যাতে আপনি এই সকল কোড সেখানে বসাতে পারেন। ফলে মূল থিম আপডেট করলেও আপনার করা পরিবর্তন গুলো থেকে যাবে।
// remove version from head remove_action('wp_head', 'wp_generator'); // remove version from rss add_filter('the_generator', '__return_empty_string'); // remove version from scripts and styles function shapeSpace_remove_version_scripts_styles ($src) { if (strpos($src, 'ver=')) { $src = remove_query_arg('ver', $src); } return $src; } add_filter('style_loader_src', 'shapeSpace_remove_version_scripts_styles', 9999); add_filter('script_loader_src', 'shapeSpace_remove_version_scripts_styles', 9999); // remove version from head remove_action('wp_head', 'wp_generator'); // remove version from rss add_filter('the_generator', '__return_empty_string'); // remove version from scripts and styles function shapeSpace_remove_version_scripts_styles($src) { if (strpos($src, 'ver=')) { $src = remove_query_arg('ver', $src); } return $src; } add_filter('style_loader_src', 'shapeSpace_remove_version_scripts_styles', 9999); add_filter('script_loader_src', 'shapeSpace_remove_version_scripts_styles', 9999);
১৫. XML-RPC, RSD Links, jQuery Migrate ডিজেবল করুন
আমরা এখন কিছু কোড এড করব আমাদের চাইল্ড থিমের functions.php ফাইলে। যদি এক্সপার্ট না হন তবে এই ধরনের কোড ব্যবহার না করাটাই ভালো। অনেকের হয়ত এটা কোন কাজেই লাগবে না।
প্রথমেই XML-RPC বন্ধ করা যাক।
XML-RPC হল একটা প্রটোকল যা ব্যবহার করে ওয়ার্ডপ্রেসের বাইরে অন্যকোন এপের সাথে আপনার ওয়ার্ডপ্রেস সাইটের কানেকশন করতে পারেন। যেমন ওয়ার্ডপ্রেসের নিজস্ব আন্ড্রয়েড অ্যাপ আছে মোবাইলের জন্য । যদি আপনি এই অ্যাপ ব্যবহার করে না থাকেন তবে এটা ডিজেবল করে দিয়ে লোডিং টাইম কিছু কমাতে পারবেন।
add_filter( 'xmlrpc_enabled', '__return_false' );
যদি XML-RPC এবং pingback সার্ভিস বন্ধ রাখি তাহলে আমরা RSD Link এর ট্যাগটাও রিমুভ করে দিতে পারি হেডার থেকে। তার জন্য নিচের কোডটা লাগবে।
remove_action( 'wp_head', 'rsd_link' ) ;
এরপর আরেকটা বিষয় হল Pingback সার্ভিস। Pingback অন করা থাকলে কেউ আপনার সাইটের সাথে লিঙ্ক করলে বা আপনি কাউকে লিঙ্ক করলে অটো নোটিফিকেশন চলে যায়। মাঝে মাঝে বিরক্তিকর, কিন্তু আসলে এটা আপনার সাইটের লোডিং টাইম বাড়িয়ে দিচ্ছে।
ড্যাষবোর্ডে লগিন করে Settings>Discussion মেনু থেকে এই Pingback সার্ভিস গুলো বন্ধ করে দিন।
সিকিউরিটি হ্যাকঃ যদিও আমরা xmlrpc.php ব্লক করেছি কিন্তু এই ফাইলটি কিন্তু এখনো এক্সেস করা যাবে। সেটি বন্ধ করতে হলে আপনার .htaccess এ নিচের কোডটি সংযক্ত করে নিন।
<Files xmlrpc.php> <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> </Files>
jQuery Migrate হলো জাভাস্ক্রিপ্ট ফাইল (jquery-migrate.js এবং jquery-migrate.min.js) এগুলো আপনার সাইটের প্রত্যেকটা পেইজে আছে. পুরাতন থিম যেন আগের ভার্সনের জাভাস্ক্রিপ্ট ব্যবহার করেও লোড হতে পারে তাই এগুলো দিয়ে রাখা হয়েছে, মানে এরা ডিপেন্ডেন্সি ফাইল। আপনি আপডেটেড থিম ব্যবহার করলেও এরা লোড হচ্ছে প্রতিবার।
যদি দশ হাজার ভিসিটর থাকে সাইটে প্রতিদিন তবে এই ফাইল্গুলো অপ্রয়োজনেই দশ হাজারবার লোড হচ্ছে। যদি আপডেটেড থিম ব্যবহার করে থাকেন তবে এই প্লাগিন দিয়েঃ Remove jQuery Migrate Plugin সহজেই jQuery Migrate এর ফাইল লোড হওয়া বন্ধ করে দিতে পারেন।
১৬. গুগল ম্যাপ ডিজেবল করুন
যে সকল সাইটে গুগল ম্যাপের একান্তই প্রয়োজন নেই তারা এই কাজটি করতে পারেন। গুগল ম্যাপ লোড হবার সময় অনেক রিসোর্স ব্যবহার করে এবং লোডিং টাইমও বাড়িয়ে দেয়।
দেখা যায় অনেক থিম এবং প্লাগিন গুগল ম্যাপ এর API আগে থেকেই বান্ডেল করে দিয়ে দিচ্ছে। যদি আপনি মনে করেন আপনার সাইটে কোন কোন ম্যাপ এম্বেড করা নাই বা লাগবে না তবে এটি ডিজেবল করে রাখাই ভালো
সেই একই পদ্ধতি ্থিমের functions.php ফাইলে নিচের লাইন যুক্ত করে দিনঃ
add_filter( 'avf_load_google_map_api', '__return_false' );
১৭. ওয়ার্ডপ্রেস হার্টবিট বন্ধ করুন
ওয়ার্ডপ্রেস হার্টবিট অনেক গোলমেলে একটা বিষয় অনেকের জন্য। আমার অনেক ক্লায়েন্ট এর জন প্রছুর ভুগেছে। মাঝে মাঝে সাইট অফলাইনেও চলে যেতে পারে এর কারনে। কারন শেয়ার্ড সার্ভারে রিসোর্স ব্যবহারের একটা লিমিটেশন দেয়া থাকে সব জায়গাতেই।
Heartbeat API দিয়ে ওয়ার্ডপ্রেস ব্রাউজারের সাথে সার্ভারের কানেকশন বজায় রাখে। হয়ত দেখে থাকবেন আপনি যখন কোন পোস্ট এডিট করছেন এটি প্রতি ১৫ সেকেন্ড পরপর অটো সেইভ হয়ে যাচ্ছে।
যদিও এই ফাংশনটি অনেক কাজের, কিন্তু অনেক গুলো এডিট পেইজ একসাথে খুলে রাখলে বা অনেক ছবি ইমেজ সহ লম্বা পোস্ট এডিট করতে গেলে এই Heartbeat API এর কারনে সার্ভার লোড বেড়ে যায়। ফলাফল সাইট ডাউন।
আপনার থিমের functions.php ফাইলে নিচের কোড যুক্ত করে দিলে এই ফাংশনটি বন্দ করা যাবে।
add_action( 'init', 'stop_heartbeat', 1 ); function stop_heartbeat() { wp_deregister_script('heartbeat'); }
১৮. ফন্ট ব্যবহারে সতর্কতা
যেকোন ফন্ট যা আপনার থিমের সাথে আসেনি ব্যাবহার করতে হলেই আপনাকে সতর্ক হতে হবে। অনেক সময় ইউজারের পিসিতে ফন্ট না থাকার ফলে আপনার সাইটের কনভার্সন রেট ও কমে যেতে পারে।
গুগলের কিছু ফ্রি ফন্ট আছে আমরা সবাই যা ব্যবহার করে থাকি। কিন্তু জানেন কি, গুগল সার্ভার থেকে এই ফন্ট DNS Lookup এর মাধধ্যমে সাইটে লোড হতে সময় লাগে?
সব থেকে ভালো হচ্ছে ফন্ট আপনার সাইটে এম্বেড করে লোকালি সার্ভার থেকে লোড করা।
একইভাবে যখন Font Awesome এর আইকন ব্যবহার করা হয় এটাও সাইটের লোডিং টাইম কিছু বাড়িয়ে দেয়। এইটাইম কমানোর জন্য Font Awesome এর ফ্রি CDN ব্যাবহার করতে পারেন.
থিমের header.php ফাইলে নিচের লিঙ্কটি বসাতে হবেঃ
https://opensource.keycdn.com/fontawesome/4.6.1/font-awesome.min.css
এটা বসাতে হবে <head>
ট্যাগ এর মাঝখানে।
১৯. gzip compression ব্যবহার করা
gzip Compression খুবই একটা কাজের জিনিস। যারা সি-প্যানেল ব্যবহার করছেন তারা খুব সহজেই সেখান থেকে এই অপশনটি চালু করে দিতে পারেন। এর ফলে ভিজিটরকে সাইট কম্প্রেস করে সার্ভ করা হয় যা সার্ভার এর লোড কমায়। এরপর ব্রাউজার তা ডি-কম্প্রেস করে ভিজিটরের কাছে দেখায়।
Apache সার্ভার এবং Nginx সার্ভার এ কম্প্রেশন চালু করার জন্য নিচের কোড ব্যবহার করতে পারেনঃ
Apache সার্ভার ( .htaccess এ বসাতে হবে)
<IfModule mod_deflate.c> # Compress HTML, CSS, JavaScript, Text, XML and fonts AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE application/x-font AddOutputFilterByType DEFLATE application/x-font-opentype AddOutputFilterByType DEFLATE application/x-font-otf AddOutputFilterByType DEFLATE application/x-font-truetype AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml # Remove browser bugs (only needed for really old browsers) BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html Header append Vary User-Agent </IfModule>
Nginx সার্ভার ( এটি আপনার nginx.conf ফাইলে সেইভ করতে হবে)
gzip on; gzip_comp_level 2; gzip_http_version 1.0; gzip_proxied any; gzip_min_length 1100; gzip_buffers 16 8k; gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript; gzip_disable "MSIE [1-6].(?!.*SV1)"; gzip_vary on;
২০. আপনার স্লো-পেইজ খুঁজে বের করে ফিক্স করুন
সবচেয়ে বড় কাজ হল আপনার সাইটের কোন কোন পেইজ স্লো-লোড হচ্ছে তা খুঁজে বের করা এবং একটা একটা করে ফিক্স করা। যদি গুগল আনালিটিক্স ব্যবহার করে থাকেন তবে অতি সহজেই সেখান থেকে ডাটা নিতে পারবেন।
Google Analytics > Behavior > Site Speed > Speed Suggestions
এবার সাজেশন ফলো করে সাইটের স্পিড বাড়ানোর চেষ্টা করুন।
যখন কোন সাইটের পেইজ স্পিড এর কথা বলা হয় তখন কিন্তু শুধুমাত্র হোম্পেইজ এর কথা বলা হয় না, বরঞ্চ প্রতিটা পেইজই আলদা আলদা ভাবে গোনায় ধরা হয়। যে কারনে অনেক সময় দেখবেন সাইটের মেইন পেইজ র্যাঙ্ক করে না, কিন্তু ভেতরের অনেক পেইজ ঠিকই র্যাঙ্ক করছে।
এই পোস্টে যে সকল অপটিমাইজেশনের কথা বলা হয়েছে তা নিতান্তই বেসিক লেভেলের। যারা একটু সার্ভার এবং কোডিং সম্পর্কে জ্ঞান রাখেন তারা অনেক ভাবেই সাইটের স্পিড বাড়ানোর কাজ করতে পারবেন।
আমার নিজের কাছেও এই গাইডটা অসম্পূর্ন রয়ে গেছে। আপনাদের সমস্যা এবং আলোচনা এতে যুক্ত হলে বেশ ভালো হয়।