DEV Community

xcutlery
xcutlery

Posted on

Shopify SEO for a Small Ecommerce Store: What 51 Unindexed URLs Taught Me

Most ecommerce SEO advice is written for stores with ten thousand products and a content team. This one is about a store with two dozen products, a handful of collections and one person (me) doing the SEO between other jobs.

The store is XCutlery, a Shopify shop that sells hand forged kitchen knives. Cleavers, chef knives, butcher knives, fillet knives, knife sets. Every blade is made by hand, which is great for the product and mildly annoying for SEO, because "handmade" is the one word every competitor also uses.

No code in this post. Everything here can be done from the Shopify admin, a spreadsheet and Search Console. If you build or run small stores, this is the checklist I wish someone had handed me before I started.

The starting point: a store Google mostly ignored

When I first opened Search Console, the sitemap had 41 URLs. Only 18 were indexed. A long list sat under "Discovered, currently not indexed", which is Google's polite way of saying it knows the page exists and has decided not to bother. Daily impressions were somewhere between 2 and 7.

That is not a ranking problem. You cannot rank a page that is not in the index. So the first job was to make the site easier to understand, and only after that worry about keywords.

Collection pages carry more weight than product pages

On a small store, collection pages are where the search demand lives. People search "meat cleaver" or "hand forged chef knife" far more often than they search for a product name they have never heard of. Product names like Kraken or Warthog are fun on the shelf. Nobody types them into Google.

So I treated every collection as its own landing page with one clear job:

Hand forged meat cleavers targets cleaver searches and nothing else
Hand forged chef knives targets chef knife searches
Butcher knives and brisket and BBQ knives split the meat cutting intent instead of fighting over it
Knife sets and knife gifts catch the buyers who want a bundle or a present

The mistake I see on most small Shopify stores is three collections all trying to rank for the same phrase. Google picks one, ignores the others, and sometimes picks the wrong one. Give each page a lane and let it stay in that lane.

Each of the 11 collections got a rewritten title, SEO title, meta description and a proper description. The description goes in two parts. A short intro sits above the product grid so shoppers see products straight away. The longer, more useful copy sits below the grid, where search engines still read it and humans who want detail can find it. Putting 800 words above the products is how you get great SEO copy and no sales.

The navigation was quietly working against the site

This one took me longer to spot than I would like to admit. The main menu linked to tag filtered URLs, the kind Shopify creates when you filter a collection by a tag, instead of linking to the real collection pages.

Those filtered pages are thin. They duplicate the real collection, they split your internal links between two URLs, and they send Google a mixed signal about which page is the important one. Your menu is the strongest internal linking you have, because it appears on every page. If it points at the wrong URLs, every page on the site is voting for the wrong candidate.

Fixing it meant going through the menu in the Shopify admin and pointing every item at its real collection. Ten minutes of clicking. Probably the most valuable ten minutes of the whole project.


Two domains, one store, and a duplicate content headache

The store also serves Australian buyers on a second domain. It did not redirect. It served the exact same pages, which is about as clean an example of duplicate content as you will find.

The fix lives in Shopify Markets. Connect the second domain to its own market, set the local currency, and let Shopify output the hreflang tags so each version tells Google the other one exists. Then the step everyone forgets: submit the sitemap in the second domain's own Search Console property. Google does not guess that for you.

After that, check the live page source rather than trusting the settings screen. Settings screens are optimistic. The rendered page is the truth.

Product titles and alt text, done in one spreadsheet

The product pages had the usual small store problem. Titles and meta descriptions that sounded slightly different and said exactly the same thing. Google reads that as a site with nothing much to say.

Rather than edit 24 products one at a time in the admin, I exported the products CSV, rewrote everything in a spreadsheet and imported it back. Each product got:

A title that leads with what it is, then the size, then the name. "Warthog 6 inch Hand Forged Meat Cleaver" tells a searcher something. "Warthog" alone tells them it might be a nature documentary.
A unique SEO title and meta description written for that one product
Tags that match real search terms, so tag pages behave more like useful category pages
Alt text for every image. That came to 122 images, which is a fun afternoon if your idea of fun is describing knives to a screen reader

Alt text matters twice over on an ecommerce site. It helps people who use screen readers, and it is how Google Images works out what your product is. "IMG_4471" is not a description.

Cleaning out the sitemap

A young site does not get much crawl attention, so I stopped handing it out to pages that do not need it. The cart page got a noindex. A stray file that had somehow found its way into the sitemap came out. Empty collections were hidden instead of left sitting there, live and lonely, with no products in them.

None of this is exciting. All of it helps Google spend its limited visits on pages that can actually sell something.


Writing for AI search, not only the blue links

A growing share of shoppers now ask ChatGPT, Perplexity or Google's AI Overviews before they ever click a store. Questions like "what cleaver can cut through bone" or "is a hand forged chef knife worth the money". Those tools tend to quote pages that answer a question plainly and early.

So the main collections got short FAQ blocks below the product grid, answering the questions buyers actually ask. A few habits made the answers more quotable:

Answer first, explain second. The first sentence should work on its own if someone lifts it out of the page. AI tools do exactly that.

Use the words buyers use. "Meat cleaver", "boning knife", "high carbon steel chef knife". Not the internal naming you came up with in a meeting.

Keep facts consistent everywhere. If the shipping page says one thing and the FAQ says another, a person loses trust and so does a model trying to work out which one is true.

Give the site real trust signals. XCutlery has been making knives since 2019, and the reviews on the reviews page came across from years of selling on Etsy. A clear lifetime warranty page, a real about page and a working contact page all help Google and AI tools decide the store is a real business and not a pop up that will vanish next month.

Internal links between guides, collections and products

Once the collections were in shape, the next job was linking them together properly. The plan is straightforward. Each guide in the blog should link to the collection it talks about. Sibling collections should link to each other where it makes sense, so a cleaver page can point to butcher knives and a chef knife page can point to knife sets. Products link back up to their collection.

The goal is simple. Wherever someone lands, there should be an obvious next page, and Google should be able to follow the same path. Orphan pages, the ones nothing links to, are the ones that end up in "Discovered, currently not indexed" forever.

There is also a custom knife builder on the site, which is a nice example of a page that needs internal links pointing at it, because no one searches for it by name. Links from the gifts collection and the product pages do that job better than hoping Google finds it alone.


The order I would do it in again

If I picked up another small Shopify store tomorrow, this is the order I would follow:

Open Search Console and look at what is actually indexed before touching anything
Fix the menu so every link points at a real collection URL
Sort out duplicate domains with Markets and hreflang, and submit each sitemap
Give every collection one keyword lane and rewrite its copy, short intro above the grid, detail below
Rewrite product titles, metas, tags and alt text in one CSV pass
Clean the sitemap of anything that should not be there
Add FAQ answers written for AI search
Link guides, collections and products together so nothing sits alone

Keyword research comes in at step four, not step one. On a small store the technical mess usually costs more traffic than any missing keyword does.

Final thought

Small stores have one real advantage over big ones. You can fix the whole site in a week. A big retailer needs three meetings to change a menu item. You need a Tuesday afternoon.

If you want to see how the collection pages ended up, have a look around xcutlery.com. And if you have a trick for getting stubborn pages out of "Discovered, currently not indexed", put it in the comments. I have a few pages that could use it.

Top comments (0)