Guide

Set up Magento 2 cron and keep the indexers moving.

Cron sends the emails, runs the indexers and cleans up. Install it for the right user, switch the indexers to schedule, and check that the jobs really run. Checked on Nov 5, 2026.

Step 1Cron

Install the crontab as the store's user

Run it as the Linux user that owns the Magento files, never as root, or the cache and generated files end up owned by the wrong user.

On your server

bin/magento cron:install
crontab -l

crontab -l should show a block between #~ MAGENTO START and #~ MAGENTO END.

Step 2Indexers

Switch the indexers to Update by Schedule

On schedule, Magento indexes only what changed, in the background, instead of on every save in the admin.

On your server

bin/magento indexer:set-mode schedule
bin/magento indexer:status

Step 3Cron

Run it once by hand

A manual run shows errors at once, instead of hiding them in a log.

On your server

bin/magento cron:run
tail -n 50 var/log/cron.log

Step 4Check

Check that the jobs really run

The cron_schedule table records every job. Recent rows with status success mean cron is healthy; many rows stuck in pending or missed mean it is not running often enough.

In the store's database

SELECT job_code, status, scheduled_at, finished_at
FROM cron_schedule
ORDER BY scheduled_at DESC
LIMIT 20;

Ask your AI "Is Magento cron running?" and it reads the same table for you.

Questions, answered.

ShopWhizzy support Magento since 2008

Talk to us
Every minute. bin/magento cron:install writes the line for you.
Magento sends many emails through cron. If cron does not run, emails, indexers and price rules all wait.
Run bin/magento cron:remove as the same user. It removes only Magento's block from the crontab.
Yes, for the store's own user, and every health report checks that it still runs.

Bring your store over. We move it for free.

Pick a plan, pick a platform, and your store is online before the coffee cools.

Prices include VAT. Server support on every plan.