Back to blog
guides12 min read

Ecommerce Keyword Research: Map Every Term to a Collection Before You Write

I pulled 44 yoga mat terms from DataForSEO and gave each one a page before writing a word. Ecommerce keyword research as a mapping method, table included.

Aditi ChaturvediSeptember 25, 2026
Ecommerce keyword research: map before you write, in 4 steps: Seed; Expand and label; Map; Check and repeat.
TL;DR

Ecommerce keyword research is a mapping exercise, not a list. Every term a store could rank for is assigned to exactly one page before anything is written, and two pages on one term is the failure mode. The method, in order:

  1. Seed: Collection names, product types and brands from the catalogue, plus every query already earning impressions in Search Console.
  2. Expand and label: Related searches and People Also Ask for each seed, then an intent label per term. Read the label as a first sort and the words as the decision.
  3. Map: Head term to the collection, modifier to a subcollection, small attribute to a facet or filter, brand plus model to a product, question to a guide. One page per term.
  4. Check and repeat: Flag any term with two candidate pages before writing, read monthly_searches before trusting a volume, and rerun the pull quarterly.

"ecommerce keyword research" gets 390 US searches a month at difficulty 17, and "keyword research for ecommerce" another 390 at difficulty 14 (DataForSEO, US, September 2026). The worked example below uses "yoga mat", 110,000 searches a month, and 20 terms around it.

Every page ranking for this query ends with a keyword list. A list is where cannibalisation starts. This guide ends with a map: 20 real terms for one category, each assigned to one page, pulled from DataForSEO in September 2026 so you can check every number. Try CrawlRaven free: 1 site, no credit card →

The short answer: a keyword isn't researched until it has a page

"yoga mat" gets 110,000 US searches a month. "yoga mats" gets the same 110,000, and DataForSEO files the two under one core keyword. A store that builds a collection for each has built its first cannibalisation problem before writing a word.

Ecommerce keyword research is the work of assigning every query a store could rank for to exactly one page: head terms to collections, modifiers to subcollections or indexable facets, brand-plus-model terms to product pages, questions to guides. The output is a map, not a list. A list is where cannibalisation starts.

I pulled 44 terms around one seed, "yoga mat", through DataForSEO's Labs API in September 2026 and mapped 20 of them below. Every volume and difficulty score here comes from that pull. Eight steps; the map is the deliverable of step four.

Key Takeaways

  • →Seeds are the catalogue and Search Console: Collection names, product types and vendors, plus every query already earning impressions. Not a brainstorm.
  • →The intent label is a first sort, not a verdict: DataForSEO's main_intent sent "yoga mat target" to transactional and "yoga mat manduka" to informational. The words decide.
  • →One page per term, one term per page: Head term to collection, modifier to subcollection, model to product, question to guide. A term with two candidate pages is a decision to make now.
  • →Long tail is copy, not URLs: "yoga mat for bad knees" (90 searches) is an FAQ line on the thick subcollection, not a page. Volumes are averages; read the months before building.

What the pages ranking for "ecommerce keyword research" leave out

I pulled the US desktop SERP for "ecommerce keyword research" on September 25, 2026. The query gets 390 searches a month at difficulty 17, and "keyword research for ecommerce" another 390 at difficulty 14 (DataForSEO, US, September 2026). Page one:

  • Semrush ranks first with a seven-step process that ends at "build your keyword list". No page column.
  • Backlinko ranks second with a tool page, then three methods, starting with Amazon's autocomplete.
  • Shopify's 4,483-word guide is the only one with a mapping step, "Map keywords to different content types", one H3 out of thirty.
  • AbanteCart, Practical Ecommerce, Salsify, keywordtool.io, BigCommerce and Verbolia fill the rest: a category archive, a glossary entry, a tool landing page, three more step lists.

The AI Overview cited Semrush, Shopify, BigCommerce, Practical Ecommerce, Infidigit, AbanteCart and two YouTube videos. Every page tells you how to find keywords. None shows the finished table with a page beside each term, the only artefact a store can act on.

Step 1: Seed terms from the catalogue and Search Console

Seeds come from two places you already own. The catalogue tells you what you sell. Search Console tells you what Google already shows you for, and because it is built into CrawlRaven, that query data seeds the keyword map first.

  1. Catalogue: every collection, product type and vendor. On Shopify, the collections list plus the product_type and vendor fields. For a yoga store: yoga mat, yoga mat towel, yoga mat bag, Manduka, Liforme, Jade.
  2. Search Console: Queries tab, 16 months, sorted by impressions. A query at an average position between 8 and 30 is demand Google already assigns to you. Export it with the page it lands on; that column starts the map.
  3. Two- and three-word commercial phrases only. "yoga mat" and "cork yoga mat" are seeds. "how to clean a yoga mat" is an expansion result.
  4. Collapse plurals and word orders now. DataForSEO groups "yoga mat" and "yoga mats" under one core keyword at 110,000 each. One seed, one page.

Step 2: Expand with related searches and People Also Ask

I ran DataForSEO's related_keywords endpoint on "yoga mat" at depth 2, filtered to more than 50 searches a month: 38 terms for less than two cents. A keyword_overview call for the modifiers and questions the catalogue suggested brought the set to 44.

  • Brands and retailers dominate related searches. "manduka pro yoga mat" 33,100, "lululemon yoga mat" 27,100, "liforme yoga mat" 14,800, "gaiam yoga mat" 14,800, "alo yoga mat" 12,100. Then the retailers: "yoga mat target" 8,100, "yoga mats walmart" 5,400, "yoga mat amazon" 3,600.
  • Modifiers arrive from the catalogue, not the SERP. "hot yoga mat" 12,100, "thick yoga mat" 8,100, "non slip yoga mat" 4,400, "cork yoga mat" 4,400, "travel yoga mat" 3,600. None came back as a related search.
  • Questions come from People Also Ask and the how/what prefix. "how to clean a yoga mat" 4,400, "yoga mat thickness" 8,100, "how thick should a yoga mat be" 320, "yoga mat vs exercise mat" 320.
  • Accessories are their own product types. "yoga mat towel" 9,900, "yoga mat bag" 8,100, "yoga mat strap" 5,400, "yoga mat cleaner" 3,600. Each is a collection, not a subcollection of mats.

Run the People Also Ask box on each head term and each subcollection term. On this post's own keyword it asked what the best keywords for ecommerce are and what the top five research tools are. Those questions are the guide topics.

Step 3: Read the intent label, then check it against the words

DataForSEO returns a search_intent_info object per keyword with a main_intent and a foreign_intent list. Its help centre defines the four values: informational (seeking an answer, often "how to"), navigational (a specific site or page), commercial (research before a purchase, comparative words), transactional (completing an action, usually a purchase).

Across the 44 yoga mat terms the label was right often enough to sort on and wrong often enough to check. Three quirks from the pull:

  • Word order changes the label. "yoga mat manduka" (33,100) is informational with transactional secondary; "manduka yoga mat" and "manduka pro yoga mat" are transactional. Same buyer. All three go to the brand collection or the product page.
  • Retailer names read as transactional, not navigational. "yoga mat target" 8,100 and "yoga mats walmart" 5,400 both carry a transactional label. None of the 44 terms was labelled navigational. Unless you are Target, they are not yours.
  • Comparatives split. "best yoga mat" (12,100) is transactional with commercial secondary; "best yoga mat for hot yoga" (4,400) is commercial. Both carry "best", and the word decides: a guide.
Intent to page type

What DataForSEO's main_intent label sends where, and the three cells where the words overrule it

main_intentCollection or subcollectionProduct pageGuideOff the map
Transactional
Completing an action, usually a purchase
yoga mat, 110,000; hot yoga mat, 12,100; cork yoga mat, 4,400manduka pro yoga mat, 33,100; liforme original yoga mat, 1,900best yoga mat, 12,100 (label says buyer; the word “best” says guide)yoga mat target, 8,100; yoga mat near me, 12,100
Commercial
Research before a purchase; comparative words
––best yoga mat for hot yoga, 4,400; best yoga mat for beginners, 390best yoga mat reddit, 720 (wants Reddit)
Informational
Seeking an answer; “how to”, “what is”
yoga mat manduka, 33,100 (label says reader; the brand says buyer, so a brand collection)–yoga mat thickness, 8,100; how to clean a yoga mat, 4,400; how thick should a yoga mat be, 320–
Navigational
A specific site or page
–––None of the 44 terms got this label. Retailer names came back transactional instead.
Monthly US searches, DataForSEO Labs, September 2026. Read the label as a first sort, then read the words: an attribute is a buyer, a question word or a comparative is a reader.

The rule that survives the quirks: read the label as a first sort, then read the words. An attribute is a buyer, whatever the label. A question word or a comparative is a reader, and a reader lands on a guide. Our search intent entry covers the four types.

Step 4: Assign every term to exactly one page type

Google's ecommerce site structure guidance describes the hierarchy the map has to fit: links from menus to category pages, from categories to subcategories, and from subcategories to every product. It adds that Google uses the number of links to a page to infer its importance. The map decides which page collects the links for each term.

The six mapping rules

  1. Head term to the collection. "yoga mat" and "yoga mats", 110,000 searches at difficulty 37 and 35, one URL: /collections/yoga-mats. The category page is where the head term ranks.
  2. Modifier with its own demand to a subcollection. "hot yoga mat" 12,100, "thick yoga mat" 8,100, "cork yoga mat" 4,400: each gets a URL, an H1 and copy. The test is demand plus enough products to fill a grid.
  3. Attribute with small demand to a facet or a filter. "extra long yoga mat" at 720 searches and difficulty 1 earns an indexable facet if you stock eight of them. "yoga mat 6mm" (880) and "blue yoga mat" (480) stay as noindexed filters.
  4. Brand plus model to the product page. "manduka pro yoga mat" 33,100, "liforme original yoga mat" 1,900. A bare brand term, "yoga mat manduka" at 33,100, goes to a brand collection.
  5. Question or comparative to a guide that links to the collection. "best yoga mat" 12,100, "yoga mat thickness" 8,100, "how to clean a yoga mat" 4,400. The guide's anchor text is the head term.
  6. One page per term, one term per page. The rule that makes the other five work. A term with two candidate pages is a decision to make now, not a test to run later.
Term to page type

Six shapes of query, six kinds of page. Every term gets exactly one.

1
Head term→Collection
Names the product type, nothing else. Plural and singular are one term.
e.g. yoga mat, 110,000/mo, KD 37 → /collections/yoga-mats
2
Modifier with demand→Subcollection
An attribute buyers search for, and enough products to fill a grid.
e.g. hot yoga mat, 12,100/mo, KD 3 → /collections/hot-yoga-mats
3
Attribute with small demand→Facet or filter
A size, colour or number. Indexable facet if it clears a few hundred searches and eight products; otherwise a filter.
e.g. extra long yoga mat, 720/mo, KD 1 → /collections/yoga-mats/extra-long
4
Brand plus model→Product page
A product name a shopper can buy. A bare brand goes to a brand collection.
e.g. manduka pro yoga mat, 33,100/mo, KD 14 → /products/manduka-pro-yoga-mat
5
Question or comparative→Guide
Starts with how, what, which, or carries “best” or “vs”. A reader, not a buyer yet.
e.g. yoga mat thickness, 8,100/mo, KD 6 → /blogs/guides/yoga-mat-thickness
6
Retailer or local→Off the map
Another store’s name, or “near me”. Not yours to rank for.
e.g. yoga mat target, 8,100/mo → no page
Volumes and difficulty: DataForSEO Labs, United States, September 2026. Guides link to the collection with the head term as the anchor; collections never chase the question.

This is the part we built CrawlRaven for. The keyword map assigns every keyword to the page that should rank and flags cannibalisation when two pages compete for one term. It is seeded from Search Console's own query data, takes imported Ahrefs or Semrush lists on top, and the runner-up keywords view surfaces category terms on page 2.

The free plan covers one site, and a lifetime licence for three sites was $49 at launch. Lifetime pricing steps up as licenses sell, so check the pricing page for the current batch. See pricing.

The worked map: 20 yoga mat terms, one page each

Every number below is from DataForSEO Labs, United States, September 2026, as the API returned it. The page column is my decision by the rules above, for a store that stocks Manduka and Liforme and sells mats, towels and bags.

KeywordVolume / moKDIntent (DataForSEO)Page typePage
yoga mat110,00037TransactionalCollection/collections/yoga-mats
yoga mats110,00035TransactionalSame collectionSame URL; DataForSEO files both under one core keyword
hot yoga mat12,1003TransactionalSubcollection/collections/hot-yoga-mats
thick yoga mat8,1006TransactionalSubcollection/collections/thick-yoga-mats
non slip yoga mat4,4004TransactionalSubcollection/collections/non-slip-yoga-mats
cork yoga mat4,4000TransactionalSubcollection/collections/cork-yoga-mats
travel yoga mat3,60010TransactionalSubcollection/collections/travel-yoga-mats
extra long yoga mat7201TransactionalIndexable facet/collections/yoga-mats/extra-long, if eight or more products
yoga mat 6mm8806TransactionalFilter, noindexed?thickness=6mm; the thick subcollection copy names 6mm
blue yoga mat4800TransactionalFilter, noindexed?color=blue; colour in the product titles
manduka pro yoga mat33,10014TransactionalProduct page/products/manduka-pro-yoga-mat
liforme original yoga mat1,90024TransactionalProduct page/products/liforme-original-yoga-mat
yoga mat manduka33,1009Informational (transactional secondary)Brand collection/collections/manduka
yoga mat towel9,9000TransactionalSeparate collection/collections/yoga-mat-towels; a different product type, not a subcollection
yoga mat bag8,1007TransactionalSeparate collection/collections/yoga-mat-bags
best yoga mat12,10025Transactional (commercial secondary)Guide/blogs/guides/best-yoga-mats, linking to the collection
best yoga mat for hot yoga4,40012CommercialGuide/blogs/guides/best-hot-yoga-mats, linking to the hot yoga subcollection
yoga mat thickness8,1006InformationalGuide/blogs/guides/yoga-mat-thickness; also owns "how thick should a yoga mat be" (320)
how to clean a yoga mat4,4005InformationalGuide/blogs/guides/how-to-clean-a-yoga-mat, linking to the cleaner collection
yoga mat for bad knees900TransactionalNo pageAn FAQ line on the thick subcollection

Two terms with real volume are off the map on purpose. "yoga mat near me" (12,100, difficulty 1) wants a store locator or a local pack. "best yoga mat reddit" (720) wants Reddit. A collection built for either is a page nobody asked for.

Brand, model and competitor terms

Brand terms were the largest group in the related searches, and the map treats three kinds differently:

  • Brands you stock. One brand collection per vendor (/collections/manduka for "yoga mat manduka", 33,100) and one product page per model. "manduka pro yoga mat" at difficulty 14 is a term a retailer's product page can rank for.
  • Brands you don't stock. "lululemon yoga mat" gets 27,100 searches at difficulty 0. The only honest page is a comparison guide, and "manduka vs lululemon yoga mat" (170) is its term.
  • Retailers. "yoga mat target" 8,100, "yoga mats walmart" 5,400, "yoga mat amazon" 3,600. Off the map. A page built for another store's name will not rank.

Keep your own brand queries in a separate Search Console bucket so they don't inflate the category rows; branded vs non-branded keywords has the filter.

Step 5: Catch cannibalisation before anything is written

Keyword cannibalisation is the failure mode of a keyword list. Two pages built for the same term split the internal links and the ranking between them, and Search Console shows it as the URL under a query changing from week to week.

On a store the common version is a subcollection and a blog post. "thick yoga mat" (8,100) belongs on the subcollection; "yoga mat thickness" (8,100, informational) belongs on a guide. DataForSEO files the second under the first as its core keyword, and a writer who treats them as one topic writes the guide around the buyer term.

Cannibalisation, before and after

Three URLs on one buyer term becomes one owner, one guide, one redirect

Before
Three pages claim “thick yoga mat”
/collections/thick-yoga-mats
Targets: thick yoga mat
Subcollection, no copy, title is the collection name
/blogs/news/best-thick-yoga-mats
Targets: thick yoga mat
Blog post written around the buyer term
/blogs/news/yoga-mat-thickness-guide
Targets: thick yoga mat, yoga mat thickness
Guide that chases both terms in its title
After
One page per term, one term per page
/collections/thick-yoga-mats
Targets: thick yoga mat (8,100/mo)
Owner. Copy above the grid, title leads with the term
/blogs/guides/yoga-mat-thickness
Targets: yoga mat thickness (8,100/mo), how thick should a yoga mat be (320/mo)
Owns the questions; links to the subcollection with “thick yoga mats” as the anchor
/blogs/news/best-thick-yoga-mats
Targets: nothing
Merged into the guide, 301 to it
The symptom in Search Console: filter Queries to the term, open the Pages tab, and more than one URL has impressions. The URL Google shows for the query changes from week to week instead of one page holding it.
  1. Filter Queries to the exact term, then open the Pages tab. More than one URL with impressions is the flag. Do it for every head term and subcollection term.
  2. Compare the top two URLs over three months. Positions that alternate mean a split, not a transition.
  3. Pick the owner by the rule, not by current position. A blog post outranking the subcollection for a buyer term ranks because the subcollection has no copy.
  4. Rewrite the loser around its own term and link it to the owner. A page with no term of its own is merged and redirected.

The long version, with the Search Console filters, is in how to fix keyword cannibalisation.

Step 6: Read monthly_searches before you trust a volume

search_volume is a twelve-month average. The monthly_searches array behind it tells you when the demand arrives and whether the average describes any real month. Four terms from the pull:

  • "yoga mat" ran 90,500 a month from February to July 2026 and 135,000 in December and January. The 110,000 average describes neither. The peak in the data is April 2020 at 450,000, the low October 2024 at 74,000.
  • "hot yoga mat" peaked at 27,100 in April 2026 and fell to 3,600 in June. A subcollection written in July looks like a failure by August.
  • "yoga mat strap" hit 12,100 in December 2025 against 3,600 to 4,400 most months; "yoga mat bag" hit 12,100 the same month. Gift terms. Write the accessory pages in September.
  • "manduka pro yoga mat" went from 880 in June 2022 to 60,500 in May 2026. A model term can outgrow every modifier on the map between pulls.

Write the seasonal page two to three months before its peak, so it is indexed and linked when the demand arrives. The map is also a calendar.

Step 7: Long tail lives in product copy, not in new pages

Long tail keywords in ecommerce are mostly attribute combinations: "yoga mat for bad knees" 90 searches, "yoga mat for sweaty hands" 70, "yoga mat 72 inch" 20, "jute yoga mat" 260. None earns a URL. Copy that names the attribute on an existing page earns them all.

  • Put the attribute in the product title and the first sentence. Thickness in millimetres, length in inches, material by name. Google's URL structure guidance asks for descriptive words in the path too: /product/black-t-shirt-with-a-white-collar, not /product/3243.
  • Answer the "for" queries in the subcollection FAQ. One line saying 6mm and 8mm mats suit bad knees covers "yoga mat for bad knees" without a URL.
  • Let variants carry colour and size. Google's guidance gives each variant its own URL, by path segment or parameter, with a canonical. "blue yoga mat" rides on the blue variant.
  • Check the copy still reads as copy. Run one product page through the keyword density checker: the attribute should appear two or three times, not eleven.

Which products deserve hand-written copy is a tiering question; product page SEO answers it with Search Console and GA4 data per product.

Step 8: The review cadence: monthly pass, quarterly rebuild

  1. Monthly: Search Console, Queries, last 28 days against the previous 28. For each mapped term, is the owner URL the one Google shows? Terms at position 11 to 20 on a collection are the priority list, which is what CrawlRaven's runner-up keywords view lists.
  2. Quarterly: rerun the expansion for each head term. New brand and model terms appear between pulls; see the "manduka pro" line above.
  3. On every catalogue change: new product type, new seed. A discontinued range redirects its subcollection to the parent; Google's URL guidance says an empty category gets a noindex tag or a 404.
  4. Yearly: rebuild against the sitemap. Any indexable URL no term points to is a leaked facet or a category with no demand. It comes out.
Opinion· Aditi's take: the page column is the research
Every keyword export I have been handed had volume, difficulty and CPC, and not one had a column for the page. That column is the work. Ten minutes of assigning terms to URLs finds more problems than another hour of expansion, because the moment two rows want the same URL, you have found the cannibalisation before Google does.

Ecommerce keyword research tools: what each one is for

  • Search Console. The only source of your own impressions and positions. Seed list and monthly check. Built into CrawlRaven with daily sync, so the map starts from it.
  • Google Keyword Planner. Free volumes, as ranges unless the account runs ads. Confirms a head term, weak for expansion.
  • Ahrefs or Semrush. Expansion sets and difficulty scores. Export the CSV; CrawlRaven imports it and maps each term to a page.
  • DataForSEO Labs API. What I used: related_keywords for expansion, keyword_overview for volume, difficulty, intent and monthly_searches, paid per request. Backlinko's free ecommerce keyword tool covers a first pass.
  • SERP preview. Once a term has a page, check that the title carrying it fits the result line: SERP preview.

The ecommerce SEO checklist covers what happens after the map, and SaaS SEO vs ecommerce SEO explains why a store maps keywords to generated pages where a SaaS site writes them.

Why the map still isn't producing rankings, and what to check

  • The collection sits on page 2 for its head term and won't move? The page still needs links: navigation, breadcrumbs, and a guide linking in with the head term as anchor. Internal linking is most of the authority a collection gets.
  • A blog post outranks the subcollection for a buyer term? Cannibalisation, step five. Retarget the post to the question form and link it to the subcollection.
  • Filtered URLs are the ones in the index? Filters leaked. Noindex or block them, and read technical SEO for ecommerce for the facet rules.
  • Search Console impressions don't match the volumes? They shouldn't. Volume averages one phrase over twelve months; impressions count every variant your page appeared for. Trust impressions for your site, volume for the order of the map.

Ecommerce keyword research FAQs

Method and mapping

How many keywords should a store map? As many as have a page to own them. Fifty collections, ten subcollections and a hundred products is roughly 160 owner rows, plus the guides. The long tail rides on those pages as copy.

Does every subcollection need its own copy? Yes, or it is a filter with a prettier URL. The copy is what tells Google which modifier the page owns.

Shopify and long tail

Where do Shopify keywords come from? The collections list, the product_type and vendor fields, and the Queries tab in Search Console. Shopify handles collection URLs and pagination; the map decides which collection owns which term.

When does a long tail term earn a page? When it has a few hundred searches and enough products to fill a grid. "extra long yoga mat" at 720 qualifies as an indexable facet; "yoga mat 72 inch" at 20 stays in the copy.

Data and tools

Is keyword difficulty reliable for ecommerce terms? As an order, yes; as a number, no. DataForSEO computes it from the backlink profiles of the top ten pages. "cork yoga mat" at difficulty 0 with 4,400 searches is worth building; the 0 is not a promise.

What did the research for this guide cost? Four DataForSEO calls: two keyword_overview requests, one related_keywords request and one SERP request, about five cents in total.

Sources

Frequently asked questions

What is ecommerce keyword research?

Ecommerce keyword research is the work of finding every query a store could rank for and assigning each one to exactly one page: head terms to collections, modifiers to subcollections, brand-plus-model terms to product pages, questions to guides. The output is a keyword map with a page column, not a list of terms with volumes.

How is keyword research for ecommerce different from keyword research for a blog?

A blog maps one keyword to one article it will write. A store maps most keywords to pages its catalogue already generates: collections, subcollections, facets and products. The research decides which of those pages owns which term, and which terms get no page at all. Thousands of URLs make cannibalisation the main risk.

How many keywords should a collection page target?

One head term, plus its plural and close variants, which DataForSEO groups under one core keyword anyway. "yoga mat" and "yoga mats" both show 110,000 US searches a month and belong on one URL. A modifier with its own demand, such as "hot yoga mat" at 12,100, gets its own subcollection rather than sharing the parent.

What is keyword mapping in ecommerce?

Keyword mapping is the table that pairs every target keyword with the single URL that should rank for it, with volume, difficulty and intent alongside. On a store it also records the page type, so a term marked "filter" is deliberately kept out of the index and a term marked "guide" is written to link to a collection.

How do I do keyword research for a Shopify store?

Seed from your collections, product types and vendors, plus the Queries tab in Search Console. Expand each head term with related searches and People Also Ask. Then map: head terms to collections, modifiers to sub-collections, models to products. Shopify's collection URLs and self-canonical pagination handle the structure; the map decides which collection owns which term.

Should I create a page for every long tail keyword?

No. Long tail terms in ecommerce are mostly attribute combinations, such as "yoga mat for bad knees" at 90 US searches a month or "yoga mat 72 inch" at 20. They are earned by product copy and subcollection FAQs that name the attribute, not by new URLs. A new page needs demand and a full grid.

What does DataForSEO's main_intent field mean?

It is the search intent DataForSEO's classifier assigns to a keyword: informational, navigational, commercial or transactional, with foreign_intent listing secondary intents. Treat it as a first sort. In the yoga mat pull, retailer terms like "yoga mat target" came back transactional rather than navigational, and "yoga mat manduka" came back informational, so the words still decide.

What are the best ecommerce keyword research tools?

Search Console for the queries you already earn impressions on, Google Keyword Planner or an Ahrefs or Semrush export for volumes and expansion, and a keyword map to hold the page column. I used DataForSEO's Labs API for this guide; the related keywords call for 38 terms cost less than two cents.

How often should I redo ecommerce keyword research?

Check the map monthly in Search Console: for each term, is the owner URL the one Google is showing? Rerun the expansion quarterly, because brand and model terms move fast: "manduka pro yoga mat" went from 880 searches in June 2022 to 60,500 in May 2026. Rebuild from scratch whenever the catalogue adds or drops a product type.

How do I find keyword cannibalisation on an online store?

In Search Console, filter Queries to the exact term and open the Pages tab. More than one URL with impressions is the flag, and the ranking URL swapping from week to week confirms it. Pick the owner by the mapping rule, rewrite the other page around its own term, and link it to the owner.

Aditi Chaturvedi
About the Author

Aditi Chaturvedi

15+ years of growing SaaS websites through SEO | Author, 200-Point Audit Checklist

Aditi has spent 15+ years helping SaaS companies scale organic traffic through technical SEO and content strategy. She is the author of the CrawlRaven 200-Point Audit checklist used by agencies and in-house teams to systematically improve search performance.

ecommerce keyword researchkeyword research for ecommerceecommerce keyword research toolsproduct keyword researchkeyword mapping ecommerceshopify keyword researchlong tail keywords ecommercekeyword cannibalizationsearch intentecommerce seo

Reader runs SEO for an online store, has a keyword export with no page column, and suspects two or more pages are fighting for the same head terms.

Every keyword mapped to the page that should rank, seeded from your own Search Console queries

The keyword map flags two pages competing for one term before you write either

CrawlRaven joins Search Console, GA4 and a 200-point crawl into one ranked plan. The keyword map assigns every term to one page, flags cannibalisation, and takes imported Ahrefs or Semrush lists on top of your own query data. Free plan for 1 site, no credit card required.

CrawlRaven connects Google Search Console and GA4, runs 200+ technical SEO checks, and joins all three into one prioritized fix list, so you know what is broken, what it is costing you, and what to fix first.

✓ No credit card required·200+ checks·GSC + GA4 + full-site crawl
Free plan — no credit card

Stop exporting. Start shipping.

Connect Search Console, import your Ahrefs or Semrush lists, and get one ranked plan. Start free with one site, or grab a limited lifetime deal from $39, only 5 licenses left.

3
Data sources joined
200+
Point audit checks
1
Ranked plan out