Shopify SEO and GEO
Shopify decides part of your SEO before you write a word.
The platform generates the URLs, fills in the meta tags, writes the robots file and adds the hreflang. Those defaults are sensible and they are also the reason so many stores compete with themselves. We work at the level where they are set, which is the theme and the metafields, rather than editing one product at a time.
What usually brings this to us
- The same product is reachable on two different URLs.
- Every meta description is the first line of the product description.
- The blog gets traffic and the collection pages do not.
- An app went in, the store got slower, and nobody measured it.
Inside the month
Four surfaces, and the theme underneath all four.
On Shopify most of what looks like a content problem is a template problem, so the platform work runs in parallel with the writing rather than before it.
A month of Shopify search work
How we work
The way the account actually gets run.
This isn’t a proposal template. It’s the order we actually work in, starting the week you say go.
Crawl the store the way a search engine does
Every URL the theme can generate, not the list in the admin. Duplicate product paths, filtered collection URLs, what the robots file currently says, and which pages carry the authority worth protecting.
Fix it in the template, once
Canonicals, internal link markup, the robots template, hreflang, structured data. A fault in a Shopify theme is almost never on one page, so it gets fixed at the template and every page inherits the fix.
Rewrite the collections and the products
Titles and descriptions written against real searches and set in the metafields in bulk, collection pages written as pages, and the internal links put into the prose so they point at what you sell.
Read it in Google and in Bing
Search Console and Bing Webmaster Tools together, because Copilot and ChatGPT read the Bing index and most reporting quietly ignores it. New work goes into whatever is moving.
The craft
What actually moves the account.
- The second product URL Shopify makes for youA product linked from inside a collection can be served at
/collections/name/products/handleas well as at/products/handle. Shopify’s own documentation flags it: the two URLs carry the same content. We fix it where it is generated, in the theme’s link markup and the canonical, not by asking Google to work it out. - Meta tags are metafields, and they have a defaultThe page title and meta description live in the
title_taganddescription_tagmetafields, and until somebody sets them they fall back to the product title and the product description. That is why a store can have four hundred products and no distinct description among them. They get written, in bulk, against how people actually search. - Collections are the money pages, so they get treated as pagesA collection with a filter or a sort applied is a different URL. Left alone the store offers search engines thousands of near identical ones and real category copy on none of them. We decide what deserves to be indexed, say so in the template, and write the collection pages as pages rather than as a grid with a heading.
- robots.txt is a theme file on ShopifyThere is no field for it in the admin. It is rendered by
robots.txt.liquid, which is not in a theme until somebody adds it, and Shopify keeps updating the default rules underneath. So it gets built on top of the rules object rather than pasted in as plain text, which is how stores end up frozen on last year’s defaults. It is also where the AI crawlers are allowed or refused. - Markets, languages and one source of hreflangWith Shopify Markets the hreflang tags are added automatically and stay in step with each page’s canonical. A theme or an app that adds its own on top produces a second, conflicting set. On a multi market store this is one of the first things we check, because it is invisible on the page and obvious in the head.
- Apps are a speed decision, not an installEvery app that injects script into the storefront spends part of your loading budget. We measure what each one costs before and after, so the trade is a decision somebody made rather than something that happened.
- Written so the AI engines can quote the storeProduct and collection copy that answers the question it is ranking for, FAQ blocks with the structured data generated from the same rows, and an llms.txt. What the discipline covers in general is in what a generative engine optimization agency does.
What lands on your side
What you get every month.
A backlog written against your theme
With the file and the reason attached to each item, so your developer can act on it or we can.
Copy delivered ready to publish
Collection and product text, titles and descriptions, written and set, not handed over as a brief.
Indexation as a number you can see
How many products and collections are actually indexed against how many exist, read every month rather than assumed.
AI visibility tracked on its own
Which pages get quoted inside AI answers, and which engines are doing the quoting.
Cadence
Almost nothing on this list is yours to chase.
Who does what, and how often
| The work | How often | Who does it |
|---|---|---|
| Theme crawl and the fix list that follows | Every month | Us |
| Titles and descriptions written and set | Every month | Us |
| Collection and product pages published | Four or ten a month, by plan | Us |
| Internal link pass | Every month | Us |
| Prompt coverage checked across the AI engines | Every month | Us |
| Search Console and Bing read side by side | Every week | Us |
| Written report | Every Monday | Us |
| Call | Every week | Both |
| Pushing theme code to the live store | When you want it that way | You or us |
| Approving a direction | When it changes | You |
What it costs
Two ways to structure Shopify search work.
One fixed monthly fee covering the platform work and the writing, or a performance-based commission on the growth instead of most of that fee. The number depends on the size of the catalogue and the state of the theme, so we put it in writing after we’ve looked.
A fixed monthly fee
One amount, agreed before anything starts and unchanged when a month turns out heavier than the last one.
- Set by what the business needs, never by the hour
- No percentage of your media budget on top
- Reviewed once a quarter, never mid-month
A commission on the growth
Most of the fixed fee comes off and we take a share of what the work adds, measured against the same month a year earlier.
- Read from your own numbers, not from what a platform claims
- Capped, so a very good month never becomes a penalty
- You keep the accounts either way, permanently
There is no rate card. Which structure fits, and what the number inside it is, depend on what the business actually needs: margin, seasonality and how much growth is already in motion. We’ll tell you which one we’d recommend and why, in the same document as the number.
Proof
We did this on a Shopify store we own outright.
Phrase Studios is ours, it runs on Shopify, and search became its biggest channel in six weeks. The case study shows the plan, the Shopify reports and every weekly reading, including the months where a number went the wrong way.
The rest of the department
Channels aren’t run in isolation.
Search work on a Shopify store runs into the same feed, the same product data and the same pages the ads do, which is why we would rather run both than hand one over.
Meta advertising
Structure, creative and measurement that survive contact with reality.
Google advertising
Search, Shopping and Performance Max, starting with the feed and the products that actually matter.
SEO and GEO
Pages built for the searches people make, and the AI engines increasingly shaping how they discover brands.
Klaviyo and email
Flows and campaigns that turn the audience you’ve already paid to acquire into more revenue.
CRO and website
The store itself: built, tested and optimised to convert more of the traffic you’re already paying for.
Creative direction
Hooks, angles and the brief your team produces from, judged against what performs.
Questions
What does a Shopify SEO agency actually do differently?
It works at the level where Shopify sets the defaults, which is the theme and the metafields, rather than editing pages one at a time. The URLs, the meta tags, the robots file and the hreflang are all generated, so a fix applied to the template reaches every page and a fix applied to one product reaches one product.
Why is the same product showing on two URLs?
Because a product linked from inside a collection can be served at /collections/name/products/handle as well as at /products/handle. Shopify documents this behaviour and warns that the two URLs carry the same content. It is fixed in the theme, in the link markup and the canonical tag.
Why do all our meta descriptions look the same?
Because nobody has set them. Shopify keeps the page title and meta description in the title_tag and description_tag metafields, and until those are filled in they fall back to the product title and the product description. They can be written and set in bulk rather than one product at a time.
Can you edit robots.txt on Shopify?
Yes, but it is a theme template rather than a setting. The file is rendered by robots.txt.liquid, which most themes do not include until somebody adds it. It should be built on top of Shopify's rules object, because Shopify updates the default rules and a hardcoded copy stops receiving them.
Do we need to give you access to the theme?
Not to start. The audit runs from the public storefront, so you get the findings before anything is touched. Theme changes are a separate yes, and you can have your own developer make them from our list if you would rather.
How is Shopify SEO priced?
A fixed monthly fee covering the platform work and the writing, or a commission on the growth instead of most of that fee. It is never a percentage of ad spend, and the number goes in writing after we have looked at the store.
The next step
Want the account run properly?
Send us the account and what you’re trying to grow. We’ll give you a written view of what we’d change first and what we think the opportunity is worth before anything is signed.
Get your free growth auditYou send the basics
The brand, the channels and roughly what you spend. Two minutes of your time.
We audit it from the outside and write back
Your ads, store, feed and search visibility are all public. We go through them and write back with what we’d change first and what it would cost. Free, and no account access needed.
We take the work off your desk
Access, measurement, structure, feed and the creative brief. You approve. We build.
Report on Monday, call the same week
You always know what we did, what it earned and what’s next. That never changes.