We are following all of the best practices for sending emails but we are still running into problems with being blacklisted with some spam blocking software. We've been told we have a spamtrap.
As email addresses age, they often stop being used. Most people had some email address many years ago that they stopped using for some reason or another. Email providers keep tabs on those email addresses. They then repurpose those email addresses as spam traps. Because they know that those email addresses are inert, they can reasonably assume that anyone who emails those email addresses is a spammer.
If your house file has some spamtraps in them, this can lead to deliverability issues. This can happen when someone at your organization uploaded a list which included spamtraps or naturally as emails age. There is no great way for us to determine if an email address is a spamtrap as any email can be a spamtrap.
The best thing you can do to avoid problems with spamtraps is ensure that you're only engaging constituents who are actively interested in being engaged. The easiest way to do that is through use of engagement factors. Engagement factors are tasks that can be configured to populate (possibly disabled) fields on constituent records based on the constituents' interactions with your site in the last year. These fields once populated can be used in queries that populate your email audience groups. See this article for steps on how to create engagement factors.