What goes in the list
Heading levels decides which of H1–H6 are collected. H2, H3 and H4 are on by default.
H1 is off on purpose. On a well-built theme the only H1 on the page is the post title, and a contents list whose first entry is the title of the page you are already reading tells nobody anything.
Only on posts with at least is the threshold. Below it, no list is drawn — three links above a post with three sections is furniture, not navigation. The headings still get their anchors, so links into the post keep working.
Leave out headings called takes one heading per line, and stands for anything: Step leaves out every numbered step at once. Leave out headings with the class does the same by CSS class, which is the easier way to deal with headings your theme prints inside related-post blocks and widgets.
Anchors
Every heading in the list gets an id, generated the way WordPress generates post slugs: lowercase, accents removed, punctuation replaced with hyphens. Two headings with the same wording get -2 and -3, so an anchor is always unique on the page.
A heading that already has an id keeps it. That id is somebody's shared link — from another page, from an email, from a search result — and rewriting it would break every one of them. Switch that off only if you know nothing points at your existing anchors.
Anchor prefix puts something in front of every generated id, for the rare theme that already uses common ones like #introduction.
Still stuck? We answer support email from real people.
Browse the knowledge base