Uncle blocks are similar to what would be "orphaned" blocks in BTC. Assume we are at block height
n, and two different valid blocks
B' are published around the same time.
Then WLOG assume block
C is mined on top of
C could also include
B' as an uncle.
The miner of the uncle gets a reward, and the uncle contributes to the total weight of the chain. The uncle block itself is not included, only the header, and the uncle has no effect on the state of the chain, only the weight for consensus purposes.
This way, orphans still contribute to the security of the chain, which allows for faster block times (faster block times cause more orphans)