In a latest video by Google's Matt Cutts, he said that geo-location is not spam. Cloaking and showing GoogleBot content that you wouldn't show users is spam. But showing geo-location based content to users, while showing that content to GoogleBot, is not spam.
In short, if you are going to geotarget your content, make sure to serve GoogleBot the content you would serve any user who is based in the United States. Serve GoogleBot based on the location of the IP address it is coming from.
Re-directing users based on location is NOT spam. People don't have to use these services or give away their location if they don't want. In my experience, I'm willing to give away my location and certain other bits of personal info, so long as what I get back is worthwhile. The main point is not to treat googlebot differently than your human visitors. This question is also related to the "cloaking" issue which is what Matt is referring to when he said in the video that "I've said this before...”
“Whenever users come in, we send them to what we think is the most appropriate page based on a lot of different signals, but usually the IP address of the actual user,” he adds.
The point is, just treat Googlebot like all other user, and you should be okay.
One must make sure you provide the equal content to Googlebot that you dish up to end users. Several years in the past this used to be a spam method where it would illustrate Googlebot one version of a webpage, while sending the users to totally dissimilar version, frequently that had not anything to do with what Googlebot thought it did.
Google's Distinguished Engineer Matt Cutts clarified unerringly how geo-targeting ought to be used by webmasters so that there are no troubles from a Google penalty standpoint.
Geolocation is not spam. As long as you are showing "oh someone is coming from a French IP address and let’s direct them to the French version of my page or the French domain for my business", that is totally fine. "Someone comes in from a German IP address I’ll redirect them over to the German version of my page" that’s totally fine.
He also made it unambiguous that you shouldn't treat Googlebot in a different way than you might at regular user approaching into your site.
“So if Googlebot comes in, you check the IP address, and imagine we’re coming from the United States, just redirect Googlebot to the United States version of the page, or the dot-com, or whatever it is you would serve to regular United States users. So geolocation is not spam."
Cutts in addition said that Google treats traffic in a different way based on geolocation, "so that if the user comes in, they send them to what they think is the most appropriate page based on a lot of different signals, but usually the IP address of the user."
When it comes to the diverse content you're serving to Googlebot versus the end user, Cutts stated:
Showing X content to search engines and Y content to users, that is cloaking, that’s showing different content to Google than to users, and that is something I would be very careful about.
But, as long as you’re treating Googlebot just like every other user, whatever IP address they come from when you’re geo-locating, as long as you don’t have special code that looks for the user agent of Googlebot or special code that looks for the IP address of Googlebot, and you just treat Googlebot exactly like you would treat a visitor from whatever country were coming from, then you’ll be totally fine.
Because you’re not cloaking you’re not doing anything different for Google, you’re doing the exact same thing for Google that you would do for any other visitor coming from that web address. As long as you handle it that way you’ll be in good shape you won’t be cloaking and you’ll be able to return nicely geo-located pages for Google and search engines without any risk whatsoever.
So when it comes to geolocation, you'll be fine as long as you make sure that what you serve to Googlebot the same as what you would serve to a user from the same country that Googlebot is coming from.