Monthly is the sweet spot for most small teams. It's frequent enough to prevent major rot but not so often that it becomes a burden. If you have a high-volume sales team, consider a lighter weekly check (just overdue follow-ups and stuck deals) plus a full monthly cleanup.
Most CRMs have a built-in merge tool. Start with email matches (highest confidence), then phone matches. Don't try to automate everything - manually review high-value contacts before merging. The 5 minutes you spend here saves hours of untangling later.
If there's been no activity for 30+ days and no follow-up scheduled, close them as lost. Add a short reason ("went quiet," "budget disappeared," etc.). This keeps your pipeline honest and helps you spot patterns. You can always reopen if they come back.
Three things: (1) Keep required fields minimal - every field you add increases the chance of junk data. (2) Assign one person as CRM hygiene owner each month - rotate it if possible. (3) Make logging easy - if it's painful to update, people won't do it.
Rotate it monthly. The hygiene owner runs the checklist and assigns fixes, but each rep is responsible for their own deals and follow-ups. If you have ops/admin, they handle deduplication and permissions. Don't let it fall to one person forever - they'll burn out.