Prvi spomen imena Hrvat je 852. godine na Trpimirovoj darovnici, čiji original je izgubljen, a najstariji prijepis je iz 1568. (Lujo Margetić je 2002. iznio mišljenje da je to zapravo sudski dokument, i da potječe iz 840.[1]) U kamenu je najstariji napis iz Šopota (kod Benkovca), gdje se spominje i Branimir:
Tako se u Koruškoj nalaze[2]Hrvatski kotar i Chrowat uz gornju Muru; u srednjem vijeku su zabilježena imena mjesta Krobathen, Krottendorf, Krautkogel; Kraut kod Spittala. U Štajerskoj su Chraberstorf, Krawerspach, Chrawat itd.
U Sloveniji su Hrovate i Hrovača. U Njemačkoj uz Saalu su postojali Chruuati, Churbate i Korbetha, zapadno od Leipziga.
Ime Hrvat bilo je u X. st. rašireno samo na ograničenom prostoru: u Lici, u Bosni do Plive i u kraju oko Zadra; od XV. st. počelo se širiti prema Kupi i Savi, a poslije i sjeverno od Save (na područje koje se ranije zvalo Slovinje). No povijesni izvori pokazuju da su se, s jedne strane, hrvatskim imenom nazivale i skupine slavenskog stanovništva na drugim prostorima (Bijeli Hrvati, Bijela Hrvatska u sjevernoj Češkoj i južnoj Poljskoj, do XI. st.), a mjesna i druga imena izvedena od Hrvat upućuju na to da su skupine Hrvata živjele pomiješane s drugim narodima (u Štajerskoj i Koruškoj na području današnje Slovenije i Austrije, u Slovačkoj, Srbiji, Makedoniji i Zeti). Više naselja u Grčkoj izvodi se od imena Hrvat, a jedno albansko selo blizu Atene zove se Harváti; Turci su Crnogorce nazivali Hrvatima (usp. Crvena Hrvatska kod Konstantina Porfirogeneta). U doba Tridesetogodišnjega rata (1618–48) ime Hrvat proširilo se u njemački (Krabat/e/, Krobot: neposlušno dijete) i odatle u švedski; u XVII. st. u francuskome cravatte znači »konj pasmine iz Hrvatske«, »hrvatski plaćenik u kraljevskoj vojsci«, a odatle i naziv za »kravatu« (franc. cravatte). U današnjem značenju ime Hrvat (i pridjev hrvatski) ustalilo se od hrvatskoga narodnoga preporoda u XIX. st.[3]
Na temelju ovih pretpostavki razvijene su i teorije o iranskom i germanskom porijeklu Hrvata, no treba naglasiti da točnost etimološkihhipoteza nužno ne implicira postojanje Hrvata kao iranskog, germanskog ili nekog drugog naroda (plemena), čak ni usku interakciju s istima. Početkom 1990-ih navedene teorije su zbog političkih uvjeta često bile prožete ideologemima tj. pokušajima razdvajanja Hrvata od drugih južnih Slavena.
Prema američkom naučniku Patricku Gearyju, naziv Hrvat (Kroat) ne pojavljuje se ni u jednom izvoru prije sredine 9. vijeka kao oznaka naroda ili plemena.[6] Izraz Hrvat (Kroat) vjerovatno je prvobitno označavao ili društveni sloj ili je to bila titula regionalnog položaja unutar avarskogkaganata.[6] To bi objasnilo zašto ovaj izraz, koji nije slavenska riječ, može označavati slavenski "narod", a da ne mora da se zamišlja kako je nekada, u davna vremena postojao neslavenski hrvatski narod. To također objašnjava pojavu "Hrvata" na suprotnim stranama kaganata, a da se ne moraju zamišljati velike seobe bilo porodice bilo braće, od kojih svaki osniva različiti dio hrvatskog naroda.[6]