Philippine soldiers have found the remains of an elderly German national who was beheaded by Islamic State-linked Abu Sayyaf militants last week, a military official said.

Both the head and body of Jurgen Kantner were recovered while the troops were conducting combat, search and retrieval operations in Indanan town in the remote southern province of Sulu, Colonel Cirilito Sobejana told reporters.

Kantner's remains would be kept in a hospital morgue in Sulu while documents were being prepared to transport the body, said Sobejana, commander of the Joint Task Force Sulu.

The Philippines and Germany have condemned Kantner's beheading by the militants who posted a video of the killing after a deadline for a $600,000 ransom passed.

The 70-year-old German, who had been held on the tiny southern island of Jolo, had appealed for help twice in short video messages, saying he would be killed if ransom was not paid.

His partner Sabine Merz was found shot dead aboard their abandoned yacht in November.

President Rodrigo Duterte has apologised to Germany for failing to save Kantner while insisting that ransoms should not be paid.

The Philippine military has vowed to bring Kantner's killers to justice and to continue operations to free other hostages held by Abu Sayyaf, which had raised tens of millions of dollars from piracy and ransom payments.

Sign up to our free newsletters

Get the best updates straight to your inbox:
Please select at least one mailing list.

You can unsubscribe at any time by clicking the link in the footer of our emails. We use Mailchimp as our marketing platform. By subscribing, you acknowledge that your information will be transferred to Mailchimp for processing.