Haarby har en befolkning på 2.480 og et areal på 2,4 km2. Byen ligger 26 km sydvest for Odense og 15 km øst for Assens i en smeltevandsdal, der leder Haarby Å til Helnæs Bugt 4 km mod syd. Dalen er omgivet af randmoræner; mod sydøst udgør De Fynske Alper et storslået bakkedrag ned forbi Faaborg.
Haarby har ikke haft jernbane, og bebyggelsen er åben uden karrédannelser. Både nord og syd for bymidten findes parcelhuskvarterer fra især 1970’erne, og i byens udkanter er opført nyere boliger. Erhvervskvarteret ligger østpå mellem Akkerupvej og Fåborgvej med bl.a. produktion af møbler og udstyr til fødevareindustrien. I syd ligger en plastvirksomhed.
Haarbys vestlige del har bevaret landsbypræget, mens den østlige del har mange moderne butikker. Interessante bygninger i Algade er bl.a. Haarby Kro i nr. 24 fra 1947-52 i stilen funktionel tradition og det forhenværende apotek i nr. 65 fra 1915 i nationalromantisk stil.