I wanted to know some demographics about my website and I look at Alexa.com/siteinfo/koolbusiness.com which reports about 50% of the traffic is from India. But when I look with google analytics, 75% is from India. Who should I believe?
Believe your Google Analytics, because it takes geographical data directly from all your visitors who have loaded your analytics script.
Here's instead how Alexa collects data:
Alexa's traffic estimates are based on data from our global traffic panel, which is a sample of millions of Internet users using one of over 25,000 different browser extensions. In addition, we gather much of our traffic data from direct sources in the form of sites that have chosen to install the Alexa script on their site and certify their metrics. However, site owners can always choose to keep their certified metrics private.
They take data only from people who uses browser extensions with their script. So, they have a sample, not "all" your traffic. For that reason, for smaller websites there are more limits
There are limits to statistics based on the data available. Sites with relatively low measured traffic will not be accurately ranked by Alexa. We do not receive enough data from our sources to make rankings beyond 100,000 statistically meaningful
Simple answer? Alexa is pure junk. I detail some of this in this answer: Why do Alexa rankings for a site fluctuate by millions day to day?
One caveat is the Ghost Referrals found in this answer: How to fight off Google Analytics referrer spammers? In this answer, I have listed those ghost referrers that have hit my site but it is not a complete list. Here are a few more from: http://www.theedesign.com/blog/2015/blocking-spam-referral-traffic-google-analytics There are not too many good lists out there so I will keep looking for the record.
Of the two, trust Google - not Alexa. Just keep in mind that ghost referrals are a problem that Google has yet to address though I am sure they are working on a permanent solution. Meanwhile, they should just automatically remove/ignore known ghost referrals. You can however, filter ghost referrals and there are a ton of answers on this found easily on the web.