Possible reasons :
1.
When you have your index on schedule you need to configure a Cron Job. A wrongly set cron job can result in frontpage desyncs (not backend desyncs).
More information on Crons page of Magento
Short explenation : If you use a Webhost ask them where to put the .crontab file
and how they read it.
In the Crontab you need to define how often and where it needs to use which commands and where to log it :
Mine :
*/5 * * * * php /site/www/bin/magento cron:run >> /site/www/var/log/magento.cron.log&
*/5 * * * * php /site/www/update/cron.php >> /site/www/var/log/update.cron.log&
*/5 * * * * php /site/www/bin/magento setup:cron:run >> /site/www/var/log/setup.cron.log&
site/www is the default root path of my magento installation. Also be sure your index configurations in your admin section are matching this since they queue what to do in your database cron_schedule
2. --> !!!
Deleting Invoices/orders/credits.
I noticed that you first need to cancel an order/invoice before deleting them.
If you do not do so the stock won't be put back. This can result in a different Stock after a while.
So just never delete something. Create an invoice when its sold and if it returns make a Credit like you should. Do not delete orders but cancel them and then delete them.
If you have any modules that delete orders or anything like that they need to cancel it first too!
3.
Write access database. Well if your database is not updating at all you should check permissions and see if the user you are using has indeed writing rights in your database.
This would give an error on installation and every save though so its a long shot.
4.
Front-end desyncs can also occur if your cache permission is not well configured.
Propably number 2 is causing your issue but the other things i added as extra information.
Let me know if 2 is the case for you. Usually is.