Filter My Blog logoFilter My Blog

Dawn Theme: How to Add Tag Filters to Your Blog Page

Dawn theme blog tags aren't shown anywhere by default. Add a tag filter to your Dawn blog page, with or without code.

Photo of Marti BeleguSenior Developer · Founder of Filter My BlogPublished Updated 6 min read

Dawn theme blog tags exist, but Dawn never shows them. Its blog page has no tag list, no setting to turn one on, and no space for blocks inside the blog section. To add tag filters on Dawn, put a new section above the blog posts section: either a Custom Liquid section with a short snippet, or an app section like Filter My Blog.

Both take about five minutes. This guide walks through each one on Dawn specifically, explains why Dawn behaves differently from newer themes, and covers the problems people hit.

What Dawn does and doesn't do with tags

Dawn is still the most-used free Shopify theme, so it's worth knowing exactly where it stands. I checked the current Dawn code while writing this:

  • The blog page (main-blog) has settings for layout, images, date and author. Nothing for tags. It also has no blocks, so nothing can be placed inside it.
  • The article page (main-article) has blocks for the image, title, content and share buttons, and accepts app blocks. It doesn't print the article's tags either.
  • The article cards on the blog page show the image, title, date, author and excerpt. No tags.

Meanwhile, Shopify still creates a page for every tag at /blogs/<blog>/tagged/<tag>. Dawn's blog section renders those pages fine, showing only the matching articles. So the filtering works. Dawn just never links to it.

Method 1: A Custom Liquid section (free)

Dawn has a built-in Custom Liquid section that runs any Liquid you paste into it. Because you add it through the theme editor, you don't edit any theme files, and it survives theme updates.

  1. Go to Online Store → Themes and click Customize on Dawn.
  2. At the top of the editor, use the page selector to open Blogs → Default blog.
  3. In the left sidebar, click Add section under the Template group and choose Custom Liquid.
  4. Drag the new section so it sits directly above "Blog posts".
  5. Paste the snippet below into the Custom Liquid box, then click Save.
{%- if blog.all_tags.size > 0 -%}
  <nav class="dawn-tags page-width" aria-label="Filter articles by tag">
    <a href="{{ blog.url }}" {% if current_tags == blank %}aria-current="page"{% endif %}>All</a>
    {%- for tag in blog.all_tags -%}
      <a
        href="{{ blog.url }}/tagged/{{ tag | handleize }}"
        {% if current_tags contains tag %}aria-current="page"{% endif %}
      >{{ tag }}</a>
    {%- endfor -%}
  </nav>
{%- endif -%}

<style>
  .dawn-tags { display: flex; flex-wrap: wrap; gap: .8rem; padding-block: 2rem 0; }
  .dawn-tags a {
    padding: .6rem 1.4rem; border: 1px solid rgba(var(--color-foreground), .3);
    border-radius: var(--buttons-radius-outset, 4rem); text-decoration: none;
    color: rgb(var(--color-foreground)); font-size: 1.4rem;
  }
  .dawn-tags a:hover { border-color: rgb(var(--color-foreground)); }
  .dawn-tags a[aria-current="page"] {
    background: rgb(var(--color-foreground)); color: rgb(var(--color-background));
    border-color: rgb(var(--color-foreground));
  }
</style>

A few notes on this snippet:

  • It uses Dawn's own variables. --color-foreground, --color-background and --buttons-radius-outset come from your theme settings, so the pills follow your colour scheme and button shape.
  • page-width is Dawn's container class, so the tags line up with the article grid below.
  • The active tag gets aria-current="page", which highlights it and tells screen readers which filter is on.
  • The Custom Liquid section has its own colour scheme and padding settings. Set the bottom padding to 0 if there's too much space between the tags and the posts.

Hiding tags you don't want readers to see

Tags like featured or homepage will show up too. If you're using a short list of tags as blog categories, this matters even more. To skip them, wrap the link in an unless:

{%- assign hidden_tags = 'featured,homepage' | split: ',' -%}
{%- for tag in blog.all_tags -%}
  {%- unless hidden_tags contains tag -%}
    ...the <a> link from above...
  {%- endunless -%}
{%- endfor -%}

Where this stops

The snippet can't show article counts (Liquid has no per-tag count), can't reorder tags except alphabetically, and has no search. It also shows every tag the moment any article uses it, typos included. For many Dawn blogs that's fine. If you need more, read on.

Method 2: An app section (no code)

Filter My Blog adds the same kind of bar, styled to match Dawn, with the tag management done in an admin instead of in code. On Dawn it goes in as its own section, the same position as the Custom Liquid above.

  1. Install the app from the Shopify App Store. It only asks for read-only access to your blog content.
  2. Wait for the tag scan. Right after install, it reads every published article and counts each tag across the whole blog.
  3. Pick a style. Choose one of eight presets on the Design page, then adjust colours, corners and spacing to match Dawn.
  4. Click "Add to your theme" in the app and choose Add as its own section. Shopify opens the theme editor on your blog template with the "Blog tag filter" block ready to add.
  5. Drag the new Apps section directly above "Blog posts" and click Save.

The full walkthrough, with screenshots, is in Add the filter to your theme.

Important

The app also offers Add inside the blog section. On Dawn, choose its own section instead. Dawn's blog section accepts no blocks, so the inline option shows Shopify's "There is a problem with the app block" error rather than adding anything. That's expected and harmless.

From the app you can then hide internal tags, rename tags for display ("sale-2024" → "On sale") and choose the order, without editing articles or code. The free plan covers every blog with up to 12 tags each. Plus adds article counts, blog search and multi-select, and Pro adds search as you type and click analytics. The pricing page has the full list.

Why tag clicks reload the page on Dawn

On Dawn, clicking a tag loads the tag's page. That's true of the Custom Liquid snippet, of Filter My Blog, and of any other app, and it comes down to how Dawn is built.

To swap the articles in place without a reload, a script asks Shopify to re-render the section that holds the articles, using the Section Rendering API. On Dawn, the filter lives in a separate section from the articles, because Dawn's blog section doesn't accept blocks. The script has nothing it can re-render that contains the new articles, so a normal link is the only option.

That isn't a problem:

  • It's how most blogs on the internet work. A tag click that loads a page in under a second feels normal.
  • Every tag page stays a real, crawlable URL, which is good for SEO.
  • It works without JavaScript, so nothing breaks if a script is blocked.

On Filter My Blog, the paid features still work on Dawn. Multi-select loads Shopify's combined-tag URL each time the selection changes. Blog search falls back to Shopify's own article search, which covers every blog in your store rather than just the one. Themes built on Shopify's Horizon do accept blocks in their blog section, so the same features update in place there. The Horizon guide covers that setup.

Show tags on Dawn's article pages too

Readers who land on an article from search should also see its tags, so they can go to related posts. Dawn doesn't print them there either. The same Custom Liquid approach works: open Blogs → Default article in the theme editor, add a Custom Liquid section below "Blog post", and loop over article.tags. How to Show Tags on Shopify Blog Posts has the full snippet.

Troubleshooting

The tags appear, but on every page of the site. You added the section to a section group (header or footer) rather than the blog template. Remove it and add it again under Template while the editor is showing the blog page.

The tags appear on the blog but not on a second blog. Dawn has one blog template shared by every blog unless you created another one. If a blog uses a different template, add the section there too, under Blog posts → Manage blogs → Theme template.

Clicking a tag goes back to the main blog page. No published article in that blog has the tag. Tags belong to articles, and each blog only lists its own.

The page shows no articles. If you're using a combined URL like /tagged/recipes+news, no single article carries both tags. Shopify combines tags with AND, and Dawn shows an empty page when nothing matches.

The filter bar from the app doesn't appear. Check that you clicked Save in the theme editor and that the blog has at least one visible tag in the app. The troubleshooting checklist covers the rest.

For the other ways to filter a Shopify blog, including menu links and how Horizon differs, see the full guide: How to Filter Shopify Blog Posts by Tag.

Frequently asked questions

Does the Dawn theme show blog tags?

No. Dawn's blog page and article page don't print tags anywhere, and the blog section has no setting for it. The tag pages still exist at /blogs/your-blog/tagged/your-tag, but you have to add the links yourself with a Custom Liquid section or an app.

Can I add a block inside Dawn's blog posts section?

No. Dawn's main blog section has no blocks at all, so neither Custom Liquid nor app blocks can go inside it. Add a separate section above it instead. It sits directly above the posts and looks the same to readers.

Why does my Dawn blog reload when I click a tag?

Every tag filter on Dawn is a link to the tag's own page, so clicking one loads that page. Filtering without a reload needs code inside the section that holds the articles, and Dawn's blog section doesn't accept any. A normal page load is how most blogs work, and it keeps every tag page crawlable.

Will my tag filter survive a Dawn theme update?

Yes, if you added it as a section in the theme editor rather than editing theme files. Sections are part of your template settings and carry over to the new version. Check the blog page after updating to be sure.

Loading search index
↑ ↓ to navigate↵ to selectEsc to close