Skip to content

Instantly share code, notes, and snippets.

@stephpolinar
Created August 18, 2025 06:09
Show Gist options
  • Save stephpolinar/ff131d1e8d392b50239fa3376eef0de8 to your computer and use it in GitHub Desktop.
Save stephpolinar/ff131d1e8d392b50239fa3376eef0de8 to your computer and use it in GitHub Desktop.
How to implement custom AU hreflang and hide/show hreflang tags via Shopify liquid.
{% comment %} Custom hreflang tags and hide/show hreflang tags {% endcomment %}
{%- liquid
assign hide_au_hreflang = false
assign hide_uk_hreflang = false
assign hide_jp_hreflang = false
assign hide_ca_hreflang = false
assign hide_nz_hreflang = false
assign custom_href = 'https://example.com.au' | append: request.path
if template.name == 'product'
if product.metafields.custom.au_custom_hreflang_link != blank
assign custom_href = product.metafields.custom.au_custom_hreflang_link
endif
assign hide_au_hreflang = product.metafields.custom.hide_au_hreflang.value
assign hide_uk_hreflang = product.metafields.custom.hide_uk_hreflang.value
assign hide_jp_hreflang = product.metafields.custom.hide_jp_hreflang.value
assign hide_ca_hreflang = product.metafields.custom.hide_ca_hreflang.value
assign hide_nz_hreflang = product.metafields.custom.hide_nz_hreflang.value
elsif template.name == 'collection'
if collection.metafields.custom.au_custom_hreflang_link != blank
assign custom_href = collection.metafields.custom.au_custom_hreflang_link
endif
assign hide_au_hreflang = collection.metafields.custom.hide_au_hreflang.value
assign hide_uk_hreflang = collection.metafields.custom.hide_uk_hreflang.value
assign hide_jp_hreflang = collection.metafields.custom.hide_jp_hreflang.value
assign hide_ca_hreflang = collection.metafields.custom.hide_ca_hreflang.value
assign hide_nz_hreflang = collection.metafields.custom.hide_nz_hreflang.value
elsif template.name == 'page'
if page.metafields.custom.au_custom_hreflang_link != blank
assign custom_href = page.metafields.custom.au_custom_hreflang_link
endif
assign hide_au_hreflang = page.metafields.custom.hide_au_hreflang.value
assign hide_uk_hreflang = page.metafields.custom.hide_uk_hreflang.value
assign hide_jp_hreflang = page.metafields.custom.hide_jp_hreflang.value
assign hide_ca_hreflang = page.metafields.custom.hide_ca_hreflang.value
assign hide_nz_hreflang = page.metafields.custom.hide_nz_hreflang.value
elsif template.name == 'blog'
if blog.metafields.custom.au_custom_hreflang_link != blank
assign custom_href = blog.metafields.custom.au_custom_hreflang_link
endif
assign hide_au_hreflang = blog.metafields.custom.hide_au_hreflang.value
assign hide_uk_hreflang = blog.metafields.custom.hide_uk_hreflang.value
assign hide_jp_hreflang = blog.metafields.custom.hide_jp_hreflang.value
assign hide_ca_hreflang = blog.metafields.custom.hide_ca_hreflang.value
assign hide_nz_hreflang = blog.metafields.custom.hide_nz_hreflang.value
elsif template.name == 'article'
if article.metafields.custom.au_custom_hreflang_link != blank
assign custom_href = article.metafields.custom.au_custom_hreflang_link
endif
assign hide_au_hreflang = article.metafields.custom.hide_au_hreflang.value
assign hide_uk_hreflang = article.metafields.custom.hide_uk_hreflang.value
assign hide_jp_hreflang = article.metafields.custom.hide_jp_hreflang.value
assign hide_ca_hreflang = article.metafields.custom.hide_ca_hreflang.value
assign hide_nz_hreflang = article.metafields.custom.hide_nz_hreflang.value
endif
-%}
<link rel="alternate" hreflang="x-default" href="https://example.com{{ request.path }}"/>
{% unless hide_au_hreflang %}<link rel="alternate" hreflang="en-au" href="{{ custom_href }}"/>{% endunless %}
{% unless hide_uk_hreflang %}<link rel="alternate" hreflang="en-gb" href="https://example.uk{{ request.path }}"/>{% endunless %}
<link rel="alternate" hreflang="en-us" href="https://example.com{{ request.path }}"/>
{% unless hide_jp_hreflang %}<link rel="alternate" hreflang="en-jp" href="https://example.jp{{ request.path }}"/>{% endunless %}
{% unless hide_ca_hreflang %}<link rel="alternate" hreflang="en-ca" href="https://example.ca{{ request.path }}"/>{% endunless %}
{% unless hide_nz_hreflang %}<link rel="alternate" hreflang="en-nz" href="https://example.co.nz{{ request.path }}"/>{% endunless %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment