Jak zoptymalizować WordPress pod względem obciążenia serwera?


81

Oprócz instalacji W3 Total Cache lub innej wtyczki buforującej, jakie kroki mogę podjąć, aby upewnić się, że mój motyw i strona działają tak szybko, jak to możliwe.


jeśli prowadzisz swoją witrynę na vps, powinieneś spróbować pamięci podręcznej redis.
ahmetlutfu

Odpowiedzi:


32

Możesz zainstalować WordPress na Nginx. Istnieje wiele zasobów, które mogą pomóc:

Niektóre informacje o wydajności z tego ostatniego linku (który wygląda na nieco inną konfigurację niż inne):

Postanowiłem więc umieścić proxy przed wordpress w statycznej pamięci podręcznej tak bardzo, jak to możliwe. Cały nieuwierzytelniony ruch jest obsługiwany bezpośrednio z pamięci podręcznej pliku nginx, przyjmując niektóre żądania (takie jak generowanie kanału RSS) od 6 stron / sekundę do ponad 7000 stron / sekundę. Nie. Nginx obsługuje także rejestrowanie i gzipping, pozostawiając cięższe backendowe podejścia do robienia tego, co robią najlepiej: obsługuj dynamiczne strony Wordpress tylko wtedy, gdy jest to potrzebne.

...

Na Nginx - jest tak wydajny, że przerażający. Nigdy nie widziałem, aby używał więcej niż 10 do 15 megabajtów pamięci RAM i mocy procesora, nawet przy naszym największym obciążeniu. Nasze wykresy zwojów nie kłamią: zmniejszyliśmy o połowę nasze wymagania dotyczące pamięci, podwoiliśmy przepustowość sieci wychodzącej i całkowicie wyrównaliśmy obciążenie. Odkąd to skonfigurowaliśmy, nie mieliśmy praktycznie żadnych problemów.


Czy ktoś ma jakieś statystyki dotyczące oszczędności prędkości korzystania z Nginx?
Mike Lee

Mike, dodałem kolejny link i trochę informacji z tego postu.
Travis Northcutt

Przeniosłem mojego głównego bloga z serwera 1G z uruchomionym Apache na serwer 512M z Nginx. Działa płynniej, pomimo zmniejszenia pamięci RAM. Trzeba przyznać, że na serwerze 1G działają inne usługi (e-mail, imap, listonosz, kilka innych witryn o niskim natężeniu ruchu).
Dougal Campbell,

Uwaga: uruchamianie WordPress na nginx różni się od używania nginx jako pamięci podręcznej proxy przed Wordpress.
sam

26

Ustaw wygaśnięcia po stronie klienta dla rzeczy takich jak css, obrazy, JavaScript itp., Które nie muszą być ponownie pobierane dla każdego wyświetlenia strony. To zdecydowanie miało największy wpływ na czas ładowania mojej witryny. Najszybsze pobieranie to pobieranie, które nigdy się nie wydarzyło ...

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

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

Możesz wstępnie zgzipować wszystko, co rozsądnie możesz zrobić (7-zip jest dobrym narzędziem do tego) i przesłać go w to samo miejsce, co właśnie spakowany plik. Zmień plik .htaccess, aby wyświetlać wstępnie spakowane pliki, jak poniżej. Zastrzeżeniem jest to, że musisz pamiętać o ponownym zgzipowaniu ich, jeśli / podczas aktualizacji rzeczy. To odcina obciążenie procesora, poza analizowaniem .htaccess.

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

To tylko surowa odpowiedź. Istnieje wiele odmian tego tematu. Napisałem o tym na blogu i dodałem sporo odniesień do bardziej szczegółowych artykułów na http://icanhazdot.net/2010/03/23/some-wordpress-stuff/ . Przeczytaj to i, co ważniejsze, odniesienia, na które wskazuję - są to dobre zasoby.

Pamiętaj, że jeśli często majstrujesz, użytkownicy będą musieli odświeżyć pamięć podręczną.

Bardzo przydatna wtyczka to wp-minify . W tym przypadku należy wykluczyć elementy specyficzne dla strony (formularz kontaktowy, suwak strony głównej itp.), Aby nie pobierać ponownie całego zestawu css, JS itp. Dla każdej strony. Jest to dobry sposób na zminimalizowanie, połączenie i skompresowanie twojego podstawowego CSS, JS itp. To znacznie ogranicza żądania HTTP. Wp-minify działa dobrze z supercache, a także z nagłówkami wygaśnięcia, które opisałem powyżej.

Użyj Yslow w Firebug (Firefox) lub podobnym do monitorowania żądań HTTP oraz tego, co jest i nie jest skompresowane. Spójrz również na nagłówki wygaśnięcia. Wkrótce zobaczysz, co możesz poprawić.


2
Jeśli ktoś planuje skopiować / wkleić Twoje Rewrites, istnieje instancja „ReWrite”, którą należy poprawić.
Jeremy L,

2
który przypadek
CAD bloke

@Nerdling Czy możesz wskazać, które wystąpienie wymaga naprawy? Chciałbym użyć powyższego kodu.
helgatheviking

Może to być związane z nieaktualnością mod gzip w późniejszych wersjach Apache. Musiałem ostatnio zmienić mój na mod deflate.
CAD bloke

2
Dla dobrego zestawu wartości domyślnych dla .htaccess projekt HTML5 Boilerplate udostępnia szablon. github.com/h5bp/html5-boilerplate/blob/master/dist/.htaccess
Paul Sheldrake

21

Zminimalizuj liczbę uruchomionych wtyczek, aby uzyskać tylko to, czego naprawdę potrzebujesz. Zwłaszcza pamiętaj o wtyczkach, które dodają kod javascript i kod CSS przy każdym ładowaniu strony, nawet jeśli ten kod nie jest używany na stronie.

Jeśli tworzysz własny motyw od zera, zniszcz CSS, aby funkcje potrzebne tylko dla określonych szablonów stron lub typów widoków (pojedynczy post, archiwa, kategoria itp.) Były ładowane tylko w razie potrzeby.

Skonfiguruj W3TC do korzystania z CDN (jak Amazon CloudFront lub dowolny inny obsługiwany przez W3TC).

Sprawdź, czy opcje Minify działają dla Ciebie (niektóre wtyczki generują plik js / css, który nie ładnie zminimalizuje, więc pamiętaj o przetestowaniu witryny po aktywacji funkcji minify).

Jeśli masz pełną kontrolę nad swoim serwerem MySQL, upewnij się, że masz włączone query_cache. Użyj skryptu strojenia MySQL, aby znaleźć inne sposoby optymalizacji konfiguracji bazy danych.

Jeśli korzystanie z CDN jest z jakiegoś powodu problematyczne, skonfiguruj mod_expires w konfiguracji apache. Ustaw czasy ważności tak długo, jak jest to uzasadnione dla typów statycznych, takich jak obrazy, css, javascript, wideo, audio itp.


14

Uruchom memcached i użyj pamięci podręcznej obiektów, aby zmniejszyć liczbę zapytań do bazy danych. To buforuje dane z bazy danych, a nie stron. Nie jestem pewien, czy w3-total-cache już to robi.

Upewnij się, że korzystasz z pamięci podręcznej kodów operacyjnych, takiej jak APC . (Istnieje kilka innych dostępnych.)


2
APC naprawdę sprawia, że ​​wordpress jest znacznie bardziej responsywny, szczególnie strony administracyjne. ALE istnieją pewne potencjalne konflikty konfiguracji między WP-SuperCache a APC. Wydaje się, że nie wpływają one na pamięć podręczną W3.
WhIteSidE

Znakomity post Mark Jaquith na ten temat: APC Object Cache Backend for WordPress . Możesz używać batcache szczęśliwie dzięki APC.
icc97

8

Oprócz korzystania z wtyczki buforowania dysku, takiej jak wp-cache, umieść swojego bloga na woluminie hosta z ustawioną na nim właściwością „noatime”. W przeciwnym razie, SSH do twojego hosta (jeśli twój webhost to zapewnia) i rutynowo uruchamiaj to polecenie na swoich plikach co kilka dni:

chattr -R +A ~/*

~ / * Oznacza „moje pliki w moim katalogu domowym”. Możesz zmienić tę ścieżkę według własnego uznania. Możesz również ustawić to dla zadania cron w cpanel, jeśli twój webhost to zapewnia.

Aby uzyskać więcej informacji o nieruchomości atime, zobacz to . Znacznie przyspiesza to odczyt dysku Linux.

Czasami twoja strona jest wbijana przez pająki. Możesz użyć narzędzia takiego jak SpyderSpanker lub Chennai Central, aby odfiltrować pająki, które nie pomagają zwiększyć pozycji strony w Twojej witrynie i jedynie spowalnia ją, a następnie zdławić dobre pająki (takie jak Google, Bing itp.), Wysyłając je losowo Wiadomości HTTP 304 niezmodyfikowane.

Kolejną rzeczą, którą widzę, są po prostu źle napisane wtyczki. Jeśli nauczysz się, jak tworzyć wtyczki, zaczynasz widzieć, jak niektóre wtyczki są nieefektywnie kodowane, a nawet znaleźć szkielety czasowe, takie jak tabela bazy danych, która wypełnia się i wypełnia i nigdy nie jest czyszczona, przechowując takie rzeczy, jak dane połączenia przychodzącego.

Oprócz wszystkich innych rozwiązań tutaj, możesz także stworzyć farmę internetową WordPress swojego bloga, hostując ją na kilku komputerach z węzłem sieci, które wszystkie łączą się z powrotem z jedną bazą danych i jednym woluminem dyskowym dla plików (np. Wolumin zamontowany nad NFS ). Sprawdź Ultra Monkey, aby dowiedzieć się, jak to zrobić.


7

Kilka odpowiedzi z góry mojej głowy:

1) Zminimalizuj liczbę żądań HTTP, które przeglądarka musi przesyłać do twojego hosta, łącząc JavaScript i CSS tam, gdzie to możliwe / praktyczne.

2) Odciąż jak najwięcej zdjęć / multimediów do CDN stron trzecich, jak to możliwe, szczególnie jeśli korzystasz z hostingu współdzielonego.

3) Spróbuj zmniejszyć liczbę postów wyświetlanych na pierwszej stronie, aby skrócić całkowity czas renderowania.

3a) Spróbuj użyć motywu, który w całości prezentuje kilka polecanych postów na pierwszej stronie i wszystkie inne, starsze posty jako fragmenty.


2
+1 za zmniejszenie liczby postów, daje to ogromne doładowanie bez żadnych kosztów. Ludzie tak naprawdę nie muszą widzieć dziesięciu starych postów, po prostu ustawiłem conf na osiem.
ripper234

7

Pamięć podręczna menu WordPress zapewnia również zwiększenie wydajności. Zwłaszcza jeśli masz dużo stron lub gigantyczną strukturę menu, należy to wziąć pod uwagę.

Zrób to w 2 łatwych krokach. Najpierw utwórz funkcję, która pobiera lub tworzy menu, zamiast wywoływać wp_nav_menubezpośrednio.

function get_cached_menu( $menuargs ) {

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

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

    } else {

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

    }


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

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

    } else {

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

    }

}

W swoim motywie zamień wp_nav_menus na get_cached_menu. Teraz, za każdym razem, gdy menu jest wywoływane, masz jedno zapytanie do bazy danych zamiast całego menubuildingu.

Menu nie zmieniają się często - ale musisz również dołączyć do wp_update_nav_menuakcji, aby usunąć stare transjenty.

Zrób to tak:

add_action('wp_update_nav_menu', 'my_delete_menu_transients');

function my_delete_menu_transients($nav_menu_selected_id) {

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

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

    delete_transient( $transient ); 

}

Menu zostanie wygenerowane przy następnym wywołaniu strony - i używaj wersji z pamięci podręcznej, dopóki ktoś nie zaktualizuje menu ponownie.

Zaktualizowana wersja

Dzięki @helgatheviking za wskazanie błędu między ślimakami a identyfikatorami. Zaktualizowałem funkcje, dzięki czemu działa zarówno z, jak theme_positioni menu(dla bezpośredniego wywołania menu).

Menu są zawsze zapisywane z nazwą menu, a nie z pozycją w motywie.


To wydaje się naprawdę fajnym pomysłem. Mam jednak problem z kodem. Kiedy jesteśmy oczyszczaniu przejściowym, $nav_menu_selected_idjest liczbą, podczas gdy wywołanie get_cached_menu()THE menu_idjest zmienną ciąg, ponieważ parametr staje identyfikator CSS dla <ul>elementu.
helgatheviking

5

Użyj klasy bazy danych przyciętej do optymalizacji. Zrobiliśmy dobre doświadczenia z własnym kodem, aby zmniejszyć zużycie pamięci i szybkość dostępu do bazy danych. Oprócz tego możesz zoptymalizować samą strukturę bazy danych za pomocą drobnych zmian, które również dużo robią.

Część kodu klasy bazy danych można znaleźć w wordpress trac, nie uczyniono go rdzeniem ( Ticket # 11799 i powiązane ).


Ciekawe rozwiązanie Oto adres URL do biletu Trac na wypadek, gdyby ktoś też był zainteresowany: core.trac.wordpress.org/ticket/11799
Mike Lee

4

W przypadku witryny o dużym natężeniu ruchu należy dostroić wszystkie bufory MySQL pod kątem zawartości, która jest już dostępna. Niezależnie od wersji WordPress warstwa MySQL może zostać obliczona .

W rzeczywistości, jeśli masz dane InnoDB bez włączania innodb_file_per_table, musisz oczyścić InnoDB poprzez segmentację każdej tabeli we własnym fizycznym obszarze tabel . Można dokonać przyzwoitego strojenia MySQL, nawet jeśli masz ograniczony sprzęt . Istnieje wiele scenariuszy przeprowadzania takich optymalizacji InnoDB .

IMHO, nie możesz zaplanować dobrych ustawień dla my.cnf bez znajomości ilości danych do skonfigurowania. Będziesz musiał okresowo ładować bieżący zestaw danych z produkcji do środowiska pomostowego, przeprowadzać optymalizacje i podawać liczby do skonfigurowania w pliku my.cnf serwera produkcyjnego.


3

możesz włączyć globalną kompresję danych wyjściowych . Spowoduje to zgzipowanie wszystkiego, co wychodzi automatycznie, jeśli przeglądarka to obsługuje. To drastycznie zmniejsza rozmiar przesyłanych plików, ale zwiększa obciążenie procesora.


Spowoduje to, że Twoja strona „poczuje się” znacznie wolniej. The Yahoo! Dokumenty techniczne sugerują opróżnienie kodu tuż po końcu głowy i przed początkiem treści, aby skrypty i style mogły rozpocząć ładowanie. Buforując całą stronę, zapobiegasz temu, a strona „wydaje się” wolna, ponieważ użytkownik musi poczekać, aż WordPress wyrenderuje całą stronę, zanim cokolwiek zobaczy.
WhIteSidE

Scott nie mówił o buforowaniu całej strony, ale o kompresji danych wyjściowych apache. To coś innego, tylko jeśli użyjesz kompresji danych wyjściowych PHP za pośrednictwem bufora wyjściowego, będzie to miało wady, które opisujesz niejasno. Ale i tak nie jako takie, ponieważ ostatecznie buforowanie danych wyjściowych może przyspieszyć. Ma to coś wspólnego z I / O na twoim serwerze.
hakre

3

Niedawno rozmawiałem na ten temat w WordCamp Houston . Wszystkie powyższe zalecenia są świetne, a ważne jest, aby upewnić się, że wszystkie elementy interfejsu są w pełni zoptymalizowane, aby można było rozpocząć pracę nad buforowaniem i problemami z wydajnością serwera.

Stopniowe renderowanie sprawi, że strony będą się czuć szybciej, ponieważ użytkownik zobaczy zawartość strony przed jej pełnym załadowaniem. Aby to zrobić, upewnij się, że blokujący plik js znajduje się na samym dole strony, a css na górze.

Również jeśli używasz wielu przycisków mediów społecznościowych, możesz dostosować skrypty, aby ładowały się w ramce iframe po pełnym załadowaniu strony. Napisałem samouczek, jak to zrobić za pomocą przycisku TweetMeMe re tweet (teraz przestarzały, ponieważ Twitter opublikował własny przycisk retweetowania), ale nadal można go zastosować do innych przycisków udostępniania.

Aby sprawdzić wydajność serwera, spójrz na Nginx jako front-end proxy dla zawartości statycznej z Apache obsługującym ciężkie podnoszenie PHP i MySQL.


2

Ponieważ nikt jeszcze o tym nie wspominał, jednym z najważniejszych kroków w celu zwiększenia wydajności serwera w połączeniu z dowolną konfiguracją LAMP byłoby przejście na wątek roboczy apache i mod_fcgid.

To uwolniło 500 MB pamięci na moim wirtualnym prywatnym serwerze.


Próbowałem już tego wcześniej, ale nigdy nie byłem w stanie uruchomić stabilnego środowiska roboczego apache + fcgi. Jeśli ktoś wie o dobrych instrukcjach instalacji w Ubuntu, opublikuj je. Byłbym szczególnie wdzięczny za instrukcje, które szczegółowo opisują niektóre z dyrektyw konfiguracji Apache, które wpływają na zachowanie FCGI, i wyjaśniają, w jaki sposób ich modyfikowanie może wpływać na użycie pamięci, wydajność itp. Obecnie używam rozwidlonego apache z frontem nginx- na serwerze pamięci podręcznej proxy.
Dougal Campbell

Zdefiniuj stabilne. Moja instalacja działa bardzo stabilnie, ale potrzebujesz 2 GB pamięci RAM w mojej konfiguracji. Musisz tylko czytać i poprawiać. Dokumentacja apache na temat fcgi jest dość obszerna.
meshfields

3
spróbuj sprawdzić virtualmin.com, czy jest bardzo stabilny i bezpłatny
Ünsal Korkmaz,

1

Przewodnik sprawdzania spowolnienia wtyczki

Jest pięknie prosta wtyczka o nazwie Page Load Time , która dodaje stoper do stopki strony. To właściwie tylko cztery linie kodu:

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

Następnie:

  1. Utwórz arkusz kalkulacyjny
  2. Wymień wszystkie aktywne wtyczki i umieść je tam
  3. Odśwież stronę trzy razy, odnotowując czas ładowania strony w każdej turze
  4. Przejrzyj wtyczki jeden po drugim, dezaktywując je
  5. Powtórz krok 3
  6. Zwróć uwagę na kolejność dezaktywacji wtyczek

Twój arkusz kalkulacyjny powinien wyglądać mniej więcej tak

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

Jeśli więc po dezaktywacji wtyczki czas odpowiedzi strony znacznie się wydłuży, możesz sprawdzić, czy możesz jej uniknąć.

Znalazłem dwie wtyczki, które spowodowały „znaczne” spowolnienie mqtranslate i (raczej starą, ale dobrą) wielopoziomową wtyczkę nawigacyjną .


Byłoby naprawdę fajnie zautomatyzować ten proces to phantomjs i selen (lub coś podobnego), więc działa automatycznie i wyrzuca mały raport na końcu.
Paul Sheldrake

-1

Trzymaj się wtyczki W3 Total Cache dla funkcji buforowania w WordPress. Włącz buforowanie stron i buforowanie bazy danych na stronie ustawień wtyczki. Upewnij się, że wybrałeś „Alternative PHP Cache (APC / APCu)” jako mechanizm buforowania. NIE włączaj żadnych minimalizacji w W3 Total Cache, ponieważ istnieje wiele szans na uszkodzenie wyglądu i / lub funkcjonalności witryny. Pozostawimy to Cloudflare.

Po zakończeniu konfiguracji pozostałych funkcji wtyczki skonfiguruj Cloudflare dla swojej witryny. Upewnij się, że włączasz Cloudflare w ustawieniach Total Cache W3 również w „Rozszerzeniach”.

Cloudflare to sieć dostarczania treści, która buforuje całą zawartość statyczną (pliki obrazów, CSS, JS, dokumenty itp.) Z Twojej witryny i udostępnia ją użytkownikom z ich globalnych serwerów. Może to pomóc przyspieszyć czas ładowania strony i zmniejszyć obciążenie serwera. Aby uzyskać listę typów plików, które są buforowane przez Cloudlfare, sprawdź tę listę . Co więcej, Cloudflare ma bezpłatny plan.

W Cloudflare ustaw poziom buforowania na standardowy i ustaw wygasanie pamięci podręcznej przeglądarki na co najmniej dłuższą niż 20 godzin. Włącz Always Online ™, aby nawet w przypadku awarii serwera Cloudflare obsługiwał statyczne strony witryny z pamięci podręcznej. Włącz także ich funkcję automatycznego minimalizowania (pamiętasz, dlaczego prosiłem cię, abyś nie włączał minimalizacji jest W3 Total Cache? Ponieważ Cloudflare robi to lepiej!) Następnie ustaw Rocket Loader ™ na automatyczny.

Oto fragment tego, co robi Rocket Loader:

  • Zmniejszając liczbę żądań sieciowych, łącząc pliki JavaScript, nawet zasoby stron trzecich, aby uniknąć spowolnienia renderowania strony.

  • Asynchroniczne ładowanie skryptów, w tym skryptów stron trzecich, aby
    nie blokowały
    natychmiastowego ładowania zawartości strony .

  • Lokalne buforowanie skryptów (przy użyciu LocalStorage, dostępnego w większości
    przeglądarek i smartfonów), aby nie były ponownie pobierane, chyba że jest to
    konieczne.

Więcej informacji można znaleźć tutaj .

Jeśli to możliwe, przejdź do frameworka Genesis dla WordPress, ponieważ są one czyste, bez żadnych wzdęć. Genesis został zbudowany z myślą o szybkości i SEO. Ja sam to przetestowałem i moje wyniki PageSpeed ​​były dobre. Również jeśli korzystasz z Genesis, nie zapomnij włączyć pamięci podręcznej fragmentów w ustawieniach Total Cache W3.

Ponieważ teraz używasz Cloudlfare jako CDN, możesz użyć wtyczki, takiej jak „ Imagify ” lub „ Kompresuj obrazy JPEG i PNG ” TingPNG, aby skompresować swoje zdjęcia. Obie są darmowymi wtyczkami dostępnymi w repozytorium wtyczek WordPress.org. Imagify obsługuje również potężny algorytm kompresji stratnej.

Na koniec zainstaluj wtyczkę „ Usuń ciągi zapytania z zasobów statycznych ” z repozytorium WordPress, aby usunąć ciągi zapytania z zasobów statycznych, takich jak pliki CSS i JS. Wynika to z faktu, że zasoby z „?” Lub „&” w adresie URL nie są buforowane przez niektóre serwery buforujące proxy (pamiętaj, że Cloudflare jest również serwerem buforującym proxy).

Następnie zainstaluj wtyczkę „ Użyj bibliotek Google ”. Ta wtyczka umożliwia witrynie WordPress korzystanie z CDN biblioteki API AJAX API Google zamiast bezpośredniego udostępniania tych plików z instalacji WordPress.

Niektóre korzyści to:

  • Zwiększa szansę, że użytkownik już buforuje te pliki.
  • Odciąża Twój serwer.
  • Wykorzystuje skompresowane wersje bibliotek (jeśli są dostępne).
  • Serwery Google są skonfigurowane do negocjowania kompresji HTTP z żądającą przeglądarką.

Last but not least, użyj wtyczki „ WP-Optimize ” firmy Ruhani Rabin, aby wyczyścić i zoptymalizować bazę danych.

Mam nadzieję, że to odpowiada na twoje pytanie dotyczące optymalizacji WordPressa w celu zmniejszenia obciążenia serwera.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.