Skip to main content

Performance Magento – As Dicas

Vou tentar fazer aqui uma síntese das dicas e possibilidades de otimização e performance que você pode aplicar ao seu sistema Magento para ter um melhor aproveitamento da ferramenta.

Só para entedermos melhor os conceitos, a performance é melhorada quando otimizamos nossos recursos para que sejam melhor aproveitados. E otimizar um recurso não é criar nada novo, apenas usar o que já temos em mãos da melhor forma possível, ou seja, aplicando boas práticas de uso podemos otimizar esse ou qualquer sistema.

Primeiro ponto, que considero de alta importância, pois o Magento parte dele antes mesmo de ser instalado. É o local de instalação, ou seja, o servidor de hospedagem. Inclusive isso já foi tema aqui no blog em Performance Magento – Hospedagem.

Em geral as pessoas costumam começar com qualquer hospedagem barata que aceite Magento. Mas os planos básicos são muito limitados em recursos e flexibilidade. Um plano do tipo VPN VPS sempre vai ser melhor do que um compartilhado. Assim como um IP Dedicado sempre vai ser melhor que um VPS. E um plano de Cloud Computing dizem que é o futuro.

Então temos: Compartilhado -> VPS -> Dedicado -> Cloud.

Segundo ponto, tem relação direta ao primeiro sobre hospedagem. É o uso de um acelerador de cache PHP por parte do servidor. A Magento em seu site mesmo indica o uso de APC ou XCache como sistema de acelerador de cache.

Você provavelmente não vai encontrar nenhuma hospedagem compartilhada que ofereça esse recurso. Acredito que isso possa ser encontrado a partir de hospedagens do tipo VPN pra cima.

Terceiro ponto, configuração de memória do PHP e do MySQL. Seu servidor possui um arquivo chamado php.ini que contém diversas informações de execução das suas aplicações. Esse arquivo já vem pré-configurado pelo seu servidor, então se você tiver acesso a esse arquivo pode otimizar os valores de memória e tempo de execução. Para mais informações leia o manual do PHP (sessão core ini) em www.php.net.

Para o MySQL a mesma coisa, dê uma lida no manual do MySQL em dev.mysql.com.

Quarto ponto, compressão de saída gzip. Usado pela maioria dos navegadores modernos para acelerar a renderização de páginas. Você precisa configurar no seu servidor para que ele gere saídas de páginas comprimidas em gzip para que possam ser usadas pelos navegadores nesse processo. Outra vez vai depender da escolha de uma boa hospedagem para contar com este recurso.

Quinto ponto, agora sim entrando nas configurações do próprio Magento. Muitos aqui já devem saber que o Magento conta com um sistema de gerenciamento de cache interno, que deve ser desligado sempre que você estiver desenvolvendo ou alterando recursos visuais ou do sistema como já foi falado aqui no blog em Cache Quando e Por que!

Quando tiver sua loja pronta e funcionando, deixe o controle de cache interno ligado para otimizar os recursos do sistema.

Sexto ponto, o Magento também conta com recurso de indexação. Essa é uma forma de encontrar com maior segurança e agilidade as informações armazenadas pelo sistema. Procure manter sempre as informações indexadas no seu Gerenciador de Índices.

Sétimo ponto, habilite apenas o que vai usar. Em alguns pontos do sistema o Magento vem pré configurado de fábrica, como por exemplo no uso de moedas pelo sistema. Se você vai usar apenas a moeda Real Brasileiro, não tem por que carregar centenas de moedas na inicialização da variável moedas.

Pode parecer apenas um detalhe irrelevante o carregamento de uma variável do sistema. Mas como eu disse no início, otimizar é isso, saber fazer bom proveito dos recursos. Se você juntar pequenos detalhes, no final terá a soma de um resultado bem mais satisfatório.

Veja o exemplo das moedas no post Cotação Dólar x Real. Navegue pelas configurações do sistema a procura de outros valores que não precisam ser carregados.

Oitavo ponto, seguindo a mesma idéia das variáveis acima, podemos fazer o mesmo para os módulos do sistema. O Magento é composto por uma série de módulos, é módulo de cálculo de frete, módulo de pagamentos, módulo de envio de email, módulo de produtos, de categorias, de estoque, de promoções, de tags, etc, etc, etc.

E por padrão todos os módulos são inicializados, mesmo que você não utilize, ele está lá, carregado, esperando pra ser usado.

Mas se você não vai usar, ou não precisa usar, desligue. Se você não vai usar os recursos de enquete no seu site, desligue o módulo de Polls do sistema. Também já falamos sobre isso aqui no blog em Desligar Notificações da Administração.

Nono ponto, entenda os conceitos e padrões de desenvolvimento para saber qual deles você deve usar na sua loja. Estou me referindo as tabelas do tipo EAV e Flat que manipulam os dados de maneiras diferentes na sua loja, prefira o modelo Flat. Para entender melhor leia o post Performance Magento – Produtos e Categorias.

Décimo ponto, novos templates e módulos. É muito comum o pessoal sair atrás de templates “irados”, com visual mais clean ou sofisticado. Importante lembrar que, um bom designer talvez não seja um bom programador visual. Talvez ele não saiba utilizar bem os recursos do Magento e acabe fazendo da maneira que ele entende, ou seja, o suficiente para aplicar o design dele ao sistema.

Sim, uma boa “tradução” da arte para o código faz diferença. O uso de técnicas SEO, tableless, xHtml, scripts bem escritos. Isso tudo pesa na balança. Da mesma forma como os módulos personalizados, vejo “barbaridades” sendo feitas por aí, com o único objetivo de funcionar. O simples fato de escrever um módulo que utilize recursos da sessão ao invés de solicitar uma nova instância do objeto, pode fazer diferença, principalmente se for um módulo muito utilizado pelo sistema.

No blog você encontra algumas referências sobre como trabalhar com temas ou usar recursos da sessão.

Décimo Primeiro ponto. Esse é meu favorito, o efeito placebo! Dê a seus clientes algo diferente, que pareça bom, e eles vão acreditar que faz efeito. Um exemplo disso é o uso de Ajax no código, como por exemplo carregar os valores do frete na tela sem precisar atualizar a página após digitar os valores no campo CEP.

Mesmo que leve o mesmo tempo de recarregar a página, a impressão do cliente será melhor, pois o efeito visual passa essa sensação. Da mesma forma que a usabilidade do seu site, quanto mais fácil for para o cliente achar o que procura, mais rápido o site vai parecer funcionar para ele.

Então a facilidade com que ele encontra as informações, os botões, os produtos bem dispostos na tela, banners bem feitos, fontes, cores, etc. Tudo isso influência na experiência do usuário, e com certeza ajuda na otimização, mesmo que seja apenas na sensação.

Décimo Segundo ponto. Otimizar o sistema de busca da sua loja, esse assunto já foi abordado aqui no blog em Otimize sua busca usando sinônimos. Além de ser uma boa prática SEO, quanto mais fácil for para seu cliente encontrar o que procura, mais rápido ele concretiza a venda. O Magento também permite que você configure o funcionamento da busca, alterando o número de palavras no critério de busca, o tipo de combinação das palavras digitadas, tamanho máximo, etc.

Além do que, você ainda pode configurar alguns atributos dos produtos para que sejam facilmente filtráveis por um menu navegável que fica ao lado do catálogo. Esse recurso é importantíssimo para facilitar a busca de seus clientes quando você possui um catálogo com muitas opções de produtos. E claro, pequenos detalhes como a opção de organizar a lista de resultados por nome ou preço.

Décimo Terceiro ponto. Os agendamentos cron, as rotinas de atualização a qual o sistema foi configurado. É provável que você tenha algumas rotinas pré agendadas no seu sistema, como o envio automático de emails, a cotação de moedas, publicação de feeds, controle de logs, geração de backups, sitemaps, etc.

Todas essas atividades vão utilizar recursos do sistema e do servidor para serem executadas. Então evite executar as ações em horários de pico ou grande movimento no site, pois isso gera concorrência de recursos e pode apresentar lentidão em diversos momentos, dependendo da tarefa que está sendo executada e do número de visitantes do seu site.

Se você não sabe qual o melhor horário para agendar suas rotinas, procura analisar as estatísticas do seu site com o Google Analytics, e veja quais os melhores horários para as tarefas.

Chega! Acho que abordamos diversos assuntos relevantes, mesmo que sendo de forma resumida, podemos ver que não caberia explorar tudo em apenas um post. Se você tiver outras dicas, me deixe saber, compartilhe seus conhecimentos.

Se você usa um servidor em nuvens (cloud computing) veja as dicas (em inglês) para otimizar sua aplicação em servidores cloud no site da optaros.

Sucesso!