Shopify Product Title SEO: Two Fields, Not One

A Shopify product page carries two separate title fields, and most stores only ever edit one of them. The one in the product form is the product title. The other one sits lower down, behind a link labelled Edit website SEO, and it is the one Google reads as the <title> element.
Leave the second field blank and your theme falls back to the first. That fallback is why so many stores serve a <title> that was written for a customer standing in front of a photo, not for someone typing a query into Google. Fixing it is a twenty-minute job per product once you know which field does what, and the first thing to know is that one of them silently builds your URL.
This is the mechanical layer of product page SEO: which field feeds which part of the page, where Shopify locks you in, and how to check the result in Search Console instead of guessing. If you want the wider checklist that this sits inside, start with the ecommerce SEO checklist and come back here for the titles.
Shopify gives you two title fields and they do different jobs
The product title is the customer-facing name. Shopify's Admin API documentation describes the title field as "The name for the product that displays to customers. The title is used to construct the product's handle." The help centre is just as direct about where it lands on the page: "When you create a product page, collection page, webpage, or blog post, Shopify uses the title that you enter to generate the H1 header for the page."
The SEO title is a separate string. In the admin it lives in the Search engine listing section: click Edit website SEO and you get a page title field and a meta description field. In the Admin GraphQL API the same pair is exposed as the product's seo object, documented as "The SEO title and description that are associated with a product."
| Product title | SEO title (page title) | |
|---|---|---|
| Where the shopper sees it | On the page as the <h1>, in collection grids, in cart and checkout |
In the Google result, in the browser tab |
| What else it feeds | The URL handle, the name in Product structured data |
The <title> element only |
| Admin limit | Long enough that it is not the constraint | 70 characters |
| Shopify's own advice | None on length | "consider keeping your title up to 60 characters" |
| If you leave it blank | Not possible, it is required | The theme falls back to the product title |
That last row is the whole problem. A store that has never opened Edit website SEO is not running without a <title>. It is running with a <title> that was chosen for a different job.
Shopify states the character budget plainly: "You can enter up to 70 characters in the title. To avoid shortened titles in search engine results, consider keeping your title up to 60 characters." For the meta description the same page says "It's recommended that 160 characters is used in the description."
The handle is built once and then stops listening
The handle is the part of the URL after /products/. Shopify's docs define it as "A unique, human-readable string of the product's title. A handle can contain letters, hyphens (-), and numbers, but no spaces. The handle is used in the online store URL for the product."
How it gets built is documented too: "Handles are automatically generated based on the product's title, and are always lowercase. Whitespace and special characters are replaced with a hyphen: -. If there are multiple consecutive whitespace or special characters, then they're replaced with a single hyphen."
Read that carefully. The handle is generated from the title, and then it becomes its own editable field in the Search engine listing section. The two stop moving together. Rename "Blue Mug" to "Cobalt Stoneware Mug 350ml" and the page is still served at /products/blue-mug until you go and change the handle yourself.
This is good news, not a bug. The alternative would be a URL that changes every time someone fixes a typo, which would break every link anyone has ever shared.
So the working rule has two halves:
- Rename products freely. Titles are cheap to change and the URL does not follow.
- Change handles rarely, and never without a redirect. Shopify's redirect documentation puts it simply: "When you change a URL on your Shopify store, you can create a URL redirect to ensure your customers can still find what they're looking for."
The same page adds a detail worth planning around: "301 redirects are cached by browsers and search engines." A redirect you create today keeps working for visitors who cached the old answer, which is exactly why you should not iterate on handles. Pick one, redirect once, move on.
To see what is actually being served rather than what the admin preview claims, read the response:
# What <title> does the live page ship?
curl -s https://yourstore.com/products/cobalt-stoneware-mug \
| grep -o '<title>[^<]*</title>'
# And does the old handle still resolve?
curl -s -o /dev/null -w '%{http_code} -> %{redirect_url}\n' \
https://yourstore.com/products/blue-mug
A 200 on both URLs means you created a duplicate instead of a redirect. A 301 pointing at the new handle is what you want.
What Google actually does with the title you wrote
Google does not promise to use your <title>. Its documentation on title links lists the sources it draws from, and the list is longer than most store owners expect: the <title> element, the main visual title on the page, heading elements such as <h1>, og:title, large prominently styled content, page text and anchor text, and WebSite structured data.
Two consequences follow, and they point in opposite directions.
The first is reassuring. Because the <h1> is a candidate source, a weak SEO title does not fully hide a good product title. Google can reach past the field you forgot to fill in.
The second is the cost. Because the <h1> is a candidate source, a bad product title cannot be fully repaired by a good SEO title. If your <h1> reads SKU-44821 / BLU / 350, you have handed Google a second, worse option and you cannot take it back from the SEO field alone.
On length, Google's guidance is explicit and often misquoted: "While there's no limit on how long a <title> element can be, the title link is truncated in Google Search results as needed, typically to fit the device width." There is no 60-character rule in Google's docs. There is a display width, which varies by device, and Shopify's own 70-character field is the tighter constraint in practice.
The same document warns against two habits that Shopify themes make easy. Repeating keywords inside one title and shipping repetitive boilerplate across pages can make results, in Google's words, "look spammy to Google and to users." A theme that appends your store name to three thousand near-identical collection titles is producing boilerplate at scale.
The product title has one more destination. Product structured data requires the name property, documented as "The name of the product," and Shopify themes populate it from product.title. The string you type in the product form therefore travels into the rich result as well as into the <h1> and the handle. One field, four destinations.
Writing the product title: buyer's words, buyer's order
The product title has to survive three contexts: a collection grid where it may be truncated by CSS, a checkout line item, and a search result where it may be chosen as the title link. That rules out a few habits.
| Instead of | Write | Why |
|---|---|---|
SKU-44821 Mug |
Cobalt Stoneware Mug, 350ml |
An internal code is a string nobody searches |
MUG - COBALT - 350ML |
Cobalt Stoneware Mug, 350ml |
Caps and pipes read as machine output in a result |
Mug |
Cobalt Stoneware Mug, 350ml |
One word competes with every mug on the internet |
Best Cheap Handmade Artisan Cobalt Mug Sale |
Cobalt Stoneware Mug, 350ml |
Stacked modifiers are the stuffing Google names |
Cobalt Mug - Blue, 350ml, Ceramic, Dishwasher Safe |
Cobalt Stoneware Mug, 350ml |
Variant attributes belong to variants |
The pattern underneath is dull and it works: what the thing is, the one attribute a buyer would type, then the measurement or model that distinguishes it. Brand name at the end, or omitted entirely when the brand is not what creates the demand.
Variants deserve their own note, because this is where titles bloat. If colour and size are variant options, they do not belong in the product title. Shopify already renders them, the selected variant already appears in the cart, and putting them in the title produces a <h1> that reads like a spreadsheet row. The exception is a product where the variant is the demand, such as a replacement filter for one specific appliance model.
There is a signal hiding in keyword data here. "shopify product title character limit" is itself a query people search for in the United States. Store owners do not look up a character limit because their titles are too short. They look it up because they are stuffing and the field is pushing back.
The same discipline applies to the tags and the collections you assign, which is a separate mechanism with its own failure modes. Shopify tags and SEO covers what those actually do to your URLs, and the broader structure of a page that converts is in product page SEO.
Collection titles and theme templates, where duplication really lives
Individual product titles are a small problem. Templated titles are the big one, because a template multiplies whatever mistake it contains by your catalogue size.
Shopify themes build the <title> from Liquid. The page_title object is documented as "The page title of the current page," and the docs note it "can be used to specify the title of page for search engine listings and social media previews." A typical layout does this:
{%- comment -%} layout/theme.liquid, the default pattern {%- endcomment -%}
<title>
{{ page_title }}
{%- if current_tags %} – tagged "{{ current_tags | join: ', ' }}"{% endif -%}
{%- if current_page != 1 %} – Page {{ current_page }}{% endif -%}
{%- unless page_title contains shop.name %} – {{ shop.name }}{% endunless -%}
</title>
Three things in that snippet are worth reading as a store owner rather than as a developer.
The current_tags branch appends tag names to the title of a filtered collection view. On a store with twelve tags per collection, that generates a long tail of pages whose titles differ only by a tag name. The current_page branch does the same for pagination. The shop.name branch is the boilerplate Google's documentation warns about, and the unless guard is the only thing stopping it from being appended twice.
The fix is not to delete the suffix. It is to stop it from pushing the distinguishing words past the truncation point on the pages that matter:
{%- comment -%} Keep the store name off templated listing pages {%- endcomment -%}
<title>
{{ page_title }}
{%- if current_page != 1 %} – Page {{ current_page }}{% endif -%}
{%- unless current_tags or page_title contains shop.name -%}
– {{ shop.name }}
{%- endunless -%}
</title>
Collection titles need the same treatment as products and get it less often, because the collection form hides Edit website SEO in exactly the same place and nobody scrolls. A collection called New in the admin ships a <title> of New plus your store name, which describes nothing to anyone.
Before you bulk-edit anything, measure what you have. A pass over your existing titles belongs in a proper SEO content audit rather than in a spreadsheet you rename in one sitting, because the edits you cannot attribute are the edits you cannot learn from.
Measure it in Search Console, not in a preview pane
The admin's search engine listing preview is a mock-up. It shows you a plausible Google result, not the one Google will build. The only place the answer exists is Search Console, and titles are unusually easy to measure there because they move one metric before they move another.
A title change affects click-through rate quickly, because it changes what a searcher reads. It affects average position slowly or not at all, because relevance signals are doing that work. So the honest read on a title experiment is:
- Note the date you shipped the change.
- In the Performance report, filter to the single page URL.
- Compare the 28 days after against the 28 days before, on impressions, clicks, CTR and average position together.
- If impressions and position are flat and CTR moved, the title did it.
- If impressions moved as well, something else changed too and the title is not your answer.
Twenty-eight days is not a ritual, it is the shortest window that absorbs a weekend and a payday cycle. Shorter comparisons on a page with forty impressions a month tell you about noise.
One caveat specific to the result you are competing in. The Google results page for this topic carries an AI Overview, and AI Overviews do not report like organic results. Search Console's generative AI performance report covers AI Overviews and AI Mode, and it gives impressions only: no clicks, no CTR, no position, no queries, broken down by pages, countries, dates, devices and search type. If your product pages are being summarised rather than clicked, the title did not fail. The surface changed, and you can see the impressions without ever seeing a click.
That is also why the AI surfaces reward being quotable rather than being clever. The same plain phrasing that survives truncation in a blue link is the phrasing an assistant can lift, which is the practical overlap between classic SEO and answer engine optimization. If you want the longer version of how assistants choose what to repeat, LLM SEO covers it.
What a better title cannot fix
Titles redistribute clicks on demand that already exists. They do not create demand. This is the limit that no amount of rewriting moves, and it is worth being blunt about before you spend a week on your catalogue.
If nobody searches for what you sell, there is no title that wins. A product nobody looks up has an impressions problem, not a CTR problem, and you can tell the two apart in the report above in about a minute. The answer in that case is not in the product form at all: it is in content that creates the query, which is what content marketing for ecommerce and a working list of ecommerce blog ideas are for.
Two more cases that look like title problems and are not:
- The page is not indexed. A perfect title on a page Google has not crawled changes nothing. Why your website is not showing up on Google walks the checks in order.
- The page is competing with itself. Two near-identical products, or a product and a collection built on the same phrase, split their own signals. Retitling both does not merge them.
And on expectations, Google's own guidance on whether you need an SEO is the sentence to keep: "No one can guarantee a #1 ranking on Google." Results vary by catalogue, by competition and by how much demand exists for what you sell. Anyone selling you a position is selling you something Google says cannot be sold. The realistic timeline question is covered in how long SEO takes, and the structural question of where your content should even live is in subdomain vs subfolder.
What a title pass does buy you is cheap and real: the same impressions, converted into more clicks, on pages you already own. Start with the twenty products that already earn impressions, because that is where a CTR gain has something to act on. The rest of the catalogue can wait until those twenty have told you which phrasing your buyers respond to. If you need more impressions before any of this pays, getting traffic to your website is the prior problem.
FAQ
Are the Shopify product title and the SEO title the same thing?
No. The product title is the customer-facing name that Shopify uses to generate the page's <h1> header, and it is also what the URL handle was built from. The SEO title is a separate field under Edit website SEO that becomes the <title> element. If you leave the SEO title empty, your theme falls back to the product title, which is why the two look identical on most stores until someone edits one of them.
Does changing a Shopify product title change the URL?
Not on its own. Shopify generates the handle from the title when the product is created, and after that the handle is its own editable field in the Search engine listing section. Rename the product and the page keeps serving at the old handle. If you do edit the handle, create a URL redirect: Shopify's documentation notes that "when you change a URL on your Shopify store, you can create a URL redirect to ensure your customers can still find what they're looking for," and that 301 redirects are cached by browsers and search engines.
How long should a Shopify SEO title be?
Shopify's field accepts up to 70 characters and its own help centre advises "consider keeping your title up to 60 characters" to avoid shortened titles in results. Google itself sets no limit: its documentation states that "while there's no limit on how long a <title> element can be, the title link is truncated in Google Search results as needed, typically to fit the device width." In practice the 70-character admin field is the binding constraint, and 60 is a safe target.
What makes a title SEO friendly?
A title is working when a stranger can tell what the page sells without the photo, and when the words a buyer would type appear early enough to survive truncation. Google's guidance asks for descriptive and concise titles, distinct titles across pages rather than repetitive boilerplate, and no repeating of keywords inside one title. Shopify stores fail that last point most often through theme templates that append the store name and tag names to every listing page.
Can you actually do SEO on Shopify?
Yes, with two structural limits to accept. Shopify fixes the URL prefixes, so products live under /products/ and collections under /collections/, and you edit the handle rather than the whole path. Beyond that, titles, meta descriptions, handles, image alt text, internal links and structured data are all yours. The parts that need a theme edit are the templated titles described above, and that is a file change rather than an app install.
What should the product description do that the title cannot?
The title has to work truncated and out of context, so it carries the identity of the product and nothing else. The description is where the specifics live: materials, dimensions, what it fits, what it does not fit, and the question a buyer asks before paying. Shopify recommends around 160 characters for the meta description, which is a summary rather than the description itself. Write the meta description for the click and the product description for the decision.
Get cited by ChatGPT. Rank on Google.
You found this article through search. That is the whole product.
- One researched article a day
- Published on your own domain
- Keywords checked against live results
Get cited by ChatGPT. Rank on Google.
You found this article through search. That is the whole product.
- One researched article a day
- Published on your own domain
- Keywords checked against live results
