Last updated on October 18, 2023

WooCommerce SEO optimization

Don’t know where to add this snippet? Read our guide: How to add code snippets.

Boost your site's SEO with WooCommerce optimizations.

One important aspect of WooCommerce SEO optimization is to ensure that your product pages have unique and descriptive meta titles and descriptions. This helps search engines understand the content of your pages and improves their visibility in search results.

To achieve this, you can use the wpseo_title and wpseo_metadesc filters provided by the Yoast SEO plugin. These filters allow you to modify the meta title and description dynamically based on the product data.

Here’s an example code snippet that demonstrates how to customize the meta title and description for WooCommerce product pages:

/**
 * Customize Yoast SEO meta title for WooCommerce product pages.
 *
 * @param string $title The default meta title.
 * @return string The modified meta title.
 */
function wpsnippets_custom_product_meta_title($title) {
    if (is_singular('product')) {
        global $post;
        $product = wc_get_product($post->ID);

        // Customize the title based on your requirements
        $title = $product->get_name() . ' - ' . get_bloginfo('name');
    }

    return $title;
}
add_filter('wpseo_title', 'wpsnippets_custom_product_meta_title');

/**
 * Customize Yoast SEO meta description for WooCommerce product pages.
 *
 * @param string $description The default meta description.
 * @return string The modified meta description.
 */
function wpsnippets_custom_product_meta_description($description) {
    if (is_singular('product')) {
        global $post;
        $product = wc_get_product($post->ID);

        // Customize the description based on your requirements
        $description = $product->get_short_description();
    }

    return $description;
}
add_filter('wpseo_metadesc', 'wpsnippets_custom_product_meta_description');

In the above code, we define two custom functions wpsnippets_custom_product_meta_title and wpsnippets_custom_product_meta_description. These functions are hooked into the wpseo_title and wpseo_metadesc filters respectively.

Within these functions, we first check if the current page is a singular product page using the is_singular('product') conditional check. Then, we retrieve the product data using the global $post object and the wc_get_product() function.

You can customize the meta title and description by modifying the $title and $description variables within these functions. In the example, we use the product name and site name for the title, and the product’s short description for the description.

By adding this code to your theme’s functions.php file or a custom plugin, you can ensure that your WooCommerce product pages have optimized meta titles and descriptions for better SEO.

Examples

Example 1: Adding Custom Meta Tags to WooCommerce Product Pages

This example demonstrates how to add custom meta tags to WooCommerce product pages for SEO optimization. The code snippet uses the wp_head action hook to add the meta tags to the head section of the product page.

function wpsnippets_add_custom_meta_tags() {
    if (is_product()) {
        echo '<meta name="description" content="Custom meta description">';
        echo '<meta name="keywords" content="custom, meta, tags">';
    }
}
add_action('wp_head', 'wpsnippets_add_custom_meta_tags');

The wpsnippets_add_custom_meta_tags function checks if the current page is a product page using the is_product conditional tag. If it is, it echoes the custom meta tags with the desired content. The add_action function hooks this function to the wp_head action, ensuring the meta tags are added to the head section of the product page.

Example 2: Customizing WooCommerce Product URLs for SEO

This example demonstrates how to customize the URLs of WooCommerce product pages for better SEO. The code snippet uses the woocommerce_product_post_type_args filter to modify the product post type arguments and set a custom rewrite rule.

function wpsnippets_custom_product_urls($args) {
    $args['rewrite']['slug'] = 'custom-product-url';
    return $args;
}
add_filter('woocommerce_product_post_type_args', 'wpsnippets_custom_product_urls');

The wpsnippets_custom_product_urls function modifies the rewrite rule of the product post type arguments by setting a custom slug. In this example, the slug is set to “custom-product-url”. The modified arguments are then returned. The add_filter function hooks this function to the woocommerce_product_post_type_args filter, ensuring the custom URLs are applied to the product pages.

Example 3: Optimizing WooCommerce Product Images for SEO

This example demonstrates how to optimize WooCommerce product images for SEO by adding alt text and title attributes. The code snippet uses the woocommerce_single_product_image_html filter to modify the image HTML output.

function wpsnippets_add_image_attributes($html, $attachment_id, $image_size, $main_image) {
    $alt_text = get_post_meta($attachment_id, '_wp_attachment_image_alt', true);
    $title = get_the_title($attachment_id);

    $html = str_replace('<img', '<img alt="' . esc_attr($alt_text) . '" title="' . esc_attr($title) . '"', $html);

    return $html;
}
add_filter('woocommerce_single_product_image_html', 'wpsnippets_add_image_attributes', 10, 4);

The wpsnippets_add_image_attributes function retrieves the alt text and title attributes for the product image using the attachment ID. It then replaces the <img tag in the image HTML with the modified tag that includes the alt text and title attributes. The add_filter function hooks this function to the woocommerce_single_product_image_html filter, ensuring the image attributes are added to the product images.

Last updated on October 18, 2023. Originally posted on November 25, 2023.

Leave a Reply