LuckyWP Table of Contents
Creates SEO-friendly table of contents for your posts, pages or custom post types. Great customizable appearance.
Features
- Automatical insertion a table of contents (configure post types and position).
- SEO-friendly: table of contents code is ready to use by Google for snippets on result page.
- Insert by shortcode, Gutenberg block or widget.
- Button on toolbar of the classic editor.
- Gutenberg block into “Common Blocks”.
- Setting the minimum number of headings to display table of contents.
- Setting the depth of headings for table of contents.
- Skip headings by level or text.
- Hierarchical or linear view.
- Numeration items: decimal or roman numbers in order or nested.
- Customizable appearance: width, float, title font size and weight, items font size, colors.
- Color schemes (dark, light, white, transparent, inherit from theme) and the ability to override colors.
- Toggle Show/Hide (optionally)
- Customizable labels.
- Smooth scroll (optionally).
- Setting offset top for smooth scroll.
- Wrap table of contents with tag (optionally).
- Pretty hash in URL (like
example.com/faq/#how_do_this). - RTL support.
- Available override global settings for a particular post.
- Highly compatible with WordPress themes and plugins.
Auto Insert
For automatical insertion a table of contents in a posts, select option “Auto Insert Table of Contents” in the plugin settings (tab “Auto Insert”).
Supported positions:
- before first heading;
- after first heading;
- after first block (paragraph or heading);
- top of post content;
- bottom of post content.
You can also select post types to which the table of contents will be automatically added.
Manual Insert
For manual insertion a table of content in a posts, use one of the ways:
- button “Table of Contents” on toolbar in classic editor;
- gutenberg block “Table of Contents”;
- shortcode
[lwptoc].
Pretty hash in URL
By default, hash generated as heading text (for example, #How_Do_This). You can change hash format in global settings, tab “Misc.”.
For non-English websites it is recommended to enable the Intl PHP extension.
Compatibility
LuckyWP Table of Contents was successfully tested with the following plugins:
- Elementor Page Builder
- Beaver Builder and Beaver Builder Themer Add-On
- WPBakery Page Builder
- Oxygen
- WordPress Multilingual Plugin (WPML), officially confirmed
- Rank Math, officially confirmed
- WP Rocket
- Toolset Views and Toolset Access
Hooks
Filters lwptoc_before, lwptoc_after
Use for add custom HTML before/after the table of contents.
Example:
add_filter('lwptoc_before', function ($before) {
return 'Example text before TOC.
' . $before;
});
Filter lwptoc_shortcode_tag
Use this filter for change shortcode tag name [lwptoc].
Example:
add_filter('lwptoc_shortcode_tag', function ($tag) {
return 'toc';
});
Filter lwptoc_heading_id
Use for modify heading ID.
Example:
add_filter('lwptoc_heading_id', function ($id, $label) {
return $id;
}, 10, 2);
| Domain | Exposures | Headers | Last Checked |
|---|---|---|---|
| f*e*h*a*i*o.at (WP 7.0) | F | Jun 30, 2026 | |
| o*f*c*a*k*s*i*o.net | F | Jun 30, 2026 | |
| n*v*-*u*u*l*e.com | F | Jun 30, 2026 | |
| m*s*b*t*b*.cz | D | Jun 30, 2026 | |
| p*p*o*a*.it (WP 6.9.4) | F | Jun 30, 2026 | |
| s*m*n*x*x.com (WP 6.5.3) | F | Jun 30, 2026 | |
| p*s*h*l*s*o*s*.com (WP 7.0) | F | Jun 30, 2026 | |
| g*l*c*a*t*c*r*s*.com (WP 6.9) | F | Jun 30, 2026 | |
| c*i*f*r*.at (WP 7.0) | F | Jun 30, 2026 | |
| i*o*e*2.com (WP 7.0) | F | Jun 30, 2026 | |
| s*m*n*c*m*l*a*c*-*a*p*s.com (WP 6.7.5) | F | Jun 30, 2026 | |
| l*x*l*i*i*a*.com (WP 7.0) | F | Jun 30, 2026 | |
| c*s*o*o*-*o*a*d.pl (WP 7.0) | F | Jun 30, 2026 | |
| s*m*d*n*a*e.com (WP 7.0) | B | Jun 30, 2026 | |
| f*i*m*s*c.com (WP 6.9) | F | Jun 30, 2026 | |
| i*c*b*t.ru | D | Jun 30, 2026 | |
| m*g*o*-*u*o*i*c*.fr | F | Jun 30, 2026 | |
| s*u*s*f*c*r*i*i*d.com (WP 6.9) | F | Jun 30, 2026 | |
| v*l*a*-*p*e*e*.com (WP 7.0) | F | Jun 30, 2026 | |
| b*r*a*e*g*i*l*.it (WP 6.9.4) | F | Jun 30, 2026 | |
| c*c*t*c*n*i*i*o.it (WP 6.9.4) | F | Jun 30, 2026 | |
| w*n*p*o*o.it (WP 6.9.4) | F | Jun 30, 2026 | |
| c*n*r*r*c*m*i*u*.it (WP 6.9.4) | F | Jun 30, 2026 | |
| c*a*a*a*n*.org (WP 6.9.4) | F | Jun 30, 2026 | |
| m*d*z*o*i.it (WP 6.9.4) | F | Jun 30, 2026 | |
| t*s*v*s*v*.it (WP 6.9.4) | F | Jun 30, 2026 | |
| b*r*a*c*i*v*t*r*n*r*o.it (WP 6.9.4) | F | Jun 30, 2026 | |
| z*u*a*p.it (WP 6.9.4) | F | Jun 30, 2026 | |
| d*n*s*u*s*o*.it (WP 6.9.4) | F | Jun 30, 2026 | |
| c*s*i*i*i*d*l*i*o.it (WP 6.9.4) | F | Jun 30, 2026 | |
| c*s*o*s*u*z*o*e.it (WP 6.9.4) | F | Jun 30, 2026 | |
| r*t*o*o*t*g*-*h*p.it (WP 6.9.4) | F | Jun 30, 2026 | |
| c*m*e*i*t*m*n*a*b*n*.it (WP 6.9.4) | F | Jun 30, 2026 | |
| t*a*t*n*t*a*t.it (WP 6.9.4) | F | Jun 30, 2026 | |
| g*r*g*d*y*o*a*.it (WP 6.9.4) | F | Jun 30, 2026 | |
| s*e*p*l*c*a*n.it (WP 6.9.4) | F | Jun 30, 2026 | |
| v*t*t*e*i*o.it (WP 6.9.4) | F | Jun 30, 2026 | |
| j*r*s*e*.eu (WP 7.0) | F | Jun 30, 2026 | |
| n*t*r*e*t.com (WP 6.9.4) | F | Jun 30, 2026 | |
| j*n*h*u*e*l*a*i*g.net (WP 6.9) | F | Jun 30, 2026 | |
| c*a*k*f*o*s*n*i*e.c*.uk (WP 6.9.1) | F | Jun 30, 2026 | |
| a*e*y*.cz | F | Jun 30, 2026 | |
| c*s*i*o*o*p*y*a*e*a*d.com (WP 7.0) | F | Jun 30, 2026 | |
| p*t*n*m*d*l*p*t*k*t*4.se | F | Jun 30, 2026 | |
| k*a*l*.in | F | Jun 30, 2026 | |
| i*d*a*s*m*e*h*m*.net (WP 6.9) | F | Jun 30, 2026 | |
| j*w*s*n*r*h*o*n*y.com (WP 6.4.5) | F | Jun 30, 2026 | |
| f*u*z*c*s*n*.com (WP 6.8.5) | D | Jun 30, 2026 | |
| f*u*u*e*e*s*n*t*t*.com | F | Jun 30, 2026 | |
| f*u*t*-*o*a*z*.com | F | Jun 30, 2026 | |
| j*w*l*y*e*i*w*w*r*d.com (WP 6.4.5) | F | Jun 30, 2026 | |
| o*l*n*-*o*f*e*o*e*.nl (WP 7.0) | F | Jun 30, 2026 | |
| v*k*n*i*c*r*u.eu (WP 7.0) | F | Jun 30, 2026 | |
| c*s*n*h*l*a*d.live | F | Jun 30, 2026 | |
| s*o*a*a*s*t*n*t*i*a*i*o*.org (WP 7.0) | F | Jun 30, 2026 | |
| r*d*i*n*c*s*n*.c*.uk | D | Jun 30, 2026 | |
| p*i*e*a*i*o.uk | D | Jun 30, 2026 | |
| p*a*z*e*a*i*o.uk | D | Jun 30, 2026 | |
| p*o*e*s*r*w*n*-*a*i*o.c*.uk | D | Jun 30, 2026 | |
| p*a*a*r*y*l*c*s*n*.c*.uk | D | Jun 30, 2026 | |
| r*b*i*w*n*a*i*o.c*.uk | D | Jun 30, 2026 | |
| r*p*o*w*n*c*s*n*.c*.uk | D | Jun 30, 2026 | |
| p*c*e*w*n*c*s*n*.c*.uk | D | Jun 30, 2026 | |
| u*-*o*a*e*.c*.uk (WP 7.0) | F | Jun 30, 2026 | |
| c*a*t*a*u*i*m*i*r*t*o*.com | F | Jun 30, 2026 | |
| s*n*y*t*n*e*p*i*e*.c*.in | F | Jun 30, 2026 | |
| m*s*l*s*r*t*h.in | F | Jun 30, 2026 | |
| k*e*h*n*a*g*t.de | F | Jun 30, 2026 | |
| 1*s*e*s.c*m.ua (WP 7.0) | F | Jun 30, 2026 | |
| p*k*e*.casino (WP 6.9.4) | F | Jun 30, 2026 | |
| c*s*n*p*k*r.co (WP 7.0) | F | Jun 30, 2026 | |
| g*n*a*r*.be | D | Jun 30, 2026 | |
| a*d*o*m*g*s.com (WP 6.9) | F | Jun 30, 2026 | |
| k*1*b*t*a*p.com | F | Jun 30, 2026 | |
| x*-*r*e*a*k*n*-*i*b*d*0*b.dk | F | Jun 30, 2026 | |
| s*f*d*s*e*s*r.dk | F | Jun 30, 2026 | |
| x*-*s*n*e*n*-*0*.dk | F | Jun 29, 2026 | |
| s*f*b*r*-*i*b*d.dk | F | Jun 29, 2026 | |
| m*m*-*r*s.dk | F | Jun 29, 2026 | |
| x*-*v*n*e*s*v*e*-*i*b*d*2*b.dk | F | Jun 29, 2026 | |
| x*-*s*r*k*r*e*-*i*-*n*-*u*4*a.dk | F | Jun 29, 2026 | |
| x*-*f*y*e*d*a*t*t*l*b*n*c*b.dk | F | Jun 29, 2026 | |
| x*-*b*d*t*-*i*-*v*n*e*-*4*.dk | F | Jun 29, 2026 | |
| x*-*s*i*e*t*r*m*d*s*r*-*4*.dk | F | Jun 29, 2026 | |
| s*r*k*j*l*.dk | F | Jun 29, 2026 | |
| a*l*h*l*e*s*f*e*.dk | F | Jun 29, 2026 | |
| g*m*r*p*-*i*b*d.dk | F | Jun 29, 2026 | |
| x*-*b*d*i*t*r*t*l*u*-*x*.dk | F | Jun 29, 2026 | |
| s*i*k*b*r*-*e*-*p*j*.dk | F | Jun 29, 2026 | |
| p*s*e*o*m*d*.dk | F | Jun 29, 2026 | |
| s*v*s*f*-*i*b*d.dk | F | Jun 29, 2026 | |
| x*-*u*d*r*j*t*l*k*i*d*r*0*b.dk | F | Jun 29, 2026 | |
| j*m*s*i*-*i*-*v*n*e*.dk | F | Jun 29, 2026 | |
| f*a*e*s*o.dk | F | Jun 29, 2026 | |
| d*n*e*t.dk | F | Jun 29, 2026 | |
| u*-*i*-*v*n*e*.dk | F | Jun 29, 2026 | |
| x*-*t*r*o*j*t*l*u*-*q*.dk | F | Jun 29, 2026 | |
| x*-*s*j*r*e*-*i*-*n*-*o*.dk | F | Jun 29, 2026 | |
| x*-*l*e*n*d*r*e*-*c*.dk | F | Jun 29, 2026 | |
| x*-*v*s*-*i*-*n*-*d*.dk | F | Jun 29, 2026 |