Szybkość ładowania strony jest bardzo wolna

25

Szybkość ładowania strony Magento mojego klienta jest bardzo wolna. Co mogę zrobić, aby skrócić czas ładowania strony?

Adres strony to desibazaar.pk.

Shehryar
źródło

Odpowiedzi:

36

Najpierw określ, czy to renderowanie frontonu, czy faktyczne wykonanie skryptu jest wolne. Sprawdź w konsoli programisty w przeglądarce, czy jest czas na pierwszy bajt . Tyle czasu zajmuje skryptowi przetworzenie na serwerze

wprowadź opis zdjęcia tutaj

Na zrzucie ekranu widać, że jest dość niski (200 ms), więc w tym przypadku problem nie dotyczyłby serwera, ale frontonu. Jeśli to się skończy, powiedzmy, sekundę, którą możesz chcieć zoptymalizować.

Zanim włączysz kilka boosterów i dodatkowe buforowanie, które nie jest poprawką, po prostu łatka lub pomoc zespołu, aby ukryć prawdziwy problem, spróbuj dowiedzieć się, co dokładnie jest wolne. Możesz także użyć do tego kilku narzędzi.

Wolne zapytania

Magento może być dość ciężkie w bazie danych, więc włączenie Powolnego dziennika zapytań może być dobrym miejscem do rozpoczęcia. Sprawdź ten post, jak go włączyć. Dziennik wyświetli każde zapytanie, które trwa dłużej niż X sekund.

Profile

Profile pomagają uzyskać wgląd w to, co dzieje się w kodzie. W przypadku Magento polecam zacząć od Aoe_Profiler . Po prostu zainstaluj i włącz. Z przodu da ci takie wyjście:

wprowadź opis zdjęcia tutaj

Rozwiń wyniki i sprawdź duże czerwone bloki. To są rzeczywiste czasy, których przetworzenie wymagało pewnej części kodu. Zwróć uwagę na moduły innych firm, które zajmują dużo czasu lub pamięci.

Kolejnym doskonałym narzędziem jest Czarny ogień . Ponieważ Aoe_Profiler jest modułem w Magento, nie pokazuje podstawowych procesów php i może ulec awarii w dużych instalacjach z dużą ilością modułów. Czarny ogień działa na serwerze. Z hackatonem ustawiliśmy Vagrant box z czarnym ogniem, którego możesz użyć. Po prostu umieść tam swój projekt i uruchom go. Sprawdź witrynę Black Fire, aby uzyskać więcej informacji, jak z niej korzystać.

Ostatni jest prawdopodobnie moim ulubionym: New Relic .

Niestety jest to usługa płatna, chociaż zapewnia bezpłatną wersję próbną dla kont pro. Po zainstalowaniu go na serwerze i podłączeniu profilu poczekaj kilka godzin na wejście danych. Upewnij się, że w sklepie jest trochę ruchu.

wprowadź opis zdjęcia tutaj

New Relic ma również post na blogu na temat debugowania Magento, który mogę polecić. Sprawdź także moduł ProxiBlue New Relic , aby uzyskać dodatkowe dane Magento w New Relic.

Zasadniczo pokaże to wszystkie wyżej opisane funkcje, takie jak wolne zapytania, procesy w PHP itp. I wyświetli je w postaci łatwych wykresów i tabel. To powinno dać ci świetny wgląd w problem związany z twoją instalacją.

A teraz, gdy już wiesz, co powoduje niską wydajność, możesz przejść do jej rozwiązania. Sprawdź fora takie jak ten lub Google pod kątem wolnej części lub modułu Magento. Wiele problemów jest dobrze znanych, a inni już to rozwiązali. Lub, jeśli nie możesz znaleźć rozwiązania, opublikuj tutaj swoje pytanie i dołącz swoje ustalenia do pytania

Sander Mangel
źródło
Doskonałe .. Dzięki za wgląd w „BlackFire”
Rajeev K Tomy
11

Optymalizacja prędkości strony w Magento to bardzo obszerny temat. To jest jeden link, który może ci pomóc,

http://www.gxjansen.com/blog/101-ways-to-speed-up-your-magento-e-commerce-website/

Podsumowując,

Musisz skoncentrować się na dwóch aspektach: 1. Optymalizacja interfejsu użytkownika 2. Optymalizacja interfejsu użytkownika

Optymalizacja interfejsu użytkownika

  1. Możesz zainstalować Fooman Speedster - http://www.magentocommerce.com/magento-connect/speedster-by-fooman.html i włączyć css, js merge

  2. Włącz buforowanie bloków Magento w admin.

  3. Włącz kompresję Gzip

Optymalizacja zaplecza

  1. Możesz skonfigurować Lakier do pełnego buforowania stron

  2. Włącz komplikację w backend.

  3. Włącz płaską strukturę dla katalogu (kategorii i produktów)

huzefam
źródło
1

Oto kilka małych sztuczek, które pomogły mi przyspieszyć twoją stronę, które możesz spróbować:

Odłóż ładowanie obrazu, dodając go do pliku /template/page/html/head.phtml

<script>
function init() {
var imgDefer = document.getElementsByTagName('img');
for (var i=0; i<imgDefer.length; i++) {
if(imgDefer[i].getAttribute('data-src')) {
imgDefer[i].setAttribute('src',imgDefer[i].getAttribute('data-src'));
} } }
window.onload = init;
</script>

Następnie /template/catalog/product/list.phtmlzmień linki do obrazów w ten sposób:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AQQATUqB0EhKgAAAAxJREFUCNdj+P//PwAF/gL+3MxZ5wAAAABJRU5ErkJggg==" data-src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(135); ?>" width="135" height="135" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></a>

Innym jest „Pre Gzip” wszystkich swoich javascripts i plików CSS, a następnie dodać to do swojego .htaccess.

    <ifModule mod_headers.c>
    ##### serve pre gziped files #####
    # Rules to correctly serve gzip compressed CSS and JS files.
    # Requires both mod_rewrite and mod_headers to be enabled.
    # Serve gzip compressed CSS files if they exist and the client accepts gzip.
    RewriteCond %{HTTP:Accept-encoding} gzip
    RewriteCond %{REQUEST_FILENAME}\.gz -s
    RewriteRule ^(.*)\.css $1\.css\.gz [L,QSA]

    # Serve gzip compressed JS files if they exist and the client accepts gzip.
    RewriteCond %{HTTP:Accept-encoding} gzip
    RewriteCond %{REQUEST_FILENAME}\.gz -s
    RewriteRule ^(.*)\.js $1\.js\.gz [L,QSA]

    # Serve correct content types, and prevent mod_deflate double gzip.
    RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1]
    RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1]
</IfModule>
Freejoy
źródło
1

Magento to świetne środowisko e-commerce. Ma mnóstwo funkcji i naprawdę można zbudować skalowalną platformę handlu elektronicznego. Użyłem Magento w moim najnowszym projekcie i zmierzyłem się z tym problemem prędkości. Po przeprowadzeniu badań i modyfikacji naprawdę przyspieszyłem swoją stronę.

Optymalizacja serwera

  • Użyj Nginx jako serwera WWW
  • Przenieś MySQL na inny serwer z repliką master-slave. Jeśli korzystasz z AWS, użyj RDS dla MySQL.
  • Zoptymalizuj Nginx i Php-fpm
  • włącz kompresję gzip
  • Włącz pamięć podręczną przeglądarki

Ustawienia Magento

  • Wyłącz wszystkie niepotrzebne rozszerzenia
  • Scal pliki CSS i JavaScript
  • Wyłącz dziennik
  • Oczyść tabele dziennika Magento
  • Włącz zewnętrzne pełne buforowanie strony

Zainstaluj Redis Cache, APC Opcode i pełne buforowanie strony - Zainstaluj PHP Accelerators - Zainstaluj Redis cache dla backendu i buforowania sesji - Zainstaluj Lesti FPC

Optymalizacja obrazu i YSlow - średnio 56 procent masy strony składa się z obrazów. Optymalizacja zdjęć produktów może znacznie zwiększyć szybkość stron, ponieważ skraca to czas ich pobierania. - Zeskanuj swoją stronę za pomocą gtmetrix lub Pingdom i postępuj zgodnie z ich sugestiami dotyczącymi optymalizacji.

Użyj CDN

Możesz przeczytać szczegółowe informacje na ten temat na mojej stronie internetowej: http://www.ranjeetvimal.com/tips-to-speed-up-magento-1-9-performance/

Ranjeet Vimal
źródło
0

jeśli korzystasz ze współdzielonego środowiska hostingowego, bardzo trudno jest osiągnąć dobrą prędkość, ponieważ nie masz pełnej kontroli nad serwerem, a zasób jest używany przez kilka innych stron internetowych, ale jeśli jesteś na serwerze dedykowanym i masz pełny dostęp administratora, spróbuj pamięci podręcznej lakieru .

inne rzeczy, które możesz zrobić -

1. Połącz pliki JS i CSS

Magento admin -> System Configuration -> Developer -> Under Javascript Settings”, change Merge Javascript Files to YES.
Magento admin -> System Configuration -> Developer -> Under CSS Settings”, change Merge CSS Files to YES

2.Włącz kompresję wyjściową, wygasa nagłówki i wyłącz znaczniki ETag w pliku .htaccess, zobacz /programming//a/14745165/3114253

  1. Użyj CDN, jeśli to możliwe

  2. Użyj funkcji kompilacji Magento. Podobno daje ci wzrost wydajności o 25% -50%: System> Konfiguracja. > Narzędzia> Kompilacja.

  3. Pokaż mniejszy nr produktu na stronie listy produktów.

  4. Włącz płaski katalog.

W interfejsie administratora Magento przejdź do System> Konfiguracja> Katalog. W obszarze Frontend zmień opcję Użyj płaskiej kategorii katalogu na TAK. W razie potrzeby w obszarze Frontend zmień opcję Użyj płaskiego katalogu na TAK. Wyczyść pamięć podręczną.

Arun Karnawat
źródło
0

Jeśli spróbujesz przyspieszyć swój frontend:

  • użyj CDN dla obrazów (!) i zmniejsz rozmiar obrazu
  • połącz CSS i JS
  • ładuj JS przed zamykającym znacznikiem treści
  • w miarę możliwości używaj asynchronicznego ładowania js
  • używaj obrazków lub czcionek zamiast tysięcy plików png
  • zmniejszyć nieużywane CSS
  • wygeneruj ścieżkę krytyczną dla swojego css

Backend:

  • użyj dodatkowej pamięci podręcznej, takiej jak lakier (TTFB <15ms) lub LestiFpc
  • profiluj ładowanie strony i złożone zapytania MySQL i napraw je
  • aktywuj gzip, etags, pamięć podręczną przeglądarki itp. przez .htaccess
  • używać MySQL na jednym serwerze
upandine
źródło
Nie należy umieszczać linków do płatnych usług za pomocą adresu URL zaproszenia do własnych korzyści.
7ochem
0

Aby zwiększyć szybkość witryny Magento, możesz najpierw zeskanować ją za pomocą www.gtmetrix.com lub Google Page Speed ​​Insights:

Wynik w Google Page Speed

wtedy możesz zdecydować, co można zrobić. W większości przypadków sprowadza się to do:

Wykonano z 34 sposobów na przyspieszenie M1 i M2

Konstantin Gerasimov
źródło