🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo configurar el crontab en PrestaShop para tareas programadas

Actualizado el 12 de noviembre de 2025

¿Qué es el cron y por qué tu PrestaShop lo necesita?

Si alguna vez has visto avisos en tu panel de administración de PrestaShop sobre "tareas programadas" o "cron", es normal que sientas un poco de vértigo. Pero no te preocupes, porque hoy vamos a desmitificar este tema de una vez por todas.

Un cron es, en esencia, un "despertador" que tiene tu servidor. Le dice al sistema: "cada cierto tiempo, ejecuta este archivo o comando". En el contexto de PrestaShop, esto es fundamental para que muchas funciones automáticas funcionen sin que tú tengas que hacer nada manualmente.

Piensa en ello como el sistema de riego automático de un jardín: tú lo programas una vez y él se encarga de regar las plantas a las horas que le indicaste. Pues bien, el cron PrestaShop hace exactamente eso con tu tienda online: genera tus sitemaps, envía newsletters, actualiza divisas, procesa pedidos pendientes o limpia la caché, todo sin que tengas que estar pendiente.

En este artículo te voy a explicar, paso a paso y sin tecnicismos innecesarios, cómo configurar el crontab PrestaShop en diferentes entornos. Tanto si tienes un hosting compartido como si gestionas tu propio servidor VPS, aquí encontrarás la solución.

¿Qué tareas necesitan cron en PrestaShop?

Antes de lanzarnos a configurar nada, conviene que sepas qué es lo que vas a "automatizar". PrestaShop utiliza el cron para varias cosas importantes:

  • Generación del sitemap: Para que Google y otros buscadores encuentren tus productos, necesitas un archivo XML actualizado. El cron lo regenera periódicamente.

  • Envío de emails transaccionales: Confirmaciones de pedido, recuperación de carritos abandonados, newsletters... Todo esto se procesa en cola y necesita el cron para enviarse.

  • Actualización de divisas y tipos de cambio: Si vendes en varias monedas, el cron se encarga de refrescar los valores.

  • Limpieza de archivos temporales y caché: Mantener tu tienda rápida y ligera es esencial, y el cron ayuda a eliminar residuos.

  • Procesamiento de pedidos: En algunos módulos de pago o logística, el cron verifica el estado de los pedidos y actualiza su información.

  • Módulos de terceros: Muchos módulos de PrestaShop (como los de reseñas, feeds de productos o sincronización con marketplaces) requieren su propio cron.

Localizar el archivo cron de PrestaShop

Desde PrestaShop 1.6 en adelante, el sistema incluye un archivo llamado cron.php en la carpeta raíz de tu instalación. Es el encargado de ejecutar todas las tareas internas y las de los módulos.

La ruta típica sería algo así:

https://tudominio.com/cron.php

Si tu tienda está en una subcarpeta, sería:

https://tudominio.com/tienda/cron.php

[TIP] Puedes comprobar que el archivo existe escribiendo esa URL directamente en tu navegador. Si ves un mensaje como "Token is invalid" o "Token no válido", es que el archivo está ahí y funciona correctamente.

Configurar el crontab PrestaShop desde el panel de administración

PrestaShop tiene una sección específica para gestionar el cron desde el back office, lo cual es ideal si no te sientes cómodo con la línea de comandos.

Paso 1: Accede a la configuración avanzada

Dentro de tu panel de administración, ve a Parámetros avanzados > Base de datos o directamente a Parámetros avanzados > Rendimiento, según la versión. En PrestaShop 1.7 y 8.x, la opción se encuentra en Parámetros avanzados > Base de datos y luego en la pestaña Cron.

Paso 2: Copia la URL del cron

En esa pantalla verás una URL larga que incluye un token de seguridad. Algo como:

https://tudominio.com/cron.php?token=abcdef123456&...

Esa URL es la que el sistema operativo debe ejecutar periódicamente. Cópiala, porque la necesitarás más adelante.

Paso 3: Activa el cron interno (opcional)

PrestaShop también tiene un "cron interno" que simula las tareas cuando hay visitas a la tienda. Aunque es útil en hosts muy restrictivos, no es recomendable para tiendas con tráfico bajo, porque las tareas podrían no ejecutarse nunca.

[INFO] El cron interno se activa desde Parámetros avanzados > Rendimiento > "Activación del cron". Si lo activas, PrestaShop intentará ejecutar las tareas cuando un usuario visite la tienda. No es fiable al 100%, así que mejor usar el cron del servidor.

Configurar el crontab PrestaShop en cPanel (hosting compartido)

La mayoría de los alojamientos compartidos usan cPanel, un panel de control muy visual y fácil de usar. Sigue estos pasos:

Paso 1: Accede a "Tareas de cron"

Dentro de cPanel, busca la sección Avanzado o Progresivo y haz clic en Tareas Cron (Cron Jobs).

Paso 2: Define la frecuencia

cPanel te pide dos cosas: el correo electrónico para recibir avisos y la frecuencia. Te recomiendo que pongas tu email y que selecciones una frecuencia de cada 5 minutos o cada 15 minutos, dependiendo de la carga de tu tienda.

Puedes usar la interfaz visual para seleccionar los minutos, horas, días, etc. Si quieres hacerlo manualmente, la línea estándar sería:

*/5 * * * *

Esto significa "cada 5 minutos".

Paso 3: Introduce el comando

En el campo de Comando (Command), debes escribir la instrucción que ejecutará la URL. Una forma segura de hacerlo es usando wget o curl. Te explico ambas:

Opción A con wget:

wget -q -O /dev/null "https://tudominio.com/cron.php?token=TU_TOKEN"

Opción B con curl:

curl -s "https://tudominio.com/cron.php?token=TU_TOKEN" > /dev/null 2>&1

[WARNING] Si usas wget o curl, asegúrate de que tu hosting tenga instalado alguno de estos programas. La mayoría lo tienen, pero si no funciona, prueba con la otra opción.

Paso 4: Guarda y verifica

Haz clic en Añadir tarea cron y listo. Puedes comprobar si funciona visitando la URL manualmente y viendo si las tareas se ejecutan (por ejemplo, regenerando el sitemap).

Configurar el crontab PrestaShop en un VPS o servidor dedicado (Linux)

Si tienes acceso SSH a tu servidor, el proceso es aún más controlable y preciso. Aquí es donde realmente hablamos de crontab PrestaShop en su forma más pura.

Paso 1: Conéctate por SSH

Abre tu terminal y conéctate a tu servidor:

ssh usuario@tudominio.com

Paso 2: Edita el crontab

Escribe el siguiente comando para editar las tareas cron del usuario actual:

crontab -e

Si es la primera vez, te pedirá que elijas un editor. Selecciona nano (más fácil para principiantes) o vim si ya lo conoces.

Paso 3: Añade la línea de cron

Al final del archivo, añade la siguiente línea (ajusta la URL con tu token):

*/5 * * * * wget -q -O /dev/null "https://tudominio.com/cron.php?token=TU_TOKEN"

O si prefieres usar PHP en lugar de wget (más eficiente a veces):

*/5 * * * * php /ruta/completa/hasta/tu/tienda/cron.php >/dev/null 2>&1

[INFO] Para saber la ruta completa de tu tienda, usa el comando pwd dentro de la carpeta de PrestaShop. Normalmente será algo como /home/usuario/public_html.

Paso 4: Guarda y sal

Si usas nano, pulsa Ctrl + O para guardar y Ctrl + X para salir. Si usas vim, escribe :wq y Enter.

Paso 5: Verifica que está activo

Puedes listar tus tareas cron con:

crontab -l

Deberías ver la línea que acabas de añadir.

[TIP] Para asegurarte de que el cron se ejecuta correctamente, puedes redirigir la salida a un archivo de log. Por ejemplo:
*/5 * * * * wget -q -O /dev/null "https://tudominio.com/cron.php?token=TU_TOKEN" >> /var/log/prestashop_cron.log 2>&1

Configurar el crontab PrestaShop en Syspanel (HestiaCP)

Si tu hosting o VPS utiliza el panel de control Syspanel (anteriormente conocido como HestiaCP), el proceso es muy visual y sencillo. Recuerda que el acceso a este panel se realiza a través del puerto 2106.

Paso 1: Accede a Syspanel

Abre tu navegador y escribe:

https://tudominio.com:2106

Inicia sesión con tus credenciales de administrador.

Paso 2: Navega a la sección de Cron

En el menú lateral, busca la opción Cron o Tareas programadas. Es posible que esté dentro de la sección de tu usuario o del dominio concreto.

Paso 3: Crea una nueva tarea

Haz clic en Añadir tarea cron o el botón equivalente. Verás un formulario con campos como:

  • Minuto: puedes poner */5 para cada 5 minutos.
  • Hora: * para todas las horas.
  • Día del mes: *.
  • Mes: *.
  • Día de la semana: *.
  • Comando: Aquí es donde pones la instrucción.

En el campo de comando, introduce:

wget -q -O /dev/null "https://tudominio.com/cron.php?token=TU_TOKEN"

Paso 4: Guarda la tarea

Pulsa Guardar y la tarea quedará registrada. Syspanel te mostrará la línea completa del cron para que puedas revisarla.

[TIP] Syspanel también te permite ver el historial de ejecuciones de cada tarea, lo cual es muy útil para depurar problemas.

Errores comunes y cómo solucionarlos

Aunque hayas seguido todos los pasos, a veces las cosas no salen a la primera. Aquí tienes los problemas más habituales:

El cron no se ejecuta

  • Comprueba el token: La URL del cron incluye un token de seguridad. Si la copiaste mal, PrestaShop la rechazará. Vuelve a copiarla desde el back office.

  • Permisos de archivo: Asegúrate de que el archivo cron.php tenga permisos de lectura (644 suele ser correcto). Si está en 600, el servidor podría no leerlo.

  • Firewall o bloqueos: Algunos hosts bloquean las peticiones externas a cron.php por seguridad. Si usas wget o curl, prueba con la versión de PHP local.

Las tareas se ejecutan pero no hacen nada

  • Módulos desactivados: Si un módulo tiene su propio cron y está desactivado, no se ejecutará. Actívalo desde el back office.

  • Zona horaria incorrecta: El cron usa la hora del servidor, no la de tu tienda. Si tienes una diferencia grande, las tareas se ejecutarán en horarios "raros" para ti.

La URL del cron da error 404

  • Ruta incorrecta: Verifica que la URL apunta a la carpeta correcta donde está instalado PrestaShop.

  • .htaccess: Si tienes reglas de reescritura agresivas, podrían estar bloqueando el acceso a cron.php. Añade una excepción temporal para probar.

Preguntas frecuentes (FAQ)

¿Con qué frecuencia debo ejecutar el cron?

Depende de la tarea. Para el sitemap, una vez al día es suficiente. Para carritos abandonados o emails, cada 5-15 minutos es lo ideal. Te recomiendo empezar con */5 * * * * (cada 5 minutos) y ajustar si notas carga en el servidor.

¿Puedo usar el cron de PrestaShop sin acceso al panel del hosting?

Sí, existen servicios externos de cron como cron-job.org o EasyCron que ejecutan la URL de tu cron desde sus servidores. Solo tienes que registrarte, añadir tu URL y configurar la frecuencia. Son gratuitos y funcionan muy bien.

¿El cron afecta al rendimiento de mi tienda?

Si lo configuras con demasiada frecuencia, puede consumir recursos del servidor. Un intervalo de 5 minutos es un buen equilibrio para la mayoría de tiendas. Si tienes una tienda muy grande, quizás necesites 15 o 30 minutos.

¿Y si tengo varias tiendas en el mismo servidor?

Cada tienda necesita su propio cron con su token único. No compartas la misma URL entre tiendas, porque podrían mezclarse los datos.

¿Cómo sé si el cron está funcionando?

La forma más fácil es activar el log de PrestaShop en Parámetros avanzados > Base de datos > Cron y ver las últimas ejecuciones. También puedes comprobar si el sitemap se actualiza con la fecha actual.

Conclusión final

Configurar el crontab PrestaShop no es tan complicado como parece. Solo necesitas tener claro tres cosas: la URL de tu cron, la frecuencia adecuada y el método para ejecutarlo (wget, curl o PHP). Con esta guía, ya tienes todo lo necesario para automatizar las tareas de tu tienda y olvidarte de hacerlas manualmente.

Recuerda que el cron es el corazón que mantiene tu tienda "viva" en segundo plano. Sin él, muchas funciones se quedan congeladas y tu tienda podría perder oportunidades de venta o posicionamiento SEO.

[INFO] Si tu cron sigue sin funcionar después de varios intentos, contacta con tu proveedor de hosting. Ellos pueden verificar si hay restricciones en la ejecución de tareas programadas y ayudarte a configurarlo correctamente.

Espero que este artículo te haya sido de gran ayuda. Ahora ya sabes cómo dominar el cron PrestaShop y las tareas programadas PrestaShop. ¡Manos a la obra!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel