In case of you receiving that number of transactions per week, and especially if they are low value transactions, you're better off using an online wallet service as temporary hot spot. All your payments will then be sent to the online wallet that you use, from where you can let them pile up and eventually send them to your own wallet by paying just one fee, which in most cases is just the network fee. If you let them pile up in a normal wallet client, and you try to send all these funds at once, you'll need to pay a fee according to the total byte size, which in most cases is 226 bytes per transaction. So 20 transactions x 226 bytes = 4.5KB, which means that your recommended fee will be at least 0.03 BTC.
this calculation is incorrect. 226 bytes is the median transaction size on the network. the actual size calculation is as follows:
148 bytes per input
34 bytes per output
10 bytes required for transaction framework
typical users send one input and two outputs (the second output being a change address). 148 + (34 x 2) + 10 = 226 bytes.
but your idea is correct here. as much as i hate web wallets like xapo and coinbase, you can accumulate lots of UTXOs (payments) there and simply pay their algorithmic network fee per withdrawal. it'll be a lot cheaper than trying to send 20 inputs in a transaction (unless you are willing to send very low-fee transactions and wait for unreliable confirmation or pool acceleration).
but it should be noted that keeping funds on xapo or coinbase means you don't control your funds; you are trusting a third party to keep your funds safe.