I would suggest looking into Google's client side geocoding:
https://developers.google.com/maps/articles/geocodestrat
As the documentation says:
"As geocoding limits are per user session, there is no risk that your application will reach a global limit as your userbase grows. Client-side geocoding will not face a quota limit unless you perform a batch of geocoding requests within a user session. Therefore, running client-side geocoding, you generally don't have to worry about your quota."