• Inicio

  • This is the forum index page
Guías sobre modificaciones y configuraciones de prestashop

Moderador: Antonio Torres

 #45  por Antonio Torres
 14 May 2014 21:14
En esta guía os vamos a dar unos consejos para mejorar la velocidad de prestashop.

Para empezar decir que la velocidad en prestashop a partir de la versión 1.5 aumento notablemente con respecto a las versiones anteriores, un prestashop 1.5/1.6 bien optimizado puede llegar a estar entre 0.8 y 1 segundo de carga el first page.

Los principales motivos de que un prestashop no funcione rápido suponiendo que se tenga un hosting optimizado para prestashop es:
  • 1. Tener contenido que cargue externamente (imagenes, css, js, fuentes, iframes ...)
  • 2. No tener unificados y minimizados el css, js y html
  • 3. No tener optimizadas las imagen
  • 4. No tener habilitados la compresión y el tiempo de expiración de la cache
  • 5. Demasiados módulos instalados sin darle ningún uso
  • 6. La plantilla que estamos utilizando no esta optimizada para la velocidad
Empecemos a especificar los pasos a seguir si este es nuestro caso.

1. Configurar el apartado de rendimiento de nuestro prestashop:
  1. - Para ello accedemos a nuestro backoffice y nos dirigimos a Parametros avanzados -> Rendimiento
  • - En el apartado de smarty tenemos que dejar la cache de la plantilla en nunca recompilar los archivos de la plantilla (si se hace alguna modificación en algún tpl de la plantilla tendremos que activar este campo para que surjan los cambios que hemos realizado).
    - Dejaremos activa la cache smarty que es la propia de prestashop.
    Imagen
  • - En el apartado CCC activaremos todas las opciones para que se comprima todo el código (html, css y javascript) para que al estar todo en un solo archivo y con esto el código comprimido la pagina pesará menos y la velocidad mejorara.
    Imagen
  • - En el apartado cifrado dejaremos activo el cifrado Rjindael.
    Imagen
  • - En el apartado cache es donde tenemos el dilema de que sistema de cache es el mejor para nuestro prestashop, por nuestra experiencia sabemos que para versiones 1.5/1.6 no hay un sistema mejor que otro y lo mejor que podemos hacer es ir probando los diferentes sistemas de cache que soporta prestashop para encontrar el equilibrio perfecto.

    Para comprobar la velocidad de nuestra pagina lo podemos hacer directamente con google chrome sin necesidad de instalar nada, para ello debemos acceder a nuestro prestashop con chrome y en pagina pulsar botón derecho y seleccionar inspeccionar elementos y pinchamos en la pestaña Network
    En este apartado podemos ver la métrica de nuestra tienda y nos debemos fijar en el firstpage y compararlos activando los diferentes sistemas de cache.
    Imagen

    Configuracion de Memcache:
    Imagen

    Configuracion APC:
    Imagen
2. Modificación del fichero .htaccess
Para modificar el fichero htaccess primero tenemos que tener activas las urls amigables en prestashop y dirigirnos a la carpeta que contiene nuestro prestashop y encontraremos un fichero llamado .htaccess.
  • - Primero vamos a añadir fecha de caducidad a las imágenes, javascript, css y texto, esto en los ultimos prestashop ya viene incluido en el htaccess pero si no lo estuviese añadir estas lineas al final del fichero.
    Código: Seleccionar todo
    <IfModule mod_expires.c>
    	ExpiresActive On
    	ExpiresByType image/gif "access plus 1 month"
    	ExpiresByType image/jpeg "access plus 1 month"
    	ExpiresByType image/png "access plus 1 month"
    	ExpiresByType text/css "access plus 1 week"
    	ExpiresByType text/javascript "access plus 1 week"
    	ExpiresByType application/javascript "access plus 1 week"
    	ExpiresByType application/x-javascript "access plus 1 week"
    	ExpiresByType image/x-icon "access plus 1 year"
    	ExpiresByType image/svg+xml "access plus 1 year"
    	ExpiresByType image/vnd.microsoft.icon "access plus 1 year"
    	ExpiresByType application/font-woff "access plus 1 year"
    	ExpiresByType application/x-font-woff "access plus 1 year"
    	ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
    	ExpiresByType font/opentype "access plus 1 year"
    	ExpiresByType font/ttf "access plus 1 year"
    	ExpiresByType font/otf "access plus 1 year"
    	ExpiresByType application/x-font-ttf "access plus 1 year"
    	ExpiresByType application/x-font-otf "access plus 1 year"
    </IfModule>
  • - Segundo realizaremos una compresión del prestashop mediante el mod deflate, este al igual que en el anterior ya viene incluido en los últimos prestashop pero si no fuese así debemos añadir este código al final del fichero.
    Código: Seleccionar todo
    FileETag INode MTime Size
    <IfModule mod_deflate.c>
    	<IfModule mod_filter.c>
    		AddOutputFilterByType DEFLATE text/html text/css text/javascript application/javascript application/x-javascript
    	</IfModule>
    </IfModule>
En caso de que al modificar el htaccess la pagina no se viese bien o no redirigiese correctamente, accedemos al backoffice vamos a Preferencias -> SEO + URLs y desactivamos y activamos las url amigables (con este paso lo que se realiza es regenerar el htaccess)

3. Eliminar contenido externo.
  • - Buscar todos los módulos o contenidos que hayamos insertado manualmente que carguen de url externas y eliminarlos o descargarselo a nuestro servidor para que cargue directamente.
    Hay muchos módulos que no podemos hacer que funcionen directamente en nuestro servidor como el caso de chats, redes sociales... Si alguno de estos viésemos con la métrica de chrome que es lo que retarda el prestashop lo mejor seria eliminarlo
4. Optimizar el peso de las imagenes.
  • - Accedemos y ponemos la url de nuestro prestashop y realizara un escaneo.
  • - Cuando haya acabado el escaneo pinchamos en la pestaña ordenador y tendremos un apartado de Optimizar imágenes y si pinchamos en mostrar como corregirlo le aparecerá un listado con todas las imágenes a optimizar.
  • - Una vez localizadas las imágenes no dirigimos a la web http://www.smushit.com/ysmush.it/ y en esta web nos optimizara las imágenes de una forma rápida y sencilla.
    Para ello subimos la imagen desde nuestro ordenador o por la url y nos generará la imagen optimizada lista para sustituir por la que no lo está.
5. Módulos instalados sin ningún uso
  • - A veces tenemos instalados módulos en nuestros prestashop que no están asociados a ningún hook y realmente están funcionando pero no se están mostrando, por ello debemos revisar todos los módulos que tengamos instalados y activamos y comprobar que realmente los estamos utilizando y en caso contrario desactivaremos los módulos
  • - En otras ocasiones también tenemos hooks con módulos insertados en esas posiciones pero que nuestra plantilla no nos esta mostrando, por ejemplo una plantilla que solo tiene la columna de la izquierda y contenido central puede ser que en el hook derecho tengamos módulos insertados que realmente están cargando pero no se están mostrando
  • Módulos de estadísticas, si no utilizamos habitualmente los módulos de estadísticas que incorpora prestashop porque utilizamos otro sistema lo mejor es desactivarlos ya que estos módulos realizan muchas consultas en la base de datos y ralentiza el sistema.
6. Limpieza de prestashop
Se aconseja hacer una copia de seguridad antes de meterse a tocar la base de datos.
  • - Si eres un usuario avanzado de prestashop y sabes como es su estructura interna puedes purgar algunas tablas de la base de datos de vez en cuando ya que se acumulan muchos registros y hace que las consultas de mysql se realicen con mas lentitud de lo normal.

    Las tablas serian:
    Código: Seleccionar todo
    ps_page_viewed
    ps_connections_page
    ps_connections_source
    ps_connections
    ps_guest
  • - También podemos vaciar las tablas de pedidos (todas las ps_orders) y la tabla (ps_cart) de forma exporádica si estamos dispuestos a perder los pedidos y los carritos realizados
Si después de todo esto nuestro prestashop no va lo suficientemente rápido puedes ver nuestro sistema de velocidad PHSPEED orientado a prestashop que hará que tu prestashop vuele y tenga un tiempo de carga de firstpage entre 80 y 400 milisegundos, mas información aquí