These are the best (and worst) Christmas songs of all time

Don't fight us on this.
Image may contain Mariah Carey Performer Person Solo Performance Adult and Formal Wear
Getty Images

Just about everyone has an opinion on the best — and especially the worst — Christmas songs.

They’re a classic love-hate affair, and few things get people more riled up. There are the ultimate classics, the gloriously cheesy pop tracks, and those unavoidable ’80s hits that rear their (ugly?) heads every. single. year. Pop stars keep releasing festive music too — some surprisingly great, others… less so.

Historically, Mariah Carey’s All I Want For Christmas Is You has topped just about every festive poll going, but we reckon plenty of other tracks deserve a little extra credit. They're the perfect soundtrack as you wrap your last-minute Christmas gifts.

So, since Christmas tunes are all we’ll hear on the radio between now and 25 December (and probably well beyond), we’re running through our favourites — and our least favourites — from Wham! to Wizzard and everything in between. Giddy up for the best and worst Christmas songs ever made, and we hope you're wearing your best Christmas jumper for this one.

Image may contain: Lindsay Lohan, Face, Happy, Head, Person, Smile, Adult, Accessories, Jewelry, and Necklace
35 ultimate Netflix Christmas movies to add to your list
Gallery35 Photos
View Gallery

Best ever Christmas songs

1. The Christmas Song by Nat King Cole

Tell me the lyrics, “chestnuts roasting on an open fire,” don't make you feel instantly Christmassy. It's a classic that will never go out of style. This is the best Christmas song to play with family and a guaranteed crowd-pleaser.

2. Last Christmas by Wham!

It's timeless, it's catchy, it's… relatable. All about dealing with a failed relationship and coming face to face with that person a year later, Last Christmas has stood the test of time for good reason. Just about every major celebrity has covered it, from Ashley Tisdale to Metallica, but we keep coming back to the original. This is truly the best Christmas song for karaoke, no arguments.

3. Stay Another Day by East 17

East 17's classic is not actually a Christmas song, and if you listen to the lyrics, it's a heart-wrenching ballad – but that makes it even more of a beauty, IMO. Stay Another Day was written by the group's main songwriter, Tony Mortimer, about his brother Ollie, who took his own life. To this day, it is particularly poignant to those who have lost a loved one at Christmas.

It was released in November 1994 and became the Christmas number one that year – though the only festive element to it is the Christmas bells at the end of the song, to give seasonal appeal, apparently. Well, it worked.

4. One More Sleep by Leona Lewis

Hear me out: Leona Lewis is the UK's Mariah Carey. This is an underrated bop that deserves far more credit. Our X Factor queen brought out a jazzy tune all about spending Christmas with the person you love. The music video is just as fun and joyful. The fashion is also amazing, giving us great ideas of what to wear on Christmas Day.

5. Jingle Bell Rock by Bobby Helms

Hands up if you wanna dance and prance in Jingle Bell Square, in the frosty air? The classic hit Jingle Bell Rock is still a solid Christmas playlist option and a must-play for any festive gathering — Mean Girls dance routine or not. The most popular version of this song remains Helms' croon, dating back to 1957 if you can believe it!

6. Feliz Navidad by José Feliciano

Written to bring people together with its bilingual lyrics, Feliz Navidad is one of the most-played Christmas songs worldwide. Simple, catchy, and yes — a little repetitive — it never fails to warm the cockles. It’s a global favourite among parents, and bonus points if you dance around the room to it.

7. It's Beginning To Look A Lot Like Christmas by Michael Bublé

We couldn’t write a Christmas playlist without including a Michael Bublé track. He’s the Ken to Mariah’s Barbie. You just can’t decorate the tree without playing this one, can you? Of all his holiday songs, this is the one we’ve had on repeat. Top tip: a Michael Bublé Christmas CD remains one of the best gifts for parents.

8. Santa Tell Me by Ariana Grande

When Ariana Grande released a Christmas album, people were sceptical. But we’ve got to hand it to her — this is a modern Christmas song we actually love. Ariana brings her impressive vocal range and husky tones to the track, turning it into something sultry for the end of the night, when the lights are dim, and the guests have gone…

9. Merry Christmas Everyone by Shakin' Stevens

Looking for the best Christmas song to shake your booty to? Look no further than this cheerful classic. Released in 1985, it still climbs the Christmas charts year after year — and for good reason. Plus, it’s giving Strictly Christmas Special quickstep vibes, and there’s not much more festive than that here in the UK (at least when it comes to Christmas Day telly).

10. All I Want For Christmas Is You by Mariah Carey

It had to be done. The unbeaten chart-topper, it’s literally the Christmas song that keeps on giving.

Those opening xylophone notes instantly signal that Christmas is here (and maybe trigger a few too many embarrassing karaoke flashbacks). Mariah has become synonymous with the season — so much so that this song officially kicks off the holidays. She’s defrosting, guys!

11. Christmas Lights by Coldplay

Get your phone torches in the air — it’s Coldplay’s emotional Christmas banger! You can always count on Chris Martin for a rousing chorus. One of the few Christmas songs to stand out from the 2010s, this sweet tune is one we’d never let go. Don’t listen too closely to the lyrics — they’re low-key heartbreaking — but that fun guitar riff makes it impossible not to sing along.

12. Merry Christmas by Ed Sheeran & Elton John

A more recent favourite is Ed and Elton's 2021 tune, which was released to support the Suffolk Music Foundation and The Elton John Aids Foundation. It's got everything you want from a Christmas hit: bells chiming, heartfelt lyrics and a catchy, building melody – plus they get extra points for the epic music video, which parodies other festive classics like Mariah and East 17.

13. Merry Christmas, Please Don’t Call by Bleachers

Most of the time, we think of the best Christmas songs as the happiest ones — but let’s be honest, the festive season isn’t all giggles and grins. For many, it can be a surprisingly sad time. It’s when we’re most tempted to text an ex, or even pick up the phone and call them.

This Bleachers track captures that exact feeling: the ache of missing someone while knowing it’s better this way. The perfect soundtrack to a pre-Christmas meltdown.

14. Santa, Can't You Hear Me by Kelly Clarkson and Ariana Grande

Another newbie! Kelly and Ariana's buttery vocals came together for a collaboration on Kelly's 2021 album When Christmas Comes Around. The live version from her NBC Christmas special of the same name is extra special – the harmonies are chef's kiss. When Kelly Clarkson is involved, you know it's going to be good.

15. A Nonsense Christmas by Sabrina Carpenter

Another year, another pop girlie dropping one of the best Christmas songs. This time, it’s sultry Sabrina Carpenter, putting a festive twist on her hit Nonsense, a track famously known for her playful lyric changes at every performance. Now, with cheeky Christmas lyrics, it’s the perfect way to spice up your eggnog. For a full watching experience, check out the A Nonsense Christmas special, which starred Tyla, Chappell Roan and more.

16. River by Joni Mitchell

Not technically a Christmas song in terms of its release — it originally appeared on Joni Mitchell’s album Blue, released in June 1971 — this bittersweet track is still undeniably festive. It’s so beloved that Joni released a video for River in December 2021, explaining:

“River expresses regret at the end of a relationship… but it’s also about being lonely at Christmas time. A Christmas song for people who are lonely at Christmas! We need a song like that.”

If you haven’t already, give it a listen. In recent years, the track has also been covered by the likes of Ellie Goulding, Sam Smith, and Olivia Rodrigo.

17. Rocking Around The Christmas Tree by Brenda Lee

It’s hard to believe this dates back to 1958. Another unrivalled bop that’s forever a classic. It has us dancing around the tree and waving our arms in the air — truly the ultimate get-ready song for Christmas festivities. It’s giving swish-your-skirt vibes and glittery eyeshadow energy.

18. Santa, Baby by Britney Spears

Britney Spears is our pop princess of Christmas. From the diva who gave us Baby One More Time and Womanizer, we’re still obsessed with her rendition of Santa Baby. Now she has some stiff competition — this beloved classic has been covered by Kylie Minogue, Ariana Grande, Gwen Stefani, and more — but there’s something about good-girl Britney that makes this frankly naughty song irresistible.

19. White Christmas by The Drifters

Some people swear by the Bing Crosby version, no doubt, but personally, we love The Drifters’ upbeat take on White Christmas. It’s extra nostalgic thanks to the Home Alone connection—and those voices? Absolutely stunning.

20. Mistletoe by Justin Bieber

Hear us out: we actually love Justin Bieber’s Christmas album. Enough time has passed, Justin’s all grown up, and we can look back at these festive tunes with nothing but joy. Of them all, Mistletoe is the one we just can’t get enough of. With its catchy chorus and fun energy, we’ll be crooning it all December long — and maybe even into January.

21. Christmas Tree Farm by Taylor Swift

Taylor Swift makes it onto just about every music list we write, and so the best Christmas songs wouldn't be any different. Fun fact: this song is about Swift's experience growing up on an actual Christmas tree farm. It's a soft and sweet song that you can play all winter long. Complete with Swift's heartfelt lyrics, as always.

Image may contain: Clothing, Knitwear, and Sweater
20 best Christmas jumpers you wouldn't be embarrassed to wear out
Gallery19 Photos
View Gallery

Worst ever Christmas songs

1. I Saw Mommy Kissing Santa Claus by Jackson Five

It’s universally acknowledged that this song is… weird. The kind of track you belt out without thinking – until you actually pay attention to the lyrics. And those lyrics? Definitely strange, whichever way you look at them.

Apparently, the song isn’t about Mommy cheating on Daddy with Santa Claus; it’s meant to suggest that Dad was actually dressed as Santa. Either way, all the talk of creeping, peeping, tickling, and kissing in a song sung by a child feels… off. We also can’t help but wonder how this affected the child’s relationship with both parents. Even the best gifts for kids can't fix that trauma.

2. Do They Know It's Christmas? by Band Aid

Criticised for its white saviour narrative and controversial lyrics about Africa, Do They Know It’s Christmas? really should never have passed the vibe check. To be fair, it was part of a fundraising effort, but even so… it’s just so delulu. We're cringing when it comes on the radio.

3. Baby It's Cold Outside by Dean Martin

Another classic with questionable lyrics, sadly. Baby It's Cold Outside is on the no-play list for many, because of its controversial lyrical conversation between a man and a woman: “I ought to say, ‘No, no, no sir’ / Mind if I move in closer?… I really can't stay / Baby, don't hold out.”

Some have argued that the time period and context of the song should be taken into account, but this song certainly doesn't hold up. It's pushy and creepy, and we won't be playing it this Christmas Eve.

4. I Never Knew the Meaning of Christmas by ’NSync

We love a boy band as much as the next person, but they haven’t quite cracked the Christmas song game yet. This track is pretty simplistic in terms of festive cheer and is easily skipped on any holiday playlist. Its saving grace? Rumour has it that Justin Timberlake wrote it about Britney Spears.

5. Santa Baby by Michael Bublé

We know, we know—you just saw this track, and now it’s landing in the worst Christmas songs section again, but hear us out. Originally sexy and sultry, it turned into a total bro fest. Michael changed the lyrics for his version of Santa Baby, swapping “Santa” for “buddy” and tweaking the wishlist to include a Rolex, ice hockey tickets, and decorations from Mercedes (not Tiffany’s). Many assumed he was trying to avoid sounding effeminate — or gay. Unimpressed.

6. The Little Drummer Boy by Jessica Simpson ft Ashlee Simpson

We feel a little guilty adding this to our list of the worst Christmas songs, but we have to speak our truth. Whether it's this version by Jessica Simpson and Ashlee Simpson, or another. It’s the ultimate festive earworm — those relentless “pa rum pum pum pums" burrow into your brain and simply refuse to leave. And honestly? We have questions about this little boy. Many questions. Perhaps it’s finally time he grew up.

Image may contain: Clothing, Footwear, Shoe, Formal Wear, Suit, High Heel, Pants, Pedestrian, Person, Walking, and Blazer
Stylish Christmas pyjamas you'll actually want to wear
Gallery16 Photos
View Gallery
7. All I Want For Christmas Is You by Mariah Carey and Justin Bieber

Justin and Mariah both made our list of the best Christmas songs — and now they’re back with one of the worst. It’s not about the track or either artist individually, but the pairing itself. It’s just… weird. Sorry. The age gap is giving uncomfortable high-school-teacher energy, and we simply can’t enjoy a fun, flirty song knowing he was literally 17 at the time. Underage is underage. Perhaps you could both stick to your own Christmas classics, please and thank you.

8. Hark! The Herald Angels Sing by Weezer

This is bound to ruffle a few angel feathers, but it’s just so irritating. Over and over again they shout “Hark!” — but who is actually saying that in 2025? Look, if you somehow make “hark” a thing again and it becomes the Dictionary word of 2026, we’ll happily reconsider. We’re not unreasonable — we’re simply exhausted by the worst Christmas songs. This modern version isn't helping matters.

9. Mistletoe and Wine by Cliff Richard

This song was once voted the most hated Christmas song of all time, which feels a little harsh — but it’s no Wham!, is it? It simply doesn’t spark much festive spirit, especially compared to the Christmas tracks we have on repeat. For us, it’s a skip.

10. Christmas Saves the Year by Twenty One Pilots

We’ve given plenty of proof that we’re open to modern Christmas songs — but not every contemporary artist needs a festive tune. This is a prime example. Twenty One Pilots make great music, but this isn’t part of it. We’ll admit the stop-motion music video almost won us over, but the song itself could have been written by ChatGPT.

11. Grandma Got Run Over By A Reindeer by Elmo & Patsy

This one divided us at Glamour, and here’s why. On one side, it’s ridiculously catchy — we all know the lyrics, and it’s just a good laugh. Think campy, don’t-overthink-it children’s fun.

On the other hand… it’s genuinely dark. Have you actually listened to the lyrics?
“When we found her Christmas morning / At the scene of the attack / She had hoof prints on her forehead / And incriminating Claus marks on her back." Bleak.

12. I Wish It Could Be Christmas Everyday by Wizzard

Unpopular opinion, but we don’t wish it could be Christmas every day. We’d quite like to return to our routine — and our regular eating habits — so our bodies can function normally again without requiring a full hour in the bathroom. We’re tired of seeing distant relatives and waking up hungover. Grow up, Wizzard.

13. Back Door Santa by Bon Jovi

We love Bon Jovi — I mean, how could we not love Millie Bobby Brown’s father-in-law? But this is just too rock ‘n’ roll for Christmas. We want to be strutting around in a glitter dress, not doing air guitar on our knees. The lyrics are… odd, and we can’t decide if they’re meant to be so suggestive: “I make all the little girls happy / While the boys are out to play.” Sorry? “I ain't like old Saint Nick / He don't come but once a year.”

Maybe we just have filthy minds, or maybe Bon Jovi accidentally created one of the horniest Christmas songs ever.

14. Please, Daddy (Don't Get Drunk on Christmas) by John Denver

And to round things off, we have another truly sad Christmas song. Sure, we’re all for reflecting on and mourning the ones we’ve lost during the festive season, but this is next-level heartbreak.
“Please daddy, don't get drunk this Christmas / I don't want to see my mamma cry” is certainly not how you kick off a festive banger. It’s one of the worst Christmas songs because it leaves us staring at the wall, completely numb, and pushing our glass of wine away.

Image may contain: Meg Ryan, Person, Teen, Face, Head, Plant, Art, Painting, Photography, Portrait, and Adult
Best Christmas decorations to give your home a festive glow-up
View Gallery