syscacheobjects is cleared randomly
A couple of things to check into. These two you could capture with a server-side trace or extended events (though I haven't used the latter for this specific task):


explicit calls to DBCC FREEPROCCACHE or DBCC FREESYSTEMCACHE
certain explicit calls to RECONFIGURE (or RECONFIGURE WITH OVERRIDE)


If you see these calls happening often, you'll want to figure out where they're coming from and why, because they absolutely flush the procedure cache.

Also check the error log for events containing the text "cachestore flush":

EXEC xp_readerrorlog 0, 1, N'cachestore flush';


If you see these events make sure the database in question does not have the option AUTO_CLOSE on. You may want to make sure this isn't the case anyway, and it is often turned on with Web Edition since this edition is typically used to hold a lot of infrequently-used databases at a web host.