The rock star, in an interview with The Sunday Telegraph, said Diana should have been buried in Westminster Abbey where her funeral took place and not on an island in a lake at Althorp, her family's ancestral home 65 miles northwest of London.
"I just feel it's sad that she's on that island; it's as if she's all alone again," he was quoted as saying.
The singer and the princess met in 1981, at Prince Andrew's 21st birthday party, when she asked him to dance. She was a fan, and they became friends.
Singing goodbye to "England's rose" at her funeral was, he says, "the biggest thing I'd ever done."
"I didn't want it to be cheesy; I didn't want to come across as 'the pop star at the Abbey.' I just wanted it to be full of how I felt," John was quoted as saying.
The princess's brother, Earl Spencer, opened Althorp's gates on July 1, the date of his sister's birthday, to allow thousands of tourists to see Diana's final resting place, at a cost of $15.75 per ticket.
"It's none of my business. But, if I was going to bury her anywhere, I would have liked it to have been in Westminster Abbey, so that people could come in, and they wouldn't have to pay to see her," John was quoted as saying.
He apparently was unaware that Westminster Abbey recently imposed an admission charge of $8, except for those attending services.
John also attacked the commercialization of Diana's memory, especially putting her name on margarine tubs to raise money for the memorial fund established to honor her.
"I just think that some of the things that have been done in her name have been extremely tacky. Extremely thoughtless towards the boys," the singer was quoted as saying.
Prince William, 16, and Prince Harry, 13, are with their father, Prince Charles; their grandmother, Queen Elizabeth II, and other members of the royal family at Balmoral Castle in Scotland.
They will attend a private service in Diana's memory near the Scottish retreat on Monday.