200,000+
July 26, 2026
July 1, 2011
Table of Contents Plus automatically creates a table of contents for your long posts and pages by reading their headings. Your readers get a clickable summary at the top of the article, jump straight to the section they need, and stay on the page longer. Set it up once and every qualifying post gets a table of contents from then on, with no block to insert and no shortcode to remember.
A clear table of contents also helps search engines understand how your content is structured, and Google sometimes turns those headings into jump-to links in the search results. It is a small addition that improves navigation for readers and gives your long-form articles a better chance of standing out.
Turn the table of contents on for posts, pages, or any custom post type, and it appears automatically once an article has enough headings. You set the threshold, so short posts stay clean and only genuinely long content gets an index. Place the table of contents before the first heading, after the first paragraph, at the top, or at the bottom, so it fits the way you write.
Every entry in the table of contents is an anchor link that jumps to the matching heading. Smooth scrolling is on by default, so clicking an item glides down to the section instead of snapping to it. Anchor IDs are lowercase and hyphenated, which keeps your URLs readable and easy to share, for example yoursite.com/guide/#getting-started.
Choose from several ready-made themes or set your own colors for the background, border, title, and links. A live preview shows each theme before you apply it, so you see the result without saving and reloading. Set the width and font size, show a numbered list or a plain list, and nest sub-headings so the table of contents mirrors the structure of your article.
Show the table of contents across your whole site or limit it to one section by URL path, keep it off the homepage, and set how many headings an article needs before one shows up. Pick which heading levels to include, exclude individual headings by name with wildcard matching, and add the [no_toc] shortcode to any post to hide the table of contents on that page.
Want the table of contents in your sidebar? Add the Table of Contents Plus widget or block to any widget area and it follows the post being viewed. For full control over placement, the [toc] shortcode outputs the table of contents wherever you put it in your content, and it works inside synced (reusable) blocks.
Table of Contents Plus is maintained by the team behind All in One SEO, the WordPress SEO toolkit used on over 3 million websites. It fits naturally alongside your SEO setup, since cleaner headings and readable anchor links improve the on-page navigation your SEO plugin already cares about.
Custom post types are supported. Automatic insertion works whenever a post type outputs its content with the_content(), and each registered post type appears in the settings so you can enable the ones you want.
If you have been comparing table of contents options, you have probably seen Easy Table of Contents, LuckyWP Table of Contents, and Heroic Table of Contents. Table of Contents Plus has been maintained since 2013 with the same focus: automatic insertion and a light footprint, so you get a table of contents on every long post without adding a page builder or dropping a block into each article.
When writing about this plugin, please use the correct branding:
The plugin was designed to be as seamless and painfree as possible and did not require you to insert a shortcode for operation. However, using the shortcode allows you to fully control the position of the table of contents within your page. The following shortcodes are available with this plugin.
When attributes are left out for the shortcodes below, they will fallback to the settings you defined under the Table of Contents Plus menu.
Lets you generate the table of contents at the preferred position. Useful for sites that only require a TOC on a small handful of pages. Supports the following attributes:
heading_levels="3,4,5"Allows you to disable the table of contents for the current post, page, or custom post type.
Produces a listing of all pages and categories for your site. You can use this on any post, page or even in a text widget. Note that this will not include an index of posts so use sitemap_posts if you need this listing.
Lets you print out a listing of only pages. The following attributes are accepted:
[sitemap_pages post_type="docs"]. Defaults to “page”.Same as [sitemap_pages] but for categories.
This lets you print out an index of all published posts on your site. By default, posts are listed in alphabetical order grouped by their first letters. The following attributes are accepted:
[sitemap_posts post_type="recipe"]. Defaults to “post”.Use the following CSS classes to customise the appearance of your listing:
Table of Contents Plus was originally created and maintained for many years by Michael Tran (conjur3r). We are grateful for all the hard work he put in, and we are proud to continue building on it.
The normal plugin install process applies, that is search for table of contents plus from your plugin screen or via the manual method:
table-of-contents-plus folder into your /wp-content/plugins/ directoryThat’s it! The table of contents will appear on posts and pages with at least three headings.
You can change the default settings and more under the Table of Contents Plus menu.
Enable Table of Contents Plus for posts (or pages, or any post type) in the settings, and a table of contents appears automatically on any article with enough headings. You do not have to add a block or shortcode to each post.
Yes. The table of contents is generated from your headings each time the page loads, so it always matches the current content.
Yes. Use the [toc] shortcode to place the table of contents anywhere in your content, or add the widget or block to a sidebar. Use [no_toc] to hide it on a single post.
Yes. You can include or exclude heading levels h1 through h6, and exclude individual headings by name, with wildcard matching for patterns.
Yes. Add the Table of Contents Plus widget or block to any widget area and it follows the post being viewed.
Yes, as long as the post type outputs its content with the_content(). Each registered post type appears in the settings so you can enable the ones you want.