Dalam hal performa website, setiap byte dan milidetik dihitung. Inti WordPress tidaklah berat, tetapi tema, plugin yang Anda gunakan dapat memperlambat waktu untuk membuka halaman secara keseluruhan. Ada banyak teknik untuk mempercepat situs WordPress Anda.
Sebagai contoh:
- Menggunakan CDN (Jaringan Pengiriman Konten)
- Memanfaatkan cache browser & server
- Hosting di server yang dioptimalkan performanya
- Menggunakan tema yang ringan
Namun, tahukah Anda bahwa terdapat banyak hal yang termasuk dalam inti WordPress yang mungkin tidak Anda gunakan dan mengambil tindakan yang diperlukan. Dan jika hal tersebut kita optimasi maka kita dapat mengurangi beberapa ukuran file untuk memuat situs web lebih cepat.
Hal berikut dapat dilakukan dengan dua cara, pertama, dengan menggunakan beberapa plugin dan kedua, dengan menambahkan beberapa baris kode di functions.php
. Saya memilih untuk tidak menggunakan plugin jika hal-hal dapat dilakukan dengan penambahan / modifikasi kode di file yang ada.
Cara Optimasi Performa WordPress tanpa Plugin
Mengoptimasi performa WordPress merupakan suatu hal yang wajib, terlebih lagi update Algoritma Google Mei 2021 yang menjadikan pengalaman halaman sebagai indikator penentuan peringkat. Sebelum masuk ke cara optimasi performa WordPress alangkah baiknya untuk membuat cadangan dari masing-masing file yang akan Anda ubah jadi jika terjadi kesalahan. Anda dapat mengembalikan file tersebut dengan cepat. Saran saya menggunakan child theme untuk meminimalisir kesalahan tersebut.
Semua kode di bawah ini akan ditambahkan ke functions.php
kecuali ditentukan secara berbeda. Berikut cara optimasi performa wordpress tanpa plugin.
Remove Query Strings
Jika Anda telah menganalisis load time situs web Anda, Anda mungkin telah menemukan rekomendasi untuk menghilangkan query string dari sumber daya statis (file CSS, JS).
Memiliki query string dalam file dapat menyebabkan CDN tidak menyimpan file ke cache, karenanya Anda tidak dapat menggunakan semua manfaat caching yang disediakan.
Untuk menghapus string kueri, tambahkan kode berikut.
/** Remove Query Strings **/ function remove_cssjs_ver( $src ) { if( strpos( $src, '?ver=' ) ) $src = remove_query_arg( 'ver', $src ); return $src; } add_filter( 'style_loader_src', 'remove_cssjs_ver', 10, 2 ); add_filter( 'script_loader_src', 'remove_cssjs_ver', 10, 2 );
Remove RSD Links
RSD (Really Simple Discovery) diperlukan jika Anda bermaksud menggunakan klien XML-RPC, pingback, dll. Namun, jika Anda tidak memerlukan pingback atau remote klien untuk mengelola postingan, hapus header yang tidak perlu ini dengan menambahkan kode berikut.
/** Remove RSD Link **/ remove_action( 'wp_head', 'rsd_link' ) ;
Disable Emoji
Hapus kode tambahan yang terkait dengan emoji dari WordPress yang ditambahkan baru-baru ini untuk mendukung emoji di browser lama.
/** Disable Emoji **/ function disable_emojis() { remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); remove_action( 'wp_print_styles', 'print_emoji_styles' ); 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' ); add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' ); add_filter( 'wp_resource_hints', 'disable_emojis_remove_dns_prefetch', 10, 2 ); } add_action( 'init', 'disable_emojis' ); /** * Filter function used to remove the tinymce emoji plugin. * * @param array $plugins * @return array Difference betwen the two arrays */ function disable_emojis_tinymce( $plugins ) { if ( is_array( $plugins ) ) { return array_diff( $plugins, array( 'wpemoji' ) ); } else { return array(); } } /** * Remove emoji CDN hostname from DNS prefetching hints. * * @param array $urls URLs to print for resource hints. * @param string $relation_type The relation type the URLs are printed for. * @return array Difference betwen the two arrays. */ function disable_emojis_remove_dns_prefetch( $urls, $relation_type ) { if ( 'dns-prefetch' == $relation_type ) { /** This filter is documented in wp-includes/formatting.php */ $emoji_svg_url = apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/2/svg/' ); $urls = array_diff( $urls, array( $emoji_svg_url ) ); } return $urls; }
Remove Shortlink
Mulai dari versi 3, WordPress menambahkan shortlink (link alamat halaman web yang lebih pendek) di kode header. Misalnya:
<link rel = 'shortlink' href = 'https://ibest.id?p=8763' />
Jika tidak menggunakan tautan pendek untuk fungsionalitas apa pun, Anda dapat menghapusnya dengan menambahkan di bawah ini.
/** Remove Shortlink **/ add_filter('after_setup_theme', 'my_disable_rel_shortlink'); function my_disable_rel_shortlink() { remove_action( 'template_redirect', 'wp_shortlink_header', 11); }
Disable Embeds
WordPress memperkenalkan fitur oEmbed di 4.4 yang memungkinkan situs apa pun menyematkan posting WordPress dari jarak jauh dan tampilannya seperti ini.
Dengan menambahkan kode berikut, itu akan mencegah orang lain menyematkan posting blog Anda dan menonaktifkan pemuatan file JS terkait.
/** Disable Embeds **/ function my_deregister_scripts(){ wp_dequeue_script( 'wp-embed' ); } add_action( 'wp_footer', 'my_deregister_scripts' );
Disable XML-RPC
Apakah Anda memiliki kebutuhan untuk menggunakan API WordPress (XML-RPC) untuk menerbitkan / mengedit / menghapus posting, mengedit / mencantumkan komentar, mengunggah file? Juga memiliki XML-RPC yang diaktifkan dan tidak diperkuat dengan benar dapat menyebabkan serangan DDoS & brute force.
Jika Anda tidak membutuhkannya, nonaktifkan dengan menambahkan di bawah.
/** Disable XML-RPC **/ add_filter('xmlrpc_enabled', '__return_false');
Remove WLWManifest Link
Apakah Anda menggunakan dukungan penandaan dengan Windows Live Writter? Jika tidak, hapus dengan menambahkan di bawah.
/** Remove WLWManifest Link **/ remove_action('wp_head', 'wlwmanifest_link');
Remove jQuery Migrate
WordPress menambahkan jQuery Migrate dari versi 3.6. Ini tidak diperlukan jika Anda menggunakan versi terbaru jQuery dan tema / plugin kompatibel dengannya. Untuk menghapus jquery-migrate.min.js dari loading, tambahkan kode di bawah ini.
/** Remove jQuery Migrate **/ function remove_jquery_migrate( $scripts ) { if ( ! is_admin() && isset( $scripts->registered['jquery'] ) ) { $script = $scripts->registered['jquery']; if ( $script->deps ) { $script->deps = array_diff( $script->deps, array( 'jquery-migrate' ) ); } } } add_action( 'wp_default_scripts', 'remove_jquery_migrate' );
Disable Self Pingback
Saya tidak tahu mengapa Anda memerlukan detail pingback mandiri di entri blog Anda dan saya tahu bukan hanya saya yang merasa kesal. Jika Anda merasakan juga maka kode di bawah ini akan membantu.
/** Disable Self Pingback **/ function no_self_ping( &$links ) { $home = get_option( 'home' ); foreach ( $links as $l => $link ) if ( 0 === strpos( $link, $home ) ) unset($links[$l]); } add_action( 'pre_ping', 'no_self_ping' );
Disable atau Limit Post Revisions
Revisi posting di WordPress bukanlah hal baru dan berguna untuk memulihkan posting jika browser crash atau kehilangan jaringan. Tapi tanyakan pada diri Anda, sudah berapa kali itu terjadi?
Secara default, WordPress akan menyimpan revisi untuk setiap draf atau menerbitkan posting, dan ini dapat membengkak database. Anda dapat memilih untuk menonaktifkan seluruhnya atau membatasi jumlah revisi yang akan disimpan.
Tambahkan kode berikut ini di file wp-config.php
file
Untuk menonaktifkan revisi posting
define('WP_POST_REVISIONS', false );
Untuk membatasi jumlahnya
define( 'WP_POST_REVISIONS', 10 );
Catatan: ini harus di atas ABSPATH line jika tidak maka tidak akan bekerja.
Disable Heartbeat
WordPress menggunakan heartbeat API untuk berkomunikasi dengan browser ke server dengan sering memanggil admin-ajax.php. Ini dapat memperlambat waktu buka halaman secara keseluruhan dan meningkatkan penggunaan CPU jika menggunakan shared hosting.
Jika Anda tidak memiliki kebutuhan untuk menggunakan heartbeat API, Anda dapat menonaktifkannya dengan menambahkan di bawah.
/** Disable Heartbeat **/ add_action( 'init', 'stop_heartbeat', 1 ); function stop_heartbeat() { wp_deregister_script('heartbeat'); }
Disable Dashicons di Front-end
Optimasi performa WordPress terakhir adalah menonaktifkan icon dasbor. Dasbor digunakan di konsol admin, dan jika tidak menggunakannya untuk memuat ikon apa pun di front-end, Anda mungkin ingin menonaktifkannya. Dengan menambahkan di bawah ini, dashicons.min.css akan berhenti memuat di front-end.
/** Disable Dashicons **/ function wpdocs_dequeue_dashicon() { if (current_user_can( 'update_core' )) { return; } wp_deregister_style('dashicons'); } add_action( 'wp_enqueue_scripts', 'wpdocs_dequeue_dashicon' );
Kesimpulan
Saya harap artikel ini membantu Anda mempelajari cara mengoptimasi performa WordPress tanpa menggunakan plugin. Cara ini cocok untuk mempercepat website Anda dengan meminimalisir penggunaan plugin yang dapat membengkakkan penyimpanan hosting. Selain itu cara ini juga cocok untuk dikombinasikan dengan plugin cache seperti LiteSpeed Cache.
Mungkin cukup sekian artikel kali ini, semoga bermanfaat dan jika ada pertanyaan mengenai cara mengoptimasi performa wordpress atau Anda juga memiliki cara yang lain silahkan untuk sharing di kolom komentar dibawah, terimakasih.