The solution isn't even hard, and could even trick these spammers.
The best and simplest solution is right here: Filter words, but don't let anyone know you're filtering them. As in, if someone says "www.insertgoldsellingwebsitehere.com", or adds anyone with that as a message, etc etc, you stealth block them for an hour and don't let the message/friend add go through. You allow them to keep sending messages, but only they can see what they are sending. No one else sees, since they are stealth muted.
This mute should be automatic, however, not permanent, to avoid blocking legit players that said that for whatever reason.
You guys probably got enough reports in already to know what websites get spammed - make it happen.
There is no harm in this measure, and it fixes a very annoying issue, which is also a big part of why people don't go in General, Trade and other chats ingame, since it is very [removed] annoying to be chatting with someone, and all of a sudden, an enormous message occupying 2x the chat size, in all caps, gets spammed several times, and you can't chat anymore.
It's about time something gets done Blizz. It's not hard, it will please the players too. Do it.