先秦时期,庄姓主要活动在山东、湖北、湖南,曾一度到陕西南部,东南触安徽,北达河南南端。战国末期,庄姓始涉四川,经贵州入云南,北驻河南腹地。秦汉以后,庄姓很快散播到河北、江苏、浙江、广东等地。南北朝时庄姓迁入甘肃。唐朝两次南迁大浪潮中,庄姓经江西大量进入福建,宋时庄姓已经播散到全国各地。清朝初期庄姓由福建、广东进入台湾地区。
宋朝时期,庄姓不足5万人,约占全国人口的0.06%。庄姓第一大省是福建,约占庄姓总人口的32%。在全国的分布主要集中于福建、江苏、河南,这三省庄姓大约占庄姓总人口的80%;其次分布于山西、浙江等省。全国形成了以东南沿海、河南为中心的两个庄姓聚集区。
明朝时期,庄姓大约有12万人,约占全国人口的0.12%,排在第一百三十二位。宋元明600年,庄姓人口增长速度大于全国人口的增长速度。福建仍为庄姓第一大省,约占庄姓总人口的25%。在全国的分布主要集中于福建、广东、浙江、江苏,这四省庄姓大约占庄姓总人口的76%;其次分布于广西、安徽、山东、河北、湖南等地。宋元明期间,其人口主要由北向南迁移。全国重新形成了以闽粤为中心的沿海地区庄姓人口聚集区。