What are Stale Shares:
A stale share is when your miner submits a share to the pool when the pool has already moved onto mining the next block. This becomes a stale share because the block, that you have already solved a share for, has already been solved and the pool has moved onto the next block. An acceptable amount of stale shares is around one to two percent. This would be similar to submitting late homework to a teacher that hates you, the work is done but you receive a 0 on the assignment because it was late.
What Causes Stale Shares:
The main cause of stale shares is latency in the network. This is the time it takes for the data to be transferred from the miner to the pool. This is usually measured in milliseconds and defined as ping. When the pool finds a new block it needs to send new shares out to all the miners on the pool. So there will always be latency between the pool finding new shares/blocks, sending it out to the miners, and the miners solving the shares and sending them back.
Long polling allows the pool to notify all of its miners when there is a change in blocks. This allows miners to request new shares immediately. Check to make sure your mining pool and software supports long polling, otherwise your miner will be forced to finish the old shares on the solved block before you receive new shares. When the long polling notification gets sent all the miners that support it request new shares at the same time. This causes an influx of network activity and could slow down the pool. If the pool is too slow to issue you new shares, there will be a larger amount of stale shares.
How to Reduce Stale Shares:
The best way to reduce stale shares is to improve the network connection from your miner to the pool. Make sure you have a reliable internet connection on your miner, it doesn't need to be fast. Most miners will use ethernet over wifi for the increase in stability. Make sure you are also mining to a pool that is geographically close to your miners. Having a higher hash rate can also reduce stale shares. The faster your miner solves shares, the faster it will check for new shares. This means that the window between solving a share, submitting it, and getting a new one will be reduced. If you want to check your ping to the mining pool you are on I will leave an example here: Open up CMD, run as Admin and ping your current pool. For me I am using the us2.ethermine.org pool. Command: ping us2.ethermine.org. This will give you an idea of your latency from your miner to the pool.
What are Invalid\Rejected Shares:
These shares have multiple names such as: Invalid shares, Rejected Shares or incorrect shares. These are shares that were submitted to the mining pool that have been miscalculated. These shares along with stale shares do not earn you any revenue.
What Causes Invalid\Rejected Shares:
Most of the time Rejected or Invalid shares are caused by overclocks. If you push your card to its absolute limits, where is almost completely unstable, you will get invalid shares. Invalid shares can also be caused by software bugs inside of your mining program. Try updating your software, re-launching it or even restarting your miner. Sometimes things get cached in your system memory and slowly start to develop problems overtime. I personally recommend creating a .bat file that automatically reboots your computer every 7 days to help prevent problems. The last reason you could be getting invalid shares is a hardware problem with the GPU.
How to Reduce Invalid\Rejected Shares:
A rejected share or two a day is normal but if your getting more than that here are a few tips. Start off with lowering your overclock. This is the easiest and most convenient solution. Another way you can reduce these shares is by booting up the miner, letting it generate the DAG file, and then apply the overclocks to the cards. If you don't have any luck with these two then look into updating your software or try a different mining software.