Berbagai sumber menyebut soto merupakan hidangan asli Indonesia. Akan tetapi, Denys Lombard menyebutkan bahwa soto sebenarnya merupakan akulturasi dan modifikasi dari cara penyajian makanan a la Kanton yang berupa kuah dari daging dan jeroan mengingat akar dari kata Soto adalah Cau Do atau Jau To yang berarti jeroan berempah.[2][3][4]
Makanan ini muncul karena pada abad ke-19, kalangan menengah dan menengah ke bawah saat itu tidak mampu untuk mengkonsumsi daging secara reguler sehingga timbul hidangan berkuah berupa soto.[3] Hidangan ini pada awalnya banyak ditemukan di pesisir utara Jawa Tengah terutama dari kota-kota perdagangan dan pelabuhan seperti Tegal, Pekalongan, Semarang, dan Kudus atau dari Keresidenan Pekalongan hingga Keresidenan Pati.[5]
Terkait asal nama soto sendiri, daging yang digunakan sebagai jeroan oleh kaum peranakan pada dasarnya adalah daging dan jeroan babi (mirip seperti Bak kut teh). Akan tetapi, kemudian hidangan ini dimodifikasi oleh peranakan Tionghoa yang telah memeluk Islam sehingga menjadi daging ayam, sapi atau kerbau. Penggantian jenis protein ini yang kemudian menjadi ciri khas dari soto.
Akibat dari perdagangan ini, muncul juga soto yang berasal dari daerah lain di luar pesisir utara Jawa Tengah seperti Soto Banjar dan Coto Makassar.