Smart Tags for WordPress
Manage WordPress tags manually or with Claude API suggestions — always with manual approval.
Smart Tags for WordPress sends your post tags to the Claude API (Anthropic) in batches and asks it to spot near-duplicates, semantic overlaps, and low-usage tags that could be merged into a broader existing tag. Nothing is changed automatically: every suggestion is queued for review and only applied when you approve it. Alongside the AI analysis, a 'Manage Tags' tab covers manual, non-AI tag housekeeping: usage statistics, search, merge, and delete.
Key features
- ●Batch analysis of all tags via the Claude API, with a live processing log, progress tracking, and a stop button.
- ●Merge suggestions grouped by type: near-duplicates, semantic overlaps, low-usage tags.
- ●Per-suggestion Approve/Reject/Restore, plus multi-select bulk actions on each suggestions table.
- ●Rejected suggestions are kept, not discarded, and can be restored to pending at any time.
- ●A 'Manage Tags' tab for non-AI housekeeping: usage histogram, searchable/sortable/paginated tag table, individual or bulk deletion, and a manual merge tool.
- ●Unused tag detection (0 posts) with bulk delete and a tool to recount drifted tag counts.
- ●Configurable AI model, batch size, and response language for Claude's suggestion text.
- ●Git Updater compatible for updates straight from GitHub.
You can install this plugin manually over SSH — connect to your server and run these commands inside your wp-content/plugins directory:
Alternatively, download the ZIP above and upload it from Plugins → Add New → Upload Plugin in your WordPress dashboard, or via FTP/SFTP.
- Fixed locked tags being unable to enter the merge selection at all, even as the merge target (which always survives a merge — only source tags get deleted). Removed the lock filtering from
add_to_merge_basket()andget_merge_basket_terms()inincludes/class-wpto-admin-page.php, fromprocess_add_tags_by_name()(dropping its "Skipped locked tag(s)" notice), and removedWPTO_Merge_Handler::apply()'s rejection of a locked target. Locked tags remain fully protected as a merge source:apply()still skips them there instead of deleting them.
For the full version history, see CHANGELOG.md.
Other plugins
A widget that displays your latest Disqus comments, powered by the Disqus API.
Export, review and delete WordPress users by email — including duplicate detection.
An independent, modernized fork of Lightweight Social Icons with Discord, WhatsApp, TikTok, Threads and Bluesky.