WordPress, internally, enable plugins to register for a periodic call used to send newsletter, clean caches, retrieve external content and so on. WordPress it self relies on that system, for example to publish future posts.
This “cron” system, under some circumstances it can fully stop or be very imprecise. Reasons are low traffic sites, caches, configurations and so on.
The first check you must do to be sure the WordPress cron can work, if to open your wp-config.php file and assure there is no a line like
if present, remove it.
The second step is to setup an external HTTP call to trigger priodically the cron system of WordPress
. It is easy to do (and your tech support can help you, so ask them!).
If you are hosted on Hostgator, on their control panel (called cpanel – its address was sent on account activation email) you can setup a cron job. A cron job is something will be execute periodically. What we need is an HTTP call to the file wp-cron.php of your WordPress installation. It can be make with:
wget --delete-after http://www.yourdomain.com/wp-cron.php
if the blog is installed in a sub folder, the call must be changed to something like:
wget --delete-after http://www.yourdomain.com/subfolder/wp-cron.php
You can try that address (http://www.yourdomain.com/wp-cron.php) to see if a blank page is returned (it’s ok) or if there is some error report (the address is not correct).
To make Newsletter work smoothly, this call should be done every 5 minutes. To setup that, see the Hostgator cpanel screen shot below (copy the values exactly as in the picture):
Using a free cron service
If you provider cannot be of help in setting up a cron job, you can try to use a free service (usually they have even a counter professional part).
It’s ultra easy to setup, and the clear “URL to call” configuration must be set to http://www.yourdomain.com/wp-cron.php.
Other can be (I have not signed up with them to see the control panel):