Image
Image

Autoptimize

Deskripsi

Autoptimize membuat optimasi situs Anda menjadi sangat mudah. Plugin ini dapat menggabungkan, meminifikasi, dan meng-cache skrip serta style, menyisipkan CSS di head halaman secara default tetapi juga dapat meng-inline critical CSS dan menunda pemuatan CSS penuh yang sudah digabungkan, memindahkan dan menunda skrip ke footer, serta meminifikasi HTML. Anda dapat mengoptimalkan dan melakukan lazy-load gambar (dengan dukungan format WebP dan AVIF), mengoptimalkan Google Fonts, membuat JavaScript yang tidak digabungkan menjadi async, menghapus “cruft” emoji bawaan inti WordPress, dan lainnya. Dengan demikian, Autoptimize dapat meningkatkan performa situs Anda bahkan ketika sudah menggunakan HTTP/2! Tersedia API yang ekstensif yang memungkinkan Anda menyesuaikan Autoptimize untuk kebutuhan spesifik setiap situs.
Jika Anda menganggap performa memang penting, setidaknya pertimbangkan salah satu dari banyak plugin cache halaman gratis (mis. Speed Booster pack atau KeyCDN’s Cache Enabler) untuk melengkapi Autoptimize atau bahkan pertimbangkan Autoptimize Pro yang tidak hanya memiliki cache halaman tetapi juga optimasi gambar, CDN, critical CSS, dan lainnya!

Autoptimize Pro
Autoptimize Pro adalah Power-Up premium, yang menambahkan optimasi gambar, CDN, cache halaman, aturan critical CSS otomatis, dan opsi “booster” tambahan, semuanya dalam satu langganan praktis untuk membuat situs Anda semakin cepat!!

Dukungan Premium
Kami menyediakan layanan Dukungan Premium dan Optimasi Performa Web yang hebat dengan Accelera, lihat penawaran kami di https://accelerawp.com/!

(Gambar speed-surfing di bawah lisensi creative commons oleh LL Twistiti)

Instalasi

Cukup instal dari layar WordPress “Plugins > Add New” dan semuanya akan baik-baik saja. Instalasi manual juga sangat mudah:

  1. Unggah berkas zip dan unzip di direktori /wp-content/plugins/
  2. Aktifkan plugin melalui menu ‘Plugins’ di WordPress
  3. Buka Settings > Autoptimize dan aktifkan opsi yang Anda inginkan. Umumnya ini berarti “Optimize HTML/ CSS/ JavaScript”.

Tanya Jawab

Apa yang dilakukan plugin ini untuk membantu mempercepat situs saya?

Plugin ini meminifikasi semua skrip dan style serta mengonfigurasi webserver Anda agar mengompresnya dengan header expires yang baik. JavaScript secara default akan dibuat tidak memblokir rendering dan CSS juga bisa demikian dengan menambahkan critical CSS. Anda dapat mengonfigurasikannya untuk menggabungkan (aggregate) berkas CSS & JS, dalam hal ini style dipindahkan ke head halaman, dan skrip ke footer. Plugin ini juga meminifikasi kode HTML dan juga dapat mengoptimalkan gambar serta Google Fonts, sehingga halaman Anda menjadi sangat ringan.

Tapi saya sudah memakai HTTP/2, jadi saya tidak butuh Autoptimize?

HTTP/2 jelas merupakan langkah maju yang besar, karena mengurangi dampak banyaknya permintaan dari server yang sama secara signifikan dengan menggunakan koneksi yang sama untuk melakukan beberapa permintaan paralel, dan karena itu pada instalasi baru Autoptimize tidak akan lagi menggabungkan berkas CSS dan JS. Meski demikian, penggabungan (concatenation) CSS/ JS masih bisa sangat masuk akal, sebagaimana dijelaskan dalam artikel di css-tricks.com ini dan blogpost dari salah satu engineer Ebay ini. Kesimpulannya; konfigurasi, uji, konfigurasi ulang, uji ulang, lakukan tweak, dan lihat apa yang paling cocok dalam konteks Anda. Mungkin cukup HTTP/2 saja, mungkin HTTP/2 + penggabungan dan minifikasi, mungkin HTTP/2 + minifikasi (yang juga bisa dilakukan AO, cukup hilangkan centang opsi “aggregate JS-files” dan/ atau “aggregate CSS-files”). Dan tentu saja Autoptimize bisa melakukan jauh lebih banyak daripada “sekadar” mengoptimalkan JS & CSS 😉

Apakah ini akan berfungsi dengan blog saya?

Walaupun Autoptimize tidak disertai jaminan apa pun, pada umumnya plugin ini akan bekerja tanpa kendala jika Anda mengonfigurasikannya dengan benar. Lihat “Troubleshooting” di bawah untuk info cara mengonfigurasi jika terjadi masalah. Jika Anda mau, Anda dapat menguji Autoptimize di situs dummy gratis baru, atas kebaikan tastewp.com.

Mengapa jquery.min.js tidak dioptimalkan saat menggabungkan JavaScript?

Mulai AO 2.1 jquery.min.js milik inti WordPress tidak dioptimalkan karena alasan sederhana: banyak plugin populer menyisipkan JS inline yang juga tidak digabungkan (karena potensi masalah ukuran cache akibat kode unik dalam JS inline) yang bergantung pada ketersediaan jquery, sehingga mengecualikan jquery.min.js memastikan sebagian besar situs akan berfungsi langsung tanpa perlu penyesuaian. Jika Anda ingin mengoptimalkan jquery juga, Anda dapat menghapusnya dari daftar pengecualian optimasi JS (Anda mungkin juga harus mengaktifkan “also aggregate inline JS” atau beralih ke “force JS in head”).

Mengapa JS yang diautoptimize memblokir rendering?

Ini terjadi saat menggabungkan JavaSCript dan mencentang opsi “force in head” atau saat tidak menggabungkan dan tidak menunda pemuatan. Pertimbangkan untuk mengubah pengaturan.

Mengapa CSS yang sudah diautoptimize masih dianggap memblokir rendering?

Dengan konfigurasi default Autoptimize, CSS ditautkan di head, yang merupakan default yang aman tetapi membuat Google PageSpeed Insights mengeluh. Anda dapat mempertimbangkan “inline all CSS” (mudah) atau “inline and defer CSS” (lebih baik) yang juga dijelaskan di FAQ ini.

Apa kegunaan “inline and defer CSS”?

CSS pada umumnya harus berada di head dokumen. Baru-baru ini antara lain Google mulai mendorong penundaan (defer) CSS yang tidak esensial, sambil meng-inline style yang dibutuhkan untuk membangun halaman di atas fold. Ini sangat penting agar halaman dirender secepat mungkin pada perangkat seluler. Sejak Autoptimize 1.9.0 hal ini mudah; pilih “inline and defer CSS”, tempel blok “above the fold CSS” di kolom input (text area), dan Anda beres!

Tapi bagaimana cara menemukan “above the fold CSS” itu?

Tidak ada solusi mudah untuk itu karena “above the fold” bergantung pada posisi fold, yang pada gilirannya bergantung pada ukuran layar. Namun ada beberapa alat yang tersedia yang mencoba mengidentifikasi apa saja yang termasuk “above the fold”. Daftar alat ini adalah titik awal yang bagus. Sitelocity critical CSS generator dan criticalpathcssgenerator milik Jonas Ohlsson adalah solusi dasar yang bagus dan http://criticalcss.com/ adalah solusi premium oleh Jonas Ohlsson yang sama. Alternatifnya, bookmarklet ini (khusus Chrome) juga bisa membantu.

Atau sebaiknya Anda meng-inline semua CSS?

Jawaban singkatnya: mungkin tidak. Walaupun meng-inline semua CSS akan membuat CSS tidak memblokir rendering, hal itu akan membuat halaman HTML dasar Anda menjadi jauh lebih besar sehingga membutuhkan lebih banyak “roundtrip times”. Selain itu, ketika mempertimbangkan beberapa halaman diminta dalam satu sesi browsing, CSS inline dikirim berulang kali setiap kali, sedangkan jika tidak di-inline maka akan disajikan dari cache. Terakhir, CSS yang di-inline akan mendorong meta-tag di HTML ke posisi yang lebih bawah sehingga Facebook atau Whatsapp mungkin tidak lagi mencarinya, sehingga misalnya thumbnail saat dibagikan di platform tersebut menjadi rusak.

Cache saya makin besar, bukankah Autoptimize mengosongkan cache?

Autoptimize tidak memiliki mekanisme pengosongan cache otomatis miliknya sendiri, karena ini dapat menghapus CSS/JS teroptimasi yang masih dirujuk di cache lain, yang akan merusak situs Anda. Selain itu, cache yang cepat membesar merupakan indikasi adanya masalah lain yang sebaiknya Anda hindari.

Sebagai gantinya, Anda dapat menjaga ukuran cache tetap pada tingkat yang dapat diterima dengan cara:

  • menonaktifkan opsi “aggregate inline JS” dan/ atau “aggregate inline CSS”
  • mengecualikan variabel JS (atau terkadang selector CSS) yang berubah per halaman (atau per pemuatan halaman). Anda dapat membaca caranya di blogpost ini.

Terlepas dari keberatan di atas, ada solusi pihak ketiga untuk mengosongkan cache AO secara otomatis, misalnya menggunakan kode ini atau plugin ini, tetapi karena alasan di atas, ini hanya boleh digunakan jika Anda benar-benar tahu apa yang Anda lakukan.

“Clear cache” sepertinya tidak berfungsi?

Saat mengeklik tautan “Delete Cache” di dropdown Autoptimize pada toolbar admin, Anda mungkin mendapat pesan “Cache Anda mungkin tidak berhasil dikosongkan”. Jika demikian, buka halaman pengaturan Autoptimize dan klik tombol “Save changes & clear cache”.

Selain itu, jangan khawatir jika cache Anda tidak pernah turun ke 0 berkas/ 0KB, karena Autoptimize (sejak versi 2.2) akan secara otomatis melakukan preload cache segera setelah dibersihkan untuk mempercepat minifikasi berikutnya secara signifikan.

Situs saya terlihat rusak ketika saya mengosongkan cache Autoptimize!

Saat mengosongkan cache AO, tidak boleh ada page cache yang berisi halaman (HTML) yang merujuk ke CSS/ JS teroptimasi yang telah dihapus. Walaupun untuk tujuan tersebut ada integrasi antara Autoptimize dan beberapa page cache, integrasi ini tidak mencakup 100% konfigurasi sehingga Anda mungkin perlu mengosongkan page cache Anda secara manual.

Apakah saya masih bisa menggunakan Rocket Loader milik Cloudflare?

Cloudflare Rocket Loader adalah cara yang cukup tingkat lanjut tetapi invasif untuk membuat JavaScript tidak memblokir rendering, yang masih dianggap Beta oleh Cloudflare. Kadang Autoptimize & Rocket Loader dapat bekerja bersama, kadang tidak. Pendekatan terbaik adalah menonaktifkan Rocket Loader, mengonfigurasi Autoptimize, lalu mengaktifkan kembali Rocket Loader (jika Anda merasa itu dapat membantu) setelahnya dan menguji apakah semuanya masih berfungsi.

Saat ini (Juni 2017) tampaknya RocketLoader bisa merusak fitur AO “inline & defer CSS”, yang berbasis pada loadCSS dari Filamentgroup, sehingga CSS yang ditunda tidak termuat.

Saya mencoba Autoptimize tetapi skor Google Pagespeed saya nyaris tidak meningkat

Autoptimize bukan plugin sederhana “perbaiki masalah Pagespeed saya”; plugin ini “hanya” menggabungkan & meminifikasi JS & CSS (lokal) serta gambar dan menyediakan beberapa tambahan yang bagus seperti menghapus Google Fonts dan menunda pemuatan CSS. Dengan demikian, Autoptimize memungkinkan Anda meningkatkan performa (waktu muat yang diukur dalam detik) dan kemungkinan juga membantu Anda mengatasi beberapa peringatan Pagespeed tertentu. Jika Anda ingin meningkatkan lebih jauh, Anda kemungkinan juga harus melihat hal-hal seperti cache halaman dan konfigurasi webserver, yang akan meningkatkan performa nyata (lagi, waktu muat yang diukur misalnya oleh https://webpagetest.org) dan penilaian Pagespeed “praktik terbaik performa” Anda.

Apa yang bisa saya lakukan dengan API?

Banyak sekali; ada filter yang bisa Anda gunakan untuk menonaktifkan Autoptimize secara kondisional per permintaan, mengubah pengecualian CSS dan JS, mengubah batas untuk gambar latar CSS agar di-inline di CSS, menentukan berkas JS mana yang dipindahkan ke belakang berkas gabungan, mengubah atribut defer pada tag script JS gabungan, … Ada contoh untuk beberapa filter di autoptimize_helper.php_example dan di FAQ ini.

Bagaimana cara kerja CDN?

Mulai versi 1.7.0, CDN diaktifkan setelah memasukkan direktori root blog CDN (mis. http://cdn.example.net/wordpress/). Jika URL tersebut ada, maka URL itu akan digunakan untuk semua berkas yang dihasilkan Autoptimize (yaitu CSS dan JS gabungan), termasuk gambar latar di CSS (ketika tidak menggunakan data-uri).

Jika Anda ingin gambar yang Anda unggah juga berada di CDN, Anda dapat mengubah upload_url_path di konfigurasi WordPress Anda (/wp-admin/options.php) ke direktori unggahan CDN target (mis. http://cdn.example.net/wordpress/wp-content/uploads/). Perlu diperhatikan bahwa ini hanya berfungsi untuk gambar yang diunggah setelah titik tersebut, bukan untuk gambar yang sudah diunggah sebelumnya. Terima kasih kepada BeautyPirate atas tipnya!

Mengapa font saya tidak ikut ditaruh di CDN?

Autoptimize mendukung ini, tetapi tidak diaktifkan secara default karena font non-lokal mungkin memerlukan konfigurasi tambahan. Namun jika kebijakan permintaan lintas-origin Anda sudah benar, Anda dapat menyuruh Autoptimize menaruh font Anda di CDN dengan melakukan hook ke API, menyetel autoptimize_filter_css_fonts_cdn menjadi true dengan cara ini;

add_filter( 'autoptimize_filter_css_fonts_cdn', '__return_true' );

Saya menggunakan Cloudflare, apa yang harus saya masukkan sebagai direktori root CDN

Tidak perlu apa-apa, karena saat menggunakan Cloudflare, CSS/ JS yang sudah diautoptimize otomatis berada di CDN Cloudflare.

Bagaimana saya bisa memaksa berkas gabungan menjadi CSS atau JS statis alih-alih PHP?

Jika webserver Anda dikonfigurasi dengan benar untuk menangani kompresi (gzip atau deflate) dan masa kedaluwarsa cache (expires dan cache-control dengan cacheability yang memadai), Anda tidak memerlukan Autoptimize untuk menanganinya. Dalam hal itu Anda dapat mencentang opsi “Save aggregated script/css as static files?”, yang akan memaksa Autoptimize menyimpan berkas gabungan sebagai berkas .css dan .js (artinya tidak perlu PHP untuk menyajikan berkas-berkas ini). Pengaturan ini menjadi default sejak Autoptimize 1.8.

Bagaimana cara kerja “exclude from optimizing”?

Optimasi CSS dan JS dapat melewati agar kode tidak digabungkan dan diminifikasi dengan menambahkan “identifier” ke daftar pengecualian yang dipisahkan koma. String identifier yang tepat dapat ditentukan dengan cara ini:

  • jika Anda ingin mengecualikan berkas tertentu, mis. wp-content/plugins/funkyplugin/css/style.css, Anda cukup mengecualikan “funkyplugin/css/style.css”
  • jika Anda ingin mengecualikan semua berkas dari plugin tertentu, mis. wp-content/plugins/funkyplugin/js/*, Anda dapat mengecualikan misalnya “funkyplugin/js/” atau “plugins/funkyplugin”
  • jika Anda ingin mengecualikan kode inline, Anda harus menemukan string spesifik yang unik dalam blok kode tersebut dan menambahkannya ke daftar pengecualian. Contoh: untuk mengecualikan <script>funky_data='Won\'t you take me to, Funky Town'</script>, identifier-nya adalah “funky_data”.

Troubleshooting Autoptimize

Lihat instruksi troubleshooting di https://blog.futtta.be/2022/05/05/what-to-do-when-autoptimize-breaks-your-site/

Saya sudah mengecualikan berkas tetapi masih tetap diautoptimize?

AO meminifikasi JS/ CSS yang dikecualikan jika nama berkas menunjukkan bahwa berkas tersebut belum diminifikasi. Sejak AO 2.5 Anda dapat menonaktifkan ini pada tab “JS, CSS & HTML” di bagian opsi misc dengan menghilangkan centang “minify excluded files”.

Tolong, saya mendapat halaman kosong atau internal server error setelah mengaktifkan Autoptimize!!

Pastikan Anda tidak menjalankan plugin minifikasi HTML, CSS, atau JS lain (BWP minify, WP minify, …) secara bersamaan dengan Autoptimize atau nonaktifkan fungsi tersebut pada plugin cache halaman Anda (W3 Total Cache, WP Fastest Cache, …). Coba aktifkan hanya optimasi CSS atau hanya JS untuk melihat mana yang menyebabkan server error lalu ikuti langkah troubleshooting umum untuk menemukan solusinya.

Tapi saya masih mendapatkan berkas CSS atau JS autoptimized yang kosong!

Jika Anda menggunakan Apache, berkas .htaccess yang ditulis oleh Autoptimize dalam beberapa kasus dapat berbenturan dengan pengaturan AllowOverrides pada konfigurasi Apache Anda (seperti pada konfigurasi default beberapa instalasi Ubuntu), sehingga menghasilkan “internal server errors” pada berkas CSS dan JS Autoptimize. Ini dapat diselesaikan dengan mengatur AllowOverrides menjadi All.

Tidak bisa login pada multisite domain-mapped

Multisite dengan domain-mapped mengharuskan Autoptimize diinisialisasi pada action WordPress yang berbeda; tambahkan baris kode ini ke wp-config.php Anda agar melakukan hook ke setup_theme misalnya:

define( 'AUTOPTIMIZE_SETUP_INITHOOK', 'setup_theme' );

Saya tidak mendapat error, tetapi halaman saya sama sekali tidak dioptimalkan?

Autoptimize melakukan sejumlah pemeriksaan sebelum benar-benar mengoptimalkan. Jika salah satu dari hal berikut benar, halaman Anda tidak akan dioptimalkan:

  • saat berada di customizer
  • jika tidak ada tag pembuka <html
  • jika ada <xsl:stylesheet dalam respons (menunjukkan output bukan HTML melainkan XML)
  • jika ada <html amp dalam respons (karena halaman AMP sudah dioptimalkan)
  • jika output adalah RSS-feed (fungsi is_feed())
  • jika output adalah halaman administrasi WordPress (fungsi is_admin())
  • jika halaman diminta dengan ?ao_noptimize=1 ditambahkan ke URL
  • jika ada kode yang melakukan hook ke Autoptimize untuk menonaktifkan optimasi (lihat topik tentang Visual Composer)
  • jika plugin lain menggunakan output buffer dengan cara yang tidak kompatibel (nonaktifkan plugin lain secara selektif untuk mengidentifikasi penyebabnya)

Visual Composer, Beaver Builder, dan solusi page builder sejenis rusak!!

Nonaktifkan opsi agar Autoptimize aktif untuk pengguna yang sedang login dan lepas kendali seret dan lepas 😉

Tolong, checkout/ pembayaran toko saya tidak berfungsi!!

Nonaktifkan opsi untuk mengoptimalkan halaman keranjang/ checkout (berfungsi untuk WooCommerce, Easy Digital Downloads, dan WP eCommerce).

Revolution Slider rusak!

Pastikan js/jquery/jquery.min.js ada di daftar pengecualian optimasi JS yang dipisahkan koma (ini sudah dikecualikan pada konfigurasi default).

Saya mendapat error “jQuery is not defined”

Dalam kasus itu Anda memiliki JavaScript yang tidak digabungkan yang memerlukan jQuery untuk dimuat, jadi Anda harus menambahkan js/jquery/jquery.min.js ke daftar pengecualian optimasi JS yang dipisahkan koma.

Saya menggunakan NextGen Galleries dan banyak JS tidak digabungkan/ diminifikasi?

NextGen Galleries melakukan beberapa hal cerdas untuk menambahkan JavaScript. Agar Autoptimize dapat menggabungkannya, Anda dapat menonaktifkan resource manager Nextgen Gallery dengan cuplikan kode ini add_filter( 'run_ngg_resource_manager', '__return_false' ); atau Anda dapat menyuruh Autoptimize untuk menginisialisasi lebih awal dengan menambahkan ini ke wp-config.php Anda: define("AUTOPTIMIZE_INIT_EARLIER","true");

Apa itu noptimize?

Mulai versi 1.6.6 Autoptimize mengecualikan semua yang berada di dalam tag noptimize, mis.:
<!–noptimize–><script>alert(‘ini tidak akan diautoptimize’);</script><!–/noptimize–>

Anda dapat melakukan ini di konten halaman/ pos Anda, di widget, dan di berkas tema Anda (pertimbangkan untuk membuat child theme agar pekerjaan Anda tidak ditimpa oleh pembaruan tema).

Bisakah saya mengubah direktori & nama berkas dari berkas Autoptimize yang di-cache?

Ya, jika Anda ingin menyajikan berkas dari misalnya /wp-content/resources/aggregated_12345.css alih-alih default /wp-content/cache/autoptimize/autoptimize_12345.css, maka tambahkan ini ke wp-config.php:

define('AUTOPTIMIZE_CACHE_CHILD_DIR','/resources/');
define('AUTOPTIMIZE_CACHEFILE_PREFIX','aggregated_');

Apakah ini berfungsi dengan WP_CONTENT_URL non-default?

Tidak, Autoptimize tidak mendukung WP_CONTENT_URL non-default secara langsung (out-of-the-box), tetapi hal ini dapat dilakukan dengan beberapa baris kode yang melakukan hook ke API Autoptimize.

Apakah JS/ CSS yang dihasilkan bisa di-pre-gzip?

Ya, tetapi ini nonaktif secara default. Anda dapat mengaktifkannya dengan meneruskan ´true´ ke ´autoptimize_filter_cache_create_static_gzip´. Namun Anda tetap harus mengonfigurasi webserver Anda agar menggunakan berkas-berkas ini alih-alih yang tidak di-gzip untuk menghindari overhead kompresi on-the-fly.

Apa fungsi “remove emojis”?

Opsi baru di Autoptimize 2.3 ini menghapus CSS inline, JS inline, dan berkas JS tertaut yang ditambahkan oleh inti WordPress. Dengan demikian, opsi ini dapat memberikan dampak positif kecil pada performa situs Anda.

Apakah “remove query strings” berguna?

Walaupun beberapa alat penilaian performa online akan menyoroti “query string untuk berkas statis” sebagai isu performa, umumnya dampaknya nyaris tidak ada. Karena itu Autoptimize, sejak versi 2.3, memungkinkan Anda menghapus query string (atau lebih tepatnya parameter “ver”), tetapi mencentang “remove query strings from static resources” akan berdampak kecil atau bahkan tidak berdampak pada performa situs Anda sebagaimana diukur dalam (mili-)detik.

(Bagaimana) sebaiknya saya mengoptimalkan Google Fonts?

Google Fonts biasanya dimuat oleh berkas CSS tertaut yang “memblokir rendering”. Jika Anda memiliki tema dan plugin yang menggunakan Google Fonts, Anda bisa berakhir dengan beberapa berkas CSS semacam itu. Autoptimize (sejak versi 2.3) kini memungkinkan Anda mengurangi dampak Google Fonts dengan cara menghapusnya sama sekali atau dengan mengoptimalkan cara pemuatannya. Ada dua jenis optimasi; yang pertama adalah “combine and link”, yang mengganti semua permintaan Google Fonts menjadi satu permintaan, yang tetap akan memblokir rendering tetapi memungkinkan font dimuat segera (artinya Anda tidak akan melihat font berubah saat halaman dimuat). Alternatifnya adalah “combine and load async” yang menggunakan JavaScript untuk memuat font secara non-render-blocking tetapi bisa menyebabkan “flash of unstyled text”.

Apakah saya sebaiknya menggunakan “preconnect”

Preconnect adalah fitur yang agak tingkat lanjut untuk menginstruksikan browser (jika mendukungnya) agar membuat koneksi ke domain tertentu meskipun koneksi tersebut tidak langsung dibutuhkan. Ini dapat digunakan misalnya untuk mengurangi dampak resource pihak ketiga pada HTTPS (karena permintaan DNS, koneksi TCP, dan negosiasi SSL/TLS dieksekusi lebih awal). Gunakan dengan hati-hati, karena melakukan preconnect ke terlalu banyak domain bisa menjadi kontra-produktif.

Kapan saya bisa (tidak bisa) membuat JS menjadi async?

Berkas JavaScript yang tidak diautoptimize (karena dikecualikan atau karena di-host di tempat lain) biasanya memblokir rendering. Dengan menambahkannya ke kolom “async JS” yang dipisahkan koma, Autoptimize akan menambahkan flag async yang membuat browser memuat berkas tersebut secara asinkron (yakni tidak memblokir rendering). Namun ini bisa merusak situs (halaman) Anda, misalnya jika Anda membuat “js/jquery/jquery.min.js” menjadi async, Anda hampir pasti akan mendapat error “jQuery is not defined”. Gunakan dengan hati-hati.

Bagaimana cara kerja optimasi gambar?

Saat optimasi gambar aktif, Autoptimize akan mencari berkas png, gif, jpeg (.jpg) di tag gambar dan di berkas CSS Anda yang dimuat dari domain Anda sendiri lalu mengubah src (source) menjadi CDN ShortPixel untuk berkas-berkas tersebut. Penting: ini hanya dapat berfungsi untuk gambar yang tersedia untuk publik; jika tidak, proxy optimasi gambar tidak akan bisa mengambil gambar untuk mengoptimalkannya, sehingga firewall atau proxy atau perlindungan kata sandi atau bahkan pencegahan hotlinking dapat merusak optimasi gambar.

Bisakah saya menggunakan optimasi gambar untuk intranet/ situs terlindungi saya?

Tidak; optimasi gambar bergantung pada kemampuan layanan optimasi gambar eksternal untuk mengambil gambar asli dari situs Anda, mengoptimalkannya, dan menyimpannya di CDN. Jika gambar Anda tidak dapat diunduh oleh pengunjung anonim (karena firewall/ proxy/ perlindungan kata sandi/ perlindungan hotlinking), optimasi gambar tidak akan berfungsi.

Di mana saya bisa mendapatkan info lebih lanjut tentang optimasi gambar?

Lihat FAQ Shortpixel.

Bisakah saya menonaktifkan AO agar tidak mendengarkan purge page cache?

Sejak AO 2.4 AO “mendengarkan” purge pada page cache untuk membersihkan cache-nya sendiri. Anda dapat menonaktifkan perilaku ini dengan filter ini;

add_filter('autoptimize_filter_main_hookpagecachepurge','__return_false');

Sebagian karakter non-ASCII hilang setelah optimasi

Secara default AO menggunakan metode string yang tidak aman untuk multibyte, tetapi jika PHP Anda memiliki ekstensi mbstring, Anda dapat mengaktifkan fungsi string yang aman multibyte dengan filter ini;

add_filter('autoptimize_filter_main_use_mbstring', '__return_true');

Saya tidak bisa membuat Critical CSS berfungsi

Periksa FAQ pada “power-up” (legacy) di sini, info ini akan diintegrasikan ke FAQ ini di kemudian hari.

Apakah saya masih memerlukan power-up Critical CSS ketika saya menggunakan Autoptimize 2.7 atau lebih tinggi?

Tidak, power-up Critical CSS tidak diperlukan lagi, semua fungsionalitas (dan banyak perbaikan/ peningkatan) kini sudah menjadi bagian dari Autoptimize.

Apa fungsi “aktifkan 404 fallback”? Mengapa saya membutuhkannya?

Autoptimize meng-cache CSS/ JS yang sudah digabungkan & dioptimalkan dan tautan ke berkas yang di-cache tersebut disimpan di HTML, yang kemudian akan disimpan dalam page cache (yang bisa berupa plugin, bisa di tingkat host, bisa pihak ketiga, di cache Google, di browser). Jika ada HTML di page cache yang menautkan ke CSS/ JS Autoptimized yang sementara itu sudah dihapus (ketika cache dibersihkan), maka halaman dari cache tidak akan terlihat/ berfungsi sebagaimana mestinya karena CSS atau JS tidak ditemukan (galat 404).

Pengaturan ini bertujuan mencegah hal-hal menjadi rusak dengan menyajikan CSS atau JS “fallback”. Berkas fallback adalah salinan dari berkas CSS & JS Autoptimized pertama yang dibuat setelah cache dikosongkan dan karenanya akan berbasis pada beranda. Ini berarti CSS/ JS tersebut mungkin tidak berlaku 100% pada halaman lain, tetapi setidaknya dampak dari CSS/ JS yang hilang akan berkurang (sering kali secara signifikan).

Saat opsi ini diaktifkan, Autoptimize menambahkan ErrorDocument 404 ke .htaccess (sebagaimana digunakan oleh Apache) dan juga akan melakukan hook ke template_redirect inti WordPress untuk menangkap 404 yang ditangani oleh WordPress. Saat menggunakan NGINX, sesuatu seperti di bawah ini seharusnya berfungsi (saya bukan spesialis NGINX, tetapi ini berfungsi untuk saya);

location ~* /wp-content/cache/autoptimize/.*\.(js|css)$ {
    try_files $uri $uri/ /wp-content/autoptimize_404_handler.php;
}

Dan ini pendekatan alternatif yang bagus (disediakan oleh fboylovesyou);

location ~* /wp-content/cache/autoptimize/.*\.(css)$ {
    try_files $uri $uri/ /wp-content/cache/autoptimize/css/autoptimize_fallback.css;
}
location ~* /wp-content/cache/autoptimize/.*\.(js)$ {
    try_files $uri $uri/ /wp-content/cache/autoptimize/js/autoptimize_fallback.js;
}

Perangkat lunak/ proyek open source apa yang digunakan di Autoptimize?

Proyek open source hebat berikut digunakan di Autoptimize dalam satu bentuk atau lainnya:

Di mana saya bisa mendapatkan bantuan?

Anda bisa mendapatkan bantuan di forum dukungan wordpress.org. Jika Anda 100% yakin masalah Anda tidak dapat diselesaikan menggunakan konfigurasi Autoptimize dan Anda memang menemukan bug pada kodenya, Anda dapat membuat issue di GitHub. Jika Anda mencari dukungan premium, lihat layanan Dukungan Autoptimize Pro dan Optimasi Performa Web kami.

Saya ingin keluar, bagaimana sebaiknya saya menghapus Autoptimize?

  • Nonaktifkan plugin (ini akan menghapus opsi dan cache)
  • Hapus plugin
  • Bersihkan cache apa pun yang mungkin masih memiliki halaman yang merujuk ke CSS/JS Autoptimized (mis. dari plugin cache halaman seperti WP Super Cache)

Bagaimana saya bisa membantu/ berkontribusi?

Cukup fork Autoptimize di Github dan mulai ngoding!

Ulasan

Image
16 Januari 2026
Pague la versión PRO, y realmente fue un desastre, mi web tuvo constantes caídas, excesiva cantidad de cache, problemas con el CSS, realmente fue una perdida de dinero en el Plugin
Image
11 November 2025 1 balasan
Today, I received an email from my minification plugin: Autoptimize wanted to tell me that there is sth. wrong with its cache. The plugin created a 900MB of cache data just within a week. No plugin should be doing this. Also, I would never ever want to receive any any emails from my caching or minification plugin without my consent. There is sth. wrong there. Anyways, I don’t want a minification plugin like autoptimize just to still need to additionally install a proper caching plugin as well. Both should be integrated into one. Disappointed.
Image
6 November 2025 1 balasan
Immediately after the installation of Autoptimize my Home page became totally disordered – Menus, Images, elements. Only the home page was effected but after the plugin was removed the page left broken.
Image
14 Mei 2025 1 balasan
Fantastic plugin for optimizing CSS and JS! I reduced my load time by almost 30%. The async and defer options are well-documented and effective. Thanks for making such a solid tool!
Baca semua 1,422 ulasan

Kontributor & Pengembang

“Autoptimize” adalah perangkat lunak open source. Berikut ini mereka yang sudah berkontribusi pada plugin ini.

Kontributor

“Autoptimize” telah diterjemahkan dalam 34 bahasa. Terima kasih kepada para penerjemah untuk kontribusi-nya.

Terjemahkan “Autoptimize” dalam bahasa Anda.

Tertarik mengembangkan?

Lihat kode, periksa repositori SVN , atau mendaftar ke log pengembangan melalui RSS.

Log Perubahan

3.1.14

  • meningkatkan output HTML untuk gambar <link rel=”preload” (berdasarkan laporan dari Muhammad)
  • membuat 404-handler mengeluarkan respons HTTP 302 alih-alih 301 (seperti disebutkan oleh thefitrv)
  • peningkatan kecil pada penanganan cron job critical CSS jika “batas waktu” kosong (terima kasih atas bantuannya Jason)
  • memperbaiki bug pada “domain binding” di opsi lanjutan critical CSS (dilaporkan oleh Hazel)
  • menangkap dan melaporkan masalah optimasi JS (yang bersifat eksepsional) yang menyebabkan preg_replace_callback crash (dalam kasus jumlah kode JS yang sangat besar), terima kasih siliconforks
  • terkonfirmasi OK dengan WordPress 6.9

3.1.13

3.1.12

  • optimasi gambar: peningkatan pada regex favicon
  • optimasi javascript: mengintegrasikan versi terbaru jsmin.php
  • critical CSS: meningkatkan blocklist (url/ path yang tidak boleh ditambahkan ke antrean job)
  • beberapa perubahan/ peningkatan/ filter minor lainnya, lihat log commit GitHub.

3.1.11

3.1.10

  • peningkatan: dengan “don’t aggregate but defer” dan “also defer inline JS” aktif, juga tunda JS yang memiliki flag async untuk menghindari (JS yang sebelumnya di-async) dieksekusi sebelum JS inline dijalankan.
  • peningkatan: tampilkan opsi untuk menonaktifkan default pada “logika kompatibilitas”.
  • perbaikan untuk regresi pada 3.1.9 yang menyebabkan optimasi gambar JetPack tidak berfungsi meskipun optimasi gambar dimatikan di AO.
  • API: beberapa hook tambahan pada critical CSS agar pihak lain (dan AOPro) dapat bertindak saat ada perubahan pada aturan critical CSS
  • beberapa perubahan/ peningkatan/ filter minor lainnya, lihat log commit GitHub.

3.1.9

  • peningkatan: aktifkan optimasi JS, CSS & HTML saat aktivasi plugin (hat tip untuk Adam Silverstein (developer relations engineer di Google))
  • peningkatan: juga menunda JS yang di-async (untuk memastikan urutan eksekusi tetap utuh; JS yang di-async tidak boleh dieksekusi sebelum JS inline yang ditunda yang mungkin menjadi ketergantungannya)
  • peningkatan: mengecualikan gambar dari lazyload jika memiliki atribut fetchpriority yang disetel ke high (sebagaimana dilakukan oleh inti WordPress sejak 6.3)
  • perbaikan bug: menonaktifkan spellcheck pada textarea CSS (above the fold CSS/ critical CSS) yang dalam beberapa kasus menyebabkan masalah pada browser
  • tambahkan tab untuk menjelaskan Autoptimize Pro.
  • terkonfirmasi berfungsi dengan WordPress 6.4 (beta 3)
  • beberapa perubahan/ peningkatan/ filter minor lainnya, lihat log commit GitHub.

3.1.8.1

  • perbaikan mendesak untuk error PHP, mohon maaf!

3.1.8

  • Gambar: meningkatkan logika optimasi untuk gambar latar
  • Critical CSS: jangan memicu aturan custom_post jika bukan is_singular + menambahkan debug logging untuk pemilihan aturan
  • beberapa perubahan/ peningkatan/ filter minor lainnya, lihat log commit GitHub.

3.1.7

  • keamanan: meningkatkan validasi (impor) dan sanitasi (output) aturan critical CSS, untuk memperbaiki kerentanan Admin+ Stored Cross-Site Scripting tingkat sedang sebagaimana dilaporkan oleh WP Scan Security.

3.1.6

  • CSS: menghapus trailing slash pada tag <link untuk lebih disukai oleh validasi HTML W3
  • Ekstra: juga dequeue CSS blok WooCommerce jika opsi “remove WordPress block CSS” aktif
  • imgopt: juga bertindak pada CSS inline yang tidak digabungkan
  • imgopt: menambahkan logika untuk memperingatkan pengguna jika Shortpixel tidak dapat menjangkau situs mereka
  • backend: JS/ CSS toolbar AO akhirnya juga diminifikasi.
  • secara eksplisit menonaktifkan optimasi pada halaman login
  • beberapa perubahan/ peningkatan/ filter minor lainnya, lihat log commit GitHub.

3.1.5

  • peningkatan pada JSMin oleh Robert Ehrenleitner (terima kasih banyak Robert!).
  • jangan anggap jquery.js sebagai versi yang sudah diminifikasi lagi (WordPress kini menggunakan jquery.min.js secara default dan jquery.js adalah versi yang belum diminifikasi).
  • perbaikan untuk error PHP “undefined array key” di autoptimizeCriticalCSSCron.php
  • beberapa perubahan/ peningkatan/ filter minor lainnya, lihat log commit GitHub.

3.1.4

  • Peningkatan: ketika semua CSS di-inline, coba lakukan itu setelah meta-tag SEO (tepat sebelum tag script ld+json yang biasanya ditambahkan plugin SEO sebagai item terakhir pada daftarnya).
  • Optimasi gambar: juga optimalkan gambar yang disetel pada atribut data-background dan data-retina (+ filter untuk menambahkan atribut lain dengan mudah)
  • Optimasi CSS: filter agar AO bisa melewati minifikasi formula calc di CSS (karena minifier CSS pada kesempatan yang jarang dapat merusaknya)
  • Banyak filter lain ditambahkan
  • Beberapa perubahan/ peningkatan/ filter minor lainnya, lihat log commit GitHub.

3.1.3

  • Berbagai perbaikan untuk preload gambar LCP metabox (terima kasih Kishorchand yang memberi tahu & menyediakan lingkungan staging untuk debug).
  • Perbaikan pada kompatibilitas revslider (hat tip untuk Waqar Ahmed yang melaporkan & membantu ).
  • Tidak ada lagi upaya optimasi gambar atau criticalcss pada instalasi localhost + notifikasi fakta tersebut jika localhost terdeteksi.
  • Beberapa perubahan/ peningkatan/ filter minor lainnya, lihat log commit GitHub.

3.1.2

  • Google Fonts: logika penghapusan tambahan
  • perbaikan untuk bug fallback 404 (hat tip untuk Asif yang menemukan & melaporkan)
  • Beberapa perubahan/ peningkatan/ filter minor lainnya, lihat log commit GitHub.

3.1.1.1

  • Solusi cepat untuk konflik autoload dengan JetFormBuilder (dan mungkin plugin Crocoblock lainnya?) yang menyebabkan error kritis pada halaman pengaturan AO.

3.1.1

  • gambar: saat optimasi gambar aktif dan lazyload menyala, maka secara default jangan setel LQIP (low quality image placeholder) lagi (alasannya: mungkin terlihat bagus tetapi ada penalti performa yang kecil). Ini bisa diaktifkan lagi dengan mengembalikan true pada filter autoptimize_filter_imgopt_lazyload_dolqip.
  • keamanan: peningkatan lanjutan pada halaman pengaturan critical CSS (kembali dengan bantuan luar biasa dari WPScan Security).
  • beberapa perubahan/ peningkatan/ filter minor lainnya, lihat log commit GitHub.

3.1.0

  • sub-opsi HTML baru: “minify inline CSS/ JS” (nonaktif secara default).
  • opsi Misc baru: secara permanen mengizinkan flag “do not run compatibility logic” dihapus (yang disetel untuk pengguna yang upgrade dari AO 2.9.* ke AO 3.0.* karena diasumsikan semuanya tetap bekerja).
  • keamanan: peningkatan pada halaman pengaturan critical CSS untuk memperbaiki masalah authenticated cross site scripting sebagaimana dilaporkan oleh WPScan Security.
  • perbaikan bug: “defer inline JS” untuk potongan JS inline yang sangat besar dapat menyebabkan server error (sebenarnya crash PCRE), sehingga tidak menunda jika string lebih dari 200000 karakter (filter tersedia).
  • beberapa perubahan/ peningkatan/ hook minor lainnya, lihat log commit GitHub

3.0.4

  • perbaikan untuk “undefined array key ao_post_preload” pada layar edit pos/ halaman
  • perbaikan agar optimasi gambar tidak mengubah JS inline yang berisi tag <img jika lazyload tidak aktif
  • peningkatan pada survei saat keluar
  • terkonfirmasi berfungsi dengan WordPress 6.0

3.0.3

  • perbaikan agar gambar tidak dipreload tanpa konfigurasi saat lazyload aktif dan pengaturan per halaman/ pos nonaktif.
  • pastikan jadwal critical CSS selalu diketahui.
  • saat menunda JS yang tidak digabungkan, buat pengecualian optimasi mempertimbangkan seluruh tag script, bukan hanya URL src.

3.0.2

  • rollback “minify inline CSS/ JS” otomatis yang merusak lebih banyak dari yang diperkirakan; ini akan kembali sebagai opsi terpisah yang default-nya nonaktif nanti dan sekarang dapat diaktifkan dengan filter sederhana: add_filter( 'autoptimize_html_minify_inline_js_css', '__return_true'); .
  • perbaikan untuk “Call to undefined method autoptimizeOptionWrapper::delete_option()” di autoptimizeVersionUpdatesHandler.php

3.0.1

  • perbaikan untuk minifikasi script inline dengan type text/template yang merusak template (mis. ninja forms), hat tip untuk @bobsled.
  • perbaikan untuk regresi pada impor berkas CSS di mana misalnya CSS fontawesome rusak karena kembali di-escape, dengan bantuan @bobsled, terima kasih bro!

3.0.0

  • perubahan mendasar untuk instalasi baru: secara default Autoptimize tidak akan lagi menggabungkan JS/ CSS (HTTP/2 sudah ada di mana-mana dan ada keuntungan lain dari tidak menggabungkan terutama terkait JS/ CSS inline dan dependensi)
  • baru: tidak perlu API lagi untuk membuat aturan critical CSS manual.
  • baru: opsi “Remove WordPress blocks CSS” pada tab “Extra” untuk menghapus style blok dan global (serta SVG).
  • baru: logika kompatibilitas untuk “edit with elementor”, “revolution slider”, untuk JS inline yang tidak digabungkan yang memerlukan jQuery meskipun tidak dikecualikan (= auto-exclude jQuery) dan blok WordPress yang berat JS (Gutenberg)
  • baru: konfigurasikan gambar yang akan dipreload per halaman/ pos untuk LCP yang lebih baik.
  • peningkatan: defer inline kini juga diizinkan jika JS inline berisi nonce atau post_id.
  • peningkatan: ekspor/ impor pengaturan pada tab critical CSS kini mempertimbangkan semua pengaturan Autoptimize, bukan hanya pengaturan critical CSS.
  • peningkatan teknis: semua class criticalCSS direfaktor, menghapus penggunaan variabel global.
  • peningkatan teknis: unit test otomatis di Travis-CI untuk PHP versi 7.2 hingga 8.1.
  • perbaikan: hentikan Divi agar tidak mengosongkan cache Autoptimize yang sangat kontra-produktif.
  • berbagai perbaikan/ peningkatan kecil, lihat log commit GitHub

lebih lama