I’ve never worked for free and I don’t think anybody else should either. In my opinion it’s completely unfair to ask a writer trade their labor “in exchange for publicity.” If the site or pub truly has enough readers to make the publicity worthwhile then they should be in a position to pay writers, even if it’s just a small stipend.
The first time I sold an article I was only paid $20, but it was enough to buy a pizza. I was okay with that since I was just getting started. There are plenty of small sites and pubs who pay for work from new writers. You just have to look for them.
Now, are there exceptions? Absolutely! If a writer wants to donate their time and write free content for a non profit, I think that’s admirable. But if the publisher is making money then the writer should, too.