You can hide the SKU on the WooCommerce single product page with a filter that disables SKU output on the front end while keeping it fully visible and editable in the admin for order tracking, imports, and exports. This is a common request for stores that don’t want internal reference codes visible to shoppers.
Why Hide the SKU from Customers
- Internal SKU codes may reveal supplier, cost, or batch information you’d rather not expose
- A cleaner product page layout without extra meta rows
- Some stores use SKUs purely for warehouse/inventory purposes, not customer reference
Step 1: Add the Hide-SKU Snippet
/** Hide SKU on the storefront while keeping it visible in wp-admin */
add_filter( 'wc_product_sku_enabled', 'hide_sku_on_storefront_only' );
function hide_sku_on_storefront_only( $is_enabled ) {
if ( ! is_admin() && is_product() ) {
return false;
}
return $is_enabled;
}

Because the check is scoped to is_product() and excludes admin screens, your SKU stays fully intact in Products → Edit and in CSV import/export — only the single product page front-end display is hidden.
Hiding SKU on Shop and Category Pages Too
The filter above only targets the single product page. If your theme also prints the SKU in the shop loop, broaden the condition:
function hide_sku_shop_and_product_pages( $is_enabled ) {
if ( ! is_admin() && ( is_product() || is_shop() || is_product_category() ) ) {
return false;
}
return $is_enabled;
}
add_filter( 'wc_product_sku_enabled', 'hide_sku_shop_and_product_pages' );Troubleshooting
SKU Still Shows After Adding the Snippet
Some themes print the SKU directly in a custom template file rather than through the standard hook — if the filter has no effect, search your theme for a hardcoded SKU reference.
SKU Disappeared from Admin Too
Double-check the ! is_admin() condition is present exactly as shown — omitting it hides the SKU everywhere, including the product edit screen, which usually isn’t intended.
Frequently Asked Questions
Does hiding the SKU affect inventory tracking?
No — this only controls front-end display. Stock management, order processing, and reporting all continue to use the SKU internally as normal.
Can I hide SKU for only certain product categories?
Yes — add a category check with has_term() inside the same conditional so the filter only applies to specific categories.
Is there a plugin alternative to this snippet?
Yes, several small utility plugins offer a settings toggle for hiding SKU, categories, or tags on the front end if you’d rather avoid custom code.
Conclusion
Hiding the SKU on the WooCommerce single product page is a one-filter change that keeps internal reference codes out of customer view while leaving admin functionality untouched. Extend the same filter to shop and category pages if your theme prints SKU there too.
See also How to Hide Category and Tag on the Single Product Page.
Prefer no code? All-in-One Utilities Woo Add-on handles this kind of change from a settings screen. Its Product page extras guide also shows how.