Title: SimpleTOC &#8211; Table of Contents Block
Author: Marc Tönsing
Published: <strong>14 An Giblean 2020</strong>
Last modified: 22 An Lùnastal 2026

---

Search plugins

![](https://ps.w.org/simpletoc/assets/banner-772x250.png?rev=2893800)

![](https://ps.w.org/simpletoc/assets/icon.svg?rev=2796116)

# SimpleTOC – Table of Contents Block

 By [Marc Tönsing](https://profiles.wordpress.org/marcdk/)

[Download](https://downloads.wordpress.org/plugin/simpletoc.7.3.0.zip)

 * [Details](https://gd.wordpress.org/plugins/simpletoc/#description)
 * [Reviews](https://gd.wordpress.org/plugins/simpletoc/#reviews)
 *  [Installation](https://gd.wordpress.org/plugins/simpletoc/#installation)
 * [Development](https://gd.wordpress.org/plugins/simpletoc/#developers)

 [Support](https://wordpress.org/support/plugin/simpletoc/)

## Description

Add a Table of Contents block to your posts and pages. The TOC is a nested list 
of links to all heading found in the post or page. To use it, simply add a block
and search for “SimpleTOC” or just “TOC”.

The maximum depth of the toc can be configured in in the blocks’ sidebar among many
other options. There can hide the headline “Table of Contents” and add your own 
by using a normal heading block.

[Spin up](https://demo.tastewp.com/simpletoc) a new WordPress instance with the 
SimpleTOC plugin already installed.

#### User Feedback

> “It is lightweight, stable, and fully compatible with WordPress Full Site Editing.
> A reliable solution that integrates seamlessly and performs exactly as expected.”
> —
> [@js100 on wordpress.org](https://wordpress.org/support/topic/good-job-1889/)
> “Does the job perfectly, and adds no bloat.”
>  — [@clicknathan on wordpress.org](https://wordpress.org/support/topic/does-the-job-perfectly-and-adds-no-bloat/)
> “Simple yet powerful. Great plugin that does exactly what you need.”
>  — [@mixey on wordpress.org](https://wordpress.org/support/topic/simple-yet-powerful-106/)

#### Accessibility

This plugin is designed & developed for WCAG 2.2 level AA conformance. The plugin
is tested with assistive technology and intended to be accessible, however some 
third party plugins or themes may affect the individual accessibility on a given
website. If you find an accessibility issue, please [let us know](https://github.com/mtoensing/simpletoc/issues)
and we’ll try to address it promptly.
 Hidden TOCs use native `<details>` and `<
summary>` semantics without extra ARIA references that require custom IDs.

#### Features

 * Designed for Gutenberg.
 * Zero configuration: Add the SimpleTOC block to your post and that’s it.
 * Minimal and valid HTML output.
 * Utilizes the browser’s built-in details tag for a collapsible interface.
 * No JavaScript or CSS by default. Optional features such as the accordion menu,
   smooth scrolling, or box style add minimal assets only when enabled.
 * Optional Box style in Gutenberg’s Styles tab with a default gray background.
 * Native text, link, background, spacing, and typography controls.
 * Global block styling through theme.json.
 * Inherits the style of your theme.
 * Smooth scrolling effect using CSS.
 * Accessibility built-in by following web standards.
 * Standard Gutenberg block wrapper with navigation role and ARIA label attributes.
 * Translated in [multiple languages](https://translate.wordpress.org/projects/wp-plugins/simpletoc/).
   Including German, Japanese, Chinese (Taiwan), Dutch, Brazilian Portuguese, French,
   Spanish and Latvia.
 * Ideal for creating a Frequently Asked Questions section on your website.

#### Customization

 * Administrators can utilize global settings to supersede the individual block 
   settings.
 * Set text, link, and background colors in Gutenberg’s Styles tab.
 * Native block support for wide and full width.
 * Set vertical margins and padding with native spacing controls.
 * Control the maximum depth of the headings.
 * Choose between an ordered, bullet HTML list. Or indent the list.
 * Select the Box style directly in Gutenberg’s Styles tab.
 * Select a heading level or turn it into a paragraph.
 * Disable the h2 heading of the TOC block and add your own.

#### Compatibility

 * GeneratePress and Rank Math support.
 * Works with popular AMP plugins.

#### How to contribute

SimpleTOC is open-source and developed on [GitHub Pages](https://github.com/mtoensing/SimpleTOC).
If you find a bug or have an idea for a feature please feel free to contribute and
create a pull request.

### Credits

Many thanks to [Tom J Nowell](https://tomjn.com) and and Sally CJ who both helped
me a lot with my questions over at wordpress.stackexchange.com

And many more thanks to all the [developers on GitHub](https://github.com/mtoensing/simpletoc/graphs/contributors)
who helped me making SimpleTOC what it is today!

Thanks to Quintus Valerius Soranus for inventing the Table of Contents around 100
BC.

## Screenshots

[⌊SimpleTOC block in Gutenberg editor.⌉⌊SimpleTOC block in Gutenberg editor.⌉[

SimpleTOC block in Gutenberg editor.

[⌊SimpleTOC in the post.⌉⌊SimpleTOC in the post.⌉[

SimpleTOC in the post.

[⌊Simple but powerful. Customize each TOC as you like.⌉⌊Simple but powerful. Customize
each TOC as you like.⌉[

Simple but powerful. Customize each TOC as you like.

[⌊Control the maximum depth of the headings.⌉⌊Control the maximum depth of the headings
.⌉[

Control the maximum depth of the headings.

[⌊SimpleTOC styled with Gutenbergs native group styles.⌉⌊SimpleTOC styled with Gutenbergs
native group styles.⌉[

SimpleTOC styled with Gutenbergs native group styles.

[⌊SimpleTOC Advanced Features⌉⌊SimpleTOC Advanced Features⌉[

SimpleTOC Advanced Features

[⌊Gutenberg Heading block: Set a custom anchor⌉⌊Gutenberg Heading block: Set a custom
anchor⌉[

Gutenberg Heading block: Set a custom anchor

[⌊SimpleTOC hidden in the accordion menu.⌉⌊SimpleTOC hidden in the accordion menu
.⌉[

SimpleTOC hidden in the accordion menu.

[⌊SimpleTOC global settings.⌉⌊SimpleTOC global settings.⌉[

SimpleTOC global settings.

## Blocks

This plugin provides 1 block.

 *     SimpleTOC Adds a Table of Contents.

## Installation

SimpleTOC can be found and installed via the Plugin menu within WordPress administration(
Plugins -> Add New). Alternatively, it can be downloaded from WordPress.org and 
installed manually…

In Gutenberg, add a block and search for “SimpleTOC” or just “TOC”. Please save 
your content before you use the block.

## FAQ

### Configuring Global Settings in SimpleTOC

SimpleTOC allows you to configure global settings for your WordPress website. These
settings can be enforced globally, overriding any block-level configurations that
may exist. To access these settings, navigate to the SimpleTOC section of the WordPress
Settings.

### How do I add colors or the Box style to SimpleTOC?

Select the SimpleTOC block and open Gutenberg’s Styles tab. Choose the Box style
or use the native color controls to set text, link, and background colors. Native
spacing controls are available for vertical margins and padding.

### How to exclude a single heading from the TOC?

If you really want to hide a single heading from the table of contents, then add
the CSS class “simpletoc-hidden” to a heading block. You can find this field in 
the same place as the HTML anchor field: In the Block > Advanced sidebar. But first,
think about the reason you would like to hide a specific heading. Maybe you would
like to remove all headings of a specific depth level. Then there is an option for
that in the blocks options in Gutenberg. If you think this heading should not be
part of the toc perhaps it is not needed in the post itself?

### I would like to save my SimpleTOC settings as default. Is that possible?

You can convert your configured SimpleTOC block into a reusable block in Gutenberg.
It will keep its settings. This way, you can use your desired settings for each 
new post by adding the reusable block.

### How can I style SimpleTOC through theme.json?

Add styles for the `simpletoc/toc` block to your theme.json. SimpleTOC uses the 
standard Gutenberg block wrapper and supports native colors, vertical margins, padding,
font size, and line height settings.

The following example sets default colors, spacing, and typography for every SimpleTOC
block:

    ```
    {
        "$schema": "https://schemas.wp.org/trunk/theme.json",
        "version": 3,
        "styles": {
            "blocks": {
                "simpletoc/toc": {
                    "color": {
                        "background": "#f5f5f5",
                        "text": "#1e1e1e"
                    },
                    "elements": {
                        "link": {
                            "color": {
                                "text": "#0057b8"
                            }
                        }
                    },
                    "spacing": {
                        "margin": {
                            "top": "1.5rem",
                            "bottom": "1.5rem"
                        },
                        "padding": {
                            "top": "1rem",
                            "right": "1rem",
                            "bottom": "1rem",
                            "left": "1rem"
                        }
                    },
                    "typography": {
                        "fontSize": "1rem",
                        "lineHeight": "1.6"
                    }
                }
            }
        }
    }
    ```

Replace the example values with your theme’s values or preset variables. Selecting
the Box style adds the standard `is-style-boxed` class.

### How to allow developers to exclude specific headings programmatically?

Use the ’simpletoc_excluded_blocks’ filter. For example, this code will exclude 
heading blocks that are inside a column block.

Example:

    ```
    add_filter( 'simpletoc_excluded_blocks', function ( array $blocks ) {
        $blocks[] = 'core/column';

        return $blocks;
    } );
    ```

### How do I change the color of the accordion menu?

The heavy plus character I used can not be colored with css without hacks. But you
can change the icon to something else and change the color of the new icon.

    ```
    .simpletoc-collapsible::after {
        content: "✖";
        color: #e94c89;
    }
    ```

### How do I add SimpleTOC to all articles automatically?

I don’t see an easy solution at the moment. SimpleTOC is only a block that can be
placed in your post. If there was a plugin that adds blocks to every post, then 
this would be the solution. I think this should be another separate plug-in to keep
the code of SimpleTOC clean and … well, simple.

## Reviews

![](https://secure.gravatar.com/avatar/ca481b56965d51c2202d6b74d3e6567908a142d529dc39061546a1acef255af2?
s=60&d=retro&r=g)

### 󠀁[Works almost out of the box](https://wordpress.org/support/topic/works-almost-out-of-the-box/)󠁿

 [Lovro Hrust](https://profiles.wordpress.org/lovor/) 21 An Lùnastal 2026 1 reply

I just wished this block would follow good practices for developing blocks. I was
wondering why I can’t style it through theme.json and discovered that it hasn’t 
standard block wrapper. After inspecting block code, I found that it uses get_block_wrapper_attributes()
function, but optionally. After finding that option digged under advanced block 
settings, I was able to style it like I do other blocks. Otherwise, this is a great
block plugin.

![](https://secure.gravatar.com/avatar/ab62eb42e842b6adca897024806bbf5eaebe9896ac46f2d6823973e6d9d27d42?
s=60&d=retro&r=g)

### 󠀁[Excellent and great Support](https://wordpress.org/support/topic/excellent-and-great-support-11/)󠁿

 [Hans-Gerd Gerhards](https://profiles.wordpress.org/hage/) 24 An Cèitean 2026

The plugin works brilliantly. The support is fantastic. A conflict with another 
plugin (Noted) was resolved in just 1–2 hours. Thanks

![](https://secure.gravatar.com/avatar/0305ccdaadb7ee42a8adbe1c18ce4d6a27ee05bb03258dc559496b7e7645e266?
s=60&d=retro&r=g)

### 󠀁[Does what it says on the tin](https://wordpress.org/support/topic/does-what-it-says-on-the-tin-632/)󠁿

 [3tianne](https://profiles.wordpress.org/3tianne/) 7 Am Faoilleach 2026 1 reply

Does the job with no fuss. I feel that the option to include a basic show/hide button(
no animations or other bloat necessary) would add a great deal of polish for very
little impact. But, the plugin advertises itself as something that is minimalist,
no CSS, no JS, and that is what it is. The links also follow the CSS rules from 
the site theme which is strangely not the case for other TOC plugins. Well done 
this dev.

![](https://secure.gravatar.com/avatar/bef42f4e492576aaa7a439420ff1c232a1e2afe0d7793809dee10d727fb9abb2?
s=60&d=retro&r=g)

### 󠀁[This one will stay in my sites](https://wordpress.org/support/topic/this-one-will-stay-in-my-sites/)󠁿

 [Zetona](https://profiles.wordpress.org/zetona/) 26 An Dùbhlachd 2025

Thank you Marc, your plugin just works as expected!

![](https://secure.gravatar.com/avatar/1c19492d5ef0dd503e56f6f1b31d11c32c5b4e8df38a6cc26800d6cdd33be90c?
s=60&d=retro&r=g)

### 󠀁[Good job!](https://wordpress.org/support/topic/good-job-1889/)󠁿

 [js100](https://profiles.wordpress.org/js100/) 29 An t-Samhain 2025 1 reply

The plugin works exceptionally well. It is lightweight, stable, and fully compatible
with WordPress Full Site Editing. A reliable solution that integrates seamlessly
and performs exactly as expected.

![](https://secure.gravatar.com/avatar/da4dbd5fb92824aceaed1008170588282b36491ab2baae3375bd5de0e8cea7bf?
s=60&d=retro&r=g)

### 󠀁[Does the job perfectly, and adds no bloat](https://wordpress.org/support/topic/does-the-job-perfectly-and-adds-no-bloat/)󠁿

 [Clicknathan](https://profiles.wordpress.org/clicknathan/) 13 An Cèitean 2025 1
reply

Comparing this to the “Table Of Contents Block” by WPDeveloper, I prefer this one
because: It just works automatically. It has less options, but just enough to do
what you need. It adds nothing to the frontend to cause bloat. No CSS, no JS. At
least not right out of the box. Additional settings can be enabled that will add
these, but it’s nice that we have the option! This is an example of what a well-
written plugin should be.

 [ Read all 77 reviews ](https://wordpress.org/support/plugin/simpletoc/reviews/)

## Contributors & Developers

“SimpleTOC – Table of Contents Block” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ Marc Tönsing ](https://profiles.wordpress.org/marcdk/)

“SimpleTOC – Table of Contents Block” has been translated into 19 locales. Thank
you to [the translators](https://translate.wordpress.org/projects/wp-plugins/simpletoc/contributors)
for their contributions.

[Translate “SimpleTOC – Table of Contents Block” into your language.](https://translate.wordpress.org/projects/wp-plugins/simpletoc)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/simpletoc/), check 
out the [SVN repository](https://plugins.svn.wordpress.org/simpletoc/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/simpletoc/) by [RSS](https://plugins.trac.wordpress.org/log/simpletoc/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 7.3.0

 * Changed: Box is now a native Gutenberg block style in the Styles tab.
 * Added: Native text, link, background color, margin, and padding controls.
 * Added: theme.json styling support for colors, spacing, and typography.
 * Added: WordPress 7.1 support and automated compatibility tests.
 * Changed: Existing box-style blocks and the global Force box style setting remain
   compatible.
 * Thanks: Lovro Hrust (@lovor) for the theme.json and block styling feedback.

## Meta

 *  Version **7.3.0**
 *  Last updated **3 làithean ago**
 *  Active installations **10,000+**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.3 or higher **
 *  Languages
 * [Chinese (Taiwan)](https://tw.wordpress.org/plugins/simpletoc/), [Czech](https://cs.wordpress.org/plugins/simpletoc/),
   [Danish](https://da.wordpress.org/plugins/simpletoc/), [Dutch](https://nl.wordpress.org/plugins/simpletoc/),
   [Dutch (Belgium)](https://nl-be.wordpress.org/plugins/simpletoc/), [English (US)](https://wordpress.org/plugins/simpletoc/),
   [French (France)](https://fr.wordpress.org/plugins/simpletoc/), [German](https://de.wordpress.org/plugins/simpletoc/),
   [Greek](https://el.wordpress.org/plugins/simpletoc/), [Italian](https://it.wordpress.org/plugins/simpletoc/),
   [Japanese](https://ja.wordpress.org/plugins/simpletoc/), [Latvian](https://lv.wordpress.org/plugins/simpletoc/),
   [Polish](https://pl.wordpress.org/plugins/simpletoc/), [Portuguese (Brazil)](https://br.wordpress.org/plugins/simpletoc/),
   [Spanish (Chile)](https://cl.wordpress.org/plugins/simpletoc/), [Spanish (Colombia)](https://es-co.wordpress.org/plugins/simpletoc/),
   [Spanish (Ecuador)](https://es-ec.wordpress.org/plugins/simpletoc/), [Spanish (Mexico)](https://es-mx.wordpress.org/plugins/simpletoc/),
   [Spanish (Spain)](https://es.wordpress.org/plugins/simpletoc/), and [Spanish (Venezuela)](https://ve.wordpress.org/plugins/simpletoc/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/simpletoc)
 * Tags
 * [accessibility](https://gd.wordpress.org/plugins/tags/accessibility/)[block](https://gd.wordpress.org/plugins/tags/block/)
   [table](https://gd.wordpress.org/plugins/tags/table/)[table of contents](https://gd.wordpress.org/plugins/tags/table-of-contents/)
   [toc](https://gd.wordpress.org/plugins/tags/toc/)
 *  [Advanced View](https://gd.wordpress.org/plugins/simpletoc/advanced/)

## Ratings

 4.9 out of 5 stars.

 *  [  73 5-star reviews     ](https://wordpress.org/support/plugin/simpletoc/reviews/?filter=5)
 *  [  4 4-star reviews     ](https://wordpress.org/support/plugin/simpletoc/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/simpletoc/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/simpletoc/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/simpletoc/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/simpletoc/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/simpletoc/reviews/)

## Contributors

 *   [ Marc Tönsing ](https://profiles.wordpress.org/marcdk/)

## Support

Issues resolved in last two months:

     1 out of 2

 [View support forum](https://wordpress.org/support/plugin/simpletoc/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://marc.tv/out/donate)