Autoptimize

Opis

Autoptimize makes optimizing your site really easy. It can aggregate, minify and cache scripts and styles, injects CSS in the page head by default but can also inline critical CSS and defer the aggregated full CSS, moves and defers scripts to the footer and minifies HTML. You can optimize and lazy-load images (with support for WebP and AVIF formats), optimize Google Fonts, async non-aggregated JavaScript, remove WordPress core emoji cruft and more. As such it can improve your site’s performance even when already on HTTP/2! There is extensive API available to enable you to tailor Autoptimize to each and every site’s specific needs.
If you think performance indeed is important, you should at least consider one of the many free page caching plugins (e.g. Speed Booster pack or KeyCDN’s Cache Enabler) to complement Autoptimize or even consider Autoptimize Pro which not only has page caching but also image optimization, CDN, critical CSS and more!

Autoptimize Pro
Autoptimize Pro is a premium Power-Up, adding image optimization, CDN, page caching, automatic critical CSS rules and extra “booster” options, all in one handy subscription to make your site even faster!!

Premium Support
We provide great Premium Support and Web Performance Optimization services with Accelera, check out our offering on https://accelerawp.com/!

(Speed-surfing image under creative commons by LL Twistiti)

Instalacja

Just install from your WordPress „Plugins > Add New” screen and all will be well. Manual installation is very straightforward as well:

  1. Prześlij plik zip i rozpakuj go w katalogu /wp-content/plugins/
  2. Włącz wtyczkę w menu 'Wtyczki” w WordPressie
  3. Go to Settings > Autoptimize and enable the options you want. Generally this means „Optimize 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 is a great step forward for sure, reducing the impact of multiple requests from the same server significantly by using the same connection to perform several concurrent requests and for that reason on new installations Autoptimize will not aggregate CSS and JS files any more. That being said, concatenation of CSS/ JS can still make a lot of sense, as described in this css-tricks.com article and this blogpost from one of the Ebay engineers. The conclusion; configure, test, reconfigure, retest, tweak and look what works best in your context. Maybe it’s just HTTP/2, maybe it’s HTTP/2 + aggregation and minification, maybe it’s HTTP/2 + minification (which AO can do as well, simply untick the „aggregate JS-files” and/ or „aggregate CSS-files” options). And Autoptimize can do a lot more then „just” optimizing your JS & CSS off course 😉

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?

Starting from AO 2.1 WordPress core’s jquery.min.js is not optimized for the simple reason a lot of popular plugins inject inline JS that is not aggregated either (due to possible cache size issues with unique code in inline JS) which relies on jquery being available, so excluding jquery.min.js ensures that most sites will work out of the box. If you want optimize jquery as well, you can remove it from the JS optimization exclusion-list (you might have to enable „also aggregate inline JS” as well or switch to „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.

What is the use of „inline and defer CSS”?

CSS in general should go in the head of the document. Recently a.o. Google started promoting deferring non-essential CSS, while inlining those styles needed to build the page above the fold. This is especially important to render pages as quickly as possible on mobile devices. As from Autoptimize 1.9.0 this is easy; select „inline and defer CSS”, paste the block of „above the fold CSS” in the input field (text area) and you’re good to go!

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

There’s no easy solution for that as „above the fold” depends on where the fold is, which in turn depends on screensize. There are some tools available however, which try to identify just what is „above the fold”. This list of tools is a great starting point. The Sitelocity critical CSS generator and Jonas Ohlsson’s criticalpathcssgenerator are nice basic solutions and http://criticalcss.com/ is a premium solution by the same Jonas Ohlsson. Alternatively this bookmarklet (Chrome-only) can be helpful as well.

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 does not have its proper cache purging mechanism, as this could remove optimized CSS/JS which is still referred to in other caches, which would break your site. Moreover a fast growing cache is an indication of other problems you should avoid.

Instead you can keep the cache size at an acceptable level by either:

  • dezaktywacja opcji „agreguj wbudowany JS” i/lub „agreguj wbudowany CSS”
  • excluding JS-variables (or sometimes CSS-selectors) that change on a per page (or per pageload) basis. You can read how you can do that in this blogpost.

Despite above objections, there are 3rd party solutions to automatically purge the AO cache, e.g. using this code or this plugin, but for reasons above these are to be used only if you really know what you’re doing.

„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ą”.

Moreover don’t worry if your cache never is down to 0 files/ 0KB, as Autoptimize (as from version 2.2) will automatically preload the cache immediately after it has been cleared to speed further minification significantly up.

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 is a pretty advanced but invasive way to make JavaScript non-render-blocking, which Cloudflare still considers Beta. Sometimes Autoptimize & Rocket Loader work together, sometimes they don’t. The best approach is to disable Rocket Loader, configure Autoptimize and re-enable Rocket Loader (if you think it can help) after that and test if everything still works.

At the moment (June 2017) it seems RocketLoader might break AO’s „inline & defer CSS”, which is based on Filamentgroup’s loadCSS, resulting in the deferred CSS not loading.

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

Autoptimize is not a simple „fix my Pagespeed-problems” plugin; it „only” aggregates & minifies (local) JS & CSS and images and allows for some nice extra’s as removing Google Fonts and deferring the loading of the CSS. As such Autoptimize will allow you to improve your performance (load time measured in seconds) and will probably also help you tackle some specific Pagespeed warnings. If you want to improve further, you will probably also have to look into e.g. page caching and your webserver configuration, which will improve real performance (again, load time as measured by e.g. https://webpagetest.org) and your „performance best practice” pagespeed ratings.

Co mogę zrobić za pomocą API?

A whole lot; there are filters you can use to conditionally disable Autoptimize per request, to change the CSS- and JS-excludes, to change the limit for CSS background-images to be inlined in the CSS, to define what JS-files are moved behind the aggregated one, to change the defer-attribute on the aggregated JS script-tag, … There are examples for some filters in autoptimize_helper.php_example and in this FAQ.

Jak działa CDN?

Starting from version 1.7.0, CDN is activated upon entering the CDN blog root directory (e.g. http://cdn.example.net/wordpress/). If that URL is present, it will used for all Autoptimize-generated files (i.e. aggregated CSS and JS), including background-images in the CSS (when not using data-uri’s).

If you want your uploaded images to be on the CDN as well, you can change the upload_url_path in your WordPress configuration (/wp-admin/options.php) to the target CDN upload directory (e.g. http://cdn.example.net/wordpress/wp-content/uploads/). Do take into consideration this only works for images uploaded from that point onwards, not for images that already were uploaded. Thanks to BeautyPirate for the tip!

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

Autoptimize supports this, but it is not enabled by default because non-local fonts might require some extra configuration. But if you have your cross-origin request policy in order, you can tell Autoptimize to put your fonts on the CDN by hooking into the API, setting autoptimize_filter_css_fonts_cdn to true this way;

add_filter( 'autoptimize_filter_css_fonts_cdn', '__return_true' );

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

Nothing, when on Cloudflare your autoptimized CSS/ JS is on the Cloudflare’s CDN automatically.

How can I force the aggregated files to be static CSS or JS instead of PHP?

If your webserver is properly configured to handle compression (gzip or deflate) and cache expiry (expires and cache-control with sufficient cacheability), you don’t need Autoptimize to handle that for you. In that case you can check the „Save aggregated script/css as static files?”-option, which will force Autoptimize to save the aggregated files as .css and .js-files (meaning no PHP is needed to serve these files). This setting is default as of Autoptimize 1.8.

Jak działa „wykluczanie z optymalizacji”?

Both CSS and JS optimization can skip code from being aggregated and minimized by adding „identifiers” to the comma-separated exclusion list. The exact identifier string to use can be determined this way:

  • if you want to exclude a specific file, e.g. wp-content/plugins/funkyplugin/css/style.css, you could simply exclude „funkyplugin/css/style.css”
  • if you want to exclude all files of a specific plugin, e.g. wp-content/plugins/funkyplugin/js/*, you can exclude for example „funkyplugin/js/” or „plugins/funkyplugin”
  • if you want to exclude inline code, you’ll have to find a specific, unique string in that block of code and add that to the exclusion list. Example: to exclude <script>funky_data='Won\'t you take me to, Funky Town'</script>, the identifier is „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!

If you are running Apache, the .htaccess file written by Autoptimize can in some cases conflict with the AllowOverrides settings of your Apache configuration (as is the case with the default configuration of some Ubuntu installations), which results in „internal server errors” on the autoptimize CSS- and JS-files. This can be solved by setting AllowOverrides to 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 does some nifty stuff to add JavaScript. In order for Autoptimize to be able to aggregate that, you can either disable Nextgen Gallery’s resourced manage with this code snippet add_filter( 'run_ngg_resource_manager', '__return_false' ); or you can tell Autoptimize to initialize earlier, by adding this to your 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-->

You can do this in your page/ post content, in widgets and in your theme files (consider creating a child theme to avoid your work being overwritten by theme updates).

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?

Yes, but this is off by default. You can enable this by passing ´true´ to ´autoptimize_filter_cache_create_static_gzip´. You’ll obviously still have to configure your webserver to use these files instead of the non-gzipped ones to avoid the overhead of on-the-fly compression.

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ż potrzebnw, 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?

You can get help on the wordpress.org support forum. If you are 100% sure this your problem cannot be solved using Autoptimize configuration and that you in fact discovered a bug in the code, you can create an issue on GitHub. If you’re looking for premium support, check out our Autoptimize Pro Support and Web Performance Optimization services.

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

  • Wyłącz wtyczkę (to usunie opcje i pamięć podręczną)
  • Usuń wtyczkę
  • Clear any cache that might still have pages which reference Autoptimized CSS/JS (e.g. of a page caching plugin such as WP Super Cache)

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

Po prostu zforkuj Autoptimize na Github i koduj!

Recenzje

2024-02-19 1 odpowiedź
With Autoptimize the performance of my websites improves and in case of problems their assistance is very helpful.
2024-02-12 1 odpowiedź
Not that much to add. It's simply the best (free) plugin to optimize and speed up your website. It works well and has a lot of feature to go deeper and optimize even more. Plus: the support here on the wordpress.org forum is one of the best out here. Keep up the good work!
2024-02-02 1 odpowiedź
I was having a plugin conflict because of an unrelated plugin and the Autoptimize plugin author was extremely quick to reply to my support thread and help me work out an extensive series of steps to best optimize the website and work around this conflict. I deeply appreciated this selfless support that went above and beyond any initial expectations. I am happy to have Autoptimize working and speeding things up!
Przeczytaj 1 402 recenzje

Kontrybutorzy i deweloperzy

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

Zaangażowani

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

Przetłumacz wtyczkę “Autoptimize” 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.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