Conselhos sobre como otimizar a velocidade do site, por onde começar?

16

Me pediram para tentar encontrar uma solução para o tempo de carregamento lento do nosso site Magento. Fiz um teste de Yslow e os maiores infratores parecem estar

  • Faça menos solicitações HTTP
  • Use uma CDN
  • Adicionar expira cabeçalhos
  • Coloque o Javascript na parte inferior
  • Minimize jS e CSS
  • Configurar tags ET
  • Reduzir pesquisas de DNS
  • Evitar o filtro AlphaImageLoader

Como gerente de comércio eletrônico, estou procurando alguns conselhos sobre o que posso fazer com o meu cargo no admin Magento, ferramentas para webmasters, etc.

Também estive procurando um plugin chamado GTMetrix que parece fazer muito disso dentro do administrador (combine folhas CSS, otimize imagens etc.). Alguém tem alguma experiência com isso? Normalmente, tento evitar muitas extensões que atingem tão profundamente as funções essenciais, mas parecem ser uma solução. http://gtmetrix.com/magento-optimization-guide.html

Seu conselho seria muito apreciado, pois estou tendo dificuldades para saber por onde começar a ter o melhor impacto.

Desde já, obrigado.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Brandon
fonte
Dê uma olhada em magento.stackexchange.com/questions/460/…
David Manners

Respostas:

27

(copiado do meu próprio blog em https://www.gui.do/post/101-ways-to-speed-up-your-magento-e-commerce-website )

A) Ambiente de hospedagem / Dicas gerais

  1. Obtenha um servidor dedicado.
  2. Hospede seu site no país em que seus clientes estão.
  3. Não hospede arquivos no servidor da web que você não usa, grandes ou pequenos.
  4. Vá para o MySQL Admin, selecione todas as tabelas, repare e depois as otimize.
  5. Use um acelerador PHP como APC, ZendOptimizer + ou Xcache.
  6. Instale apenas os módulos Apache necessários.
  7. Use o Apache mod_expires e certifique-se de definir por quanto tempo os arquivos devem ser armazenados em cache. Você pode usar o exemplo abaixo para a sua configuração de host virtual do Apache: # Ative o Expires e defina o padrão como 0 ExpiresActive On ExpiresDefault A0 # Configure o cache nos arquivos de mídia por 1 ano (para sempre?) ExpiresDefault A29030400 O cabeçalho anexa o controle de cache "public" # Configurar o cache em arquivos de mídia por 2 semanas ExpiresDefault A1209600 Cabeçalho anexar Controle de Cache "público" # Configurar 1 semana em cache em arquivos comumente atualizados ExpiresDefault A604800 Header anexar Cache-Control "proxy-revalidate"
  8. Habilite a compactação Gzip no htaccess .
  9. Comprima a saída, use zlib.output_compression ou mod_deflate.
  10. Use uma rede de entrega de conteúdo (CDN) para transferência paralela de conteúdo estático. Existe uma extensão Magento que pode ajudá-lo a fazer isso com imagens de categoria e produto: o CDN de imagem do One Pica . Mas ... (veja a próxima dica).
  11. Não use muitas fontes externas diferentes (para imagens, iframes, feeds (twitter / facebook) etc.), porque toda pesquisa de DNS leva mais tempo e você cria uma dependência extra (em algum servidor de terceiros) para o seu site carregar corretamente .
  12. Habilitar o Apache KeepAlives: verifique se a configuração do Apache está com o KeepAlives ativado. KeepAlives é um truque em que várias solicitações HTTP podem ser canalizadas através de uma única conexão TCP. A configuração de cada conexão TCP exige um tempo adicional; isso pode reduzir significativamente o tempo necessário para baixar todos os arquivos (HTML, JavaScript, imagens) de um site. Mais informações em Apache.org . Mas tenha cuidado, já ouvi de alguns que isso cria (muita) carga extra no servidor e pode travar o servidor em momentos de tráfego intenso!
  13. Minimize os redirecionamentos.
  14. Faça sua saída compatível com W3C. Erros tornam o navegador mais lento.
  15. Troque o Apache pelo NginX ou Litespeed. Se isso não for uma opção, vá para o Zend Server (idealmente a versão não-CE para que você possa usar o cache de página inteira).
  16. Desative ou pelo menos reduza o log do servidor da web (reduz as gravações em disco).
    • Desativar log de tempo de acesso. Magento Wiki : Para servidores Linux, se você tiver o log de tempo de acesso ativado em qualquer uma das suas partições mysql, servidor web ou cache, tente desativá-lo para aumentar o desempenho. Se você estiver usando ext3 ou reiserfs, pode haver métodos mais rápidos de gravação de diário que você pode usar. Para mais informações, consulte Linux.com .
  17. Compile o MySQL da fonte em vez do gerenciador de pacotes do seu sistema operacional.
  18. Sempre atualize para a versão mais recente do Magento. Você não apenas obterá mais recursos e correções de bugs e segurança, mas a cada atualização o Magento terá um desempenho melhor.
  19. Tamanho do Query Cach: Magento Blog : Modifique a configuração do seu servidor MySQL para aproveitar melhor a RAM do seu servidor. A maioria das distribuições Linux fornece um pacote MySQL conservador pronto para garantir que ele seja executado em uma ampla variedade de configurações de hardware. Se você possui RAM suficiente (por exemplo, 1 gb ou mais), tente ajustar a configuração. Um exemplo my.cnf está abaixo, embora você queira consultar a documentação do MySQL para obter uma lista completa de diretivas de configuração e configurações recomendadas.
  20. defina 'php_value memory_limit 128M' em sua configuração php ou adicione-a ao seu arquivo .htaccess para garantir que você não fique sem memória.
  21. Use um sistema de arquivos baseado em memória para dados dinâmicos. Se você armazenar dados dinâmicos ( var / cache , var / session ) no RAMdisk ou tmpfs, a E / S do disco será reduzida.
  22. Altere realpath_cache_size no php.ini.
    realpath_cache_size = 1M ( cuidado , isso é  por processo apache )    realpath_cache_ttl=86400 (ok for production site) 
  23. Memcache (para os hardcore) está documentado em http://www.magentocommerce.com/boards/viewthread/9037/ e mais dicas em http://alexle.net/archives/275 para você começar a trabalhar.
  24. Desative a diretiva PHP open_basedir. Leia isto .
  25. Elimine as verificações da estrutura de diretórios em busca de arquivos .htaccess.
  26. Recomendado innodb_buffer_pool_size.
    • Servidor web e db combinado, 6 GB de RAM:  2-3 GB
    • Servidor de banco de dados dedicado, 6 GB de RAM: 5 GB
    • Servidor de banco de dados dedicado, 12 GB RAM: 10 GB
  27. Cach de consulta: tamanho_de_consulta_de_cache: 64MB, limite_de_cache de consulta: 2MB
  28. Use um servidor de back-end separado para lidar com usuários administrativos, processar a atividade de back-end (cron), gerar previamente o cache de página inteira e lidar com consultas de mídia.
  29. Use vários nós da web (servidores front-end) para lidar com a navegação e o check-out.
  30. Use o cache de proxy reverso do Varnish, explicação do Magento por @alistairstead: Varnish sua loja Magento, faça voar !.
  31. Se você tem um site popular que é fortemente rastreado por mecanismos de pesquisa, pode economizar alguns recursos ajustando seu robots.txt.
  32. Experimente algumas destas extensões de cache:
    • http://www.artio.net/magento-extensions/m-turbo-accelerator
    • http://www.aitoc.com/en/magento_booster.html
    • http://www.tinybrick.com/magento-modules/performance.html/
  33. Instale o complemento Yireo DisableLog. Isso impede que o Magento grave toneladas de coisas no seu banco de dados, que são inúteis quando você já usa algo como o Google Analytics.

B) Modelo

  1. Otimize todas as suas imagens (modelo) - a maioria, se não todas, deve estar pelo menos abaixo de 10kb.
    • Corte o espaço em branco usando seu editor de imagens.
    • Use arquivos PNG8 ou GIF em vez de JPEGs e não use transparência (dependendo de quantas cores você usa e de quão grande é a imagem, mas tente por si mesmo).
    • Dimensionar imagens: crie imagens nas dimensões necessárias e não as redimensione no editor.
    • Use a compactação de imagem (você pode usar smush.it para fazer isso por você).
    • Use CSS Sprites, existem até CSS Sprite Generators .
  2. Minimize o seu Css, remova o código não utilizado .
  3. Minimize o uso de Javascript.
  4. Use um modelo leve como base para o seu modelo. Por exemplo: o tema Yoast Blank SEO .
  5. Especifique as dimensões da imagem .
  6. Use o cache de bloco e a saída HTML em suas extensões.
  7. Aplique Javascript Lazy Loader como protótipo .

C) configuração Magento

  1. Desinstale todas as extensões que você realmente não usa.
  2. Desative os módulos que você não usa:  Sistema -> Configuração -> Avançado -> Avançado. ! [insira a descrição da imagem aqui] [1]
  3. Habilite todos os caches do Magento: Sistema -> Gerenciamento de cache.  
  4. Use um rastreador de estatísticas externo como o Google Analytics e não um local. A maior parte disso usará Javascript, hospede o Javascript você mesmo.
  5. Combine arquivos Javascript e Combinar CSS : Sistema -> Configuração -> Avançado -> Desenvolvedor -> 'Configurações de Javascript' e 'Configurações de CSS' . Você também pode considerar o uso de extensões para fazer isso, como a extensão Fooman Speedster , o que for melhor para você.
  6. Experimente algumas das extensões de desempenho Magento.
  7. Ative o Magento Flat Catalog, útil apenas para catálogos muito grandes para sentir as melhorias.
  8. Não use a navegação em camadas, se você realmente não precisa, pois consome muitos recursos.
  9. Use o recurso Compilação do Magento. É relatado um aumento de desempenho de 25% a 50%: Sistema> Ferramentas> Compilação. Edit: Yoav Kutner (Magento CTO), deixe-me saber que " em versões posteriores, uma vez que otimizamos o EAV do catálogo, o Magento Compilation não é realmente necessário se você tiver o cache de código de bytes e se estiver configurado corretamente ".
  10. Use o armazenamento de sessão correto, escolha o sistema de arquivos ou o banco de dados (durante a instalação). A maioria das instalações deve usar "sistema de arquivos" porque é mais rápido e não causa o crescimento do banco de dados. Mas se seu site for executado em vários servidores, você deverá selecionar "banco de dados" para que os dados da sessão de um usuário estejam disponíveis, independentemente de qual servidor sua solicitação é atendida. Mais informações sobre isso de Ashley Schroder em Magebase.com.
  11. Limite o número de produtos em uma página de visão geral do produto.
  12. Defina apenas as propriedades de front-end de atributo como 'Sim' que você realmente usará. Defina todos os outros como 'Não'. Não use em pesquisa rápida, comparação avançada de pesquisas, etc etc .: Catálogo -> Atributos -> Gerenciar Atributos -> Propriedades do Frontend.  
  13. Desative o log do Magento : Sistema -> Configuração -> Avançado -> Desenvolvedor -> Configurações de log (o padrão é desativado).  

Dica apenas para empresas:

  • Desative Enterprise_CatalogEvent. Vá para Admin -> Sistema -> Configuração -> Catálogo -> Eventos do catálogo. Você deseja desativar as configurações de "Ativar funcionalidade de eventos de catálogo" e "Ativar widget de eventos de catálogo".
  • Ative a pesquisa do Solr, que é mais rápida em comparação com a configuração padrão, especialmente quando você tem muitos produtos (> 10k).
  • Ative o cache de página inteira.

D) Teste de velocidade, análise, monitoramento

  1. Teste seu site Magento com o Magento Speed ​​Test (de Ashley Schroder)
  2. Execute seu site pelo websiteoptimization.com.
  3. Use a extensão Google Page Speed ​​Firefox ou o Yahoo Yslow para obter algumas dicas do Google e do Yahoo.
  4. Implemente medidas de velocidade do Google no Google Analytics: meça o tempo de carregamento da página com o relatório de velocidade do site
  5. Alertas de monitoramento de velocidade e tempo de inatividade.
    • Mon.itor.us
    • Pingdom

Dicas de bônus

(porque na verdade não acelera o front-end, mas apenas o back-end):

  • Use o K-Meleon se você estiver no Windows para o seu trabalho administrativo geral. Torna o back-end JS pesado do Magento significativamente mais rápido do que qualquer outro navegador.
  • Use a extensão GoogleGears do Yireo.com para armazenar em cache arquivos estáticos localmente.
  • Use um aplicativo pc / mac local para gerenciar o Magento (como  mag-manager.com ).

Percebo que você provavelmente não pode usar todas as dicas acima, mas não se trata de usá-las todas, e às vezes você escolhe dar a uma funcionalidade uma prioridade sobre o desempenho e tudo bem. Se você puder aplicar apenas alguns deles, ainda aumentará a velocidade e ganhará experiência do usuário. E lembre-se: como a velocidade depende de muitas variáveis, algumas dicas podem não ter um impacto no seu site, enquanto outras podem ter um grande impacto. Portanto, sempre teste o impacto de cada passo que você tomar e tome as devidas providências.

Guido Jansen
fonte
4
  1. Imagens - Eu já vi muitos casos em que a pessoa que carrega imagens (produtos, páginas CMS etc.) não é treinada para otimizar o tamanho das imagens. Existem muitos artigos disponíveis online, mas muitos são apenas senso comum.

    • Não use imagens para texto.
    • Use JPEG / GIF / PNG adequadamente (ou seja, geralmente não use PNG para imagens fotográficas)
    • Use sprites para imagens pequenas, pois você pode agrupar várias imagens pequenas em um arquivo, fornecendo apenas uma única solicitação HTTP em vez de dezenas ou mais. Você também pode considerar ícones de fonte.
    • Salve as imagens com a menor qualidade possível, permanecendo aceitável para visualização. Acho que o ponto ideal geralmente é de cerca de 50-60 de qualidade para JPEG. Às vezes, uma qualidade de 20 é perfeitamente aceitável e você pode reduzir uma imagem de 300 KB para 30 KB. Isso é uma grande economia.
    • Considere o carregamento lento em páginas pesadas de imagens.
  2. Solicitações HTTP - Outro grande infrator. Às vezes, não há muito o que fazer para reduzir solicitações, mas você deve sempre tentar reduzir o mais possível. O Magento fornece alguns recursos para ajudar com isso imediatamente (mesclando CSS / JS).

  3. Pesquisas de DNS adicionais - eu diria que isso é mais importante para o processo de carrinho / caixa. Muitas lojas terão várias integrações de API que chamam serviços. Embora você não possa fazer muito para tornar a resposta da API de um provedor de remessas muito mais rápida, é possível pelo menos identificar serviços lentos que não serão facilmente aparentes de outra maneira. Pense no tempo adicional que um checkout pode levar se você estiver fazendo chamadas para UPS, FedEx, USPS, provedores de taxas, provedores de pagamento, sites afiliados etc.

  4. Outros fatores - Alguns dos outros fatores mencionados no seu relatório provavelmente não terão um impacto tão grande quanto as solicitações de imagens e HTTP. Certamente pode valer a pena minimizar CSS e Javascript, mas os ganhos do mundo real são realmente perceptíveis apenas no agregado de longo prazo. Além disso, uma CDN pode realmente ajudar, especialmente se você estiver oferecendo produtos para download.


Eu acho que muitas vezes é dada muita importância à hospedagem sozinha. No passado, eu fui encarregado de executar certos ajustes no servidor para melhorar a velocidade dos sites, apenas para descobrir que a página inicial está carregando 20Mb de ativos.

Da mesma forma, o white paper Magento sobre desempenho do servidor não será útil se o seu site for construído de maneira desleixada com muito inchaço. Se seu objetivo é melhorar a velocidade do seu site, a primeira etapa deve ser ver as próprias páginas para encontrar ineficiências. Somente depois de determinar que seu site é o mais enxuto e mesquinho possível, você deve começar a considerar a atualização da sua hospedagem.

Para o registro, um site que eu administro usa um SIP-200 no Nexcess há cerca de cinco anos ou mais e recebe uma média de 5000 visitas por dia (é sazonal, atinge um pico de mais de 10 mil no final da primavera / início do outono). Não tenho absolutamente nenhuma reclamação sobre esse nível de servidor para este site, e estamos executando uma versão de estoque do Magento CE com milhares de produtos em dezenas de categorias.

pspahn
fonte
2

As imagens são um grande problema na internet, quase tão grande quanto o javascript. A primeira coisa que você precisa fazer é otimizar suas imagens.

  • Configurar uma rede de entrega de conteúdo
  • Otimize suas imagens
  • Use uma imagem LazyLoader

Agora em seus arquivos Javascript :

  • Comprima e combine-os
  • Elimine recarregamentos de páginas adicionais usando mais ajax
  • Solte seus arquivos JS no rodapé
  • Carregue seus arquivos JS de um domínio diferente

Cache como um louco

  • Habilite o cache do MySql e aumente o tamanho do pool de memória
  • Habilite o cache da APC para que o PHP não precise se reaprender sempre
  • Habilite o cache de página inteira do Magento e utilize o cache do Apache
  • Habilite o GZIP para entregar seus arquivos ao usuário mais rapidamente.
  • Ative os cabeçalhos de expiração adequados para que seus usuários também estejam em cache

O Magento também possui vários mecanismos internos de cache:

  • Habilite o cache de Magento óbvio
  • Habilitar compactação e compactação CSS e JS no administrador
  • Habilite o catálogo e os produtos Flat para acelerar as chamadas mysql
  • Habilite o Magento Compiler para acelerar o autoloader do PHP

Se você quiser mais detalhes, retirei as informações dessa base de conhecimento .

Consultor de comércio eletrônico
fonte
0

Aqui está o que eu sugeriria para acelerar o site Magento:

  1. Execute auditoria de extensões de terceiros e TTFB. Alguns plugins personalizados tornam o Magento mais lento. Obtenha uma lista de todos os módulos de terceiros e desative-os um por um. Avalie a velocidade com www.webpagetest.org. Quando você identifica um agressor, entre em contato com o fornecedor para informá-lo. Para executar a auditoria TTFB, instale um programa gratuito xhprof ou use NewRelic .

  2. Descubra se seus recursos de hospedagem são suficientes para executar o Magento. Instale uma nova cópia do Magento da mesma versão em sua hospedagem. Compare sua velocidade com o site ao vivo. Se for significativamente mais rápido que o seu site, sua hospedagem estará OK. Se é tão lento quanto o seu site ao vivo, sua hospedagem não é boa.

  3. Execute várias otimizações de front-end. Isso inclui: otimização de imagem, compactação gzip, minificação CSS / JS. Você pode obter um relatório do que precisa fazer executando o site no Google PageSpeed ​​Insights .

Retirado do meu artigo .

Konstantin Gerasimov
fonte
Qual é a melhor maneira de fazer auditoria de extensões de terceiros? Obrigado. @Konstantin Gerasimov
Gem
0
  • Você precisa se concentrar tanto na otimização do seu site (estrutura, CSS, imagens etc.) quanto em encontrar um host muito rápido.

  • Eu sugiro que você procure um host que ofereça armazenamento SSD e Cloudflare CDN e quais serviços de hospedagem são especialmente otimizados para um site baseado em Magento.

  • Atualmente, estou usando o chamado plano '' Popular '' para o meu site e por ele estar fazendo um ótimo trabalho.

  • Aqui estão suas especificações completas: https://www.bgocloud.com/hosting/websites-cpanel/popular-plan .

Se você acha que esses recursos não são adequados para você, dê uma olhada nos outros planos ou na página de servidores dedicados.

James Allan
fonte
-1

Eu encontrei a coisa mais importante no que diz respeito à velocidade do site e o magento é o seu servidor. Você está em um host dedicado? Você tem que ser. Especialmente um com unidades SSD. A parte mais lenta do Magento é como ele realmente processa o PHP e renderiza a página, e a única maneira de combater esse é um servidor melhor. Também um cache de página inteira, tente o Lesti FPC.

user4517
fonte
Oi, obrigado pela sua resposta. Tive a sensação de que a configuração do servidor pode não ser o que precisamos, mas sou novo aqui e estou aprendendo o sistema deles e nunca tive que me aprofundar muito no lado de administração de sistemas do trabalho antes. Eu descobri nossa fatura mais recente (assumindo que este é o servidor que está executando o Magento): 18636 Dual Xeon E5-2609 (E52609) RAM: 16 GB de disco rígido 1: 500 GB de disco rígido SATA 2: 500 GB de disco rígido SATA 3: 64 GB Samsung 830 Disco Rígido SSD 4: Nenhum Controlador do Disco Rígido: Controlador on-board
Brandon
Não posso concordar com esta resposta. Se o seu site estiver cheio de imagens grandes, toneladas de solicitações HTTP e solicitações de serviços de terceiros (UPS, pesquisas fiscais, etc.), o melhor host dedicado do mundo não fará nada por você. Comece o site funcionando corretamente e considere atualizar a hospedagem, se aplicável.
pspahn
FYI Brandon. O Samsung 830 é uma unidade de disco projetada para computadores domésticos, não servidores. Não parece que seu servidor seja um servidor.
Choco-loo
-1

Existe a resposta longa e a resposta curta, pois Guido já apontou que estes são os passos que você precisa seguir para sua configuração. Você precisará encontrar algum recurso competente para executar todas as combinações para encontrar o melhor ajuste, é bastante demorado, mas o processo padrão que os sites do Magento precisam executar. Também existe uma resposta curta, mas trabalhamos com uma incubadora e elas usam técnicas corporativas principalmente para plataformas de ponta, no entanto, a portaram para o Magento, mas não será relevante aqui. Você precisará encontrar o equilíbrio exato entre hardware, fpc, armazenamento em cache, requisitos de negócios, o único problema é que, depois de concluir o exercício, se você alterar materialmente qualquer coisa necessária para executá-lo novamente.

Acornia
fonte
-1

Ou pule tudo isso, use a mesma pilha de tecnologia que o Etsy, a mesma hospedagem do Very com vários nós, pule o fpc, próximo ao fpc ttfb, cargas dinâmicas de 1-2s e use o Pagespeed, todos juntos, fornecendo a você . Agora, se você tiver codificadores e extensões zelosos adicionados, há limites. Depende se você deseja seguir a rota da tecnologia e precisar fazer tudo até o enésimo grau em que os programadores discordam dos negócios, ou você adota a visão da empresa e encontra a melhor solução, independentemente dos protestos da tecnologia, resultando em menos técnicas. trabalhos.

CreativeWest
fonte