Langkah-langkah untuk Mengoptimalkan WordPress dalam Mengenai Beban Server?

82

Selain menginstal W3 Total Cache atau plugin caching lain langkah apa yang bisa saya ambil untuk memastikan bahwa tema dan situs saya berjalan secepat mungkin.

Paul Sheldrake
sumber
jika Anda menjalankan situs Anda di vps, Anda harus mencoba redis cache.
ahmetlutfu

Jawaban:

33

Anda dapat menginstal WordPress di Nginx. Ada sejumlah sumber daya untuk membantu:

Beberapa informasi kinerja dari tautan terakhir (yang tampaknya sedikit berbeda dari yang lain):

Jadi saya memutuskan untuk meletakkan proxy di depan wordpress ke cache statis sebanyak mungkin. SEMUA lalu lintas yang tidak diautentikasi dilayani langsung dari cache file nginx, menerima beberapa permintaan (seperti pembuatan umpan RSS) dari 6 halaman / detik hingga 7000+ halaman / detik. Oof. Nginx juga menangani pencatatan dan gzipping, membuat cache backend yang lebih berat untuk melakukan yang terbaik: melayani halaman wordpress dinamis hanya jika diperlukan.

...

Di nginx - sangat efisien, menakutkan. Saya belum pernah melihatnya menggunakan lebih dari 10 hingga 15 meg RAM dan blip CPU, bahkan di bawah beban terberat kami. Grafik ganglia kami tidak berbohong: kami membagi dua kebutuhan memori kami, menggandakan throughput jaringan keluar kami dan benar-benar meratakan beban kami. Kami pada dasarnya tidak memiliki masalah sejak kami mengatur ini.

Travis Northcutt
sumber
Adakah yang punya statistik tentang penghematan cepat menggunakan Nginx?
Mike Lee
Mike, saya menambahkan tautan lain, dan beberapa informasi dari pos itu.
Travis Northcutt
Saya memindahkan blog utama saya dari server 1G yang menjalankan Apache ke server 512M yang menjalankan Nginx. Berjalan lebih lancar, meski terjadi penurunan RAM. Memang, saya memiliki layanan lain yang berjalan di server 1G, meskipun (email, imap, mailman, beberapa situs web lalu lintas rendah).
Dougal Campbell
NB menjalankan WordPress pada nginx berbeda dengan menggunakan nginx sebagai cache proxy di depan Wordpress.
sam
26

Atur expiries sisi klien untuk hal-hal seperti css, gambar, JavaScript dll yang tidak perlu diunduh ulang untuk setiap tampilan halaman. Sejauh ini, ini membuat perbedaan terbesar pada waktu pemuatan situs saya. Unduhan tercepat adalah unduhan yang tidak pernah terjadi ...

# BEGIN Expire headers
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 7200 seconds"
  ExpiresByType image/x-icon "access plus 2592000 seconds"
  ExpiresByType image/jpeg "access plus 2592000 seconds"
  ExpiresByType image/png "access plus 2592000 seconds"
  ExpiresByType image/gif "access plus 2592000 seconds"
  ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
  ExpiresByType text/css "access plus 2592000 seconds"
  ExpiresByType text/javascript "access plus 2592000 seconds"
  ExpiresByType application/x-javascript "access plus 2592000 seconds"
  ExpiresByType text/html "access plus 7200 seconds"
  ExpiresByType application/xhtml+xml "access plus 7200 seconds"
</IfModule>
# END Expire headers

# BEGIN Cache-Control Headers
<IfModule mod_headers.c>
  <FilesMatch "\\.(ico|jpe?g|png|gif|swf|gz)$">
    Header set Cache-Control "max-age=2592000, public"
  </FilesMatch>
  <FilesMatch "\\.(css)$">
    Header set Cache-Control "max-age=2592000, public"
  </FilesMatch>
  <FilesMatch "\\.(js)$">
    Header set Cache-Control "max-age=2592000, private"
  </FilesMatch>
<filesMatch "\\.(html|htm)$">
Header set Cache-Control "max-age=7200, public"
</filesMatch>
# Disable caching for scripts and other dynamic files
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>
</IfModule>
# END Cache-Control Headers

Anda dapat melakukan pre-gzip semua yang Anda bisa (7-zip adalah alat yang bagus untuk ini) & mengunggahnya di tempat yang sama dengan file yang baru saja Anda gzip. Ubah .htaccess untuk menyajikan file yang sudah di-gzip, seperti di bawah ini. Peringatan di sini adalah Anda harus ingat untuk melakukan gzip kembali jika / ketika Anda memperbarui sesuatu. Ini memotong overhead CPU, selain parsing .htaccess.

RewriteEngine on
#Check to see if browser can accept gzip files. If so and we have it - serve it!
ReWriteCond %{HTTP:accept-encoding} gzip
RewriteCond %{HTTP_USER_AGENT} !Safari
#make sure there's no trailing .gz on the url
ReWriteCond %{REQUEST_FILENAME} !^.+\.gz$
#check to see if a .gz version of the file exists.
RewriteCond %{REQUEST_FILENAME}.gz -f
#All conditions met so add .gz to URL filename (invisibly)
RewriteRule ^(.+) $1.gz [QSA,L]

Ini hanya jawaban mentah. Ada banyak variasi pada tema ini. Saya membuat blog tentang hal ini dan menambahkan beberapa referensi ke artikel yang lebih mendalam di http://icanhazdot.net/2010/03/23/some-wordpress-stuff/ . Baca itu dan, yang lebih penting, referensi yang saya tunjukkan - itu adalah sumber yang bagus.

Ketahuilah bahwa jika Anda sering mengotak-atik pengguna perlu menyegarkan cache mereka.

Plugin yang saya temukan sangat berguna juga adalah wp-minify . Yang perlu diperhatikan dengan hal ini adalah Anda harus mengecualikan item spesifik halaman (formulir kontak, slider halaman depan, dll) sehingga Anda tidak mengunduh ulang seluruh rangkaian css, JS dll untuk setiap halaman. Ini adalah cara yang baik untuk meminimalkan, menggabungkan & mengompresi CSS dasar Anda, JS dll. Ini mengurangi banyak permintaan http. Wp-minify bermain baik dengan supercache dan juga dengan header kedaluwarsa yang saya perinci di atas.

Gunakan Yslow di Firebug (Firefox) atau yang serupa untuk memantau permintaan http Anda dan apa yang dikompresi dan tidak. Lihat header kedaluwarsa di sana juga. Anda akan segera melihat apa yang dapat Anda tingkatkan.

CAD pria
sumber
2
Jika seseorang berencana untuk menyalin / menempel Tulisan Anda, ada sebuah instance dari "Tulis Ulang" yang harus diperbaiki.
Jeremy L
2
contoh yang mana?
CAD pria
@Nerdling Bisakah Anda tunjukkan contoh mana yang perlu diperbaiki? Saya ingin menggunakan kode di atas.
helgatheviking
Ini mungkin terkait dengan mod gzip yang tidak digunakan lagi di versi Apache yang lebih baru. Saya harus mengubah milik saya menjadi mod def baru-baru ini.
CAD pria
2
Untuk set default yang baik untuk .htaccess, proyek HTML5 Boilerplate menyediakan templat. github.com/h5bp/html5-boilerplate/blob/master/dist/.htaccess
Paul Sheldrake
21

Minimalkan jumlah plugin yang Anda jalankan hanya untuk apa yang benar-benar Anda butuhkan. Berhati-hatilah dengan plugin yang menambahkan kode javascript dan CSS pada setiap halaman, bahkan ketika kode itu tidak digunakan pada halaman tersebut.

Jika Anda membuat tema Anda sendiri dari awal, pisahkan CSS Anda sehingga fitur yang hanya perlu untuk templat halaman tertentu atau jenis tampilan (posting tunggal, arsip, kategori, dll) hanya dimuat saat diperlukan.

Konfigurasikan W3TC untuk menggunakan CDN (seperti Amazon CloudFront, atau yang lainnya yang didukung oleh W3TC).

Lihat apakah opsi Minify berfungsi untuk Anda (beberapa plugin menghasilkan js / css yang tidak akan melakukan minify dengan baik, jadi pastikan untuk menguji situs Anda setelah mengaktifkan fitur minify).

Jika Anda memiliki kontrol penuh terhadap server MySQL Anda, pastikan Anda telah mengaktifkan query_cache. Gunakan skrip tuning MySQL untuk menemukan cara lain untuk mengoptimalkan konfigurasi basis data Anda.

Jika menggunakan CDN bermasalah karena beberapa alasan, konfigurasikan mod_expires di pengaturan apache Anda. Atur waktu kedaluwarsa selama masuk akal untuk jenis statis seperti gambar, css, javascript, video, audio, dll.

Dougal Campbell
sumber
14

Jalankan memcached dan gunakan cache objek untuk mengurangi jumlah kueri basis data. Ini cache data dari database, bukan halaman. Tidak yakin apakah w3-total-cache sudah melakukan ini.

Pastikan Anda menjalankan opcode cache seperti APC . (Ada beberapa lagi yang tersedia.)

Annika Backstrom
sumber
2
APC benar-benar membuat wordpress jauh lebih responsif, terutama halaman admin. TETAPI, ada beberapa potensi konflik konfigurasi antara WP-SuperCache dan APC. Ini sepertinya tidak mempengaruhi W3 Cache.
WhIteSidE
Ada posting yang sangat baik dari Mark Jaquith tentang ini: APC Object Cache Backend untuk WordPress . Anda dapat menggunakan batcache dengan senang hati dengan APC.
icc97
8

Selain menggunakan plugin caching disk seperti wp-cache, letakkan blog Anda di volume host yang memiliki properti "noatime" di atasnya. Jika tidak, SSH ke host Anda (jika hosting Anda menyediakannya) dan jalankan perintah ini secara rutin pada file Anda setiap beberapa hari:

chattr -R +A ~/*

~ / * Berarti "file saya di bawah direktori home saya". Anda dapat mengubah jalur itu sesuai keinginan Anda. Anda juga dapat mengatur ini di pekerjaan cron di cpanel jika hosting Anda menyediakannya.

Untuk info lebih lanjut tentang properti atime, lihat ini . Ini mempercepat kinerja membaca disk Linux sangat.

Terkadang situs Anda dipalu oleh laba-laba. Anda dapat menggunakan alat seperti SpyderSpanker atau Chennai Central untuk memfilter spider yang tidak membantu membawa peringkat halaman lebih banyak ke situs Anda dan hanya memperlambatnya, dan kemudian memperlambat spider yang baik (seperti Google, Bing, dll.) Dengan mengirimkannya secara acak HTTP 304 Tidak Dimodifikasi pesan.

Hal lain yang saya lihat adalah plugin yang ditulis dengan buruk. Jika Anda belajar cara membuat plugin, Anda mulai melihat bagaimana beberapa plugin dikodekan dengan tidak efisien, atau bahkan menemukan bom waktu, seperti tabel database yang mengisi dan mengisi dan tidak pernah dibersihkan, menyimpan hal-hal seperti data koneksi yang masuk.

Di luar semua solusi lain di sini, Anda juga dapat membuat kebun web WordPress dari blog Anda dengan hosting di beberapa PC node web yang semuanya terhubung kembali ke satu basis data tunggal dan satu volume disk tunggal untuk file (seperti volume yang dipasang di atas NFS ). Lihat Ultra Monkey untuk mengetahui cara menjalankan semuanya.

Volomike
sumber
7

Beberapa jawaban dari atas kepala saya:

1) Minimalkan jumlah permintaan HTTP yang harus dilakukan browser ke host Anda dengan menggabungkan JavaScript dan CSS jika memungkinkan / praktis.

2) Turunkan sebanyak mungkin gambar / media Anda ke CDN pihak ke-3, terutama jika Anda menggunakan hosting bersama.

3) Coba kurangi jumlah posting yang Anda tampilkan di halaman depan untuk mengurangi waktu render total.

3a) Coba gunakan tema yang menyajikan beberapa posting fitur secara penuh di halaman depan dan semua posting yang lebih tua lainnya sebagai kutipan.

ZaMoose
sumber
2
+1 untuk mengurangi jumlah posting, ini memberikan dorongan luar biasa tanpa biaya. Orang tidak benar-benar perlu melihat sepuluh posting lama, saya hanya mengatur conf saya ke delapan.
ripper234
7

Caching Menu WordPress juga memberi Anda peningkatan kinerja. Terutama jika Anda memiliki banyak Halaman atau Struktur Menu raksasa, ini harus dipertimbangkan.

Lakukan dengan 2 langkah mudah. Pada awalnya, buat fungsi yang mendapat atau membuat menu, alih-alih menelepon wp_nav_menulangsung.

function get_cached_menu( $menuargs ) {

    if ( !isset( $menuargs['menu'] ) ) {

        $theme_locations = get_nav_menu_locations();
        $nav_menu_selected_id = $theme_locations[$menuargs['theme_location']];
        $termslug = get_term_by( 'id', $nav_menu_selected_id, 'nav_menu' );
        $transient = 'menu_' . $termslug->slug . '_transient';

    } else {

        $transient = 'menu_' . $menuargs['menu'] . '_transient';

    }


    if ( !get_transient( $transient ) ) { // check if the menu is already cached

        $menuargs['echo'] = '0'; // set the output to return
        $this_menu = wp_nav_menu( $menuargs ); // build the menu with the given $menuargs
        echo $this_menu; // output the menu for this run
        set_transient( $transient, $this_menu ); // set the transient, where the build HTML is saved

    } else {

        echo get_transient( $transient ); // just output the cached version

    }

}

Dalam tema Anda, ganti wp_nav_menudengan get_cached_menu. Sekarang, setiap kali menu dipanggil, Anda memiliki satu Databasequery alih-alih seluruh Menubuilding.

Menu tidak sering berubah - tetapi Anda juga harus melakukan wp_update_nav_menutindakan untuk menghapus transien lama.

Lakukan seperti ini:

add_action('wp_update_nav_menu', 'my_delete_menu_transients');

function my_delete_menu_transients($nav_menu_selected_id) {

    $termslug = get_term_by( 'id', $nav_menu_selected_id, 'nav_menu' );

    $transient = 'menu_' . $termslug->slug . '_transient';

    delete_transient( $transient ); 

}

Menu akan dibuat saat halaman berikutnya dipanggil - dan menggunakan versi cache hingga seseorang memperbarui menu lagi.

Versi terbaru

Terima kasih @helgatheviking karena menunjukkan kesalahan antara siput dan ID. Saya memperbarui fungsi sehingga berfungsi baik dengan theme_positiondan menu(untuk panggilan langsung menu).

Menu selalu disimpan dengan nama Menu, bukan posisi di Theme.

fischi
sumber
Ini sepertinya ide yang sangat keren. Namun saya mengalami masalah dengan kode tersebut. Ketika kita menghapus transient, itu $nav_menu_selected_idadalah angka, sementara saat memanggil get_cached_menu()itu menu_idadalah variabel string, karena parameter itu menjadi ID CSS untuk <ul>elemen.
helgatheviking
5

Gunakan kelas basis data yang dipangkas untuk optimasi. Kami membuat pengalaman yang baik dengan kode sendiri untuk mengurangi penggunaan memori dan kecepatan akses basis data. Di samping itu, Anda dapat mengoptimalkan struktur basis data itu sendiri dengan beberapa perubahan kecil yang juga banyak.

Bagian dari kode kelas database dapat ditemukan di wordpress trac, itu tidak membuatnya menjadi inti ( Tiket # 11799 dan terkait ).

hakre
sumber
Solusi menarik. Berikut adalah URL Tiket Trac jika ada yang tertarik juga: core.trac.wordpress.org/ticket/11799
Mike Lee
4

Untuk situs yang sangat diperdagangkan, Anda harus menyetel semua buffer MySQL untuk konten yang ada sekarang. Terlepas dari versi WordPress, lapisan MySQL dapat dikonfigurasikan konfigurasinya .

Bahkan, jika Anda memiliki data InnoDB tanpa mengaktifkan innodb_file_per_table, Anda perlu membersihkan InnoDB dengan mengelompokkan setiap tabel ke dalam tablespace fisiknya sendiri . Dimungkinkan untuk melakukan penyetelan MySQL yang layak bahkan jika Anda memiliki perangkat keras terbatas . Ada banyak skenario untuk melakukan optimasi InnoDB tersebut .

IMHO, Anda tidak dapat merencanakan pengaturan yang baik untuk my.cnf tanpa mengetahui jumlah data yang harus dikonfigurasi. Anda harus secara berkala memuat dataset saat ini dari produksi ke dalam lingkungan pementasan, melakukan optimisasi, dan mendapatkan nomor-nomor yang akan dikonfigurasi di my.cnf dari server produksi.

RolandoMySQLDBA
sumber
3

Anda dapat mengaktifkan kompresi keluaran global . ini akan mem-gzip semua yang keluar secara otomatis jika browser mendukungnya. Ini secara drastis mengurangi ukuran file yang ditransfer, tetapi meningkatkan beban CPU Anda.

Scott M.
sumber
Ini cenderung membuat situs Anda "merasa" jauh lebih lambat. Yahoo! dokumen teknis menyarankan untuk mem-flushing kode Anda tepat setelah ujung kepala dan sebelum awal badan sehingga skrip dan gaya dapat mulai memuat. Dengan buffering seluruh halaman, Anda mencegah hal ini terjadi, dan halaman "terasa" lambat karena pengguna harus menunggu WordPress untuk membuat seluruh halaman sebelum pengguna melihat apa pun.
WhIteSidE
Scott tidak berbicara tentang buffering seluruh halaman tetapi menggunakan kompresi output apache. Itu sesuatu yang berbeda, hanya jika Anda menggunakan kompresi output PHP melalui buffer output ini akan memiliki kekurangan yang Anda jelaskan secara samar. Tetapi tidak hanya karena pada akhirnya, buffering output dapat membuat segalanya lebih cepat. Ini ada hubungannya dengan I / O di server Anda.
hakre
3

Saya baru-baru ini berbicara tentang hal ini di WordCamp Houston . Semua rekomendasi di atas bagus dan yang penting adalah untuk memastikan semua hal front-end sepenuhnya dioptimalkan maka Anda dapat mulai bekerja pada caching dan masalah kinerja server.

Render progresif akan membuat halaman Anda terasa lebih cepat karena pengguna akan melihat konten halaman sebelum dimuat penuh. Untuk melakukan ini, pastikan semua pemblokiran js ada di bagian paling bawah halaman dan css ada di bagian atas.

Juga jika Anda menggunakan banyak tombol media sosial, Anda dapat menyesuaikan skrip untuk membuatnya memuat dalam iframe setelah halaman dimuat penuh. Saya menulis tutorial tentang cara melakukannya dengan tombol tweet TweetMeMe (sekarang sudah usang karena Twitter merilis tombol retweet mereka sendiri) tetapi masih dapat diterapkan ke tombol berbagi lainnya.

Untuk kinerja server, lihat Nginx sebagai proksi ujung depan untuk konten statis dengan Apache menangani PHP dan MySQL yang berat.

Chris_O
sumber
2

Karena belum ada yang menyebutkannya, salah satu langkah paling penting untuk meningkatkan kinerja server bersama dengan pengaturan LAMP adalah beralih ke utas apache pekerja dan mod_fcgid.

Ini membebaskan memori 500MB di server pribadi virtual saya.

lapangan mesh
sumber
Saya sudah pernah mencoba ini sebelumnya, tapi saya tidak pernah bisa menjalankan pekerja apache + fcgi lingkungan yang berjalan. Jika ada yang tahu tentang beberapa instruksi pengaturan yang baik untuk ini di Ubuntu, silakan posting mereka. Saya terutama akan berterima kasih atas instruksi yang merinci beberapa arahan konfigurasi Apache yang memengaruhi perilaku FCGI, dan menjelaskan bagaimana mengubah mereka dapat memengaruhi penggunaan memori, kinerja, dll. Saat ini, saya menggunakan apache bercabang dua dengan nginx front- di server cache proxy.
Dougal Campbell
Tentukan stabil. Instalasi saya berjalan sangat stabil, tetapi Anda akan membutuhkan 2GB RAM dalam konfigurasi saya. Anda hanya perlu membaca dan mengubah. Dokumentasi apache tentang fcgi cukup luas.
meshfields
3
coba periksa virtualmin.com ini sangat stabil dan gratis
Ünsal Korkmaz
1

Panduan untuk memeriksa plugin memperlambat

Ada plugin yang sangat sederhana bernama Page Load Time , yang menambahkan timer ke footer halaman Anda. Sebenarnya hanya empat baris kode:

<?php
function ur_pageload_footer() {
    printf(__('Page in %s seconds', 'pageload'), timer_stop());
}
add_action('wp_footer', 'ur_pageload_footer')

Kemudian:

  1. Buat spreadsheet
  2. Daftarkan semua plugin aktif Anda dan letakkan di sana
  3. Refresh halaman tiga kali dengan mencatat waktu pemuatan halaman setiap belokan
  4. Telusuri plugin Anda satu per satu untuk menonaktifkannya
  5. Ulangi langkah 3
  6. Perhatikan urutan bahwa Anda menonaktifkan plugin

Spreadsheet Anda akan terlihat seperti

+-------+-------+-------+-------+--------+
| Run 1 | Run 2 | Run 3 | Order | Plugin |

Jadi jika setelah menonaktifkan plugin waktu respons halaman meningkat secara signifikan maka Anda dapat melihat apakah Anda dapat menghindari plugin itu.

Saya menemukan dua plugin yang menyebabkan mqtranslate 'signifikan' memperlambat dan Plugin Navigasi Multi-level (yang agak tua tapi bagus) .

icc97
sumber
Akan sangat keren untuk mengotomatisasi proses ini adalah phantomjs dan selenium (atau yang serupa) sehingga berjalan secara otomatis dan mengeluarkan sedikit laporan pada akhirnya.
Paul Sheldrake
-1

Tetap menggunakan plugin W3 Total Cache untuk fungsionalitas caching di WordPress. Aktifkan caching halaman dan caching basis data dari halaman pengaturan plugin. Pastikan Anda memilih 'Cache PHP Alternatif (APC / APCu)' sebagai mekanisme caching. JANGAN aktifkan minifikasi apa pun di W3 Total Cache karena ada banyak peluang bagi Anda untuk merusak tampilan dan / atau fungsionalitas situs Anda. Kami akan menyerahkannya ke Cloudflare.

Setelah selesai mengonfigurasi sisa fungsi plugin, siapkan Cloudflare untuk situs web Anda. Pastikan Anda mengaktifkan Cloudflare di pengaturan W3 Total Cache juga di bawah 'Extensions'.

Cloudflare adalah Jaringan Pengiriman Konten yang menyimpan semua konten statis (file gambar, CSS, JS, dokumen, dll.) Dari situs Anda dan menyajikannya kepada pengunjung Anda dari server global mereka. Ini dapat membantu mempercepat waktu pemuatan halaman dan mengurangi beban di server Anda. Untuk daftar tipe file yang di-cache oleh Cloudlfare, checkout daftar ini . Apalagi Cloudflare memiliki paket gratis.

Di Cloudflare, atur level caching ke standar dan atur cache cache menjadi sesuatu yang setidaknya lebih dari 20 jam. Aktifkan Always Online ™ sehingga meskipun server Anda turun, Cloudflare akan menyajikan halaman statis situs web Anda dari cache mereka. Juga aktifkan fitur auto minify (ingat mengapa saya meminta Anda untuk tidak mengaktifkan minification adalah W3 Total Cache? Karena Cloudflare melakukannya dengan lebih baik!) Kemudian atur Rocket Loader ™ ke otomatis.

Berikut kutipan dari apa yang dilakukan Rocket Loader:

  • Mengurangi jumlah permintaan jaringan dengan menggabungkan file JavaScript, bahkan sumber daya pihak ketiga, untuk menghindari memperlambat rendering halaman.

  • Memuat skrip secara tidak sinkron, termasuk skrip pihak ketiga, sehingga skrip tersebut
    tidak memblokir konten halaman Anda untuk
    segera dimuat .

  • Menyalin skrip secara lokal (menggunakan LocalStorage, tersedia di sebagian besar
    browser dan ponsel pintar) sehingga tidak diambil ulang kecuali
    diperlukan.

Informasi lebih lanjut dapat ditemukan di sini .

Jika mungkin beralih ke kerangka kerja Genesis untuk WordPress karena mereka bersih tanpa mengasapi apapun . Genesis dibangun dengan mempertimbangkan kecepatan dan SEO. Saya sendiri telah mengujinya dan skor PageSpeed ​​saya bagus. Juga jika Anda menggunakan Genesis, maka jangan lupa untuk mengaktifkan cache fragmen dalam pengaturan W3 Total Cache.

Karena sekarang Anda menggunakan Cloudlfare sebagai CDN, Anda dapat menggunakan plugin seperti ' Imagify ' atau ' Compres JPEG & PNG images ' oleh TingPNG untuk mengompres gambar Anda. Keduanya adalah plugin gratis yang tersedia di repositori plugin WordPress.org. Juga, Imagify mendukung algoritma kompresi lossy yang kuat.

Terakhir, instal plugin ' Hapus Kueri Dari Sumber Daya Statis ' dari repositori WordPress sehingga menghapus string kueri dari sumber daya statis seperti file CSS & JS. Ini karena sumber daya dengan "?" Atau "&" di URL tidak di-cache oleh beberapa server caching proxy (ingat, Cloudflare juga merupakan server caching proxy).

Kemudian instal plugin ' Gunakan Google Perpustakaan '. Plugin ini memungkinkan situs WordPress Anda untuk menggunakan Google AJAX Library API CDN daripada melayani file-file ini dari instalasi WordPress Anda secara langsung.

Beberapa manfaatnya adalah:

  • Meningkatkan peluang bahwa pengguna telah memiliki cache file-file ini.
  • Mengambil beban tambahan dari server Anda.
  • Menggunakan versi terkompresi dari perpustakaan (bila tersedia).
  • Server Google diatur untuk menegosiasikan kompresi HTTP dengan browser yang meminta.

Terakhir tetapi tidak kalah pentingnya, gunakan plugin ' WP-Optimize ' oleh Ruhani Rabin untuk membersihkan dan mengoptimalkan basis data Anda.

Semoga ini menjawab pertanyaan Anda sehubungan dengan mengoptimalkan WordPress untuk mengurangi beban server.

Antony Agnel
sumber