Nearly every client with whom we’ve worked over the years has wrestled with how to manage duplicate contacts in their Civi. Although it’s impossible to eliminate duplicates completely, we do have some tried-and-true suggestions for minimizing them with as little risk as possible.
Creating effective duplicate rules is often more art than science. You want to hit the sweet spot between removing the possibility that contacts are overwritten incorrectly, and setting the rule so restrictively that contacts are more frequently duplicated than not.
Civi installs with a default rule (for individuals) of email only. We’ve found that to be largely insufficient and even risky, especially for organizations where a significant percentage of contacts share email addresses. For that reason, we usually suggest a starting point of first name, last name, and email for the default unsupervised rule (the rule used for front-end forms). In this day and age (when many people frequently change email addresses), you may well end up with duplicates, but it’s far easier to merge contacts than to parse out what contact information belongs to which person when two, three, or even more contacts have been overwritten thanks to a shared email. (We’ve done this - trust us, it’s not fun.)
Depending on the specific characteristics of your contacts, you may want to add other criteria to your duplicate rule - for example, state/province or birthdate. Just keep in mind that the more specific your rule is, the more likely duplicates will be.
Be very sure when you edit or create your duplicate rule that the weights add up correctly for what you’re trying to achieve. If, for example, the threshold is set to zero, the rule will never work. If none of the weights will ever add up to the threshold, this will also break the rule.
You may find that as your data needs change, you may also need to update your duplicate rules - make a plan to reevaluate them periodically to ensure you're achieving the best possible results for your organization.