The search engine Google isn’t only found at http://google.com/, Google also has local versions. For example http://google.ca/, http://google.com.au/ and http://google.co.uk/, are the Canadian, Australian and British versions respectively.
These "versions" of Google vary in that they "prefer" sites local to those engines.
Each Local Google query page has a selection below the query entry field that doesn’t appear on the main Google version which allows the user to select either ‘search the web’ or ‘search pages from <country name>’. If the visitor selects ‘search pages from <country name>’ they will only see results which Google judges as being local to the country in question.
Many webmasters are unaware of what is required to be listed as being "from" their own country. This article discusses what you need to know to have your site appear in a Google Local search results page.
When Google tries to determine whether your site is appropriate for each of these country-specific search results, it will firstly examine the TLD of your domain name. For example if you have a site called mysite.co.in, then you will appear when a searcher queries at google.co.in for Indian results.
If you don’t pass this test, Google will give you a second chance and look at the physical location of where your site is hosted. For example, a site hosted in Canada will appear to be a Canadian site to Google and will appear in the results set for a query on google.ca for Canadian pages. (Its actually a little more complicated than that; it depends on the location of the company that owns the IP address used for hosting your site. But 90% of the time the location matches the ownership, so the above description is an adequate approximation.)
So, when I am asked the question "why doesn’t my site appear in the "my country" Google results?’ I answer by first asking if the domain name has a local TLD and then if they are hosted in their country.
If the answer to both is ‘no’ then I explain they need to either buy a local domain name or move their hosting and then (after a delay while Google becomes aware of the change) they will appear in the desired result set.
Note that the major exception to this is the US – while Google has the .us domain name, it diverts to the general google.com site, so US residents cannot use Google to find local sites.
Getting your website to appear in the local search results as well as the general Google results isn’t hard, but you need to know what you are doing.