La commune est située en rive droite de la rivière : la Loire, à environ 4,5 km du Puy-en-Velay, chef-lieu du département de la Haute-Loire, au nord de Brives-Charensac et à l’est de Chadrac, commune située en rive gauche.
Le territoire communal (222 ha) est inséré entre la rivière et le Plateau de La Chaud (altitude 640 m) : un des éléments volcaniques (basalte) marquant le bassin ponot (avec les Monts Brunelet et Doue dominant Brives-Charensac).
La commune est desservie par la Route Nationale 88, qui traverse le territoire communal au sud :
– En venant de Saint-Etienne, directement par une bretelle de sortie ;
– En venant du sud par la bretelle de sortie permettant l’accès à Brives-Charensac.
La route départementale 103, route touristique de la vallée de La Loire dessert la commune via le tunnel routier du Roc Percé R.D.374.
Le bourg ancien domine la Loire, l’urbanisation récente s’est développée au nord et au sud.
Durianne est un village ancien qui a conservé le bâti traditionnel (four banal, maison de béate) groupé autour d’une maison forte.