{"id":350436,"date":"2026-08-12T02:09:17","date_gmt":"2026-08-12T02:09:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/tendforge-shortcode-block-auditor\/"},"modified":"2026-08-12T02:08:52","modified_gmt":"2026-08-12T02:08:52","slug":"tendforge-shortcode-block-auditor","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/tendforge-shortcode-block-auditor\/","author":23528604,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.6","stable_tag":"1.1.6","tested":"7.0.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Tendforge Shortcode & Block Auditor","header_author":"Tendforge","header_description":"Find broken leftover content from removed plugins \u2014 both broken shortcodes (raw [bracket] text) and broken Gutenberg blocks (\"unexpected or invalid content\"). Scan all content and see exactly where each one is.","assets_banners_color":"5f6672","last_updated":"2026-08-12 02:08:52","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/tendforge.com\/en\/shortcode-auditor\/","header_author_uri":"https:\/\/tendforge.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":25,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.6":{"tag":"1.1.6","author":"tendforge","date":"2026-08-12 02:08:52"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3642699,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3642699,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3642699,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3642699,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.6"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3642699,"resolution":"1","location":"assets","locale":"","width":2256,"height":804},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3642699,"resolution":"2","location":"assets","locale":"","width":2256,"height":512},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3642699,"resolution":"3","location":"assets","locale":"","width":2256,"height":572}},"screenshots":{"1":"The free audit: broken shortcodes with page links, registered vs. unregistered split.","2":"Broken block detection across your content.","3":"(Pro) \"Safe to deactivate?\" dependency check and new-breakage alerts."}},"plugin_section":[],"plugin_tags":[8533,4121,3786,148076,80],"plugin_category":[43],"plugin_contributors":[271433],"plugin_business_model":[],"class_list":["post-350436","plugin","type-plugin","status-publish","hentry","plugin_tags-audit","plugin_tags-blocks","plugin_tags-cleanup","plugin_tags-gutenberg","plugin_tags-shortcode","plugin_category-customization","plugin_contributors-tendforge","plugin_committers-tendforge"],"banners":{"banner":"https:\/\/ps.w.org\/tendforge-shortcode-block-auditor\/assets\/banner-772x250.png?rev=3642699","banner_2x":"https:\/\/ps.w.org\/tendforge-shortcode-block-auditor\/assets\/banner-1544x500.png?rev=3642699","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/tendforge-shortcode-block-auditor\/assets\/icon-128x128.png?rev=3642699","icon_2x":"https:\/\/ps.w.org\/tendforge-shortcode-block-auditor\/assets\/icon-256x256.png?rev=3642699","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/tendforge-shortcode-block-auditor\/assets\/screenshot-1.png?rev=3642699","caption":"The free audit: broken shortcodes with page links, registered vs. unregistered split."},{"src":"https:\/\/ps.w.org\/tendforge-shortcode-block-auditor\/assets\/screenshot-2.png?rev=3642699","caption":"Broken block detection across your content."},{"src":"https:\/\/ps.w.org\/tendforge-shortcode-block-auditor\/assets\/screenshot-3.png?rev=3642699","caption":"(Pro) \"Safe to deactivate?\" dependency check and new-breakage alerts."}],"raw_content":"<!--section=description-->\n<p>Removing a plugin or switching page builders is the moment things silently break. The page builder is gone, but its content stays behind \u2014 Gutenberg blocks that now show the editor's \"this block contains unexpected or invalid content\" warning, and shortcodes like <code>[vc_row]<\/code>, <code>[su_button]<\/code> or <code>[old_slider id=\"3\"]<\/code> that visitors now see as raw bracket text. There is no built-in screen that lists them, so they are easy to miss until someone reports a broken page. Shortcode Auditor flips that around: scan first, see exactly which pages will break, then decide.<\/p>\n\n<p><strong>One scan shows you everything left behind, page by page:<\/strong><\/p>\n\n<ul>\n<li><strong>Broken block detection<\/strong> \u2014 Gutenberg blocks left behind by a removed plugin, the ones the editor flags as \"this block contains unexpected or invalid content\", with the exact pages they sit on<\/li>\n<li><strong>Broken shortcode detection<\/strong> \u2014 every shortcode in your content that no active plugin or theme handles, shown as raw <code>[bracket]<\/code> text to visitors, with direct links to the affected pages<\/li>\n<li><strong>Page-level impact<\/strong> \u2014 for each broken item, the precise posts and pages it appears on, so you see the blast radius before you touch anything<\/li>\n<li><strong>Usage by provider<\/strong> \u2014 every registered shortcode mapped to the plugin or theme that provides it, with usage counts, so you know which plugins your content actually depends on<\/li>\n<li><strong>Smart filtering<\/strong> \u2014 prose like \"[sic]\" and escaped <code>[[shortcodes]]<\/code> are not false-flagged<\/li>\n<li><strong>Batched scan<\/strong> \u2014 works on large sites without timeouts; covers all public post types and reusable blocks<\/li>\n<\/ul>\n\n<h4>Read-only by design<\/h4>\n\n<p>The auditor never modifies your content. It reports, you decide.<\/p>\n\n<h4>Shortcode Auditor Pro<\/h4>\n\n<p>Pro is a separate plugin available from tendforge.com. None of its code is included in this free version \u2014 everything described below is a Pro-only plugin, and nothing in this free download is locked, limited or time-restricted.<\/p>\n\n<p>The free plugin finds what is <em>already<\/em> broken. Pro answers the question you have <em>before<\/em> you remove anything:<\/p>\n\n<ul>\n<li><strong>Safe to deactivate? \u2014 plugin dependency check<\/strong> \u2014 before you remove a plugin, see exactly which live pages depend on it. Pro maps every active plugin whose shortcodes are still in your content, with the exact occurrences and pages that would break into raw [bracket] text the moment you deactivate it. It is the difference between knowing before you deactivate and finding out from a visitor afterwards.<\/li>\n<\/ul>\n\n<p>Also included:<\/p>\n\n<ul>\n<li><strong>Monitoring<\/strong> \u2014 scheduled weekly or monthly re-scans with an email alert whenever NEW broken shortcodes appear, so you catch a builder or plugin removal before your visitors do<\/li>\n<li><strong>Widget scanning<\/strong> \u2014 finds shortcodes in text, custom HTML and block widgets, the area the free content scan does not cover<\/li>\n<li><strong>CSV export<\/strong> of the full audit<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>In the WordPress admin, open <strong>Tools \u2192 Shortcode &amp; Block Auditor<\/strong>.<\/li>\n<li>Click <strong>Scan site<\/strong> \u2014 it lists your registered shortcodes, flags any broken shortcodes and broken blocks, and shows where each is used (posts and pages).<\/li>\n<li>Review the reported locations and fix or remove the content with full context.<\/li>\n<li>(Optional) Upgrade to Pro for CSV export and a scheduled email alert when new broken shortcodes appear.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20counts%20as%20a%20%22broken%22%20shortcode%3F\"><h3>What counts as a \"broken\" shortcode?<\/h3><\/dt>\n<dd><p>A shortcode-looking token in your content whose tag is not registered by any active plugin or theme. To avoid false alarms, unregistered tokens only count when they plausibly were shortcodes: they carry attributes, have a closing pair, or use separators in the name. Plain words in brackets (like \"[sic]\") are ignored.<\/p><\/dd>\n<dt id=\"which%20content%20is%20scanned%3F\"><h3>Which content is scanned?<\/h3><\/dt>\n<dd><p>The content of all public post types (posts, pages, products, custom types) plus reusable blocks, in published, private, scheduled, pending and draft status. Shortcodes inside widgets or page builder fields are outside the scan.<\/p><\/dd>\n<dt id=\"can%20it%20remove%20the%20broken%20shortcodes%20for%20me%3F\"><h3>Can it remove the broken shortcodes for me?<\/h3><\/dt>\n<dd><p>No \u2014 deliberately. Every occurrence links to the page so you can fix it with full context. Automatic text surgery on your content is not something a v1 should do.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.6<\/h4>\n\n<ul>\n<li>Reword the description to remove comparative claims.<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>Translations now come from translate.wordpress.org instead of being bundled.<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Clarify in the readme that Pro is a separate plugin, not included in this download.<\/li>\n<li>Harden the Pro loader against a missing <code>includes\/premium\/<\/code> directory.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Tidy the directory title.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Initial public release: scan your site content to find registered shortcodes, broken shortcodes and broken blocks, and see exactly which posts and pages they appear on.<\/li>\n<\/ul>","raw_excerpt":"Before removing a plugin or switching page builders, see exactly which pages break \u2014 broken Gutenberg blocks and broken shortcodes, and where.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/350436","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=350436"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tendforge"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=350436"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=350436"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=350436"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=350436"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=350436"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=350436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}