I optimize monthly, just before my critical backups; additionally, I optimize all tables in the database.
There is however a reason to not do any tasks daily, as it locks the tables until it has been completed; which could affect users utilizing your forum at that time and corruption could start occouring should a lot of users be trying to post in that timeframe.