A feature map records exactly where a filter fired. That precision is a liability. If the same object shifts two pixels to the right, every response moves two pixels to the right, and a later layer that expects a response at a particular spot sees a different pattern. Pooling fixes this by summarizing a small neighborhood with a single number — most commonly the maximum value in each two-by-two block.
The effect is a coarser map. A two-by-two max pooling step halves the width and height, so a response that was at position ten and a response that was at position eleven both collapse into the same output cell. Small shifts stop mattering. This is what gives the network tolerance to small translations, and it is why the property is often called spatial invariance: the answer stays roughly the same when the input moves a little.
Pooling is not free. Throwing away position information means the network can no longer say precisely where something was, only roughly. That is an acceptable trade for a classifier, which only needs to name the object. It becomes a problem for tasks that must report exact locations, which is why later architectures for detection and segmentation handle spatial detail differently.