Open Google Search Console for almost any Shopify store and you will find the same quiet problem: dozens of pages sharing the same title tag, or pages with no SEO title at all. Search engines treat the title as the strongest on-page relevance signal, so duplicates make your own pages compete with each other, and blanks waste the single most valuable slot on the page. It rarely shows up as an error — nothing breaks — which is exactly why it goes unfixed for years while rankings sit flat.

Why Shopify stores drift into duplicates

Shopify auto-generates a title from the product or collection name whenever the SEO title field is left blank, and that default behaviour is the root cause. Two similar products — "Blue Hoodie" and "Blue Hoodie - Large" — end up with near-identical titles that neither page can win. A collection called "Sale" and a page called "Sale" collide. And bulk imports, whether from a CSV or a migration app, almost never populate the SEO title field, so the theme falls back to a generic template like "Product Name – Store Name" across your entire catalogue.

Variants make it worse. A single product with ten variants can generate multiple crawlable URLs that all inherit the same title. Filtered and sorted collection URLs (the ones carrying query parameters) do the same. The result is a store where a handful of title patterns are stamped across hundreds of indexable pages, and Google, unable to tell them apart, picks one and buries the rest.

Find every duplicate and blank first

You cannot fix what you have not counted. There are three ways to surface the problem, in ascending order of usefulness.

The first is Google Search Console. Under Indexing → Pages, look for URLs excluded as "Duplicate without user-selected canonical" and "Crawled - currently not indexed" — clusters there are often title-driven. It shows symptoms, not the raw title list, but it tells you Google agrees you have a problem.

The second is a crawl. Point a site crawler at your domain, export every URL with its title tag, sort the column, and the duplicates line up next to each other. Blanks show up as the repeated theme-template pattern. This is the honest inventory.

The third, and the reason bulk tooling exists, is that even once you have the list, editing hundreds of titles by hand through Products → [product] → Search engine listing → Edit is a week of tedious work that reintroduces errors as you go. On a catalogue of any size this is where an SEO tool that reads every resource and flags missing or duplicate titles pays for itself. See the wider set in Shopify SEO tools.

Write the replacement titles

Fixing a duplicate is not just making it different — it is making it unique, keyword-led, and readable. Three rules.

  • Lead with the keyword. Put the term a buyer would actually search at the very front, before the brand, because the front of the title carries the most weight. "Merino Base Layer for Hiking | Northpeak" beats "Northpeak | Merino Base Layer for Hiking."
  • Template the pattern for uniqueness. A default like "{product} | {store}" or "{product} — {type} | {store}" guarantees every page differs while staying human. For collections, "{collection} — {benefit} | {store}" works well. The variable that disambiguates similar products (size, colour, type) is what keeps near-duplicates apart.
  • Respect the length. Keep titles under about 60 characters so Google does not truncate them mid-word in results. If your store name is long, shorten it in the title or drop it on deep product pages where the keyword matters more than the brand.

A before-and-after on a real pattern: the blank-field default "Ceramic Mug – MyStore" becomes "Handmade Ceramic Coffee Mug, 12oz | MyStore" — unique, keyword-forward, specific, and still inside the length limit. Multiply that across the catalogue and the pages stop cannibalising each other.

Do not forget descriptions and the click

While you are in the Search engine listing panel fixing titles, the meta description sits right below it, and it has usually drifted the same way — blank or duplicated. The description does not directly move rankings, but it moves the click-through rate that does. Keep it around 155 characters, write it as a one-sentence pitch specific to that page, and lead with the benefit. The full method is in Shopify meta descriptions.

Do it at scale, safely

Two cautions before you bulk-edit. First, changing hundreds of titles at once is a real change to how Google sees your store, so make it deliberately and keep a record of what each page was before, in case a template choice underperforms and you want to revert. Second, a title fix only counts once Google recrawls the page — expect movement over the following weeks, not overnight, and confirm the new title is live by checking the rendered page source or the Search Console URL inspection tool.

This is one line on a longer list. Once titles are clean, work the rest of the Shopify SEO checklist and shore up product page SEO and collection page SEO, since those pages carry the titles you just fixed.

RankEngine generates unique, keyword-led titles for every product, collection, page, and article, writes them to Shopify through the Admin API, then re-reads the live page to verify the change actually landed — and rescans so a fixed title does not silently revert on the next import. If you would rather not hand-edit hundreds of listings, that is the fast path; see how it compares in best Shopify SEO app.