Factors per a la correcta optimització d'una botiga amb Prestashop

0. Introducció general al manual

Aquest manual està dissenyat per a oferir una guia detallada sobre la configuració, optimització i manteniment d'una botiga online basada en Prestashop, utilitzant servidors administrats amb SWPanel.

Objetiu del manual

L'objectiu principal és ajudar el lector a comprendre els aspectes tècnics i funcionals que afecten directament el rendiment de la seva botiga online. Cada apartat inclou informació detallada sobre els factors que influeixen en la velocitat de càrrega, l'estabilitat del sistema, la seguretat i l'experiència de l'usuari. A més, s'inclouen bones pràctiques i recomanacions específiques per a millorar l'eficiència operativa i el posicionament SEO de l'e-commerce.

Temes tractats

Aquest manual abasta els següents temes clau:

  • Servidor de Hosting Web: Explica l'elecció adequada del tipus d'allotjament (compartit o Cloud), els recursos necessaris CPU, #RAM, emmagatzematge) i els paràmetres de configuració (Apache, Nginx, PHP).

  • Base de dades: Descriu les configuracions òptimes del motor de base de dades (MariaDB), així com les tasques de manteniment i neteja per a garantir la seva eficiència.

  • Aplicació Prestashop: Ofereix detalls sobre la configuració del sistema Smarty, CCC (Combinació, Compressió i Caixet), la gestió de mòduls i les actualitzacions de la plataforma.

  • Imatges Web: Proporciona recomanacions per a l'optimització d'imatges que millorin els temps de càrrega i el SEO del lloc web.

Conceptes bàsics

A continuació, es defineixen alguns conceptes que s'utilitzaran al llarg del manual i que són fonamentals per a la seva comprensió:

  • Prestashop: Sistema de gestió de continguts (CMS) especialitzat en la creació i gestió de botigues online.

  • SWPanel: Plataforma de gestió integral de servidors Cloud, que permet configurar i monitorar serveis de hosting de manera senzilla i eficient.

  • Servidor Cloud: Entorn d'allotjament virtual que ofereix recursos dedicats i escalables per a allotjar aplicacions web.

  • Smarty: Motor de plantilles utilitzat per Prestashop per a generar el contingut HTML que es mostra a l'usuari.

  • CCC: Combinació, Compressió i Caché. Conjunt de tècniques que permeten reduir el pes dels arxius web i millorar el rendiment.

  • CDN (Content Delivery Network): Xarxa de distribució de contingut que permet lliurar els recursos estàtics (imatges, scripts, estils) des de servidors distribuïts geogràficament per a millorar la velocitat de càrrega.

1. Servidor de Hosting Web

El servidor web és un dels factors més importants a l'hora de garantir el bon funcionament i optimització de la teva botiga online amb Prestashop. Un servidor de qualitat i amb una elevada disponibilitat de recursos (vCores, RAM i HD) es traduirà en una major velocitat en el processament de les dades per a atendre les sol·licituds dels visitants. D'aquesta manera la velocitat de càrrega de la web, visualització del contingut en el navegador i agilitat en el procés de resposta a les consultes a la base de dades, serà molt mes ràpida i eficient. En resum, un servidor amb un bon rendiment es tradueix en millors resultats de SEO, evita errors del nostre lloc web, millora l'experiència de l'usuari, amb el que augmenta la seva confiança i per tant les vendes online.

1.1 Tipus de servidor web - (Compartit / Cloud)

El lloc web d'una botiga online demanda sempre més recursos del servidor que qualsevol altre, com pot ser un blog o una web corporativa. A més com més gran sigui el volum de productes de la botiga online o el seu nombre de visitants major serà la demanda de recursos per a atendre ràpida i eficientment les sol·licituds dels clients. És per aquest motiu que s'ha de triar el tipus d'allotjament web de la nostra botiga online tenint en compte, no tan sols la seva dimensió actual, sinó també la futura, ja que un dels objectius del nostre e-commerce serà aconseguir el seu creixement en el nombre de clients i les vendes.

Actualment existeixen diferents tipus d'allotjament per a una botiga online sent els més utilitzats els següents:

a) Servidor Compartit (Hosting web Compartit) - És el servei d'allotjament més econòmic ja que es tracta d'un servidor en el qual s'allotgen multitud de llocs web que comparteixen els mateixos recursos (vCores, MemòriaRAM i #HD). Els paràmetres de configuració, corresponents als recursos del servidor als quals pot accedir i fer ús la web, estan sempre limitats, de manera que no sempre és possible adaptar-los per a cobrir els requisits de configuració o acompliment de la web. És per aquest motiu que es recomana aquest tipus d'allotjament web per a botigues relativament petites, que no disposin d'una gran cartera de productes i amb un baix nombre de visitants/clients.

b) Servidor Cloud - És un servidor virtual amb una alta disponibilitat i garantia de continuïtat del servei, a causa de la redundància de la infraestructura sobre la qual està desplegat i al qual se li assignen uns recursos de hardware exclusiu (vCores, Memòria RAM, HD), que poden ser escalables en qualsevol moment, la qual cosa possibilita adaptar-los constantment a les necessitats de creixement de la botiga online. Tots els recursos del servidor estan completament disponibles per a la botiga online el que permet assignar-los per complet als requisits de programació, configuració i demanda de l'e-commerce. Aquest tipus de servidors Cloud suposen un cost major de l'allotjament web a causa del seu major rendiment i qualitat, per la qual cosa es recomana el seu ús per a botigues online amb una elevada cartera de productes, nombre de clients i vendes.

1.2 Recursos del servidor web - (CPU / RAM / Disc)

a) CPU - Processador (vCores) - Com més gran sigui el número i potència en GHz dels vCores assignats al servidor millor serà la seva velocitat de resposta a l'hora d'executar els càlculs necessaris per a atendre les consultes de la base de dades, càrrega del contingut web en la memòria RAM i visualització posterior en el navegador. En resum, un major valor en el número i velocitat dels vCores assignats al servidor es tradueix en un millor rendiment global de la nostra botiga online. Quan el número de vCores assignats al servidor arriba a més del 90% de la seva capacitat de procés, comença a sofrir sobrecàrrega, la qual cosa redueix considerablement la velocitat de càrrega de la botiga online. És per aquest motiu que s'ha d'aprovisionar al servidor d'un número de vCores suficient, perquè la càrrega de procés sostinguda, no superi de manera contínua més del 60% o 70% de la capacitat del servidor, reservant d'aquesta manera un marge prudencial en la capacitat de procés del servidor del 30% o 40% per a atendre pics puntuals i evitar la sobrecàrrega de processos que poden provocar que la web s'alenteixi o fins i tot deixi de respondre. Es recomana que per a una botiga amb Prestashop el servidor Cloud compti amb un mínim de 4 vCores amb velocitats superiors a 2 GHz.

b) Memòria RAM - La memòria RAM juga un paper crucial en el rendiment de la teva botiga online. Actua com un espai d'emmagatzematge temporal per a les dades que el processador necessita en temps real. Quan un visitant accedeix a la teva botiga, el servidor web rep la petició i el processador executa els càlculs necessaris per a generar el contingut de la pàgina. Aquest contingut es transfereix a la RAM, que a la seva vegada l'envia al navegador del visitant per a la seva visualització.

Si la quantitat de dades generades pel processador excedeix la capacitat de la RAM, el servidor se satura i deixa de respondre, interrompent l'experiència de compra dels teus clients i afectant negativament el teu negoci.

Per tant, és fonamental dimensionar correctament la RAM del teu servidor Cloud. A mesura que la teva botiga rep més visites simultànies, la demanda de RAM augmenta. Per a garantir un rendiment òptim, et recomanem:

  • Aprovisionar suficient RAM: Assegura't que el teu servidor tingui suficient RAM per a gestionar el trànsit habitual de la teva botiga.
  • Considerar pics de trànsit: Reserva un marge de RAM addicional per a absorbir possibles pics de trànsit, com a promocions o campanyes publicitàries.
  • Recomanació per a Prestashop: Per a botigues online construïdes amb Prestashop, suggerim començar amb un mínim de 4 GB de RAM, i augmentar aquesta quantitat a mesura que la teva botiga creixi. En optimitzar la RAM del teu servidor, assegures una experiència de compra fluida per als teus clients, la qual cosa es tradueix en major satisfacció i millors resultats per al teu negoci.

c) Capacitat i tipus de disc dur - Per a optimitzar el rendiment de la teva botiga online, recomanem encaridament l'ús de discos SSD. Aquests discos ofereixen velocitats de lectura i escriptura de dades significativament superiors als discos durs tradicionals, la qual cosa es tradueix en una navegació més fluida i ràpida per als teus clients. *Beneficis clau dels discos SSD:

  • Major velocitat: Accés instantani a les dades, reduint els temps de càrrega de les pàgines.
  • Accés simultani: Capacitat per a gestionar múltiples sol·licituds de dades al mateix temps, ideal per a botigues amb molt de trànsit.
  • Eficiència superior: La controladora de memòria integrada del SSD gestiona les dades de manera intel·ligent, alliberant a la CPU de tasques de control d'integritat. A més de la velocitat, és crucial dimensionar correctament l'espai d'emmagatzematge del teu servidor Cloud. El disc ha de ser prou gran per a allotjar el sistema operatiu, el software instal·lat, el contingut web i la base de dades de la teva botiga, que creixerà a mesura que augmenti el trànsit.

Recomanacions per a Prestashop:

  • Per a un servidor Cloud amb Linux, Apache/Nginx, MySQL/MariaDB i PHP, recomanem un mínim de 20 GB d'espai en disc.
  • A mesura que la teva botiga creixi, considera augmentar l'espai d'emmagatzematge per a garantir un rendiment òptim.

En triar discos SSD i dimensionar correctament l'espai d'emmagatzematge, assegures una experiència de compra excepcional per als teus clients, la qual cosa es tradueix en major satisfacció i millors resultats per al teu negoci.

d) Límit de trànsit. - Quan un visitant accedeix al teu lloc web, el servidor intercanvia dades amb el seu navegador per a mostrar el contingut. Aquest intercanvi de dades, conegut com a trànsit, té una grandària que els proveïdors solen limitar mensualment. Què implica el límit de trànsit? El límit de trànsit mensual representa la quantitat total de dades transferides entre el servidor i els navegadors dels teus visitants durant un mes. Una vegada aconseguit aquest límit, el servidor deixa de respondre a noves sol·licituds, la qual cosa deixa el teu lloc web inaccessible.

Impacte en el teu negoci:

Un límit de trànsit insuficient pot interrompre l'experiència dels teus clients i afectar negativament el teu negoci.

Recomanacions clau:

  • Para atenció al trànsit: En contractar un servidor Cloud, verifica acuradament el límit de trànsit mensual.
  • Prioritza el trànsit il·limitat: Si el teu lloc web rep molt trànsit, considera triar un proveïdor que ofereixi trànsit il·limitat.

En triar un proveïdor amb un límit de trànsit adequat, o idealment, trànsit il·limitat, garanteixes que el teu lloc web estigui sempre disponible per als teus clients, la qual cosa es tradueix en una millor experiència d'usuari i majors oportunitats de negoci.

En un servidor Cloud SWPanel pots ajustar els recursos assignats des del Dashboard d'administració del servidor, tal com es descriu en el següent 📃 Manual: Augmentar i reduir recursos del meu Cloud

1.3 Paràmetres de configuració del servidor web - (Apache / Nginx/ PHP)

Els servidors Cloud SWPanel utilitzen, de manera dual, els servidors Web Apache i Nginx treballant de manera conjunta. Es configura Apache perquè s'executi darrere de Nginx , amb Nginx actuant com proxy invers. Aquesta configuració permet que Nginx gestioni eficientment les sol·licituds de contingut estàtic, mentre que Apache s'encarrega de gestionar les sol·licituds dinàmiques, proporcionant una configuració equilibrada i eficient del servidor.

a) Configuració del servidor web Apache - L'optimització del servidor Web Apache per a la nostra botiga amb Prestashop es pot realitzar a través del fitxer .htaccess que se situa en el directori arrel de la nostra web. En aquest fitxer podem definir com serà el comportament del servidor web Apache per a tasques tan importants com l'ús de caché del navegador, augmentar la seguretat de la web, protegir directoris, etc... així com optimitzar el tractament i lliurament de les dades pel navegador, millorant notablement el rendiment del servidor i el posicionament SEO del nostre lloc web.

  • Ús de GZIP (Es necessita tenir instal·lat el mòdul Gzip en el servidor Apache) El següent codi possibilita la compressió de la informació que és lliurada pel servidor Web, de manera que la disminució en la grandària de les dades disminueix l'amplada de banda necessària per a mostrar el contingut de la botiga online, augmentant la rapidesa amb la qual es carrega la web.
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_item_include file .html$
mod_gzip_item_include file .php$
mod_gzip_item_include file .css$
mod_gzip_item_include file .js$
mod_gzip_item_include mime ^application/javascript$
mod_gzip_item_include mime ^application/x-javascript$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include handler ^application/x-httpd-php
mod_gzip_item_exclude mime ^image/.*
</IfModule>
  • Activar el recurs Keep Alive. Habilitar Keep-Alive (Connexió Persistent) pot ajudar a optimitzar el rendiment del lloc web i oferir una millor experiència a l'usuari. Permet al navegador del visitant, reutilitzar una única connexió TCP per a carregar el contingut de la pàgina, reduint d'aquesta manera la quantitat de sol·licituds HTTP necessàries per a mostrar cada element de la pàgina web.
<ifModule mod_headers.c>
Header set Connection keep-alive
</ifModule>
  • Definir un valor de durada de la Caché (La dada “max-age” s'expressa en segons). La caché permet guardar en el navegador del visitant, còpies de les dades necessàries per a mostrar el contingut de la web, de manera que la primera vegada que el navegador accedeix a la web, guarda localment una còpia de les dades lliurades pel servidor, que seran reutilitzades en posteriors peticions a la mateixa web i per tant que ja no seran sol·licitades de nou al servidor, reduint l'amplada de banda necessària per a mostrar el contingut de la web, reduint el consum de recursos del servidor i millorant la velocitat de càrrega de la nostra botiga online.
<FilesMatch "\.(php|html|htm|txt|html5|jpg|png|js|css)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
# Deshabilitar paràmetres següents
<FilesMatch "\.(pl|cgi|spl|html)$">
Header unset Cache-Control
Header unset Expires
Header unset Last-Modified
FileETag None
Header unset ETag
Header unset Pragma
</FilesMatch>

b) Configuració del servidor web Nginx

La configuració dels paràmetres del servidor Nginx per a la nostra botiga online la realitzarem des del Dashborad del nostre servei de Hosting amb SWPanel.

  • Definir un valor de durada de la Caché . Indica el període de temps durant el qual es guardaran les dades “cachejades” en el navegador. La dada “Expires” s'expressa en dies i podem indicar el valor per defecte que és de 7 dies. (7d)
7d
  • limit_req_zone. Permet definir la quantitat de sol·licituds HTTP/HTTPS que un usuari pot realitzar en un període de temps determinat. Sol usar-se amb finalitats de seguretat per a limitar la velocitat de resposta del servidor Nginx i protegir-lo contra possibles atacs de força bruta o DDoS, si bé augmentar aquest valor pot millorar la velocitat de resposta del servidor Nginx i el rendiment global de la nostra botiga online. Definirem aquest paràmetre amb un valor de 300 per segon.
$binary_remote_addr zone=swmanuales.com_rate:1m rate=300r/s
  • proxy_cache_path. Permet indicar el directori local del servidor en el qual s'emmagatzemaran les dades de caché, a més d'altres paràmetres com la grandària màxima del disc del servidor que s'utilitzarà per a guardar les dades “cachejades” per Nginx. Quan la grandària de la caché aconsegueix el límit, un procés anomenat administrador de caché, elimina els arxius que es van usar menys recentment perquè la grandària de la caché torni a estar per sota del límit. Definirem el valor d'aquest paràmetre en 67108864 (Expressat en bytes).
/var/www/domain.com/cache levels=1:2 keys_zone=swmanuales.com_proxy:5m max_size=67108864

En un servidor administrat amb SWPanel pots ajustar els valors assignats als paràmetres de Nginx des del Dashboard d'administració del teu hosting, tal com es descriu en el següent 📃 Manual: Com ajustar els paràmetres bàsics del meu hosting a un Cloud.

c) Paràmetres de PHP. La configuració dels paràmetres de PHP és un dels punts més importants a l'hora de garantir un correcte funcionament del servidor web així com evitar la seva sobrecàrrega. En els serveis d'allotjament web de servidors compartits, aquests possibles valors de configuració de PHP, solen estar configurats per defecte a nivells baixos i no poden ser augmentats lliurement per a adaptar-los a les necessitats de la nostra web. Aquest és un dels motius pels quals recomanem allotjar la teva botiga online en un Servidor Cloud, ja que aquest tipus d'allotjament permet configurar lliurement els valors dels paràmetres de PHP sense cap mena de restricció. Els paràmetres de PHP poden ser configurats a través del panell de control del hosting SWPanel Els valors dels paràmetres de PHP més importants a configurar són:

  • max_execution_time: Estableix el temps màxim en segons que un script pot executar –se abans que finalitzi. Ho definim amb un valor de 300 segons.
max_execution_time = 300
  • max_input_time: Estableix el temps màxim en segons que un script pot analitzar dades d'entrada com a POST i GET. Això generalment s'incrementa per a permetre càrregues d'arxius grans. Ho definim a -1 el que significa que apliquem el mateix valor límit definit per al paràmetre max_execution_time.
max_input_time = -1
  • max_input_vars: Estableix el límit màxim de variables GET/POST/COOKIE que poden ser acceptades durant les sol·licituds al servidor. En el cas de les botigues online multillenguatge, un valor elevat d'aquest paràmetre permet mostrar correctament les traduccions del lloc als diferents idiomes. Establirem el valor en 2000.
max_input_vars = 20000
  • memory_limit: Estableix el límit màxim de memòria en MBytes que pot assignar un script. Els llocs web que realitzen processos llargs o pesats necessitaran un valor alt de límit de memòria. Depenent del valor que es disposi de memòria RAM en el servidor, es podrà augmentar el valor en proporció. Per a un servidor amb 4 GB de RAM establirem un valor de 512M
memory_limit = 512M
  • post_max_size: Estableix la grandària màxima permesa per a sol·licituds POST. Establirem un valor de 32M
post_max_size = 32M
  • upload_max_size: Estableix la grandària màxima permesa per a la pujada d'arxius al servidor. Per exemple, des del formulari de contacte del lloc web. El valor establert serà de 32M
upload_max_size = 32M
  • allow_url_fopen: Permet a les funcions d'arxiu PHP recuperar dades d'ubicacions remotes mitjançant FTP o HTTP. Recomanem tenir activada aquesta opció, ja que existeixen mòduls i addons que necessiten connectar-se amb URL externes per a realitzar els seus processos. Establirem en valor en 'on'
allow_url_fopen = on
  • pm.max_children Defineix el límit de sol·licituds PHP que s'executen simultàniament per a un servei de hosting en particular. Establim el valor en 20.
pm.max_children = 20

En un servidor administrat amb SWPanel pots ajustar els valors assignats als paràmetres de PHP des del Dashboard d'administració del teu, tal com es descriu en el següent 📃 Manual: Com ajustar els paràmetres bàsics del meu hosting a un Cloud.

2. Base de dades

La base de dades del nostre Prestashop s'encarrega de guardar la informació de la nostra botiga, organitzada mitjançant l'ús de taules, índexs i registres. També s'encarrega de gestionar les consultes i l'accés a la informació emmagatzemada en les taules, a més de processar i administrar el seu contingut. Una bona configuració i manteniment eficient de la base de dades és imprescindible per a garantir un rendiment òptim de la nostra botiga online amb Prestashop.

2.1 Configuració del servidor de Base de dades

Qualsevol botiga online realitza constantment múltiples connexions simultànies a la base de dades per a recuperar dades dels productes, preus, imatges, sessions d'usuari, etc. Mentre s'executa una consulta efectuada a la BBDD, per exemple sobre un producte, un llistat de les seves característiques, una imatge o vídeo,... la web es manté inactiva a l'espera de les dades resultants de la consulta i una vegada el motor de base de dades resol aquesta consulta la web mostra la informació a l'usuari, per la qual cosa és un factor crític que l'estructura i configuració de la base de dades sigui optimitzada per a reduir al màxim el temps de resposta del motor de base de dades, millorant d'aquesta manera la velocitat de càrrega de la web i l'experiència d'usuari.

En un servidor Cloud SWPanel els paràmetres de configuració del motor de BBDD MariaDB poden ser modificats des del seu Dashboard d'administració, en el qual trobarem l'eina per a modificar els ajustos bàsics del servidor. a) Caché. Optimitzar el rendiment de la base de dades (BBDD) és tan crucial com optimitzar el contingut estàtic del teu lloc web. L'ús de caché en la BBDD permet emmagatzemar els resultats de consultes freqüents, evitant que el servidor hagi d'executar-les repetidament.

Beneficis clau de la caché de BBDD:

  • Reducció de la càrrega del servidor: En no haver de repetir consultes, s'allibera al servidor de treball innecessari.
  • Augment de la velocitat de resposta: Les pàgines de la teva botiga Prestashop es carreguen més ràpid, millorant l'experiència de l'usuari.
  • Millora del rendiment general: Una BBDD optimitzada contribueix a un funcionament més fluid del teu lloc web.

Consideracions importants:

  • Augmentar la grandària de la caché de la BBDD implica un major consum de memòria RAM.
  • És fonamental monitorar el consum de recursos i ajustar la RAM del servidor en conseqüència.
  • Quanta més RAM assignis al servidor, majors seran els valors de caché que podràs configurar.

Recomanacions per a Prestashop:

  • Comença amb una configuració de caché moderada i ajusta-la segons el trànsit i el rendiment.
  • Supervisa el consum de RAM del servidor i assegura't de tenir suficient capacitat per a gestionar la caché.
  • A mesura que la teva botiga online creixi, considera augmentar l'espai de ram del servidor per a garantir un rendiment òptim.

En implementar una estratègia de caché eficient per a la teva BBDD, pots aconseguir un increment notable en el rendiment de la teva botiga online, la qual cosa es tradueix en una millor experiència per als teus clients i majors oportunitats de venda.

Els valors dels paràmetres del motor de BBDD MariaDB recomanats per a un servidor amb 4 GB de RAM són els següents:

  • query_cache_type: habilita la caché.
query_cache_type = ON
  • query_cache_limit: indica la grandària màxima de resultats per consulta que es pot emmagatzemar en caché, és a dir, per a cada consulta quanta grandària del total de la caché li permetem usar com a màxim.
query_cache_limit = 128K
  • query_cache_size: controla la quantitat total de memòria que assignem a la caché de les consultes, si ho establim en 0 estarem deshabilitant la caché.
query_cache_size = 32M
  • table_open_cache: indica el nombre de taules que es poden tenir obertes en caché.
table_open_cache = 1000
  • thread_cache_size: indica quantes connexions noves poden usar consultes de caché en lloc d'executar la consulta en disc.
thread_cache_size = 80
  • host_cache_size: número de host que emmagatzemarem en caché.
host_cache_size=10000

b) Buffering. L'emmagatzematge en búfer (Espai de memòria en el qual s'emmagatzemen dades de manera temporal) forma part també del procés de gestió de la caché de la nostra BBDD. Els valors de buffering serveixen per a ajustar els paràmetres que treballen amb l'àrea de memòria que conté les dades emmagatzemades en caché i que hem definit anteriorment.

  • read_buffer_size: Estableix la grandària del búfer per a l'optimització de les lectures de dades emmagatzemades en les taules.
read_buffer_size = 2M
  • read_rnd_buffer_size: Estableix la grandària del búfer per a llegir taules en manera Full Table Scan i la lectura de les files ordenades amb l’ordre SORT.
read_rnd_buffer_size = 1M
  • join_buffer_size: És la grandària màxima del búfer usat per a les consultes d'unió (joins) que requereixen l'escaneig complet de taules que no utilitzin índexs.
join_buffer_size = 2M
  • sort_buffer_size = 2M: És la grandària màxima del búfer usat per a ordenar els resultats de l’ordre SORT directament en la memòria caché (RAM del servidor) en lloc de crear arxius temporals en el disc dur amb el mateix resultat de l'ordenació de les dades.
sort_buffer_size = 2M
  • innodb_buffer_pool_size: És la grandària màxima del búfer utilitzat pel motor de BBDD per a emmagatzemar els índexs i dades de la base de dades. Per a un servidor en el qual s'executin simultàniament el servidor Web i el servidor de BBDD, es recomana assignar a aquesta variable de configuració entre el 50% - 60% de la memòria RAM total disponible en el sistema. Aquest és el paràmetre de configuració que ofereix una major millora en el rendiment global de la Base de dades.
innodb_buffer_pool_size = 2G

c) Parámetros adicionales. Per a incrementar el rendiment de la BBDD podem modificar altres paràmetres com:

  • performance_schema: En BBDD en producció deshabilitarem aquesta funció ja que es recomana el seu ús únicament en entorns de pre-producció i per al monitoratge dels esdeveniments que ocorren en el motor de BBDD.
performance_schema = OFF
  • max_heap_table_size: És la grandària màxima d'una taula que pot ser creada per l'usuari de BBDD i emmagatzemada en la memòria.
max_heap_table_size = 32M
  • tmp_table_size: Especifica la grandària màxima d'una taula temporal creada en la memòria durant l'execució d'una consulta complexa. Quan s'aconsegueix aquesta grandària màxima especificada, el motor de BBDD converteix automàticament la taula temporal interna en memòria, en una taula temporal interna en disc.
tmp_table_size = 32M

2.2 Netejar, optimitzar i reparar taules de la Base de dades

Podem realitzar aquest tipus de tasques sobre la nostra base de dades utilitzant eines per a l'administració de BBDD del tipus phpMyAdmin, HeidiSQL, MySQLWorkBench, etc,.. Per a realitzar aquest tipus d'operacions sobre la BBDD de la nostra botiga, haurem d'executar diferents consultes de codi SQL.

a) Netejar taules dinàmiques: Les taules dinàmiques són taules on s'emmagatzemen dades per a ús estadístic, de mètriques, etc… que el seu contingut no és essencial per al funcionament de la botiga online (visites, connexions, logs…). Aquestes taules se solen omplir de registres diàriament, per la qual cosa arriben a aconseguir un tamany considerablement gran si no es netegen amb freqüència. Detallarem aquelles taules dinàmiques sobre les quals s'ha de fer neteja de manera periòdica i no deixar que aquestes augmentin molt la seva grandària.

Les taules dinàmiques de Prestashop són:

  • ps_connections
  • ps_connections_source
  • ps_connections_page
  • ps_guest
  • ps_log
  • ps_modules_perfs
  • ps_pagenotfound
  • ps_referrer_cache
  • ps_page_viewed
  • ps_smarty_cache
  • ps_smarty_last_flush
  • ps_smarty_lazy_cache
  • ps_statssearch

Per a netejar aquestes taules podem utilitzar la següent consulta SQL:

TRUNCATE TABLE [nom de la taula];

Per exemple si desitgem netejar la taula ps_connections utilitzarem la consulta següent:

TRUNCATE TABLE ps_connections;

Aquesta consulta el que fa és eliminar completament tots els registres de la taula, deixant-la totalment buida.

b) Optimitzar i reparar taules: Moltes aplicacions per a la gestió de BBDD com HeidiSQL inclouen eines integrades per a l'optimització i reparació de les taules de la BBDD, si bé es poden executar també manualment algunes accions a partir de consultes SQL senzilles:

Per a optimitzar les taules, reorganitzant l'estructura d'emmagatzematge de la taula podem utilitzar la següent consulta SQL:

OPTIMIZE TABLE [nom de la taula];

Per a reparar les taules (Només en taules amb el motor MyISAM), podem utilitzar la següent consulta SQL:

REPAIR TABLE [nom de la taula];

Aquestes consultes solament cobreixen una petita part dins del procés d'optimització i reparació de les taules. Per a poder solucionar errors d'integritat referencial, desfragmentar dades fragmentades, eliminar registres amb valors invàlids, etc… és necessari fer-ho a través de software específic o mòduls específics per a Presatshop generalment de pagament, encara que existeixen alguns mòduls gratuïts.

2.3 Mòduls de Prestashop per a l'optimització i manteniment de la BBDD

Indiquem alguns mòduls de Prestashop específics per a l'optimització i el manteniment de la BBDD:

  • Prestashop Database Optimization (Gratuït): Permet netejar els registres guardats en la BBDD corresponents a carrets de compra no desitjats, informació de connexió (Estadístiques relacionades amb els visitants), informació de connexió relacionada amb les pàgines vistes i els tipus de pàgines, informació de connexió relacionada amb l'origen de les visites, informació sobre els visitants/convidats de la botiga.

  • Prestashop Delete Connections (Gratuït): Elimina i optimitza els registres en les taules de la base de dades corresponents a les taules, connections_source, connection_page, cart, etc...

  • Ultimate Database Optimizer: (De pagament) Monitora, optimitza, repara, desfragmenta, neta les taules dinàmiques i soluciona els errors de la base de dades. Funcions avançades per a un manteniment integral i periòdic de la BBDD.

3. Aplicació Prestashop

Aquest apartat combina eines i consells que et poden ajudar a millorar el rendiment de la teva botiga creada amb Prestashop, de manera que el servidor serà capaç d'atendre més eficientment les consultes i peticions d'un major nombre d'usuaris, i per tant podries obtenir més vendes.

3.1 Configuració (Smarty, Mode Depuració, Característiques opcionals, CCC, Caché)

Aquestes opcions de configuració de la pròpia aplicació Prestashop estan disponibles en la secció "Paràmetres Avançats\Rendiment" del panell d'administració (Back-office).

Smarty

Smarty és el nom del motor de plantilles utilitzat pels temes de PrestaShop i disposa de les següents opcions:

  1. Compilació de plantilles Per a millorar el rendiment front-end, PrestaShop emmagatzema en caché les pàgines HTML, podent-se definir 3 maneres d'actuació:
  • Mai recompilar els arxius de les plantilles. El comportament normal: Les pàgines HTML són compilades i emmagatzemades en la memòria caché del navegador i es mostren tal com són, fins i tot si el tema ha canviat des de llavors. Es recomana aquesta opció si la botiga està en producció i no es realitzaran canvis visuals a nivell d'arxius de la plantilla. És l'opció habilitada per defecte i que major rendiment proporciona a la botiga, millorant la velocitat de càrrega del lloc.
  • Recompilar les plantilles quan els arxius siguin modificats. PrestaShop és capaç de saber si un tema ha estat modificat, de manera que l'aplicació solament torna a recompilar els arxius de les plantilles si detecta que s'ha modificat el seu contingut. Recomanem aquesta opció si de tant en tant es realitzen modificacions en els arxius de les plantilles.
  • Forçar compilació. Només activa aquesta opció si estàs editant un tema, i vols veure els canvis realitzats cada vegada que recarreguis la pàgina. El sistema Smarty compilarà els arxius de les plantilles cada vegada que es mostra el contingut a l'usuari web. Aquest mode redueix notablement el rendiment de la botiga. Aquesta opció solament és recomanable tenir-la activada mentre s'estan fent treballs de manteniment, desenvolupament o modificacions importants en el lloc web.
  1. Caché: Aquesta opció fa possible que puguis desactivar la caché de tots els arxius, i no únicament els que pertanyen als arxius de la plantilla. Desactiva aquesta opció tan sols per a la depuració de mòduls i/o plantilles. En qualsevol altre cas, has de deixar-la activa. L'opció "Esborrar la caché Smarty" fa possible esborrar la memòria caché amb un sol clic de ratolí, en lloc d'haver d'anar a esborrar els arxius des del servidor FTP. Controla l'ús d'arxius de caché per al contingut que es mostra en el Fronted i les consultes a la base de dades. És molt important que aquesta opció estigui activada, en cas contrari s'experimentarà una disminució en el rendiment del lloc web. Solament es recomana la seva desactivació per a tasques de depuració d'errors.

  2. Sincronització Multiservidor. Aquesta funció permet la sincronització de la caché entre múltiples servidors web interconnectats, optimitzant el rendiment en arquitectures d'allotjament web distribuïdes. En habilitar-la, s'assegura la coherència de les dades emmagatzemades en caché en tots els servidors, evitant discrepàncies i millorant l'eficiència general del sistema.

  3. Esborrar la caché. - Aquesta és l'opció recomanada per a la majoria de les botigues online. En esborrar la caché després de cada modificació (productes, disseny, configuracions), s'assegura que els visitants sempre vegin la versió més actualitzada del lloc. Aquesta pràctica garanteix la coherència entre el contingut mostrat i la informació emmagatzemada en la base de dades, prevenint errors visuals i funcionals.

Mode depuració

Des del mode de depuració, pots optar per reduir l'impacte que tenen certes funcionalitats en PrestaShop, i així poder avaluar amb precisió d'on prové un error. Aquesta secció solament s'ha d'usar per a control i depuració d'errors, ja que el mode debug alenteix la càrrega dels elements de la botiga i mostra els missatges d'error existents en el Frontend. Per aquesta raó és molt important tenir totes les seves opcions desactivades mentre que la botiga està en producció.

Si has d'activar alguna d'aquestes opcions per a depurar errors, prèviament la botiga ha d'estar en mode manteniment, en cas contrari, els usuaris de la web podrien experimentar problemes i errors durant la navegació en el lloc web.

Opcions del Mode Depuració:

  • Desactivar els mètodes de sobrecàrrega (overrides). Moltes de les característiques de PrestaShop poden ser sobrecarregades. Si habilites aquesta configuració, totes les sobrecàrregues del codi seran desactivades, i podràs determinar si el problema prové del propi codi de PrestaShop, o d'un mòdul de tercers.

  • Mode depuració. En activar aquesta opció, els missatges d'error tècnic seran visibles. És útil quan una persona està ajudant a una altra que no té accés a la teva botiga, però que necessita saber el que està passant tècnicament.

Mòduls

Desactivar els mòduls no natius. Els mòduls natius de PrestaShop són testats amb exhaustivitat pel que no haurien de presentar cap mena de problema. Si habilites aquesta opció, podràs determinar si el problema prové del propi codi de PrestaShop (nucli o mòdul), o d'un mòdul de tercers.

Característiques opcionals

Algunes característiques de PrestaShop poden ser desactivades si no les utilitzes, ja que poden alentir la teva botiga.

Si el teu catàleg té actualment productes que fan ús d'aquestes característiques, no podràs desactivar-les. Hauràs d'eliminar aquests productes per a poder desactivar aquestes opcions.

Pots desactivar les següents característiques de catàleg:

  • Combinacions. Les combinacions de productes et permeten oferir una àmplia gamma de variants d'un mateix article, simplificant la gestió del teu catàleg i millorant l'experiència de compra dels teus clients. Amb aquesta funció, pots presentar un únic producte amb múltiples opcions, com a diferents grandàries, colors, capacitats, materials, estils, etc., permetent als teus clients personalitzar la seva compra segons les seves preferències..

  • Característiques. Les característiques del producte permeten proporcionar informació específica i detallada sobre cada article: pes, material, país d'origen, etc.

  • Grups de clients. Els grups de clients et permeten agrupar clients dins d'un mateix grup amb la finalitat de donar-los certs privilegis i restriccions: descomptes, restriccions de mòduls, etc.

(CCC) Combinació, Compressió i Caché.

CCC és un conjunt d'eines destinades a minimitzar la càrrega del servidor i el temps de càrrega del tema de la botiga.

Això fa el que el seu nom indica: combina arxius textuals del mateix tipus en un arxiu més gran, la qual cosa redueix el nombre d'arxius per a descarregar; comprimeix l'arxiu utilitzant l'algorisme Zip, la qual cosa fa que es descarregui més ràpidament; finalment, s'emmagatzema en caché l'arxiu comprimit, per la qual cosa el servidor no ha de fer aquest procés cada vegada que es carrega una pàgina, la qual cosa alleuja la càrrega sobre el processador del servidor.

Opcions (CCC) Combinació, Compressió i Caché:

  • "Smart cache" per a les fulles d'estil (CSS). Els arxius CSS són arxius de text, que poden ser combinats i comprimits de manera segura. Aquesta opció unifica totes les fulles d'estil amb codi CSS procedents de mòduls, plantilla i codis personalitzats i els comprimeix en un sol arxiu per a reduir el seu pes i augmentar la velocitat de lectura del seu contingut.

  • "Smart cache" per al codi de Javascript. Els arxius Javascript són arxius de text, però la seva combinació a vegades pot resultar problemàtica. Assegura't de provar tot abans de deixar activada aquesta opció. Aquesta opció unifica tots els codis Javascript procedents de mòduls, plantilla i codis personalitzats i els comprimeix en un únic arxiu per a reduir el seu pes i augmentar la velocitat de lectura del seu contingut.

  • Optimització d'Apache. Aquest ajust de configuració, modificarà l'arxiu de configuració del servidor web amb la finalitat de fer-lo més eficient per a CCC. Prestashop insereix codi avançat en l'arxiu .htaccess situat en el directori principal de la botiga, per a fer ús de la caché del navegador i servidor i de la compressió del contingut del lloc web a través de Gzip i Deflate.

Es recomana que totes aquestes opcions estiguin activades i solament es desactivin per a depuració d'errors o durant les fases de desenvolupament de la botiga online.

Servidors de mitjans (Utilitzar solament quan CCC està activat)

Aquesta secció permet redirigir part del trànsit de la teva botiga (imatges i arxius de vídeo, per exemple) a altres servidors sota el teu control, a través d'altres dominis o subdominis – generalment, els arxius estan allotjats en un CDN (Content Delivery Network).

Aquesta és una de les tècniques que més millora el rendiment del lloc ja que distribueix la càrrega d'alguns elements de la web en diferents servidors CDN. Això es tradueix a situar elements com les imatges, plantilla i els mòduls en altres servidors. D'aquesta manera, quan un usuari visita la botiga, el navegador sol·licita a cadascun d'aquests servidors la informació que tenen allotjada. Això provoca que la càrrega no sigui assumida per un sol servidor, sinó que cadascun assumeix la càrrega dels seus elements.

Configurant aquesta opció, l'increment de rendiment i l'augment de la velocitat de càrrega de la web és extraordinària.

En els servidors Cloud amb SWPanel pots activar automàticament el servei de CDN sense la necessitat de configurar aquesta secció de Prestashop i únicament seguint els passos descrits en el 📃 Manual: Com activar la CDN de Cloudflare a través de SWPanel pel teu servei de Hosting a més pots també aplicar diversos paràmetres de configuració descrits en 📃 Manual: Com ajustar els paràmetres de la CDN i la caché de Cloudflare

Caché

La caché del servidor emmagatzema versions estàtiques de les teves pàgines web dinàmiques, permetent servir-les ràpidament als teus visitants. Això redueix significativament la càrrega del servidor i els temps de compilació, millorant el rendiment general de la teva botiga.

Diferència amb la Caché de Prestashop:

A diferència de la caché d’ Smarty (pròpia de Prestashop), la caché del servidor és gestionada a nivell de hosting. Per tant, la seva configuració i gestió requereixen consideracions addicionals:

Requisits Previs:

  • Extensió de Caché Instal·lada: Abans d'activar qualsevol sistema de caché del servidor, assegura't que l'extensió corresponent (per exemple, Varnish, Redis, Memcached) estigui instal·lada en el teu servidor.

Consideracions sobre el Contingut Dinàmic:

  • Actualitzacions Freqüents: Si la teva botiga online experimenta canvis constants (nous productes, imatges, actualitzacions de disseny), desactiva la caché del servidor i realitza neteges manuals. En cas contrari, els canvis podrien no reflectir-se correctament per als teus visitants.
  • Neteja de Caché: Recorda que la neteja de la caché del servidor és independent de la neteja de la caché de Prestashop.

Opcions de Configuració:

Aquesta secció et permet activar la caché del servidor i seleccionar el mètode d'emmagatzematge en caché compatible amb el teu proveïdor de hosting.

Usuaris d’ SWPanel:

Recomanacions clau:

  • Avalua la freqüència de les actualitzacions: Si realitzes canvis constants, pots desactivar la caché del servidor.
  • Assegura't de tenir instal·lada l'extensió de caché: És un pas fonamental abans d'activar la caché del servidor.
  • Neteja de caché: Si realitzes canvis manuals, realitza una neteja de la caché.

En resum, la caché del servidor és una eina poderosa per a millorar el rendiment de la teva botiga online, però la seva configuració i gestió requereixen atenció als detalls.

3.2 Mòduls de Prestashop

És habitual ampliar, afegir o personalitzar la funcionalitats bàsiques de Prestashop mitjançant la instal·lació de mòduls/addons. La instal·lació d'aquests mòduls suposa afegir més elements a l'estructura de la botiga i incrementar també la càrrega de treball del servidor, en major o menor mesura segons la seva arquitectura de codi o les seves funcionalitats. Per a evitar que l'ús d'aquests mòduls provoquin la disminució de rendiment del servidor és imprescindible aprovisionar-lo amb els recursos de hardware necessari per a assumir la càrrega extra.

A més recomanem les següents pràctiques:

  • Instal·lar només mòduls oficials des de la plataforma Prestashop Addons (Abans de ser publicat, cada mòdul passa per un procés de verificació i control de qualitat per a complir amb els estàndards de la plataforma oficial).

  • Mantenir sempre el mòdul actualitzat a l'última versió.

  • Instal·lar únicament els mòduls imprescindibles per al funcionament de la botiga

  • Desinstal·lar o desactivar la resta de mòduls que no s'estiguin usant.

  • Fer ús de mòduls que milloren el rendiment del lloc web, ús de caché, optimitzen la Base de dades, etc

3.3 Actualització de Prestashop

Hauries d'actualitzar el teu lloc a l'última versió de PrestaShop (8.x) per a disposar de les millores de rendiment i correccions de seguretat. Mantenir la instal·lació de PrestaShop actualitzada garanteix els beneficis aportats per les últimes característiques i optimitzacions proporcionades per la plataforma.

Per a realitzar l'actualització major des d'una versió 1.6, 1.7 a l'última versió disponible 8.x (1.8) pots utilitzar el "mòdul oficial" 1-Clic Upgrade que a més generarà una còpia de seguretat prèvia de la teva botiga online com a part del procés d'actualització, de manera que podràs restaurar-la a l'estat original si ocorre algun un error inesperat.

4 Imatges web

Les imatges són uns dels elements principals d'una pàgina web o botiga online. En el cas de les botigues online, cada producte ha de contenir una o diverses imatges. Aquests elements, com ocorre amb la resta, tenen una grandària determinada. Com més grandària i dimensió tingui una imatge, major càrrega de treball genera al servidor per a poder processar aquests elements, per tant, major serà el temps de càrrega.

És molt important optimitzar les imatges que s'usaran en el lloc web. ja que d'aquesta manera es reduiran els temps de càrrega i també afectarà positivament el SEO.

Per a reduir el pes de les imatges hem d'utilitzar formats o extensions d'arxiu que comprimeixin les seves dades però mantenint un alt nivell de qualitat de la imatge. Els formats mes estesos són els següents:

  • JPG: Format d'imatges més reconegut i usat per a guardar fotos. A causa de la seva compressió, es tracta d'un format que perd qualitat cada vegada que redueixes la seva grandària.
  • PNG: Amb ell pots afegir transparències i, a diferència del JPG, és un format de compressió sense pèrdues, ideal per a usar-lo amb tots els elements que componen el nostre lloc web.
  • WebP: És un format d'imatge modern que gràcies a un sofisticat algorisme de compressió, genera imatges de menor grandària que JPG / PNG i mantenint una alta qualitat d'imatge. A més motors de cerca com Google milloren el posicionament SEO dels llocs web que utilitzen aquest format per a les seves imatges.

Una vegada decidit el format en el qual guardarem les imatges per a la nostra botiga online hem de prestar especial atenció a la seva resolució. Si l'espai reservat per a visualitzar una imatge és de 250px haurem de crear una imatge exactament d'aquesta grandària, ja que en cas contrari, si la imatge és de per exemple 500px la seva visualització continuarà sent de 250px i l'única cosa que aconseguirem serà augmentar el pes del lloc web. Per aquest motiu aconsellem que creïs totes les imatges a la grandària real que es mostraran en la teva web.

Per a optimitzar i convertir les imatges de la teva botiga online existeixen mòduls de Prestashop, generalment de pagament, o també gratuïtament algunes aplicacions web o software específic com per exemple paint.net.


2025 DeepThink Software SLU. Tots els drets reservats. Els preus que apareixen en la web no inclouen impostos