This might help you with Shop page listing:
https://docs.woocommerce.com/document/exclude-a-category-from-the-shop-page/
And for Search page, here is a snippet that might help:
function exclude_services_category_products_from_search( $query ) {
if ( is_search() && !is_admin() ) {
$array_with_service_category_id = [];
$tax_query = $query->get( 'tax_query' ) ?: [];
$tax_query[] = [
'taxonomy' => 'product_cat',
'terms' => $array_with_service_category_id,
'field' => 'term_id',
'operator' => 'NOT IN'
];
$query->set( 'tax_query', $tax_query );
}
return $query;
}
add_filter( 'pre_get_posts', 'exclude_services_category_products_from_search' );
Just add the Service Category id in the $array_with_service_category_id array.