Product pages go stale. Descriptions copied from the manufacturer, “Summer 2024” still in a product name, images without alt text, categories with no introduction, links to products you deleted last year. Each problem is small, but together they cost you search traffic and sales.
Kaiizen Shelf Life checks every product and product category in your WooCommerce store, gives each one a health score from 0 to 100, and shows you a prioritized list of what to fix first — in plain language, with a concrete “how to fix” for every issue.
It is made for store owners, not SEO experts. Instead of jargon you get messages like:
This product’s description is only 18 words. Add at least 132 more words — details about size, use, materials and what makes it different.
Products
Product categories
Every threshold can be changed, and every check can be turned off, in Shelf Life Settings.
Each check can take points off a page’s 100-point score, weighted by how serious the issue is (high, medium or low). The fix list puts first the pages that have the lowest scores and matter most — published, in stock, priced and featured products rank higher.
wp kaiizen-shelf-life scan, status and reset.Shelf Life is built to be extended. Actions and filters include:
kzsl_register_checks – add, replace or remove checks (implement Kaiizen\ShelfLife\Checks\CheckInterface, or extend AbstractCheck).kzsl_item_importance – replace the importance estimate, e.g. with traffic or sales data.kzsl_item_context – add data to the snapshot checks receive.kzsl_check_weight, kzsl_severity_factors, kzsl_item_score, kzsl_item_priority – tune scoring.kzsl_seo_adapter – support another SEO plugin.kzsl_item_row_actions, kzsl_detail_panel_after, kzsl_dashboard_after_summary – add links, panels and cards to the admin.kzsl_after_scan_item, kzsl_scan_started, kzsl_scan_complete, kzsl_issue_status_changed, kzsl_settings_updated, kzsl_loaded.
kzsl_admin_tabs – add admin tabs with their own submenu item; kzsl_background_hooks – register background jobs so they are cleared on deactivation; kzsl_uninstall_site – remove add-on data on uninstall.
The React admin exposes JavaScript filters through @wordpress/hooks: kzsl.adminTabs, kzsl.itemRowActions, kzsl.itemsBulkActions, kzsl.detailPanelAfter, kzsl.dashboardAfterSummary, kzsl.settingsBefore and kzsl.settingsAfter. Enqueue your script on the kzsl_admin_enqueue_scripts action with kzsl-admin as a dependency.
The REST API lives under /wp-json/kaiizen-shelf-life/v1/ and requires the manage_woocommerce capability.
The un-minified source of the admin app is included in the src folder; build it with npm install && npm run build.
Everything in this plugin is free and fully functional, with no limits on the number of products and no time limit. A separate Premium version, available from the plugin website, adds Google Search Console traffic data, sales-based priorities, AI-assisted writing, bulk content refresh, before-and-after results and a weekly email report. You never need it to use this plugin.
The audit runs entirely on your own server. Kaiizen Shelf Life does not send your products, content or scan results anywhere. The only optional connection is the Freemius opt-in described under External services.
This plugin connects to one external service, and only if you choose to:
Freemius (optional usage-data opt-in). The plugin includes the Freemius SDK. It does not ask you anything when you activate the plugin and sends nothing by default; an optional “Opt In” link on the Plugins screen lets you share basic usage information if you want to. If you opt in, Freemius receives your site URL, WordPress, PHP and plugin versions and your admin email address. Every feature works without opting in. Terms of service, privacy policy.