Simple question, but I haven't been able to find any decent answer yet: Does anyone have a good guide for reducing fees when buying and selling coins for fiat?
The highest-fee exchanges are those "buy crypto" widgets you find on websites or in your wallet app. These charge fees of upwards of 5% if you buy with a credit card.
Bitcoin ATMs also fall into this category.
Peer-to-peer trading is also generally more expensive but may offer privacy benefits if you are interested in those
Centralised "easy" exchanges like Coinbase or PayPal let you buy with your bank account at 1.5% + spread (usually 1%). You have to wait 7 days to withdraw because that's how long the bank transfer could take to clear the funds, at least in the US.
Coinbase Advanced Trading is an easily accessible and high-liquidity "professional" exchange that offers the standard maker/taker fee model. If you place only "market" orders, you can buy/sell at the best price currently on the order book and you will be charged a 0.6% fee for this if your 30-day rolling trade volume is less than 10,000 USD.
You can place limit buy/sell orders that don't execute immediately (i.e. don't have the same price as another order of the opposite kind on the order book) and you'll instead be charged the "maker" fee rate of 0.4% on Coinbase.
You can put the order at the best ask/best bid price, minus one cent or plus one cent for buy orders and sell orders respectively to give yourself the best chance of having the order filled. Order filling is not guaranteed, but if you do this then it will usually fill within a few minutes. If the mid-market price moves in the opposite direction then you may have to cancel your order and make a new one closer to the new mid-market price.
Kraken Pro has less trade volume but lower fees. 0.16%/0.26% maker/taker on Kraken Pro for trade volumes below 50,000 USD.
Outside the USA, Binance's spot trading has the lowest fees of 0.1% for both maker and taker.
Some FDUSD pairs are free on Binance (non-US), and BTC/USDC is free on Binance US. Buying and selling USDC is free on Coinbase, you can then move it into or out of Binance US as appropriate, but you will pay a network fee for this.
If you want cheap buying and selling of Bitcoin specifically, especially if you need access within and outside the US, Strike is amazing and cheap. Also worthy of mention here is "complex but cheap" Bisq.