If you’re reading this, you’re likely tired of the saran kinerja WordPress standar. The usual routine—installing WP Rocket, adding an image optimizer plugin, and throwing in an asset manager—often leads to a paradox: Anda menginstal plugin untuk mempercepat situs Anda, tetapi plugin itu sendiri menambah bloat basis data, cron job latar belakang, dan payload CSS/JS mereka sendiri.
The truth is, WordPress doesn’t need 15 performance plugins to load in under a second. True speed optimization happens at the metal layer—the server, the database, and the core code.
Dalam panduan ini, kita akan melewati ekosistem plugin sepenuhnya. Kita akan mengoptimalkan WordPress menggunakan konfigurasi sisi server, wp-config.php penyesuaian, dan functions.php cuplikan bedah.
1. Fondasi Sisi Server (Tidak Perlu PHP)
Sebelum menyentuh satu baris kode WordPress pun, lingkungan server Anda harus dioptimalkan secara maksimal. Server yang lemah tidak dapat diperbaiki dengan caching front-end.
Tingkatkan ke PHP 8.1+
WordPress berjalan di atas PHP. Beralih dari PHP 7.4 ke PHP 8.1 atau 8.2 dapat menghasilkan pengurangan waktu eksekusi sebesar 20-30% dan konsumsi memori yang jauh lebih rendah. Tindakan: Ubah ini di cPanel, Plesk, atau melalui CLI jika Anda mengelola VPS Anda sendiri.
Aktifkan Kompresi Tingkat Server (Brotli daripada Gzip)
Meskipun Gzip adalah standar, Brotli (dikembangkan oleh Google) memberikan rasio kompresi sekitar 15-20% lebih baik untuk file teks (HTML, CSS, JS) dengan biaya CPU yang sama. Tindakan (Nginx): Pastikan nginx.conf Anda memiliki Brotli yang diaktifkan:
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/javascript application/json image/svg+xml;
Implementasikan FastCGI Caching (Nginx) atau LiteSpeed Cache
Alih-alih menggunakan plugin caching berbasis PHP (yang masih mengharuskan WordPress memuat sebagian untuk menyajikan cache), lakukan caching di tingkat server web. Nginx FastCGI caching menyimpan HTML yang dihasilkan di RAM atau di disk dan menyajikannya secara langsung, sepenuhnya melewati PHP dan MySQL untuk pengunjung anonim.
2. Pengerasan dan Perampingan melalui wp-config.php
Itu wp-config.php adalah ruang kendali Anda. Secara default, WordPress mengizinkan perilaku tertentu yang membuat database Anda membengkak seiring waktu.
Tambahkan cuplikan ini tepat sebelum baris /* That's all, stop editing! Happy publishing. */ line.
Batasi Revisi Postingan
Secara default, WordPress menyimpan revisi tak terbatas dari postingan Anda. Postingan yang diperbarui 50 kali akan memiliki 50 salinan di tabel database wp_posts Anda, yang secara drastis memperlambat kueri database.
// Keep only the last 3 revisions
define( 'WP_POST_REVISIONS', 3 );
Optimalkan Interval Simpan Otomatis
WordPress menyimpan otomatis setiap 60 detik. Jika Anda memiliki beberapa editor yang bekerja, ini akan membebani database. Perlambat intervalnya.
// Change autosave from 60 seconds to 5 minutes
define( 'AUTOSAVE_INTERVAL', 300 );
Kosongkan Sampah Lebih Cepat
Postingan dan komentar yang dihapus tetap berada di database selama 30 hari. Kurangi durasi ini agar database tetap ramping.
// Empty trash every 7 days
define( 'EMPTY_TRASH_DAYS', 7 );
3. The “Anti-Bloat” functions.php “Anti-Bloat”
Inti WordPress secara default menyuntikkan sejumlah besar skrip dukungan lama, tautan penemuan, dan gaya inline ke dalam <head> Dan <footer> Anda.
To achieve maximum information gain over competitors, we won’t just tell you to “use a debloat plugin.” Here is the exact code to surgically remove the most common WordPress bloat.
Note: Add this to your Child Theme’s functions.php Child Theme Anda atau mu-plugin drop-in.
/**
* 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;
});
Apa yang baru saja kita capai?
Dengan menambahkan kode di atas, Anda telah langsung menghilangkan hingga 5-8 permintaan HTTP yang tidak perlu and removed dozens of lines of inline CSS/JS from every single page load—all without installing a single plugin.
4. Optimasi Media (Cara Sulit)
Plugin seperti Smush atau Imagify memang praktis, tetapi mereka menjalankan pemrosesan gambar di server PHP Anda, yang menghabiskan sumber daya CPU.
Konversi WebP/AVIF Manual
Sebelum mengunggah gambar apa pun ke WordPress, jalankan melalui kompresor eksternal tanpa kehilangan (lossless) seperti Squoosh.app (oleh Google) atau TinyPNG. Lebih baik lagi, konversikan ke format .webp atau .avif secara lokal sebelum mengunggah.
Manfaatkan Lazy Loading Asli
Sejak WordPress 5.5, lazy loading asli sudah terpasang. WordPress secara otomatis menambahkan loading="lazy" to your images. You don’t need a JavaScript-based lazy loading plugin. However, ensure your “above the fold” images (like your logo or hero image) DO NOT have this attribute, as it will delay the Largest Contentful Paint (LCP).
Anda dapat menghapus lazy loading untuk gambar pertama di halaman melalui 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 );
5. Defragmentasi Database melalui phpMyAdmin
Optimization plugins usually feature a “Clean Database” button. You can do this natively at the database level.
- Masuk ke panel hosting Anda dan buka phpMyAdmin.
- Pilih database WordPress Anda.
- Gulir ke bawah, centang Centang semua.
- In the “With selected:” dropdown, choose Optimalkan tabel.
MySQL akan membangun kembali indeks tabel dan mengklaim kembali ruang yang tidak terpakai. Lakukan ini secara manual sebulan sekali.
Putusan
Optimizing WordPress without plugins isn’t just about saving money on premium subscriptions. It is a philosophy of mengurangi utang teknis. Every plugin you don’t install is a security vulnerability you don’t have to patch, a database table you don’t have to clean, and a PHP script your server doesn’t have to execute.
Alihkan beban kerja ke server (PHP 8.1+, Nginx FastCGI), terapkan disiplin pada wp-config.phpAnda, dan pangkas bloat inti menggunakan functions.phpAnda. Time to First Byte (TTFB) dan Core Web Vitals Anda akan mencerminkan perbedaannya.



