H&M vs Old Navy: which button-up wins?
Both land in the budget tier — the H&M Slim Fit Cotton Shirt at $25, the Old Navy Everyday Shirt at $30, just $5 apart. Here's how they stack up, head to head.
| H&M | Old Navy | |
|---|---|---|
| Price | $25 | $30 |
| Material | Thin cotton or cotton-blend (poplin, oxford or linen blend). | Lightweight cotton or cotton-blend (oxford / poplin / flannel by season). |
| Fit | Slim European cut, true to size; runs trim and short. | Regular casual fit, true to size; runs slightly boxy. |
| Quality | Budget — thin cloth, basic buttons and seams, fades and loosens after several washes. | Budget — thin fabric, basic buttons, collar and cuffs wear within a year. |
| Best for | Occasional wear, trend pieces, and cheap one-season shirts. | Casual everyday wear, layering, and cheap stocking-up. |
| Care | Cold wash and hang or tumble low; expect some shrink and colour loss early on. | Cold wash and tumble low; expect some shrink and fade over the first washes. |
Both are budget button-ups built for one or two seasons, not the long haul. H&M's $25 slim cut runs trim and short with thin poplin or oxford cloth; Old Navy's $30 everyday shirt sits slightly boxy in a regular casual fit. The $5 gap mostly buys a roomier, more relaxed silhouette rather than better cloth.
$5 cheaper, slim European cut, trim trend-led look, fine for one season
Roomier regular fit, easy layering, true to size, casual stocking-up
Which should you buy?
Buy the H&M shirt at $25 if you want a slim, trim look and accept a one-season life from thin cloth. Pay the extra $5 for Old Navy if you'd rather have a relaxed casual fit that layers easily and you're stocking up cheap. Neither lasts past about a year, with collars and cuffs the first to go, so don't overthink it. Pick on fit and the cheaper one wins unless you specifically want room.
We may earn a commission if you buy through this link, at no extra cost to you.

