Site properties, loaded by the server and then cached for faster access, are used to hold data that has to be available across the module. It is a configuration-related information that should be updated manually in Service Center. It is possible to update them programmatically, but it is not recommended: site properties are not designed to be a “global variable” and store information that changes frequently. For example, don't hold the timestamp of the last sync or a counter for processed elements in these properties.
Updating site properties invalidates the cache and requires the properties to be reloaded from the database. This causes unnecessary database overhead for all parts of the application using site variables.
Place non-configuration information that needs to be changed in a specific database table. This way the data can be updated without invalidating the cache and without degrading the performance of the app.