Since Require minimum reputation on the target site for migration is rejected, I've been trying to think up ways to reduce bad migrations without severely impacting the ease of migration. Ideally good questions should be migrated quickly and bad questions not at all, so we're kind of optimizing for two things at once.
In any case, my suggestion is that every time a migrated question is closed1 (or otherwise rejected?) on the migrated-to site, everyone who voted to migrate it there gets a strike against them. 3 or 5 strikes2 (or something) and you lose the ability to suggest migration when voting to close.3
That would help to reduce the number of clueless close voters who don't understand "Don't Migrate Crap" (or don't understand the target site's scope) while keeping good close voters doing what they do.
1Probably for any reason other than as a duplicate.
2This would need to be limited to a certain period of time. 3 bad migrations over 2 years probably shouldn't be punished; 3 in a week, on the other hand, definitely should be.
3At least to that target site, anyways.
This suggestion was triggered by this discussion. Programmers seems be suffering with bad migrations from regular SO users; I don't think the current measures are enough. With the number of close voters required to migrate a question (generally?) being so low, I'm not convinced that a majority of them selecting one site is enough. I believe the issue of herd behavior has been brought up here on Meta before, where everyone selects the same destination because someone else suggested it and the name of the destination vaguely matches the question.