A blog index, archive or category page holds several <article> siblings.
BODY_XPATH's "(.//article)[1]" keeps the first entry only, so the page
looks under-extracted and escalates to justext, which emits paragraphs
and drops every heading.
Give the recall pass a listing expression that takes the container of
the sibling articles, so the retry returns all entries with their heads
and wins the escalation. Recall only: on an article page the same shape
is a related-posts strip, whose container would hide the body.