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

Actualitzat el 2026-10-28 13:01:35 22 visites

0. Introducció general al manual

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

Objectiu 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 en línia. 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 millorar l'eficiència operativa i el posicionament SEO de l'e-commerce.

Temes tractats

Aquest manual abasta els temes clau següents:

  • Servidor d'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 garantir-ne l'eficiència.

  • Aplicació Prestashop: Ofereix detalls sobre la configuració del sistema Smarty, CCC (Combinació, Compressió i Cau), 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 comprendre'l:

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

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

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

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

  • CCC: Combinació, Compressió i Cau. Conjunt de tècniques que permeten reduir el pes dels fitxers 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 millorar la velocitat de càrrega.

1. Servidor d'Hosting Web

El servidor web és un dels factors més importants a l'hora de garantir el bon funcionament i l'optimització de la teva botiga en línia 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 atendre les sol·licituds dels visitants. D'aquesta manera, la velocitat de càrrega del web, la visualització del contingut al navegador i l'agilitat en la resposta a les consultes a la base de dades seran molt més ràpides i eficients. 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, de manera que n'augmenta la confiança i, per tant, les vendes en línia.

1.1 Tipus de servidor web - (Compartit / Cloud)

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

Actualment existeixen diferents tipus d'allotjament per a una botiga en línia, i els més utilitzats són 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 què s'allotgen multitud de llocs web que comparteixen els mateixos recursos (vCores, Memòria RAM i HD). Els paràmetres de configuració, corresponents als recursos del servidor als quals pot accedir i fer ús el web, estan sempre limitats, de manera que no sempre és possible adaptar-los per cobrir els requisits de configuració o rendiment del web. Per aquest motiu es recomana aquest tipus d'allotjament web per a botigues relativament petites, que no disposin d'una gran cartera de productes i amb un nombre baix de visitants/clients.

b) Servidor Cloud - És un servidor virtual amb una alta disponibilitat i garantia de continuïtat del servei, gràcies a la redundància de la infraestructura sobre la qual està desplegat i al qual s'assignen uns recursos de maquinari exclusius (vCores, Memòria RAM, HD), que es poden escalar en qualsevol moment, cosa que permet adaptar-los constantment a les necessitats de creixement de la botiga en línia. Tots els recursos del servidor estan completament disponibles per a la botiga en línia, la qual cosa permet assignar-los totalment als requisits de programació, configuració i demanda de l'e-commerce. Aquest tipus de servidors Cloud suposen un cost més elevat de l'allotjament web a causa del seu major rendiment i qualitat, per la qual cosa es recomana el seu ús per a botigues en línia 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 nombre i la 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 atendre les consultes de la base de dades, càrrega del contingut web a la memòria RAM i visualització posterior al navegador. En resum, un valor més alt en el nombre i la velocitat dels vCores assignats al servidor es tradueix en un millor rendiment global de la nostra botiga en línia. Quan el nombre de vCores assignats al servidor arriba a més del 90% de la seva capacitat de procés, comença a patir sobrecàrrega, la qual cosa redueix considerablement la velocitat de càrrega de la botiga en línia. Per aquest motiu s'ha de proveir el servidor d'un nombre 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 atendre pics puntuals i evitar la sobrecàrrega de processos que poden provocar que el web es ralentitzi o fins i tot deixi de respondre. Es recomana que per a una botiga amb Prestashop el servidor Cloud disposi d'un mínim de 4 vCores amb velocitats superiors a 2 GHz.

b) Memòria RAM - La memòria RAM té un paper crucial en el rendiment de la teva botiga en línia. 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 generar el contingut de la pàgina. Aquest contingut es transfereix a la RAM, que al seu torn l'envia al navegador del visitant perquè el visualitzi.

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 garantir un rendiment òptim, et recomanem:

  • Proveir prou RAM: Assegura't que el teu servidor tingui prou RAM per gestionar el trànsit habitual de la teva botiga.
  • Considerar pics de trànsit: Reserva un marge de RAM addicional per absorbir possibles pics de trànsit, com ara promocions o campanyes publicitàries.
  • Recomanació per a Prestashop: Per a botigues en línia 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 més satisfacció i millors resultats per al teu negoci.

c) Capacitat i tipus de disc dur - Per optimitzar el rendiment de la teva botiga en línia, recomanem encaridament l'ús de discos SSD. Aquests discos ofereixen velocitats de lectura i escriptura de dades significativament superiors a les dels 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:

  • Més velocitat: Accés instantani a les dades, reduint els temps de càrrega de les pàgines.
  • Accés simultani: Capacitat per gestionar múltiples sol·licituds de dades alhora, ideal per a botigues amb molt de trànsit.
  • Eficiència superior: El controlador de memòria integrat de l'SSD gestiona les dades de manera intel·ligent, alliberant 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 allotjar el sistema operatiu, el programari 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 de disc.
  • A mesura que la teva botiga creixi, considera augmentar l'espai d'emmagatzematge per 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 més 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 mostrar el contingut. Aquest intercanvi de dades, conegut com a trànsit, té una mida 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. Un cop assolit 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:

  • Presta 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 de 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 conjuntament. Es configura Apache perquè s'executi darrere de Nginx, amb Nginx actuant com a 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 fer a través del fitxer .htaccess, que es troba al directori arrel del nostre web. En aquest fitxer podem definir quin serà el comportament del servidor web Apache per a tasques tan importants com l'ús de cau del navegador, augmentar la seguretat del web, protegir directoris, etc... així com optimitzar el tractament i el lliurament de les dades pel navegador, millorant notablement el rendiment del servidor i el posicionament SEO del nostre lloc web.

  • Ús de GZIP (Cal tenir instal·lat el mòdul Gzip al servidor Apache) El codi següent possibilita la compressió de la informació que lliura el servidor web, de manera que la disminució de la mida de les dades disminueix l'ample de banda necessari per mostrar el contingut de la botiga en línia, augmentant la rapidesa amb què es carrega el 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 carregar el contingut de la pàgina, reduint d'aquesta manera la quantitat de sol·licituds HTTP necessàries per 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 Cau (La dada “max-age” s'expressa en segons). La cau permet guardar al navegador del visitant còpies de les dades necessàries per mostrar el contingut del web, de manera que la primera vegada que el navegador accedeix al web, guarda localment una còpia de les dades lliurades pel servidor, que es reutilitzaran en posteriors peticions al mateix web i que, per tant, ja no es tornaran a sol·licitar al servidor, reduint l'ample de banda necessari per mostrar el contingut del web, reduint el consum de recursos del servidor i millorant la velocitat de càrrega de la nostra botiga en línia.
<FilesMatch "\.(php|html|htm|txt|html5|jpg|png|js|css)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
# Deshabilitar parámetros siguientes
<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 en línia la farem des del Dashboard del nostre servei d'Hosting amb SWPanel.

  • Definir un valor de durada de la Cau. Indica el període de temps durant el qual es guardaran les dades emmagatzemades a la cau del 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 fer en un període de temps determinat. Se sol utilitzar amb finalitats de seguretat per limitar la velocitat de resposta del servidor Nginx i protegir-lo contra possibles atacs de força bruta o DDoS, tot i que augmentar aquest valor pot millorar la velocitat de resposta del servidor Nginx i el rendiment global de la nostra botiga en línia. 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 què s'emmagatzemaran les dades de cau, a més d'altres paràmetres com la mida màxima del disc del servidor que s'utilitzarà per guardar les dades emmagatzemades a la cau per Nginx. Quan la mida de la cau arriba al límit, un procés anomenat administrador de cau elimina els fitxers que s'han utilitzat menys recentment perquè la mida de la cau 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 en 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 d'evitar-ne la 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 es poden augmentar lliurement per adaptar-los a les necessitats del nostre web. Aquest és un dels motius pels quals recomanem allotjar la teva botiga en línia en un Servidor Cloud, ja que aquest tipus d'allotjament permet configurar lliurement els valors dels paràmetres de PHP sense cap tipus de restricció. Els paràmetres de PHP es poden configurar a través del tauler de control de l'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. El 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 POST i GET. Generalment s'incrementa per permetre càrregues de fitxers grans. El definim a -1, la qual cosa 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 es poden acceptar durant les sol·licituds al servidor. En el cas de les botigues en línia multilingües, 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 de memòria RAM de què es disposi al 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 mida màxima permesa per a sol·licituds POST. Establirem un valor de 32M
post_max_size = 32M
  • upload_max_size: Estableix la mida màxima permesa per a la pujada de fitxers 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 de fitxer PHP recuperar dades d'ubicacions remotes mitjançant FTP o HTTP. Recomanem tenir activada aquesta opció, ja que existeixen mòduls i complements que necessiten connectar-se amb URL externes per dur a terme els seus processos. Establirem el 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 d'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 hosting, tal com es descriu en el següent Manual: Com ajustar els paràmetres bàsics del meu hosting en 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 a les taules, a més de processar i administrar-ne el contingut. Una bona configuració i un manteniment eficient de la base de dades són imprescindibles per garantir un rendiment òptim de la nostra botiga en línia amb Prestashop.

2.1 Configuració del servidor de Base de Dades

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

En un servidor Cloud SWPanel els paràmetres de configuració del motor de BD MariaDB es poden modificar des del seu Dashboard d'administració, on trobarem l'eina per modificar els ajustos bàsics del servidor.

a) Cau. Optimitzar el rendiment de la base de dades (BD) és tan crucial com optimitzar el contingut estàtic del teu lloc web. L'ús de cau a la BD permet emmagatzemar els resultats de consultes freqüents, evitant que el servidor hagi d'executar-les repetidament.

Beneficis clau de la cau de BD:

  • Reducció de la càrrega del servidor: En no haver de repetir consultes, s'allibera el servidor de feina innecessària.
  • 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 BD optimitzada contribueix a un funcionament més fluid del teu lloc web.

Consideracions importants:

  • Augmentar la mida de la cau de la BD implica un major consum de memòria RAM.
  • És fonamental monitoritzar el consum de recursos i ajustar la RAM del servidor en conseqüència.
  • Com més RAM assignis al servidor, més grans seran els valors de cau que podràs configurar.

Recomanacions per a Prestashop:

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

En implementar una estratègia de cau eficient per a la teva BD, pots aconseguir un increment notable en el rendiment de la teva botiga en línia, 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 BD MariaDB recomanats per a un servidor amb 4 GB de RAM són els següents:

  • query_cache_type: habilita la cau.
query_cache_type = ON
  • query_cache_limit: indica la mida màxima de resultats per consulta que es pot emmagatzemar a la cau, és a dir, per a cada consulta quanta mida del total de la cau 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 cau de les consultes; si l'establim en 0 estarem deshabilitant la cau.
query_cache_size = 32M
  • table_open_cache: indica el nombre de taules que es poden tenir obertes a la cau.
table_open_cache = 1000
  • thread_cache_size: indica quantes connexions noves poden usar consultes de cau en lloc d'executar la consulta al disc.
thread_cache_size = 80
  • host_cache_size: nombre de hosts que emmagatzemarem a la cau.
host_cache_size=10000

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

  • read_buffer_size: Estableix la mida del búfer per a l'optimització de les lectures de dades emmagatzemades a les taules.
read_buffer_size = 2M
  • read_rnd_buffer_size: Estableix la mida del búfer per llegir taules en mode Full Table Scan i la lectura de les files ordenades amb l'ordre SORT.
read_rnd_buffer_size = 1M
  • join_buffer_size: És la mida 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 mida màxima del búfer usat per ordenar els resultats de l'ordre SORT directament a la memòria cau (RAM del servidor) en lloc de crear fitxers temporals al disc dur amb el mateix resultat de l'ordenació de les dades.
sort_buffer_size = 2M
  • innodb_buffer_pool_size: És la mida màxima del búfer utilitzat pel motor de BD per emmagatzemar els índexs i les dades de la base de dades. Per a un servidor en què s'executin simultàniament el servidor Web i el servidor de BD, es recomana assignar a aquesta variable de configuració entre el 50% - 60% de la memòria RAM total disponible al 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àmetres addicionals. Per incrementar el rendiment de la BD podem modificar altres paràmetres com:

  • performance_schema: En BD en producció deshabilitarem aquesta funció, ja que es recomana usar-la únicament en entorns de pre-producció i per a la monitorització dels esdeveniments que ocorren al motor de BD.
performance_schema = OFF
  • max_heap_table_size: És la mida màxima d'una taula que pot ser creada per l'usuari de BD i emmagatzemada a la memòria.
max_heap_table_size = 32M
  • tmp_table_size: Especifica la mida màxima d'una taula temporal creada a la memòria durant l'execució d'una consulta complexa. Quan s'assoleix aquesta mida màxima especificada, el motor de BD 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 BD del tipus phpMyAdmin, HeidiSQL, MySQLWorkBench, etc,.. Per realitzar aquest tipus d'operacions sobre la BD 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… el contingut de les quals no és essencial per al funcionament de la botiga en línia (visites, connexions, logs…). Aquestes taules se solen omplir de registres diàriament, per la qual cosa arriben a assolir una mida considerablement gran si no es netegen sovint. Detallarem aquelles taules dinàmiques sobre les quals s'ha de fer neteja de manera periòdica i no deixar que augmentin molt la seva mida.

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 netejar aquestes taules podem utilitzar la consulta SQL següent:

TRUNCATE TABLE [nombre de la tabla];

Per exemple, si volem 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 BD com HeidiSQL inclouen eines integrades per a l'optimització i la reparació de les taules de la BD, tot i que també es poden executar manualment algunes accions a partir de consultes SQL senzilles:

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

OPTIMIZE TABLE [nombre de la tabla];

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

REPAIR TABLE [nombre de la tabla];

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

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

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

  • Prestashop Database Optimization (Gratuït): Permet netejar els registres guardats a la BD 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 de les taules de la base de dades corresponents a les taules connections_source, connection_page, cart, etc...

  • Ultimate Database Optimizer: (De pagament) Monitoritza, optimitza, repara, desfragmenta, neteja 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 BD.

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, Cau)

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

Smarty

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

  1. Compilació de plantilles Per millorar el rendiment del front-end, PrestaShop emmagatzema a la cau les pàgines HTML, i es poden definir 3 modes d'actuació:
  • No recompilar mai els fitxers de les plantilles. El comportament normal: Les pàgines HTML són compilades i emmagatzemades a la memòria cau del navegador i es mostren tal com són, fins i tot si el tema ha canviat des d'aleshores. Es recomana aquesta opció si la botiga està en producció i no es faran canvis visuals a nivell de fitxers de la plantilla. És l'opció habilitada per defecte i la que proporciona més rendiment a la botiga, millorant la velocitat de càrrega del lloc.
  • Recompilar les plantilles quan els fitxers siguin modificats. PrestaShop és capaç de saber si un tema ha estat modificat, de manera que l'aplicació només torna a recompilar els fitxers de les plantilles si detecta que se n'ha modificat el contingut. Recomanem aquesta opció si de tant en tant es fan modificacions als fitxers 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 recarregues la pàgina. El sistema Smarty compilarà els fitxers 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ó només és recomanable tenir-la activada mentre es fan treballs de manteniment, desenvolupament o modificacions importants al lloc web.
  1. Cau: Aquesta opció fa possible que puguis desactivar la cau de tots els fitxers, i no únicament els que pertanyen als fitxers de la plantilla. Desactiva aquesta opció només per a la depuració de mòduls i/o plantilles. En qualsevol altre cas, l'has de deixar activa. L'opció "Esborrar la cau Smarty" fa possible esborrar la memòria cau amb un sol clic de ratolí, en lloc d'haver d'anar a esborrar els fitxers des del servidor FTP. Controla l'ús de fitxers de cau per al contingut que es mostra al Frontend i les consultes a la base de dades. És molt important que aquesta opció estigui activada, de ho contrari es experimentarà una disminució del rendiment del lloc web. Només es recomana desactivar-la per a tasques de depuració d'errors.

  2. Sincronització Multiservidor. Aquesta funció permet la sincronització de la cau 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 a la cau en tots els servidors, evitant discrepàncies i millorant l'eficiència general del sistema.

  3. Esborrar la cau. - Aquesta és l'opció recomanada per a la majoria de les botigues en línia. En esborrar la cau després de cada modificació (productes, disseny, configuracions), s'assegura que els visitants vegin sempre la versió més actualitzada del lloc. Aquesta pràctica garanteix la coherència entre el contingut mostrat i la informació emmagatzemada a 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 a PrestaShop, i així poder avaluar amb precisió d'on prové un error. Aquesta secció només s'ha d'usar per al control i la depuració d'errors, ja que el mode debug alenteix la càrrega dels elements de la botiga i mostra els missatges d'error existents al Frontend. Per aquesta raó és molt important tenir totes les seves opcions desactivades mentre la botiga està en producció.

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

Opcions del Mode Depuració:

  • Desactivar els mètodes de sobrecàrrega (overrides). Moltes de les característiques de PrestaShop poden ser sobreescrites. 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 una altra que no té accés a la teva botiga, però que necessita saber què està passant tècnicament.

Mòduls

Desactivar els mòduls no natius. Els mòduls natius de PrestaShop són testats amb exhaustivitat, per la qual cosa no haurien de presentar cap tipus 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 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 diferents mides, 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 Cau.

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 fitxers textuals del mateix tipus en un fitxer més gran, la qual cosa redueix el nombre de fitxers a descarregar; comprimeix el fitxer utilitzant l'algoritme Zip, cosa que fa que es descarregui més ràpidament; finalment, s'emmagatzema a la cau el fitxer comprimit, de manera que el servidor no ha de fer aquest procés cada vegada que es carrega una pàgina, la qual cosa alleugereix la càrrega sobre el processador del servidor.

Opcions (CCC) Combinació, Compressió i Cau:

  • "Smart cache" per als fulls d'estil (CSS). Els fitxers CSS són fitxers de text, que es poden combinar i comprimir de manera segura. Aquesta opció unifica tots els fulls d'estil amb codi CSS procedents de mòduls, plantilla i codis personalitzats i els comprimeix en un sol fitxer per reduir-ne el pes i augmentar la velocitat de lectura del contingut.

  • "Smart cache" per al codi de JavaScript. Els fitxers JavaScript són fitxers de text, però la seva combinació de vegades pot resultar problemàtica. Assegura't de provar-ho 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 fitxer per reduir-ne el pes i augmentar la velocitat de lectura del contingut.

  • Optimització d'Apache. Aquest ajust de configuració modificarà el fitxer de configuració del servidor web amb la finalitat de fer-lo més eficient per a CCC. Prestashop insereix codi avançat al fitxer .htaccess ubicat al directori principal de la botiga, per fer ús de la cau del navegador i del 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 només es desactivin per a la depuració d'errors o durant les fases de desenvolupament de la botiga en línia.

Servidors de mitjans (Utilitzar només quan CCC està activat)

Aquesta secció permet redirigir part del trànsit de la teva botiga (imatges i fitxers de vídeo, per exemple) a altres servidors sota el teu control, a través d'altres dominis o subdominis – generalment, els fitxers 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 del web en diferents servidors CDN. Això es tradueix en ubicar elements com les imatges, la 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ò fa 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 del web és extraordinari.

En els servidors Cloud amb SWPanel pots activar automàticament el servei de CDN sense 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 per al teu servei d'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 memòria cau de Cloudflare

Cau

La cau 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 Cau de Prestashop:

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

Requisits Previs:

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

Consideracions sobre el Contingut Dinàmic:

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

Opcions de Configuració:

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

Usuaris de SWPanel:

Recomanacions clau:

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

En resum, la cau del servidor és una eina poderosa per millorar el rendiment de la teva botiga en línia, però la seva configuració i gestió requereixen atenció als detalls.

3.2 Mòduls de Prestashop

És habitual ampliar, afegir o personalitzar les 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 evitar que l'ús d'aquests mòduls provoqui la disminució de rendiment del servidor és imprescindible proveir-lo dels recursos de maquinari necessaris per assumir la càrrega extra.

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

  • 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 complir 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 cau, 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 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 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-Click Upgrade que, a més, generarà una còpia de seguretat prèvia de la teva botiga en línia com a part del procés d'actualització, de manera que podràs restaurar-la a l'estat original si es produeix algun error inesperat.

4 Imatges web

Les imatges són un dels elements principals d'una pàgina web o botiga en línia. En el cas de les botigues en línia, cada producte ha de contenir una o diverses imatges. Aquests elements, com passa amb la resta, tenen una mida determinada. Com més mida i dimensió tingui una imatge, més càrrega de treball genera al servidor per poder processar aquests elements i, per tant, més gran serà el temps de càrrega.

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

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

  • JPG: Format d'imatges més reconegut i usat per guardar fotos. A causa de la seva compressió, es tracta d'un format que perd qualitat cada vegada que en redueixes la mida.
  • PNG: Amb ell pots afegir transparències i, a diferència del JPG, és un format de compressió sense pèrdues, ideal per 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 algoritme de compressió, genera imatges de menor mida que JPG / PNG 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.

Un cop decidit el format en què guardarem les imatges per a la nostra botiga en línia, hem de prestar especial atenció a la seva resolució. Si l'espai reservat per visualitzar una imatge és de 250px hem de crear una imatge exactament d'aquesta mida, ja que, de lo contrari, si la imatge és per exemple de 500px la seva visualització continuarà sent de 250px i l'únic que aconseguirem serà augmentar el pes del lloc web. Per aquest motiu aconsellem que creïs totes les imatges a la mida real en què es mostraran al teu web.

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