Image
Image

Autoptimize – Auto optymalizacja

Opis

Autoptimize naprawdę ułatwia optymalizację witryny. Może agregować, minimalizować i buforować skrypty i style, domyślnie wstrzykuje CSS do nagłówka strony, ale może również wstawiać krytyczny CSS i odraczać zagregowany pełny CSS, przenosić i odraczać skrypty do stopki i minimalizować HTML. Możesz optymalizować i leniwie wczytywanie obrazka (z obsługą formatów WebP i AVIF), optymalizować kroje pisma Google, asynchronicznie nieagregowany JavaScript, usuwać śmieci z rdzenia WordPress emoji i wiele więcej. Dzięki temu może poprawić wydajność witryny, nawet jeśli jest już na HTTP/2! Dostępny jest rozbudowany interfejs API, który umożliwia dostosowanie Autoptimize do konkretnych potrzeb każdej witryny. Jeśli uważasz, że wydajność rzeczywiście ma znaczenie, powinieneś rozważyć przynajmniej jedną z wielu darmowych wtyczek do buforowania stron (np. Speed ​​Booster pack lub Cache Enabler firmy KeyCDN), aby uzupełnić Autoptimize, lub nawet rozważyć Autoptimize Pro, która oferuje nie tylko buforowanie stron, ale także optymalizację obrazków, CDN, krytyczny CSS i wiele więcej!

Autoptimize Pro
Autoptimize Pro to Premium Wzmocnienie, dodający optymalizację obrazka, CDN, buforowanie stron, automatyczne krytyczne reguły CSS i dodatkowe opcje „wzmacniacza”, wszystko w jednej wygodnej subskrypcji, aby uczynić Twoją witrynę jeszcze szybszą!!

Wsparcie Premium
Zapewniamy świetne wsparcie Premium i usługi optymalizacji wydajności sieci Web z Accelera, sprawdź naszą ofertę na https://accelerawp.com/!

(Zdjęcie przedstawiające speedsurfing na licencji creative commons autorstwa LL Twistiti)

Instalacja

Wystarczy zainstalować z ekranu WordPress „Wtyczki > Dodaj nową” i wszystko będzie dobrze. Instalacja ręczna jest również bardzo prosta:

  1. Prześlij plik zip i rozpakuj go w katalogu /wp-content/plugins/
  2. Włącz wtyczkę w menu „Wtyczki” w WordPressie
  3. Przejdź do Ustawienia > Autoptimize i włącz żądane opcje. Zazwyczaj oznacza to „Optymalizuj HTML/ CSS/ JavaScript”.

Najczęściej zadawane pytania

Co robi wtyczka, aby przyspieszyć działanie mojej witryny?

Minimalizuje wszystkie skrypty i style oraz konfiguruje twój serwer WWW tak, aby skompresował je z dobrymi nagłówkami wygasania. JavaScript będzie domyślnie nie blokujący renderowania, a CSS może być również przez dodanie krytycznego CSS. Możesz go skonfigurować tak, aby łączył (agregował) pliki CSS i JS, w których style są przenoszone do nagłówka strony, a skrypty do stopki. Minimalizuje również kod HTML, a także może optymalizować obrazki i kroje pisma Google, dzięki czemu twoja strona jest naprawdę lekka.

Ale używam HTTP/2, więc nie potrzebuję Autoptimize?

HTTP/2 to z pewnością wielki krok naprzód, znacznie redukujący wpływ wielu żądań z tego samego serwera poprzez wykorzystanie tego samego połączenia do wykonania kilku równoczesnych żądań i z tego powodu w nowych instalacjach Autoptimize nie będzie już agregować plików CSS i JS. To powiedziawszy, łączenie CSS/JS nadal może mieć wiele sensu, jak opisano w tym artykule css-tricks.com i tym wpisie na blogu jednego z inżynierów Ebay. Wniosek: skonfiguruj, przetestuj, skonfiguruj ponownie, przetestuj ponownie, dostosuj i sprawdź, co działa najlepiej w Twoim kontekście. Może to tylko HTTP/2, może to HTTP/2 + agregacja i minifikacja, może to HTTP/2 + minifikacja (co AO również potrafi, po prostu odznacz opcje „agreguj pliki JS” i/lub „agreguj pliki CSS”). Autoptimize potrafi o wiele więcej niż „tylko” optymalizowanie JS i CSS, oczywiście 😉

Czy to zadziała z moim blogiem?

Chociaż Autoptimize jest dostarczany bez żadnych gwarancji, ogólnie będzie działał bezbłędnie, jeśli skonfigurujesz go poprawnie. Zobacz „Rozwiązywanie problemów” poniżej, aby uzyskać informacje na temat konfiguracji w przypadku problemów. Jeśli chcesz, możesz przetestować Autoptimize na nowej, bezpłatnej witrynie atrapy, dzięki uprzejmości smakwp.com.

Dlaczego jquery.min.js nie jest zoptymalizowany podczas agregacji kodu JavaScript?

Począwszy od AO 2.1 rdzeń WordPressa jquery.min.js nie jest zoptymalizowany z prostego powodu: wiele popularnych wtyczek wstrzykuje w treść JS, który również nie jest agregowany (z powodu możliwych problemów z rozmiarem pamięci podręcznej przy unikatowym kodzie w treści JS), co polega na dostępności jquery, więc wykluczenie jquery.min.js zapewnia, że ​​większość witryn będzie działać od razu. Jeśli chcesz również zoptymalizować jquery, możesz usunąć go z listy wykluczeń optymalizacji JS (możesz musieć włączyć również „also aggregate inline JS” lub przełączyć się na „force JS in head”).

Dlaczego Autoptimizowany JS blokuje renderowanie?

Dzieje się tak, gdy agreguje JavaScript i zaznacza opcję „wymuś w nagłóku” lub gdy nie agreguje i nie odracza. Rozważ zmianę ustawień.

Dlaczego autoptimizowany CSS ciągle jest wywoływany jako blokujący renderowanie?

Przy domyślnej konfiguracji Autoptimize, CSS jest połączony w nagłówku, co jest bezpiecznym domyślnym ustawieniem, ale Google PageSpeed Insights na to narzeka. Możesz zajrzeć do opcji „wbuduj cały CSS” (łatwiej) lub „wbuduj i odrocz CSS” (lepiej), które są również wyjaśnione w tym FAQ.

Do czego służą „wbudowany i opóźniony CSS”?

CSS generalnie powinno być w nagłówku dokumentu. Ostatnio a.o. Google zaczęło promować odkładanie nieistotnego CSS, podczas gdy wstawiało style potrzebne do zbudowania strony nad zagięciem. Jest to szczególnie ważne, aby renderować strony tak szybko, jak to możliwe na urządzeniach mobilnych. Od Autoptimize 1.9.0 jest to proste; wybierz „wbudowane i opóźnione CSS”, wklej blok „CSS nad zagięciem” w polu wprowadzania (obszar tekstowy) i gotowe!

Ale jak można dowiedzieć się, czym jest CSS „nad zgięciem” (above the fold)?

Nie ma prostego rozwiązania, ponieważ „nad zagięciem” zależy od tego, gdzie jest zagięcie, co z kolei zależy od rozmiaru ekranu. Istnieją jednak pewne narzędzia, które próbują zidentyfikować, co jest „nad zagięciem”. Ta lista narzędzi jest świetnym punktem wyjścia. Generator krytycznego CSS Sitelocity i Krytyczny generator CSS Jonasa Ohlssona to dobre podstawowe rozwiązania, a http://criticalcss.com/ to rozwiązanie Premium tego samego Jonasa Ohlssona. Alternatywnie ten bookmarklet (tylko Chrome) również może być pomocny.

Czy może powinienem wbudować cały CSS?

Krótka odpowiedź: prawdopodobnie nie. Aczkolwiek wstawianie całego CSS spowoduje że CSS nie będzie blokował renderowania. Spowoduje też że twój bazowa strona HTML będzie znacząco większa przez co wymagać będzie więcej „czasu”. Co więcej biorąc pod uwagę że wiele stron jest pobieranych w trakcie jednej sesji wstawiony CSS przesyłany jest za każdym razem, natomiast niewstawiony będzie pobrany z pamięci podręcznej. Wreszcie wstawiony CSS przesunie meta-tagi w HTML niżej w miejsce gdzie Facebook lub Whatsapp może już ich nie szukać psując np. ikony w trakcie udostępniania przez te platformy.

Moja pamięć podręczna robi się bardzo duża, czy Autoptimize nie czyści pamięci podręcznej?

Autoptimize nie ma właściwego mechanizmu czyszczenia pamięci podręcznej, ponieważ mogłoby to usunąć zoptymalizowane CSS/JS, do których nadal odwołują się inne pamięci podręczne, co zepsułoby Twoją witrynę. Ponadto szybko rosnąca pamięć podręczna wskazuje na inne problemy, których powinieneś unikać.

Zamiast tego możesz utrzymać rozmiar pamięci podręcznej na akceptowalnym poziomie, wykonując jedną z następujących czynności:

  • dezaktywacja opcji „agreguj wbudowany JS” i/lub „agreguj wbudowany CSS”
  • z wyłączeniem zmiennych JS (lub czasami selektorów CSS), które zmieniają się na podstawie strony (lub wczytywania strony). Możesz przeczytać, jak to zrobić w tym wpisie na blogu.

Pomimo powyższych zastrzeżeń istnieją rozwiązania innych firm umożliwiające automatyczne czyszczenie pamięci podręcznej AO, np. za pomocą tego kodu lub tej wtyczki, ale z powodów podanych powyżej należy z nich korzystać tylko wtedy, gdy naprawdę wiesz, co robisz.

„Opróżnij pamięć podręczną” wydaje się nie działać?

Po kliknięciu linku „Usuń pamięć podręczną” w menu rozwijanym Autoptimize na pasku narzędzi administratora może pojawić się komunikat „Twoja pamięć podręczna mogła nie zostać pomyślnie wyczyszczona”. W takim przypadku przejdź do strony ustawień Autoptimize i kliknij przycisk „Zapisz zmiany i wyczyść pamięć podręczną”.

Co więcej, nie martw się, jeśli pamięć podręczna nigdy nie osiągnie rozmiaru 0 plików/0 KB, ponieważ Autoptimize (od wersji 2.2) automatycznie wstępnie załaduje pamięć podręczną natychmiast po jej wyczyszczeniu, co znacznie przyspieszy dalszą minifikację.

Moja witryna wygląda na uszkodzoną kiedy opróżnię pamięć podręczną Autoptimize!

Podczas czyszczenia pamięci podręcznej AO żadna pamięć podręczna stron nie powinna zawierać stron (HTML) odwołujących się do usuniętego zoptymalizowanego CSS/JS. Chociaż w tym celu istnieje integracja między Autoptimize a niektórymi pamięciami podręcznymi stron, ta integracja nie obejmuje 100% ustawień, więc może być konieczne ręczne wyczyszczenie pamięci podręcznej strony.

Czy mogę ciągle używać Cloudflare Rocket Loader?

Cloudflare Rocket Loader to dość zaawansowany, ale inwazyjny sposób na to, aby JavaScript nie blokował renderowania, co Cloudflare nadal uważa za wersję Beta. Czasami Autoptimize i Rocket Loader współpracują ze sobą, czasami nie. Najlepszym podejściem jest wyłączenie Rocket Loader, skonfigurowanie Autoptimize i ponowne włączenie Rocket Loader (jeśli uważasz, że to może pomóc) i sprawdzenie, czy wszystko nadal działa.

W tej chwili (czerwiec 2017) wygląda na to, że RocketLoader może uszkodzić „inline & defer CSS” AO, który opiera się na loadCSS firmy Filamentgroup, co spowoduje, że odroczony CSS nie zostanie wczytany.

Wypróbowałem Autoptimize ale mój wynik Google Pagespeed ledwo się poprawił

Autoptimize nie jest prostą wtyczką „napraw moje problemy z Pagespeed”; „tylko” agreguje i minimalizuje (lokalny) JS i CSS oraz obrazki i pozwala na kilka fajnych dodatków, takich jak usuwanie krojów pisma Google i odraczanie wczytywania CSS. W związku z tym Autoptimize pozwoli Ci poprawić wydajność (czas wczytywania mierzony w sekundach) i prawdopodobnie pomoże Ci również uporać się z niektórymi konkretnymi ostrzeżeniami Pagespeed. Jeśli chcesz poprawić się jeszcze bardziej, prawdopodobnie będziesz musiał również przyjrzeć się np. buforowaniu stron i konfiguracji swojego serwera WWW, co poprawi rzeczywistą wydajność (ponownie, czas wczytywania mierzony np. przez https://webpagetest.org) i Twoje oceny „najlepszych praktyk wydajnościowych” szybkości strony.

Co mogę zrobić za pomocą API?

Bardzo dużo; istnieją filtry, których można używać do warunkowego wyłączania Autoptimize dla każdego żądania, do zmiany wykluczeń CSS i JS, do zmiany limitu wstawiania obrazków tła CSS do kodu CSS, do definiowania, które pliki JS mają być przenoszone za zagregowane, do zmiany atrybutu defer w zagregowanym znaczniku skryptu JS… Przykłady niektórych filtrów można znaleźć w pliku autoptimize_helper.php_example oraz w tym FAQ.

Jak działa CDN?

Począwszy od wersji 1.7.0, CDN jest włączony po wejściu do katalogu głównego bloga CDN (np. http://cdn.example.net/wordpress/). Jeśli ten adres URL jest obecny, będzie używany dla wszystkich plików generowanych przez Autoptimize (tj. zagregowanych CSS i JS), w tym background-images w CSS (gdy nie są używane data-uri).

Jeśli chcesz, aby Twoje przesłane obrazki również znalazły się w CDN, możesz zmienić upload_url_path w konfiguracji WordPress (/wp-admin/options.php) na docelowy katalog przesyłania CDN (np. http://cdn.example.net/wordpress/wp-content/uploads/). Weź pod uwagę, że działa to tylko w przypadku obrazków przesłanych od tego momentu, a nie w przypadku obrazków, które zostały już przesłane. Dzięki BeautyPirate za wskazówkę!

Dlaczego moje kroje pisma nie są również umieszczone na CDN?

Autoptimize obsługuje tę funkcję, ale nie jest ona domyślnie włączona, ponieważ kroje pisma nielokalne mogą wymagać dodatkowej konfiguracji. Ale jeśli masz uporządkowaną politykę żądań między domenowych, możesz polecić Autoptimize umieszczenie krojów pisma w CDN, łącząc się z API i ustawiając autoptimize_filter_css_fonts_cdn na true w ten sposób;

add_filter( 'autoptimize_filter_css_fonts_cdn', '__return_true' );

Używam Cloudflare, co mam wpisać jako katalog główny CDN

Nic. Będąc na Cloudflare, Twój automatycznie zoptymalizowany kod CSS/JS automatycznie trafia do CDN Cloudflare.

Jak mogę wymusić, aby agregowane pliki były statycznymi plikami CSS lub JS zamiast PHP?

Jeśli twój serwer WWW jest poprawnie skonfigurowany do obsługi kompresji (gzip lub deflate) i wygasania pamięci podręcznej (wygasa i kontroluje pamięć podręczną z wystarczającą możliwością buforowania), nie potrzebujesz Autoptimize, aby się tym zajął. W takim przypadku możesz zaznaczyć opcję „Zapisz zagregowany skrypt/css jako pliki statyczne?”, która wymusi na Autoptimize zapisanie zagregowanych plików jako plików .css i .js (co oznacza, że ​​PHP nie jest potrzebne do obsługi tych plików). To ustawienie jest domyślne od Autoptimize 1.8.

Jak działa „wykluczanie z optymalizacji”?

Zarówno optymalizacja CSS, jak i JS może pominąć agregowanie i minimalizowanie kodu poprzez dodanie „identyfikatorów” do listy wykluczeń rozdzielonych przecinkami. Dokładny ciąg identyfikatora do użycia można ustalić w ten sposób:

  • jeśli chcesz wykluczyć konkretny plik, np. wp-content/plugins/funkyplugin/css/style.css, możesz po prostu wykluczyć „funkyplugin/css/style.css”
  • jeśli chcesz wykluczyć wszystkie pliki konkretnej wtyczki, np. wp-content/plugins/funkyplugin/js/*, możesz wykluczyć na przykład „funkyplugin/js/” lub „plugins/funkyplugin”
  • jeśli chcesz wykluczyć kod wbudowany, musisz znaleźć konkretny, unikatowy ciąg w tym bloku kodu i dodać go do listy wykluczeń. Przykład: aby wykluczyć <script>funky_data='Won\'t you take me to, Funky Town'</script>, identyfikatorem jest „funky_data”.

Rozwiązywanie problemów z Autoptimize

Zajrzyj do instrukcji rozwiązywania problemów na https://blog.futtta.be/2022/05/05/what-to-do-when-autoptimize-breaks-your-site/

Wykluczyłem pliki ale one są dalej autoptymizowane?

AO minimalizuje wykluczony JS/CSS, jeśli nazwa pliku wskazuje, że plik nie został jeszcze zminimalizowany. Od wersji AO 2.5 można to wyłączyć na karcie „JS, CSS i HTML” w sekcji różnych opcji, odznaczając „zminimalizuj wykluczone pliki”.

Pomocy, mam pustą stronę lub wewnętrzny błąd serwera po włączeniu Autoptimize!!

Upewnij się, że nie używasz innych wtyczek minifikacji HTML, CSS lub JS (minify BWP, minify WP, …) jednocześnie z funkcją Autoptimize lub wyłącz tę funkcję wtyczki do buforowania stron (W3 Total Cache, WP Fastest Cache, …) . Spróbuj włączyć tylko optymalizację CSS lub tylko JS, aby zobaczyć, który z nich powoduje błąd serwera, i wykonaj ogólne kroki rozwiązywania problemów, aby znaleźć rozwiązanie.

Ale nadal mam puste, autoptimizowane pliki CSS lub JS!

Jeśli używasz Apache, plik .htaccess napisany przez Autoptimize może w niektórych przypadkach kolidować z ustawieniami AllowOverrides konfiguracji Apache (jak to ma miejsce w przypadku domyślnej konfiguracji niektórych instalacji Ubuntu), co powoduje „wewnętrzne błędy serwera” w plikach CSS i JS autoptimize. Można to rozwiązać, ustawiając AllowOverrides na All.

Nie mogę zalogować się na witrynach mapowanych domenowo

Wielowitrynowe instalacje mapowane na domenę wymagają inicjalizacji funkcji Autoptimize w innej akcji WordPress, dodaj ten wiersz kodu do swojego wp-config.php, aby podłączyć go do setup_theme, na przykład:

define( 'AUTOPTIMIZE_SETUP_INITHOOK', 'setup_theme' );

Nie pojawia się błąd, ale moje strony w ogóle nie są zoptymalizowane?

Autoptimize wykonuje szereg testów przed faktyczną optymalizacją. Jeśli spełniony jest jeden z poniższych warunków, Twoje strony nie zostaną zoptymalizowane:

  • kiedy w konfiguratorze
  • jeśli nie ma otwierającego tagu <html
  • jeśli w odpowiedzi znajduje się <xsl:stylesheet (wskazując, że dane wyjściowe to nie HTML, ale XML)
  • jeśli odpowiedź zawiera <html amp (ponieważ strony AMP są już zoptymalizowane)
  • jeśli wyjściem jest kanał RSS (funkcja is_feed())
  • jeśli wynikiem jest strona administracyjna WordPressa (funkcja is_admin())
  • jeśli strona jest żądana z ?ao_noptimize=1 dołączonym do adresu URL
  • jeśli kod łączy się z Autoptimize, aby wyłączyć optymalizację (patrz temat dotyczący Visual Composer)
  • jeśli inne wtyczki używają bufora wyjściowego w niekompatybilny sposób (wyłącz po kolei inne wtyczki, aby zidentyfikować winowajcę)

Visual Composer, Beaver Builder lub inne podobne rozwiązania do budowy stron są zepsute!!

Wyłącz opcję aby Autoptimize był aktywny dla zalogowanych użytkowników i zaszalej z przeciąganiem i upuszczaniem 😉

Pomocy, mój sklep kasa/płatność nie działa!!

Wyłącz opcję optymalizacji stron koszyka / kasy (działa dla WooCommerce, Easy Digital Downloads i WP eCommerce).

Revolution Slider jest zepsuty!

Upewnij się, że js/jquery/jquery.min.js znajduje się na rozdzielonej przecinkami liście wykluczeń optymalizacji JS (jest to wykluczone w konfiguracji domyślnej).

Pojawiają się błędy „jQuery is not defined”

W takim przypadku masz niezagregowany kod JavaScript, który wymaga wczytania jQuery, więc musisz dodać js/jquery/jquery.min.js do rozdzielonej przecinkami listy wykluczeń optymalizacji JS.

Używam galerii NextGen i wiele JS nie jest agregowanych/ minifikowanych?

NextGen Galleries robi kilka fajnych rzeczy, aby dodać JavaScript. Aby Autoptimize mógł to agregować, możesz albo wyłączyć zarządzanie zasobami Nextgen Gallery za pomocą tego fragmentu kodu add_filter( 'run_ngg_resource_manager', '__return_false' );, albo możesz powiedzieć Autoptimize, aby zainicjował się wcześniej, dodając to do swojego wp-config.php: define("AUTOPTIMIZE_INIT_EARLIER","true");

Co to jest noptimize?

Od wersji 1.6.6 Autoptimize nie optymizuje wszystkiego pomiędzy tagami nooptimize, n.p.:
<!--noptimize--><script>alert(’to nie zostanie zautoptimizowane’);</script><!--/noptimize-->

Możesz to zrobić w treści swojej strony/wpisu, w widżetach i plikach motywu (rozważ utworzenie motywu potomnego, aby uniknąć nadpisania swojej pracy przez aktualizacje motywu).

Czy mogę zmienić lokalizację i nazwy plików Autoptimize zapisanych do pamięci podręcznej?

Tak, jeśli chcesz serwować pliki z np. /wp-content/resources/aggregated_12345.css zamiast domyślnego /wp-content/cache/autoptimize/autoptimize_12345.css, dodaj to do wp-config.php:

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

Czy to będzie działało z nie-domyślnym WP_CONTENT_URL ?

Nie, Autoptimize standardowo nie obsługuje niestandardowego WP_CONTENT_URL, ale można to osiągnąć za pomocą kilku linii kodu podpiętego do Autoptimize API.

Czy wygenerowany JS/CSS może być wstępnie skompresowany?

Tak, ale ta opcja jest domyślnie wyłączona. Możesz ją włączyć, przekazując ´true´ do ´autoptimize_filter_cache_create_static_gzip´. Oczywiście nadal będziesz musiał skonfigurować swój serwer WWW, aby używał tych plików zamiast tych nieskompresowanych gzipem, aby uniknąć narzutu kompresji w locie.

Co robi „usuń emoji”?

Ta nowa opcja w Autoptimize 2.3, która usuwa wbudowany CSS, wbudowany JS i połączony plik JS dodane przez WordPress. W związku z tym może mieć niewielki pozytywny wpływ na wydajność Twojej witryny.

Czy „usuwanie ciągu zapytania” jest przydatne?

Chociaż niektóre narzędzia do oceny wydajności online będą wskazywać „ciągi zapytań dla plików statycznych” jako problem z wydajnością, ogólnie rzecz biorąc, ich wpływ prawie nie istnieje. W związku z tym funkcja Autooptimize, od wersji 2.3, umożliwia usunięcie ciągu zapytania (a dokładniej parametru „ver”), ale zaznaczenie „usuń ciągi zapytań z zasobów statycznych” będzie miało niewielki lub żaden wpływ na wydajność witryny, ponieważ mierzone w (mili-)sekundach.

(Jak) powinienem optymalizować Google Fonts?

Google Fonts są zazwyczaj wczytywane przez połączony plik CSS, który blokuje renderowanie. Jeśli masz motyw i wtyczki korzystające z czcionek Google, możesz skończyć z wieloma takimi plikami CSS. Autoptimize (od wersji 2.3) pozwala teraz zmniejszyć wpływ Google Fonts, usuwając je całkowicie lub optymalizując sposób ich wczytywania. Istnieją dwa sposoby optymalizacji; pierwszy to „połącz i łącz”, który zamienia wszystkie żądania dotyczące Google Fonts w jedno żądanie, które nadal będzie blokować renderowanie, ale umożliwi natychmiastowe załadowanie krojów pisma (oznacza to, że kroje pisma nie będą się zmieniać w trakcie wczytywania strony). Alternatywą jest „łączenie i wczytywanie asynchroniczne”, które wykorzystuje JavaScript do wczytywania krojów pisma bez blokowania renderowania, ale może powodować „błysk tekstu bez stylu”.

Czy powinienem używać „preconnect”?

Preconnect to nieco zaawansowana funkcja, która instruuje przeglądarki (jeśli je obsługują), aby nawiązywały połączenie z określonymi domenami, nawet jeśli połączenie nie jest natychmiast potrzebne. Można to wykorzystać m.in. aby zmniejszyć wpływ zasobów stron trzecich na HTTPS (ponieważ żądanie DNS, połączenie TCP i negocjacja SSL/TLS są wykonywane wcześnie). Używaj ostrożnie, ponieważ wstępne łączenie się ze zbyt wieloma domenami może przynieść efekt przeciwny do zamierzonego.

Kiedy (nie)mogę używać asynchronicznego JS?

Pliki JavaScript, które nie są autoptimizowane (ponieważ zostały wykluczone lub są hostowane w innym miejscu) zazwyczaj blokują renderowanie. Dzięki dodaniu ich, oddzielonych przecinkami, w polu „async JS”, Autoptimize doda flagę async powodującą, że przeglądarka wczytuje te pliki asynchronicznie (tj. nie blokując wyświetlania). Może to jednak zepsuć twoją witrynę (stronę), np. jeśli asynchronicznie wykonasz „js/jquery/jquery.min.js”, najprawdopodobniej otrzymasz błędy „jQuery nie jest zdefiniowane”. Używaj ostrożnie.

Jak działa optymalizacja obrazków?

Kiedy optymalizacja obrazków jest włączona, Autoptimize będzie szukał plików png, gif, jpeg (.jpg) w tagach obrazków oraz w twoich plikach CSS, które są wczytywane z twojej własnej domeny i zmieniał dla nich src (źródło) na sieć CDN ShortPixel. Ważne: to zadziała tylko dla publicznie dostępnych obrazków, w przeciwnym wypadku proxy optymalizujące obrazki nie będzie w stanie ich pobrać celem optymalizacji. Z tego powodu firewalle, proxy, ochrona hasłem lub nawet ochrona przez hotlinkowaniem może przerwać działanie usługi optymalizacji.

Czy mogę użyć optymalizacji obrazków dla mojej intranetowej/zabezpieczonej strony?

Nie; Optymalizacja obrazków polega na możliwości żeby zewnętrzna usługa optymalizująca obrazki pobrała oryginalne obrazki z twojej strony, zoptymalizowała je i zachowała w sieci CDN. Jeżeli twoje obrazki nie mogą być pobrane przez anonimowych gości (z powodu firewall / proxy / ochrony hasłem / ochrony przed hotlinkowaniem), optymalizacja obrazków nie zadziała.

Gdzie mogę uzyskać więcej informacji na temat optymalizacji obrazków?

Zajrzyj do FAQ-a Shortpixel.

Czy mogę wyłączyć nasłuchiwanie oczyszczania pamięci podręcznej witryny przez AO?

Od wersji AO 2.4 AO „nasłuchuje” sygnału czyszczenia pamięci podręcznej strony, aby wyczyścić własną pamięć podręczną. Możesz wyłączyć to zachowanie za pomocą tego filtra;

add_filter('autoptimize_filter_main_hookpagecachepurge','__return_false');

Niektóre znaki nie-ASCII znikną po optymalizacji.

Domyślnie AO używa metod, które nie są bezpieczne dla wielu bajtów, ale jeśli twój PHP ma rozszerzenie mbstring, możesz włączyć funkcje łańcuchów bezpieczne dla wielu bajtów za pomocą tego filtra;

add_filter('autoptimize_filter_main_use_mbstring', '__return_true');

Nie mogę uruchomić Critical CSS

Sprawdź Najczęściej zadawane pytania na temat (starszego) „ulepszenia” tutaj, te informacje zostaną włączone do tego FAQ w późniejszym terminie.

Czy nadal potrzebuję ulepszeń Critical CSS, gdy mam Autoptimize 2.7 lub nowszy?

Nie, ulepszenie Critical CSS nie jest już potrzebna, cała funkcjonalność (i wiele poprawek/ulepszeń) jest teraz częścią Autoptimize.

Co robi „włącz awaryjne błędy 404”? Dlaczego miałbym tego potrzebować?

Autoptimize buforuje zagregowane i zoptymalizowany CSS/JS, a linki do tych zbuforowanych plików przechowywane są w kodzie HTML, który będzie przechowywany w pamięci podręcznej strony (która może być wtyczką, może znajdować się na poziomie hosta, może znajdować się na stronie trzeciej, w pamięci podręcznej Google, lub w przeglądarce). Jeśli w pamięci podręcznej strony znajduje się kod HTML, który zawiera linki do Autoptimizowanego CSS/ JS, który został w międzyczasie usunięty (kiedy pamięć podręczna została wyczyszczona), strona z pamięci podręcznej nie będzie wyglądać/ działać zgodnie z oczekiwaniami, ponieważ nie znaleziono CSS lub JS (błąd 404).

To ustawienie ma na celu zapobieganie awariom poprzez udostępnianie „zastępczego” CSS lub JS. Pliki zastępcze są kopiami pierwszego zoptymalizowanego kodu CSS i plików JS utworzonych po opróżnieniu pamięci podręcznej i jako takie będą oparte na stronie głównej. Oznacza to, że CSS/JS może nie pasować w 100% do innych stron, ale przynajmniej wpływ braku CSS/JS będzie zmniejszony (często znacząco).

Kiedy ta opcja jest włączona, Autoptimize dodaje ErrorDocument 404 do .htaccess (używana przez Apache) oraz podłącza się do Wordpresowego template_redirect aby przechwycić 404’ki obsługiwane przez WordPress. Kiedy używasz NGINX coś jak poniżej powinno zadziałać (nie jestem specjalistą od NGINX, ale u mnie to działa);

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

I to fajne alternatywne podejście (dostarczone przez 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;
}

Jakie oprogramowanie/projekty open source zostały wykorzystane w Autoptimize?

Następujące świetne projekty open source są używane w Autoptimize takiej czy innej formie:

Gdzie mogę uzyskać pomoc?

Możesz uzyskać pomoc na forum pomocy wordpress.org. Jeśli jesteś w 100% pewien, że Twój problem nie może zostać rozwiązany za pomocą konfiguracji Autoptimize i że faktycznie odkryłeś błąd w kodzie, możesz utworzyć problem na GitHub. Jeśli szukasz wsparcia Premium, sprawdź nasze usługi wsparcia Autoptimize Pro i optymalizacji wydajności sieci.

Chcę się wycofać, jak mam usunąć Autoptimize?

  • Wyłącz wtyczkę (to usunie opcje i pamięć podręczną)
  • Usuń wtyczkę
  • Wyczyść pamięć podręczną, która może nadal zawierać strony odwołujące się do zoptymalizowanego automatycznie kodu CSS/JS (np. wtyczki do buforowania stron, takiej jak WP Super Cache).

Jak mogę pomóc/wnieść swój wkład?

Po prostu zforkuj Autoptimize na Github i koduj!

Recenzje

Image
2025-11-11 1 odpowiedź
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
2025-11-06 1 odpowiedź
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
2025-05-14 1 odpowiedź
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!
Image
2025-04-02 1 odpowiedź
We’ve been using this plugin for literally about a decade now, over multiple WP versions and different themes. Support is prompt, personal, and amazing. Both times when I’ve had an issue, I’ve never been left to flounder.
Przeczytaj 1 422 recenzje

Kontrybutorzy i deweloperzy

„Autoptimize – Auto optymalizacja” jest oprogramowaniem open source. Poniższe osoby miały wkład w rozwój wtyczki.

Zaangażowani

Wtyczka „Autoptimize – Auto optymalizacja” została przetłumaczona na 34 języki. Podziękuj tłumaczom za ich wkład.

Przetłumacz wtyczkę “Autoptimize – Auto optymalizacja” na swój język.

Interesuje cię rozwój wtyczki?

Przeglądaj kod, sprawdź repozytorium SVN lub czytaj dziennik rozwoju przez RSS.

Rejestr zmian

3.1.14

  • improve HTML output for <link rel=”preload” images (based on report by Muhammad)
  • let the 404-handler issue a 302 iso 301 HTTP response (as mentioned by thefitrv)
  • small improvement in critical CSS cron job handling in case of an empty „time limit” (thanks for the help Jason)
  • fix bug in „domain binding” in critical CSS advanced options (reported by Hazel)
  • catch and report (exceptional) JS optimization issues causing preg_replace_callback to crash out (in case of a huge amount of JS code), thanks siliconforks
  • confirmed OK with WordPress 6.9

3.1.13

3.1.12

  • image optimization: improvements to the favicon regex
  • javascript optimization: integrate most recent version of jsmin.php
  • critical CSS: improve blocklist (url/ paths that should not be added to the job queue)
  • some other minor changes/ improvements/ filters, see the GitHub commit log.

3.1.11

3.1.10

  • improvement: with „don’t aggregate but defer” and „also defer inline JS” on, also defer JS that had the async flag to avoid the (previously) asynced JS from executing before the inline JS has ran.
  • improvement: show option to disable the default on „compatibility logic”.
  • fix for regression in 3.1.9 which caused JetPack Image optimization not working even if image optimization was off in AO.
  • API: some extra hooks in critical CSS to enable others (and AOPro) to act on changes in critical CSS rules
  • some other minor changes/ improvements/ filters, see the GitHub commit log.

3.1.9

  • improvement: activate JS, CSS & HTML optimization upon plugin activation (hat tip to Adam Silverstein (developer relations engineer at Google))
  • improvement: also defer asynced JS (to ensure execution order remains intact; asynced JS should not execute before deferred inline JS which it might depend upon)
  • improvement: exclude images from being lazyloaded if they have fetchpriority attribute set to high (as done by WordPress core since 6.3)
  • bugfix: disable spellcheck on CSS textarea’s (above the fold CSS/ critical CSS) which in some cases caused browser issues
  • add tab to explain Autoptimize Pro.
  • confirmed working with WordPress 6.4 (beta 3)
  • some other minor changes/ improvements/ filters, see the GitHub commit log.

3.1.8.1

  • urgent fix for PHP error, sorry about that!

3.1.8

  • Images: improve optmization logic for background images
  • Critical CSS: don’t trigger custom_post rule if not is_singular + adding debug logging for rule selection
  • some other minor changes/ improvements/ filters, see the GitHub commit log.

3.1.7

  • security: improve validation (import) and sanitization (output) of critical CSS rules, to fix a medium severity Admin+ Stored Cross-Site Scripting vulnerability as reported by WP Scan Security.

3.1.6

  • CSS: removing trailing slashes in <link tags for more W3 HTML validation love
  • Extra: also dequeue WooCommerce block CSS if „remove WordPress block CSS” option is active
  • imgopt: also act on non-aggregated inline CSS
  • imgopt: added logic to warn users if Shortpixel can’t reach their site
  • backend: AO toolbar JS/ CSS is finally minified as well.
  • explicitly disable optimization of login pages
  • some other minor changes/ improvements/ filters, see the GitHub commit log.

3.1.5

  • improvements to JSMin by Robert Ehrenleitner (big thanks Robert!).
  • do not consider jquery.js as minified any more (WordPress now uses jquery.min.js by default and jquery.js is the unminified version).
  • fix for „undefined array key” PHP errors in autoptimizeCriticalCSSCron.php
  • some other minor changes/ improvements/ filters, see the GitHub commit log.

3.1.4

  • Improvement: when all CSS is inlined, try doing so after SEO meta-tags (just before ld+json script tag which most SEO plugins add as last item on their list).
  • Img opt: also optimize images set in data-background and data-retina attributes (+ filter to easily add other attributes)
  • CSS opt: filter to enable AO to skip minification of calc formulas in CSS (as the CSS minifier on rare occasions breaks those)
  • Multiple other filters added
  • Some other minor changes/ improvements/ filters, see the GitHub commit log.

3.1.3

  • Multiple fixes for metabox LCP image preloads (thanks Kishorchand for notifying & providing a staging environment to debug on).
  • Fix in revslider compatibility (hat tip Waqar Ahmed for reporting & helping out ).
  • No image optimization or criticalcss attempts on localhost installations any more + notification of that fact if localhost detected.
  • Some other minor changes/ improvements/ filters, see the GitHub commit log.

3.1.2

  • Google Fonts: some more removal logic
  • fix for 404 fallback bug (hat tip to Asif for finding & reporting)
  • Some other minor changes/ improvements/ filters, see the GitHub commit log.

3.1.1.1

  • Quick workaround for an autoload conflict with JetFormBuilder (and maybe other Crocoblock plugins?) that causes a critical error on the AO settings page.

3.1.1

  • images: when optimizing images and lazyloading is on, then by default do not set an LQIP (low quality image placeholder) any more (reason: it might look nice but it comes with a small-ish perf. penalty). This can be re-enabled by returning true to the autoptimize_filter_imgopt_lazyload_dolqip filter.
  • security: further improvements to critical CSS settings page (again with the great assistance of WPScan Security).
  • some other minor changes/ improvements/ filters, see the GitHub commit log.

3.1.0

  • new HTML sub-option: „minify inline CSS/ JS” (off by default).
  • new Misc option: permanently allow the „do not run compatibility logic” flag to be removed (which was set for users upgrading from AO 2.9.* to AO 3.0.* as the assumption was things were working anyway).
  • security: improvements to the critical CSS settings page to fix authenticated cross site scripting issues as reported by WPScan Security.
  • bugfix: „defer inline JS” of very large chunks of inline JS could cause server errors (PCRE crash actually) so not deferring if string is more then 200000 characters (filter available).
  • some other minor changes/ improvements/ hooks, see the GitHub commit log

3.0.4

  • fix for „undefined array key ao_post_preload” on post/ page edit screens
  • fix for image optimization altering inline JS that contains an <img tag if lazyload is not active
  • improvements to exit survey
  • potwierdzona praca z WordPress 6.0

3.0.3

  • fix for images being preloaded without this being configured when lazyload is on and per page/post settings are off.
  • ensure critical CSS schedule is always known.
  • when deferring non-aggregated JS, make the optimatization exclusions take the full script-tag into account instead of just the src URL.

3.0.2

  • rollback automatic „minify inline CSS/ JS” which broke more then expected, this will come back as a separate default off option later and can now be enabled with a simple filter: add_filter( 'autoptimize_html_minify_inline_js_css', '__return_true'); .
  • fix for „Call to undefined method autoptimizeOptionWrapper::delete_option()” in autoptimizeVersionUpdatesHandler.php

3.0.1

  • fix for minification of inline script with type text/template breaking the template (e.g. ninja forms), hat tip to @bobsled.
  • fix for regression in import of CSS-files where e.g. fontawesome CSS was broken due to being escaped again with help of @bobsled, thanks man!

3.0.0

  • fundamental change for new installations: by default Autoptimize will not aggregate JS/ CSS any more (HTTP/2 is ubiquitous and there are other advantages to not aggregating esp. re. inline JS/ CSS and dependancies)
  • new: no API needed any more to create manual critical CSS rules.
  • new: „Remove WordPress blocks CSS” option on the „Extra” tab to remove block- and global styles (and SVG).
  • new: compatibility logic for „edit with elementor”, „revolution slider”, for non-aggregated inline JS requiring jQuery even if not excluded (= auto-exclude of jQuery) and JS-heavy WordPress blocks (Gutenberg)
  • new: configure an image to be preloaded on a per page/ post basis for better LCP.
  • improvement: defer inline now also allowed if inline JS contains nonce or post_id.
  • improvement: settings export/ import on critical CSS tab now takes into account all Autoptimize settings, not just the critical CSS ones.
  • technical improvement: all criticalCSS classes were refactored, removing use of global variables.
  • technical improvement: automated unit tests on Travis-CI for PHP versions 7.2 to 8.1.
  • fix: stop Divi from clearing Autoptimize’s cache which is pretty counter-productive.
  • misc smaller fixes/ improvements, see the GitHub commit log

older