The posts go up. The traffic does not arrive. And because blogging on Shopify looks so much like blogging anywhere else, the reasons are easy to miss — they are in the fields you skipped, not the words you wrote.
Writing the posts is the slow part. Plug In AI writes full blog posts from the products and collections you already have, and rewrites your product meta fields in bulk while it is there.
Blogging on Shopify is not WordPress with a different login. The editor looks familiar, so it is easy to assume the machinery underneath is familiar too. It is not, and the differences are small, specific, and quietly expensive.
Here is what the platform actually hands you, what it withholds, and the two fields that decide more than your word count does.
What a Shopify article actually is
Underneath the editor, every post is an article object. Shopify’s own developer documentation lists exactly what it carries:
- title, content, handle and url
-
excerpt, plus a fallback field called
excerpt_or_content - image, the featured image
- author, published_at, updated_at
- tags
-
comments, comment_post_url and
moderated? - metafields and template_suffix
That list is the whole surface. Everything your theme can show about a post comes from it, and so does everything a crawler reads. So the useful question is not “what should I write” but “which of these fields did I leave empty.”
Your URLs are decided for you
Articles live at /blogs/<blog-handle>/<article-handle>. The blog itself sits at /blogs/<blog-handle>. Shopify’s docs show both in their own example.
Two consequences. Your blog handle becomes a permanent path segment on every post you publish under it, so “news” is a decision, not a default to ignore. And you cannot flatten articles to the site root the way other platforms allow. Plan the handle before you have 80 posts sitting under it.
The excerpt field is not optional
This is the finding worth the whole post. Shopify exposes a property called excerpt_or_content, and the documentation describes it plainly.
Shopify Liquid
article object documentation, read 3 November 2026
Read that again as an SEO problem. If you skip the excerpt, your theme has nothing written to show, so it falls back to your article body.
What that costs you depends on the theme, and Dawn is the useful reference. Its article card does not call excerpt_or_content at all. It branches by hand, and truncates either way:
{%- if article.excerpt.size > 0 -%}
{{ article.excerpt | strip_html | truncatewords: 30 }}
{%- else -%}
{{ article.content | strip_html | truncatewords: 30 }}
{%- endif -%}
So on Dawn you do not get a wall of text. You get the first 30 words of the article, whatever they happen to be, standing in for a summary you never wrote. Every listing, every related-post block, every preview: your opening sentence, cut mid-thought.
That is the real cost. Not duplication, but an auto-generated summary where a written one should be, on every surface that previews the post.
Writing excerpts is ten minutes of work across a small blog. It is the highest-leverage ten minutes available to you here.
Tags are what you get instead of categories
Both the article and blog objects expose tags. The blog object also exposes all_tags, every tag used across its articles. Neither object exposes anything resembling a category.
So the hierarchy you may be planning does not exist at the platform level. You get a flat label system, and structure has to come from somewhere else.
Tag pages exist whether or not your theme links to them
This is the part most merchants get wrong, in both directions. Tag filtering is a native Shopify route, not a theme feature. Shopify’s own theme documentation spells it out: you filter a blog “by appending /tagged/[tag-handle] to the blog URL, where [tag-handle] is the handleized version of the desired article tag.”
So /blogs/news/tagged/gift-guides is a real page on your store right now, if anything is tagged that way. You can even stack tags with a plus: /blogs/main/tagged/news+breaking.
What your theme controls is only whether anything links to those pages. Shopify provides link_to_tag, link_to_add_tag and link_to_remove_tag filters for exactly that, and not every theme uses them.
That gap is the problem. You can end up with a set of real, reachable, crawlable tag pages that nothing on your site links to, generated by tags you added for your own convenience.
The duplicate-meta trap
There is a second-order cost worth checking. No per-tag SEO record exists anywhere in Shopify’s blog objects, so a tag page has no description of its own to render. It takes the blog’s.
Twelve tags means twelve URLs carrying one meta description between them. Open one of your own tag URLs and view the source before you decide how many tags you need.
The structure has to come from your links
With no categories, and tag pages that often go unlinked, the only reliable structure on a Shopify blog is the one you build by hand: posts linking to each other and to the collections they are meant to sell.
Worse, the platform nudges you the wrong way here. Its blog object offers next_article and previous_article, so themes typically give you chronological navigation. Chronology is not a topic. A reader who arrives on a two-year-old post gets offered whatever happened to publish beside it.
Our guide to building real topic clusters covers how to do that deliberately. On Shopify it matters more than it does elsewhere, because nothing else is doing it for you.
Two surfaces most merchants forget
Comments
Comments are first-class here: the object carries comments, comment_post_url and moderated?. That means every article can carry user-submitted text, and whether it is moderated is a setting on the blog.
If comments are on and unmoderated, you have an open, indexable text surface on your store. Decide that deliberately rather than inheriting it from a theme default.
Metafields and templates
Articles support metafields and a template_suffix. So a different article layout, or structured extra data on posts, is available without leaving the platform. Few merchants use either, and they are the two levers that let a Shopify blog stop looking like every other Shopify blog.
A short checklist before your next post
- Write the excerpt. Without it, previews fall back to your whole article.
- Check the blog handle in your URL. It is permanent on every post beneath it.
-
Open a tag URL at
/blogs/<handle>/tagged/<tag>and check what meta description it serves. - Add two internal links to related posts and one to a collection.
-
Set the featured image and write its alt text — the image object carries an
altproperty, and it is empty until you fill it. - Decide about comments rather than discovering them later.
Which guide do you need?
This post is about the platform: what Shopify’s blog exposes and what it leaves to your theme. If your question is whether to pay for a tool that writes or designs the posts, our comparison of the best Shopify blog apps answers that one instead. And if you want the wider technical picture beyond the blog, start with Shopify technical SEO.
FAQ: blogging on Shopify
Is blogging on Shopify good for SEO?
It can be, but the platform does less of the work for you than WordPress does. There are no categories, tag pages often go unlinked, and navigation defaults to chronological. The posts that earn traffic are the ones you deliberately link into the rest of your store.
Does Shopify have blog categories?
No. Shopify’s blog and article objects expose tags, including an all_tags list across a blog, but no category concept exists at the platform level. Tags are a flat labelling system, so any hierarchy has to come from how you link posts together.
What happens if I leave the excerpt blank on a Shopify blog post?
Your theme falls back to your article body. Shopify’s documentation says excerpt_or_content “returns the article excerpt if it exists” and “returns the article content if no excerpt exists.” In Dawn that body text is truncated to 30 words, so every preview of the post shows your opening sentence cut mid-thought instead of a summary you wrote.
Can I change my Shopify blog URL?
Only partly. Articles sit at /blogs/<blog-handle>/<article-handle>, and you can edit the handles, but you cannot remove the /blogs/ segment or move posts to the site root. Choose the blog handle carefully, because it becomes a permanent part of every URL beneath it.
Do blog tags create pages on Shopify?
Yes. Tag filtering is a native route: append /tagged/<tag-handle> to the blog URL, and you can stack tags with a plus. Your theme only controls whether anything links to those pages, so they can exist and be crawlable while being invisible in your navigation. They also inherit the blog’s meta description rather than having their own.
How often should I publish?
Less often than the usual advice suggests, and with more linking. Ten posts that connect to each other and to your collections will outperform forty standalone ones, because on Shopify nothing builds that structure for you automatically.
Let the catalogue do some of the writing
Plug In AI turns the products and collections already in your store into full blog posts, and bulk-rewrites the product titles, descriptions and meta fields around them, so publishing stops depending on finding a spare afternoon.

