Shopify Liquid Validator

Check Liquid against Shopify's stricter parser rules and get a line number for every issue.

Describe the result you need. AI will set up the tool and ask for any missing details.

Configure with AI

Enter to submit · Shift + Enter for a new line

Sent to AI. Leave out passwords and private customer data.

Tags scanned
7
Errors
0
Strict-parsing warnings
4
  • Line 1: "with key: value" is invalidUse a comma instead: {% render '…', product: product %}
  • Line 2: "and"/"or" aren't allowed in assignMove the condition into an {% if %} that sets the variable in each branch.
  • Line 4: "and"/"or" aren't allowed in whenNest an {% if %} inside that case branch instead.
  • Line 7: Parentheses aren't allowed in a conditionLiquid evaluates and/or in order without grouping. Split the condition across nested {% if %} tags instead.

What Shopify's stricter parser rejects

Shopify moved themes and theme app extensions to a stricter Liquid parser. Code that used to render (sometimes silently wrong) now throws a syntax error, or gets auto-rewritten by Shopify with a comment explaining the change. New Theme Store and App Store submissions already require strict-parsable code.

Old (invalid) patternFix
{% render 'x' with y: z %}{% render 'x', y: z %}
{% render 'x', y: value | filter %}Assign the filtered value to a variable first, then pass it in
{% assign x = a or b %}Move the condition into an {% if %} that sets x in each branch
{% when 'a' and cond %}Nest an {% if %} inside that case branch
if a && bif a and b
if (a or b) and cif a or b and c (no parentheses)
{% when => 550 %}{% when 550 %}
{% render 'x', y %}{% render 'x', y: y %} (every argument needs a key)

This tool checks your pasted Liquid against each of these patterns and reports the line number, plus whether your block tags (if/endif, for/endfor and so on) actually balance.

What it can't catch

This checks syntax patterns, not whether your objects, filters or logic are correct. It also can't run your template, so use the Liquid playground to test actual output against sample data.

Questions people ask

Will Shopify break my theme if I ignore these?

For an existing theme, Shopify rewrites non-compliant files automatically and adds a comment noting the change, rather than breaking the storefront outright. New Theme Store and App Store submissions are rejected until they're fixed.

Why is {% render 'x' with y: z %} invalid now?

The "with key: value" shorthand for a single named argument was dropped. Use a comma instead: {% render 'x', y: z %}.

Can I use parentheses to group and/or conditions?

No, Shopify's stricter parser rejects parentheses in if/unless conditions entirely. Split the logic across nested {% if %} tags instead.

Is {% include %} actually broken?

It still renders, but it's deprecated in favor of {% render %}, which is sandboxed (it can't see the calling template's variables unless you pass them explicitly) and safer to maintain.

Want this builtinto your store?

I'm Emmanuel, a Shopify and WooCommerce developer. If this tool pointed at something you'd rather have fixed for you (a faster store, cleaner product data, a migration, a custom feature), send me a note.

Emmanuel Asika

Emmanuel Asika

Shopify & WooCommerce developer, Dublin

I build and fix online stores: new builds, migrations, speed, SEO and the custom bits apps can't do.

hello@emmanuelasika.com

Last reviewed 30 September 2026.

Sources: Shopify.dev: migrate to Liquid's strictest parser