Products removed from sitemap automatically get noindex nofollow upon ticking seo.hidden

Topic summary

A retailer is experiencing an SEO issue with product variants (different colors listed as separate products). They’ve successfully implemented canonical tags for these duplicate products.

The Problem:

  • When using the seo.hidden meta field to remove products from the sitemap, the system automatically adds noindex, nofollow tags
  • This prevents search engines from both indexing the page AND following links, which negatively impacts SEO
  • For proper canonicalization, search engines need to follow links to recognize the canonical relationship

Attempted Solution:

  • The user tried modifying the header.liquid file with custom code to prevent the automatic noindex, nofollow tags when seo.hidden is enabled
  • The code snippet checks if product.metafields.seo.hidden or collection.metafields.seo.hidden equals 1, then removes the robots meta tag
  • However, this approach did not work

Status: The issue remains unresolved, and the user is seeking alternative solutions or ideas.

Summarized with AI on November 22. AI used: claude-sonnet-4-5-20250929.

We are a retailer selling products where each variant is a duplicate on our website (every color is an individual product). We managed to canonicalize these products, however if we want to remove them from sitemap by ticking the seo.hidden meta field, these products ALSO automaically are set to noindex nofollow. Which means don’t index this page in your search engine AND don’t follow links, which is bad for SEO. In order for the seach engine to follow and index these pages I tried to apply the following code to the liquid.header, however it did not work. Any ideas are much appreciated.

{% capture content_for_header_fixed %}
{{ content_for_header }}
{% endcapture %}

{% if product.metafields.seo.hidden == 1 or collection.metafields.seo.hidden == 1 %}
{{ content_for_header_fixed | remove: '<meta name="robots"
content="noindex,nofollow">' }}
{% else %}
{{ content_for_header }}
{% endif %}