A simplicial vertex of a graph is a vertex whose neighborhood is a clique. It is known that listing all simplicial vertices can be done in O(nm) time or O(n ω ) time, where O(n ω ) is the time needed to perform a fast matrix multiplication. The notion of avoidable vertices generalizes the concept of simplicial vertices in the following way: a vertex u is avoidable if every induced path on three vertices with middle vertex u is contained in an induced cycle. We present algorithms for listing all avoidable vertices of a graph through the notion of minimal triangulations and common neighborhood detection. In particular we give algorithms with running times O(n 2 m) and O(n 1+ω ), respectively. Additionally, based on a simplified graph traversal we propose a fast algorithm that runs in time O(n 2 + m 2 ) and matches the corresponding running time of listing all simplicial vertices on sparse graphs with m = O(n). Moreover, we show that our algorithms cannot be improved significantly, as we prove that under plausible complexity assumptions there is no truly subquadratic algorithm for recognizing an avoidable vertex. To complement our results, we consider their natural generalizations of avoidable edges and avoidable paths. We propose an O(nm)-time algorithm that recognizes whether a given induced path is avoidable.