This is a C&P of another answer I gave to a different question, though it fits here too:
A solution for your problem might be to check whether a real user or the Facebook bot is visiting your page. If it is the bot, then render only the necessary meta data for it. You can detect the bot via its user agent which according to the Facebook documentation is:"facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"
The code would look something like this (in PHP):
function userAgentIsFacebookBot() {
if ($_SERVER['HTTP_USER_AGENT'] == "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)") {
return true;
}
return false;
}