Indio in Spanish is used to mean Indian, Indigene, and Hindu. Are all 3 meanings correct?
The word «indio» referes to someone of either the Eastern Indias or the Western Indias but is mostly currently referred for either an Indian national (someone from the Asian country called India or otherwise related to the Indian subcontinent) or someone ethnically related to the peoples who lived in the Americas before Columbus. I don't know of other parts of the Spanish-speaking world, but at least in Colombia «indio» is also pejorative for someone deemed to be less educated or from a lesser culture level (regardless of ethnical background).
The word «indígena» would roughly translate in English as native, aborigen or indigenous, so it could be applied to a Lapp (a Same) in Finland, a Australian aborigen, or to an indio in the Americas. It could also be extended to a white blonde German in Germany, although this meaning is rare. Correct but rare. In the Americas, many people say «indígena» instead of «indio» to avoid the other two meanings of «indio» (someone from India or the insult). As with any other ethnic related word, some people adopt it with pride and some people will feel offended.
The word «hindú» correctly applies to either someone from the Hindustani culture (Urdu/Hindi) or a follower of Hinduism. By extention, and to avoid the use of «indio» (to avoid confuntion to native Indians in the Americas or to avoid the pejorative meaning) it is also applied to the nationals of India. Most educated people will agree that «hindú» is incorrect when referring to just someone from India (unless related to Hindustani or Hinduism).
For avoiding confusion the word «hinduísta» will refer to a follower of Hinduism regardless of ethnic background or national affiliation.
Another related word is «amerindio» derived from «indio americano» wich refers to someone indigenous from the Americas, avoiding any confusion with «indio» and less incorrect than «indígena» when narrowing the meaning. Also, while some people bare proudly its name as «amerindio» other people takes it offensively.
So, in summary:
Although Indio is used as a polysemic word used to talk about Indian, Indigene and Hindu, in Spanish we have different word for those three meanings
That way, when you want to talk about one of those three, if ou say ust Indio asure to be ery specific in your context, so everyone can understand you're talking about an Indian 'Indio', Indigene 'Indio' or Hindu 'Indio'.
Using Indio for Indigene, sounds to me like some king of insult, and it is used sometimes in a pejorative way, always speaking about someone southamerican.