Optimización para que corra mejor Magento

Optimización para que corra mejor Magento

Magento es una aplicación de eCommerce muy popular que ofrece una gran cantidad de características y posibilidades de personalización desde el mismo inicio. Aquí tienes algunas recomendaciones para optimizar una instalación de Magento para una ejecución más rápida y consumiendo menos recursos.

Recuerda que Magento es una aplicación que consume de manera intensa muchos recursos del servidor y si, por la cantidad de visitas, tienes problemas de ejecución en una cuenta de hospedaje compartido la siguiente mejor opción será un servicio semidedicado o dedicado.

Cambios al .htaccess

Habilita la compresión de salida (Output compression)

En el archivo .htaccess de tu tienda Magengo encontrarás una línea que inicia con <IfModule mod_deflate.c> y finaliza con </IfModule>

Esta sección de código puede utilizarse para habilitar el módulo de Apache mod_deflate, que permite comprimir texto, css y javascript. Si lo deseas habilitar, descomenta (quita el #) de todas las líneas de esta porción de código. Se verá algo así:

<IfModule mod_deflate.c>

############################################
## enable apache served files compression
## http://developer.yahoo.com/performance/rules.html#gzip

# Insert filter on all content
SetOutputFilter DEFLATE
# Insert filter on selected content types only
AddOutputFilterByType DEFLATE text/html text/plain text/xml
text/css text/javascript

# Netscape 4.x has some problems…
BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# Don’t compress images
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

# Make sure proxies don’t deliver the wrong content
Header append Vary User-Agent env=!dont-vary

</IfModule>

Habilita Expiración de Encabezados

La primera vez que los visitantes llegan a tu sitio, éste realiza varias solicitudes HTTP. Al utilizar el «Expires Header» permites que los componentes de la solicitud sean cacheables (estén en el caché). Eso evitará solicitudes HTTP innecesarias en vistas de página subsecuentes.

En el archivo .htaccess busca la línea que inicia con <IfModulemod_expires.c> y finaliza con el primer </IfModule> que veas, se verá similar a lo siguiente:

<IfModule mod_expires.c>

############################################
## Add default Expires header
## http://developer.yahoo.com/performance/rules.html#expires

ExpiresActive On
ExpiresDefault «access plus 1 year»

</IfModule>

Ajustes en la Administración de Magento

Combinar CSS y JS

Este pequeño ajuste reducirá el número de solicitudes HTTP en tu sitio eCommerce. Si utilizas la versión de Magento antes de la 1.4x, puedes utilizar la extensión Fooman_Speedster. Si es una versión posterior de Magento, realiza lo siguiente:

  1. Entra al área de administración y ve a System > Configuration > Developer
  2. En la sección de «JavaScript Settings», cambia a Sí la opción «Merge Javascript Files».
  3. En la sección «CSS Settings», cambia a Sí la opción «Merge CSS Files».
  4. Lo último por realizar es vaciar el caché de Magento

Habilita Flat Catalog

El modelo que Magento utiliza para almacenar la información de clientes y productos resulta en consultas SQL de mayor duración que el promedio y más lecturas. Al habilitar la opción Flat Catalog para Categorías y Productos se fusionará la información de producto en una sola tabla, por lo que mejorará el rendimiento.

  1. Entra al área de administración y ve a System > Configuration > Catalog
  2. En «Frontend», cambia a Sí «Use Flat Catalog Category»
  3. En «Frontend», cambia a Sí «Use Flat Catalog Product» – este es opcional
  4. Lo último por realizar es vaciar el caché de Magento.

Consejos para el mantenimiento de tu base de datos

Uno de los principales problemas con sitios Magento que son lentos es que la base de datos se ha hecho demasiado grande y difícil de utilizar para enviar y recuperar información. Aquí te damos algunos consejos para reducir el tamaño de tu base de datos Magento.

Nota: Asegúrate de tener respaldo de tu base de datos antes de ejecutar cualquier cambio de los sugeridos.

Logs de Base de datos

Hay varias tablas utilizadas por Magento para logs. Aunque es muy importante conocer qué ha sucedido y sucede con tu tienda, los logs pueden llegar a ser rápidamente muy muy grandes, por lo que un mantenimiento regular puede resultar de mucha ayuda.

Las tablas utilizadas para almacenar logs (almacenar movimientos) son:
log_customer
log_visitor
log_visitor_info
log_url
log_url_info
log_quote
report_viewed_product_index
report_compared_product_index
report_event
catalog_compare_item

Limpieza de logs en base de datos usando la administración de Magento

  1. En la  Administración ve a System > Configuration
  2. En el menú izquierdo, debajo de Afvanced, da click en System
  3. En la opción «Log Cleaning», cambia a Sí «Enable Log Cleaning» y  configura su conservación por 14 días
  4. Da click en «Save Config».

Utilidad log.php

Magento incluye una utilidad que puede configurarse con un Cron o ejecutarse manualmente para darle mantenimiento a los logs de la base de datos.

Manualmente

Entra a tu cuenta vía SSH (esto puede realizarse si tienes un servicio dedicado o VPS o si tienes acceso shell) y ve al directorio raíz de Magento, allí coloca:

php -f shell/log.php clean

Puedes utilizar el modificador -days para especificar cuántos días hacia atrás deben conservarse.

Cron

  1. Entra a tu panel de control, cPanel, por ejemplo.
  2. Da click en Cron Jobs

Cambia lo que requiera ser cambiado en el ejemplo siguiente:

php -f/home/usuariocpanel/public_html/rutahaciamagento/shell/log.php

Limpieza de base de datos vía phpMyAdmin

phpMyAdmin te proporciona mucha flexibilidad y eficiencia al trabajar con base de datos:

  1. Entra a tu cPanel y da click en phpMyAdmin
  2. Da click en la base asociada con Magento
  3. Selecciona las tablas siguientes:

log_customer
log_quote
log_summary
log_summary_type
log_url
log_url_info
log_visitor
log_visitor_info
log_visitor_online

  1. Debajo del listado de tablas, da click en la caja de selección «With Selected» y elige Empty (Empty significa vaciar).
  2. Tendrás una confirmación visual, dile que Sí.

Esta acción de mantenimiento es conveniente realizarla de manera regular. Si utilizas la opción cron job te asegurarás que se realiza sin ninguna intervención manual. Sólo ten la precaución de configurarlo apropiadamente.