San Teodoro (Gallurese: Santu Diadòru, ) is a comune (municipality) in the Province of Gallura North-East Sardinia in the Italian region Sardinia, located about northeast of Cagliari and about southeast of Olbia. As of 31 December 2004, it had a population of 3,565 and an area of .
The municipality of San Teodoro contains several frazioni (subdivisions, mainly villages and hamlets), among which: La Suarédda, Monti Pitrosu, Straula, Budditogliu, La Traversa, Lu Fraili, and Lu Sitagliacciu.
San Teodoro borders the following municipalities: Budoni, Loiri Porto San Paolo, Padru, Torpè.
The beach of "La Cinta" was home of the kite boarding festival in September 2010.
The beach of "Lu Impostu" is also known as Little Tahiti due to the beautiful colours of the sea.