Guide
Shopify blogs vs Online Store pages — what Spectersync syncs
Shopify lumps a lot of things under the word “content,” and store owners get tripped up by the difference more often than they should. Before you connect anything, it’s worth being precise about what Spectersync actually brings into the workspace, what it pushes back, and what is deliberately not in scope.
Short version: Spectersync syncs the article content of your store blog, plus (where your account exposes them through the Admin API) your Online Store pages. It does not touch products, collections, themes, or Liquid. That scope is intentional and it doesn’t change.
The two text surfaces in Shopify, and how they relate
Inside admin.shopify.com → Online Store, Shopify gives you two genuinely different content surfaces. They look similar in the sidebar, which is part of the confusion.
1. Blogs (containers) and Articles (the posts).
Shopify’s blog system is two-layer. A blog is a container — most stores have one called “News” by default. You can have many (“News,” “Recipes,” “Buyer Guides”). An article is the post — the thing with a title, body, author, tags, and a feature image. Every article belongs to exactly one blog. The URL pattern is yourstore.com/blogs/<blog-handle>/<article-handle>.
Articles are what most people mean when they say “Shopify blog post.” (We say “articles” on this site because that’s the actual Shopify object name. If you’ve been calling them posts, you’re talking about the same thing.)
2. Online Store pages.
Pages are the static pages of your storefront: About, FAQ, Shipping Policy, Returns, Contact. They’re not in any blog. They have their own URL pattern (yourstore.com/pages/<handle>) and their own little editor in the admin. They don’t have tags, they don’t have authors, and they don’t show up in your blog feed.
Both surfaces use the same rich-text editor in the admin and store their bodies as HTML.
What Spectersync brings in as first-class
Articles are fully supported. When you connect, every article from every blog opens in the workspace as clean, structured content — title, handle, blog assignment, author, tags, summary, SEO title, SEO description, status (draft / published / scheduled), scheduled-at and published-at timestamps, and the feature image URL, with the body as plain prose. Edits publish back through the Shopify Admin API. This is the round-trip Spectersync is built for and the one we test against on every release.
Blogs are supported as containers. Change an article’s blog assignment from news to recipes and Spectersync moves the article between blogs on the next publish.
Online Store pages: depends on what your account exposes. Pages are part of the same Admin API surface, but exactly how they’re exposed varies a little between Shopify accounts. Where your account exposes pages through the API, Spectersync brings them into the workspace alongside articles, kept separate so you don’t confuse the two. Page content is slimmer — no blog assignment, no tags, no author — and uses the same HTML-to-markdown conversion as articles. If your account doesn’t expose pages through the API, the workspace shows that on connect and skips them cleanly.
What’s deliberately out of scope
Spectersync’s scope is articles, blogs, and pages. None of this is in scope, none of it is visible, and none of it is on the near-term roadmap:
- Products and product descriptions. Different scope, different rich-text surface, different governance — and a job people genuinely want done with much more care than a blog post. Possibly on the long-term roadmap behind a separate scope; not today.
- Collections. Same story as products.
- Orders, customers, inventory, payouts. Not in scope and not coming. Spectersync is a content tool. Your commerce data lives in a separate part of Shopify it never asks for.
- Themes and theme settings. Theme editor content is its own surface.
- Liquid templates. The
.liquidfiles in your theme contain markup, settings, and partial layouts Shopify renders against your content. Spectersync never reads or writes Liquid — your theme is your theme. - Shopify Markets, Functions, metaobjects, metafields. Not in scope.
That list isn’t an apology. It’s the reason store owners feel comfortable connecting Spectersync to a working production store: there’s no way for it to touch the parts of Shopify that earn revenue, even by accident.
If product descriptions are the thing you really need automated, Spectersync is not the tool for that job. We’re upfront about it — see the Shopify app permissions guide for what the OAuth scope actually requests.
Where this matters in practice
Three places store owners hit this distinction:
At connect. When you first connect your Shopify store, the workspace groups articles by blog and keeps pages, if exposed, separate. That layout matches how Shopify thinks, so it’ll feel right after about ten minutes.
Bulk SEO sweeps. If you run a bulk SEO pass with a recipe, point it at the articles. Pages have different intent — they don’t need keyword-front-loaded titles — so it’s usually worth treating them as a separate pass.
Rich-text round-tripping. Articles and pages both go through Shopify’s HTML rich-text editor. Spectersync converts that to clean editable content on the way in and back to HTML on the way out. The mechanics — what survives cleanly and what comes through as opaque blocks — are covered in Shopify rich text vs markdown.
The mental model
Two text surfaces in Shopify: articles (in blogs) and Online Store pages. Spectersync handles articles fully and pages where Shopify exposes them. Everything else — products, orders, themes, Liquid — is on the other side of a permissions wall it never asks to cross. That’s the whole scope, and that’s all of it. Subscribe now →
Running the engine on your own machine?
The same scope and the same blog/page handling apply in the desktop and open-source edition, where articles and pages land as .md files in a folder structure on your Mac — articles grouped by blog, pages in their own subfolder. That guide covers the local folder layout in detail.