I've been botting for many years, far back before WoW was around; from simple self-made Auto-it scripts, all the way up to recent toys like glider and honorbuddy. While the tools change, the rules of botting stay the same. With many bans under my belt, I've developed a simple list of rules to follow that'll dramatically increase your chances of botting survival. Following these simple rules should keep you unbanned, and botting to eternity.
Rule 1: Never bot nonstop.
This is especially true in games like WoW; people cross the same areas often while leveling/grinding, and they WILL notice you. Bot for 8 hours max.
Rule 2: Don't bot the same area/mobs.
Sitting in one place killing the same mobs for 8 hours every night will get easily reported. Vary your grinding areas and mobs.
Rule 3: Talk while botting.
Talking and responding in chat for the first few minutes of your botting can be essential to keeping yourself safe. Easy topics to bring up are music while grinding, youtube while grinding, and watching movies on a second monitor. While it may not seem like much, if a person happens across you, they wont immediately think "OMG bot!" - Often times they'll have your previous chat in the back of their mind and not automatically assume you're not at your computer.
Rule 4: Don't use public profiles.
GMs/players will easily catch onto people grinding the same exact paths/mobs. You'll end up as another "xxx mob bot" and be reported as soon as someone sees you.
Rule 5: If you see an awesome botting area on this site, or any site, don't use it.
Yes, the "50000g/hr" titles may sound awesome, but what's the point if you no longer have access to your account? Even if it's in the elite section, it's just as accessible to the GMs. If you think that Blizzard can't afford a small donation to the site just to see our hidden files, then you deserve to get caught. It's not that I don't appreciate the content here, but I use this site as more of a "where not to bot" rather than a "where to bot" site.
Rule 6: Track your chat.
Knowing what people said while you're away is important. If you see whispers calling you a bot or /reported, or general chat claiming the same, then it's time to stop for a few days, or do some self-leveling/questing. Yeah, it might hurt your income in the immediate sense, but it's better than having no account at all.
Rule 7: Don't respond to whispers hours after they arrive.
It might seem like a good idea to try and talk your way out of a "/reported" whisper, but in the end, you're only burying yourself. It's best to use the whispers as a heads-up that you need to take a break. Just stick with Rule 6 and lay off the botting for a while. It's also useful to /who the people who reported you; if they aren't online, or are no where near your zone, then it might be safe to bot; I'd still take a few days break.
Rule 8: Don't put up a DND or AFK message.
You're just asking for trouble. "My dog just died, depressed and don't want to talk" might work on someone with a sub-50 IQ, but it's really only helping to put yourself on the banlist. GMs don't care about this either - if you don't respond, they'll end you.
Rule 9: Don't bot the same character every night.
Vary your botting between characters. It might seem silly, but seeing different people in an area will make people who cross the area often less likely to report. This doesn't apply as much if you're trying to level a character, but for grinding a certain item *cough* purple parrot *cough*, then it's better to vary your grinders.
Rule 10: Don't use bots that interact with other players.
This is a new one I'd like to add now that honorbuddy is popular. They have the option to run battlegrounds while grinding...this might seem like a good idea for an honor/xp boost, but your botting is plainly obvious. I've tried a few of the profiles, and meshed a few of my own, but in the end, your botting is terribly obvious. Running around in circles at the bottom of a tower, rushing into 20 enemies, not responding while rooted(melee), and dismounting to heal a person with 99% life are all instant indicators. It also doesn't help that often times you'll get stuck on terrain, or stutter-step across the map. If you really feel the need to do battlegrounds, at the very least make your own mesh and test it thoroughly before letting it run by itself.
Following these simple rules should keep you safe. Feel free to add your own rules below. As it goes with every botting guide: Bot at your own risk.
PS: If you're looking for a nice chat tracker, I'd suggest Elephant on Curse - It tracks every chat you see and is invaluable for learning what people are saying about you while you're away.
Elephant - Addons - Curse
Edit: Additions from another poster - phorentez
Extra tip 1: Don't bot in overcrowded areas.
Knowing which areas are popular is very important. Don't bot near daily hubs, rep grinds, resource-rich areas(like the outskirts of Sholazar), or any other commonly traversed areas.
Extra tip 2: GMs will automatically flag you after 22 hours straight of online time - Don't do it
Until it's proven otherwise, I'm happy to assume he's telling the truth about this one. If you follow Rule 1, this won't happen, but it's nice to know that there's a definitive number of hours that you know will get you auto-flagged.
Extra tip 3: Stutter your online times.
Logging off every couple of hours for a few minutes can help your account survivability. Either script it in to log off every two hours, or hop on yourself and work on an alt/bank character.
An additional tip from BaboonX
Extra tip 4: Don't get smug.
Just because you haven't been banned doesn't mean that you won't be. Getting comfortable with yourself is the first step on the road to being banned. Thinking that you're safe, and pushing the limits of the above rules will only result in you having to purchase another account. Always be vigilant and stick to the rules.