One problem I observe with my homebrew superhet receivers/transceivers is the constant presence of several "birdies". From what I know this happens due to the great sensitivity of the receiver and the presence of at least two (depending on the number of IFs) strong signals - BFO and VFO. Due to these factors, it's not uncommon to hear, for example, the 8th harmonic of the VFO on some random frequency.
I experimented with shielding and extra filtering in my latest project (2 IF all-HF bands superhet) and these measures didn't seem to help much. What I ended up doing was modifying the firmware so that if there is a birdie on 7.033.400 Hz the rig tunes to 7033450 instead. This approach helped me to eliminate all the "birdies".
Still, I can't get rid of the feeling that this is more like a "hack" rather than a proper solution. Is it possible to build a propper 2 IF all-HF superhet receiver without "birdies"? If so, what are the best practices I should take into account in order to achieve this? Or maybe the presence of "birdies" is an inevitable artifact of the superheterodyne design and changing the design (to DC with sideband suppression or SDR maybe?) is the only way to get rid of "birdies" completely?