Wyeliminuj zasoby blokujące renderowanie

W sekcji Możliwości raportu Lighthouse znajdziesz listę wszystkich adresów URL blokujących pierwsze wyrenderowanie strony. Celem jest zmniejszenie wpływu takich adresów URL blokujących renderowanie przez wbudowanie zasobów krytycznych, odroczenie niekrytycznych zasobów i usunięcie wszystkich nieużywanych zasobów.

Zrzut ekranu pokazujący audyt Lighthouse dotyczący eliminowania zasobów blokujących renderowanie

Które adresy URL są oznaczane jako zasoby blokujące renderowanie?

Lighthouse oznacza 2 typy adresów URL blokujących renderowanie: skrypty i arkusz stylów.

Tag <script>:

  • Znajduje się w <head> dokumentu.
  • Nie ma atrybutu defer.
  • nie ma atrybutu async.

Tag <link rel="stylesheet">:

  • Nie ma atrybutu disabled. Jeśli ten atrybut jest obecny, przeglądarka nie pobiera arkusza stylów.
  • Nie ma atrybutu media, który pasuje do urządzenia użytkownika. Element media="all" blokuje renderowanie.

Jak zidentyfikować kluczowe zasoby

Pierwszym krokiem w kierunku zmniejszenia wpływu zasobów blokujących renderowanie jest określenie, które z nich są kluczowe, a które nie. Aby zidentyfikować niekrytyczny kod CSS i JS, użyj karty Pokrycie w Narzędziach deweloperskich w Chrome. Gdy wczytasz lub uruchamiasz stronę, na karcie widać, ile kodu zostało użyte, a ile wczytano:

Narzędzia deweloperskie w Chrome: karta Zakres
Narzędzia deweloperskie w Chrome: karta Zakres.

Możesz zmniejszyć rozmiar stron, przesyłając tylko potrzebny kod i style. Kliknij adres URL, aby sprawdzić plik w panelu Źródła. Style w plikach CSS i kod w plikach JavaScript są oznaczone dwoma kolorami:

  • Zielony (krytyczny): style wymagane do pierwszego wyrenderowania; kod niezbędny do podstawowej funkcjonalności strony.
  • Czerwony (niekrytyczny): style stosowane do treści, które nie są widoczne od razu; kod nie jest używany w podstawowej funkcji strony.

Jak wyeliminować skrypty blokujące renderowanie

Po zidentyfikowaniu kodu krytycznego przenieś go z adresu URL blokującego renderowanie do tagu wbudowanego script na stronie HTML. Po załadowaniu strony będzie ona miała wszystko, czego potrzebuje do obsługi jej podstawowej funkcjonalności.

Jeśli w adresie URL blokującym renderowanie znajduje się kod, który nie jest niezbędny, możesz go zachować w adresie URL, a następnie oznaczyć go atrybutami async lub defer (patrz też Dodawanie interakcji za pomocą JavaScriptu).

Kod, który nie jest w ogóle używany, powinien zostać usunięty (patrz Usuwanie nieużywanych kodów).

Jak wyeliminować pliki czcionek blokujące renderowanie

Podobnie jak w przypadku umieszczania kodu w tagu <script>, wstawiaj ważne style wymagane do pierwszego wyświetlenia w bloku <style> w miejscu head strony HTML. Następnie wczytaj pozostałe style asynchronicznie za pomocą linku preload (patrz Przekazywanie nieużywanego kodu CSS).

Rozważ zautomatyzowanie procesu wyodrębniania i wstawiania kodu CSS „Above the Fold” za pomocą Critical tool.

Innym sposobem na wyeliminowanie stylów blokujących renderowanie jest podzielenie ich na różne pliki, uporządkowane według zapytania o media. Następnie dodaj atrybut multimediów do każdego linku do arkusza stylów. Podczas wczytywania strony przeglądarka blokuje tylko pierwsze wyrenderowanie, aby pobrać arkusze stylów dopasowane do urządzenia użytkownika (patrz CSS blokujący renderowanie).

Na koniec zmniejsz plik CSS, aby usunąć dodatkowe odstępy i znaki (zobacz Zmniejszanie kodu CSS). Dzięki temu użytkownicy otrzymają jak najmniejszą paczkę.

Wskazówki dotyczące stosu

AMP

Korzystaj z narzędzi takich jak AMP Optimizer, aby renderować układy AMP po stronie serwera.

Drupal

Sugerujemy używanie modułu wbudowującego w stronę krytyczny kod CSS i JavaScript, a w przypadku mniej istotnego kodu CSS lub JavaScript stosowanie atrybutu opóźnienia.

Joomla

Jest wiele wtyczek Joomli, które mogą pomóc Ci umieścić w tekście najważniejsze zasoby lub opóźnić wczytywanie tych, które są mniej ważne.

WordPress

Jest wiele wtyczek WordPressa, które mogą pomóc Ci umieścić w tekście najważniejsze zasoby lub opóźnić wczytywanie tych, które są mniej ważne.

Zasoby