Fish migrate because the habitats in which they feed, shelter and spawn are geographically separated or change in character from season to season.These habitats may have dispersed for a number of geological, climatic or ecological reasons, and many fish have evolved in step with these changes.