প্লাগইন ছাড়াই কীভাবে ওয়ার্ডপ্রেসের গতি অপ্টিমাইজ করবেন (শুধুমাত্র কোড গাইড)

প্রকাশিত হয়েছে | লিখেছেন
৬ মিনিট পড়ার সময়

আপনি যদি এটি পড়ে থাকেন, তবে আপনি সম্ভবত ক্লান্ত সাধারণ ওয়ার্ডপ্রেস পারফরম্যান্স পরামর্শে। সাধারণ রুটিন—WP Rocket ইনস্টল করা, একটি ইমেজ অপ্টিমাইজার প্লাগইন যোগ করা এবং একটি অ্যাসেট ম্যানেজার ব্যবহার করা—প্রায়শই একটি প্যারাডক্স তৈরি করে: আপনি সাইটের গতি বাড়ানোর জন্য প্লাগইন ইনস্টল করেন, কিন্তু প্লাগইনগুলো নিজেই ডাটাবেসের আকার বাড়ায়, ব্যাকগ্রাউন্ড ক্রন জব তৈরি করে এবং তাদের নিজস্ব CSS/JS লোড করে।

সত্যি কথা হলো, এক সেকেন্ডের কম সময়ে লোড হওয়ার জন্য ওয়ার্ডপ্রেসের ১৫টি পারফরম্যান্স প্লাগইনের প্রয়োজন নেই। প্রকৃত গতি অপ্টিমাইজেশন ঘটে মেটাল লেয়ারে—সার্ভার, ডাটাবেস এবং কোর কোডে।

এই গাইডে, আমরা প্লাগইন ইকোসিস্টেমকে পুরোপুরি এড়িয়ে যাব। আমরা সার্ভার-সাইড কনফিগারেশন ব্যবহার করে ওয়ার্ডপ্রেস অপ্টিমাইজ করব, wp-config.php অ্যাডজাস্টমেন্ট এবং সার্জিক্যাল functions.php স্নিপেট।


১. সার্ভার-সাইড ফাউন্ডেশন (কোনো পিএইচপি প্রয়োজন নেই)

ওয়ার্ডপ্রেস কোডের একটি লাইন স্পর্শ করার আগে, আপনার সার্ভার এনভায়রনমেন্ট অবশ্যই ভালোভাবে অপ্টিমাইজ করা থাকতে হবে। একটি দুর্বল সার্ভারকে ফ্রন্ট-এন্ড ক্যাশিং দিয়ে ঠিক করা যায় না।

PHP 8.1+ এ আপগ্রেড করুন

ওয়ার্ডপ্রেস পিএইচপি-তে চলে। PHP 7.4 থেকে PHP 8.1 বা 8.2-এ স্থানান্তর করলে এক্সিকিউশন টাইম ২০-৩০% কমে যেতে পারে এবং মেমরি খরচ উল্লেখযোগ্যভাবে হ্রাস পেতে পারে। করণীয়: আপনার cPanel, Plesk বা আপনি যদি নিজের VPS পরিচালনা করেন তবে CLI-এর মাধ্যমে এটি পরিবর্তন করুন।

সার্ভার-লেভেল কম্প্রেশন সক্ষম করুন (Gzip-এর চেয়ে Brotli)

যদিও Gzip স্ট্যান্ডার্ড, Brotli (গুগল দ্বারা তৈরি) একই সিপিইউ খরচে টেক্সট ফাইলের (HTML, CSS, JS) জন্য প্রায় ১৫-২০% ভালো কম্প্রেশন অনুপাত প্রদান করে। করণীয় (Nginx): নিশ্চিত করুন যে আপনার nginx.conf এ Brotli সক্ষম করা আছে:

brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/javascript application/json image/svg+xml;

FastCGI ক্যাশিং (Nginx) অথবা LiteSpeed ক্যাশ ইমপ্লিমেন্ট করুন

PHP-ভিত্তিক ক্যাশিং প্লাগইন ব্যবহার করার পরিবর্তে (যা ক্যাশ সার্ভ করার জন্য ওয়ার্ডপ্রেসকে আংশিকভাবে লোড করতে বাধ্য করে), ওয়েব সার্ভার লেভেলে ক্যাশ করুন। Nginx FastCGI ক্যাশিং জেনারেট করা HTML কে RAM বা ডিস্কে জমা রাখে এবং সরাসরি সার্ভ করে, যা বেনামী ভিজিটরদের জন্য PHP এবং MySQL-কে সম্পূর্ণভাবে বাইপাস করে।


২. হার্ডেনিং এবং থিনিং (Hardening and Thinning) এর মাধ্যমে wp-config.php

এই wp-config.php ফাইলটি আপনার কন্ট্রোল রুম। ডিফল্টভাবে, ওয়ার্ডপ্রেস এমন কিছু আচরণ অনুমোদন করে যা সময়ের সাথে সাথে আপনার ডাটাবেসকে ভারী করে তোলে।

এই কোড স্নিপেটগুলো ঠিক এই লাইনের আগে যোগ করুন: /* That's all, stop editing! Happy publishing. */ লাইন।

পোস্ট রিভিশন সীমিত করুন

ডিফল্টভাবে, ওয়ার্ডপ্রেস আপনার পোস্টের অসীম রিভিশন সংরক্ষণ করে। একটি পোস্ট ৫০ বার আপডেট করা হলে আপনার wp_posts ডাটাবেস টেবিলে ৫০টি কপি থাকবে, যা ডাটাবেস কুয়েরিকে নাটকীয়ভাবে ধীর করে দেয়।

// Keep only the last 3 revisions
define( 'WP_POST_REVISIONS', 3 );

অটোসেভ ইন্টারভাল অপ্টিমাইজ করুন

ওয়ার্ডপ্রেস প্রতি ৬০ সেকেন্ডে অটোসেভ করে। যদি আপনার একাধিক এডিটর কাজ করে, তবে এটি ডাটাবেসের ওপর চাপ সৃষ্টি করে। এর গতি কমান।

// Change autosave from 60 seconds to 5 minutes
define( 'AUTOSAVE_INTERVAL', 300 );

ট্র্যাশ দ্রুত খালি করুন

ডিলিট করা পোস্ট এবং কমেন্ট ৩০ দিন পর্যন্ত ডাটাবেসে থাকে। ডাটাবেস হালকা রাখতে এটি কমিয়ে আনুন।

// Empty trash every 7 days
define( 'EMPTY_TRASH_DAYS', 7 );

৩. “অ্যান্টি-ব্লোট” (Anti-Bloat) functions.php মাস্টার স্নিপেট

ওয়ার্ডপ্রেস কোর ডিফল্টভাবে আপনার  এবং 

 এর মধ্যে প্রচুর পরিমাণে লিগ্যাসি সাপোর্ট স্ক্রিপ্ট, ডিসকভারি লিঙ্ক এবং ইনলাইন স্টাইল ইনজেক্ট করে।

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

দ্রষ্টব্য: এটি আপনার চাইল্ড থিমের functions.php অথবা একটি ড্রপ-ইন mu-plugin এ যোগ করুন।

/**
 * The Ultimate WordPress Debloat Snippet
 */
add_action('init', function() {
    // 1. Remove RSD, XMLRPC, and WLW links
    remove_action('wp_head', 'rsd_link');
    remove_action('wp_head', 'wlwmanifest_link');
    add_filter('xmlrpc_enabled', '__return_false');

    // 2. Remove WordPress version footprint (Security & Speed)
    remove_action('wp_head', 'wp_generator');

    // 3. Remove Shortlinks and REST API links from header
    remove_action('wp_head', 'wp_shortlink_wp_head');
    remove_action('wp_head', 'rest_output_link_wp_head');

    // 4. Disable native Emojis (Saves 1 JS and 1 CSS HTTP Request)
    remove_action('wp_head', 'print_emoji_detection_script', 7);
    remove_action('wp_print_styles', 'print_emoji_styles');
    remove_action('admin_print_scripts', 'print_emoji_detection_script');
    remove_action('admin_print_styles', 'print_emoji_styles');
    remove_filter('the_content_feed', 'wp_staticize_emoji');
    remove_filter('comment_text_rss', 'wp_staticize_emoji');
    remove_filter('wp_mail', 'wp_staticize_emoji_for_email');

    // 5. Disable oEmbeds (If you don't embed external URLs automatically)
    remove_action('wp_head', 'wp_oembed_add_discovery_links');
    remove_action('wp_head', 'wp_oembed_add_host_js');
    add_action('wp_footer', function() { wp_deregister_script('wp-embed'); });
});

/**
 * 6. Remove Global Styles (WP 5.9+ Inline CSS Bloat)
 */
add_action('wp_enqueue_scripts', function() {
    wp_dequeue_style('global-styles');
    wp_dequeue_style('classic-theme-styles');
}, 100);

/**
 * 7. Remove jQuery Migrate (If using modern themes/plugins)
 */
add_action('wp_default_scripts', function($scripts) {
    if (!is_admin() && isset($scripts->registered['jquery'])) {
        $script = $scripts->registered['jquery'];
        if ($script->deps) {
            $script->deps = array_diff($script->deps, ['jquery-migrate']);
        }
    }
});

/**
 * 8. Throttle the Heartbeat API
 * Prevents high CPU usage when leaving the WP Admin open
 */
add_filter('heartbeat_settings', function($settings) {
    $settings['interval'] = 60; // Throttle to 60 seconds
    return $settings;
});

আমরা কী অর্জন করলাম?

উপরের কোডটি যোগ করার মাধ্যমে, আপনি তাৎক্ষণিকভাবে ৫-৮টি অপ্রয়োজনীয় HTTP রিকোয়েস্ট দূর করেছেন এবং প্রতিটি পেজ লোড থেকে কয়েক ডজন লাইন ইনলাইন CSS/JS সরিয়ে ফেলেছেন—কোনো প্লাগইন ইনস্টল না করেই।


৪. মিডিয়া অপ্টিমাইজেশন (কঠিন উপায়)

Smush বা Imagify-এর মতো প্লাগইনগুলো সুবিধাজনক, কিন্তু এগুলো আপনার PHP সার্ভারে ইমেজ প্রসেসিং চালায়, যা CPU রিসোর্স খরচ করে।

ম্যানুয়াল WebP/AVIF রূপান্তর

ওয়ার্ডপ্রেসে যেকোনো ছবি আপলোড করার আগে, সেটিকে একটি এক্সটার্নাল, লসলেস কম্প্রেসারের মাধ্যমে চালান যেমন Squoosh.app (গুগল দ্বারা) অথবা TinyPNG। আরও ভালো হয়, আপলোড করার আগে সেগুলোকে স্থানীয়ভাবে .webp অথবা .avif ফরম্যাটে রূপান্তর করুন।

নেটিভ লেজি লোডিং ব্যবহার করুন

ওয়ার্ডপ্রেস ৫.৫ থেকে, নেটিভ লেজি লোডিং বিল্ট-ইন রয়েছে। ওয়ার্ডপ্রেস স্বয়ংক্রিয়ভাবে আপনার ছবিতে loading="lazy" যোগ করে। আপনার জাভাস্ক্রিপ্ট-ভিত্তিক লেজি লোডিং প্লাগইনের প্রয়োজন নেই। তবে, নিশ্চিত করুন যে আপনার “above the fold” ছবিগুলোতে (যেমন আপনার লোগো বা হিরো ইমেজ) এই অ্যাট্রিবিউটটি নেই, কারণ এটি Largest Contentful Paint (LCP) বিলম্বিত করবে।

আপনি একটি পেজের প্রথম ছবি থেকে লেজি লোডিং সরাতে পারেন functions.php:

add_filter( 'wp_get_attachment_image_attributes', function( $attr, $attachment, $size ) {
    static $is_first_image = true;
    if ( $is_first_image ) {
        $attr['loading'] = 'eager'; // Force immediate load for LCP
        $is_first_image = false;
    }
    return $attr;
}, 10, 3 );

৫. phpMyAdmin এর মাধ্যমে ডাটাবেস ডিফ্র্যাগমেন্টেশন

অপ্টিমাইজেশন প্লাগইনগুলোতে সাধারণত একটি “Clean Database” বাটন থাকে। আপনি ডাটাবেস লেভেলে এটি নেটিভভাবে করতে পারেন।

  1. আপনার হোস্টিং প্যানেলে লগ ইন করুন এবং খুলুন phpMyAdmin.
  2. আপনার ওয়ার্ডপ্রেস ডাটাবেস নির্বাচন করুন।
  3. নিচের দিকে স্ক্রোল করুন, চেক করুন সবগুলো চেক করুন.
  4. “With selected:” ড্রপডাউনে, নির্বাচন করুন টেবিল অপ্টিমাইজ করুন.

MySQL টেবিল ইনডেক্সগুলো পুনর্নির্মাণ করবে এবং অব্যবহৃত জায়গা পুনরুদ্ধার করবে। মাসে একবার ম্যানুয়ালি এটি করুন।


রায়

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

কাজের চাপ সার্ভারে স্থানান্তর করুন (পিএইচপি ৮.১+, এনজিনএক্স ফাস্টসিজিআই), আপনার wp-config.phpক্ষেত্রে শৃঙ্খলা বজায় রাখুন এবং আপনার functions.phpব্যবহার করে মূল অপ্রয়োজনীয় অংশগুলো ছেঁটে ফেলুন। আপনার টাইম টু ফার্স্ট বাইট (টিটিএফবি) এবং কোর ওয়েব ভাইটালস এই পার্থক্যটি প্রতিফলিত করবে।

এই পোস্টটি শেয়ার করুন

Ajay Malik

অজয় মালিক একজন ওয়ার্ডপ্রেস ডেভেলপার এবং ৮ বছরেরও বেশি অভিজ্ঞতাসম্পন্ন এলিট ফ্রিল্যান্সার।