Shell size distribution patterns of marine gastropod populations may vary considerably across different environments. We investigated the size and density structure of genetically continuous periwinkle populations (Littorina littorea) on an exposed rocky and a sheltered sedimentary environment on two nearby islands in the south-eastern North Sea (German Bight). On the sedimentary shore, periwinkle density (917 ± 722 individuals m−2) was about three times higher than on the rocky shore (296 ± 168 individuals m−2). Mean (9.8 ± 3.9 mm) and maximum (22 mm) shell size of L. littorea on the sedimentary shore were smaller than on the rocky shore (21.5 ± 4.2 and 32 mm, respectively), where only few small snails were found. Additionally, periwinkle shells were thicker and stronger on the rocky than on the sedimentary shore. To ascertain mechanisms responsible for differences in population structures, we examined periwinkles in both environments for growth rate, predation pressure, infection with a shell boring polychaete (Polydora ciliata) and parasitic infestation by trematodes. A crosswise transplantation experiment revealed better growth conditions on the sedimentary than on the rocky shore. However, crab abundance and prevalence of parasites and P. ciliata in adult snails were higher on the sedimentary shore. Previous investigations showed that crabs prefer large periwinkles infested with P. ciliata. Thus, we suggest that parasites and shell boring P. ciliata in conjunction with an increased crab predation pressure are responsible for low abundances of large periwinkles on the sedimentary shore while high wave exposure may explain low densities of juvenile L. littorea on the rocky shore. We conclude that biotic factors may strongly contribute to observed differences in size structure of the L. littorea populations studied on rocky and sedimentary shores.