Three things, in order of cost: duplicates that split one relationship in half, stale records nobody has touched in a year, and required fields filled with placeholder values to get past validation.
The third is the most damaging because it looks like data. A pipeline full of deals closing on the 30th is a validation rule being satisfied rather than a set of dates anyone asked for.
A clean-up on dirty entry is a treadmill. Catch duplicates on creation and on import, match web form submissions to existing contacts, and require only fields somebody will actually supply.
Every required field you add that nobody can answer honestly is a future placeholder value.
Archive rather than delete. History is useful; clutter in the working pipeline is not.
Match on entry and on import, and match form submissions against existing contacts.
Only where an honest answer exists. Otherwise they generate placeholder data.
Half an hour with your own data usually saves reading three of these. The guides will still be here afterwards.