Product Title Gap Analyser
Compare product titles with competitors using MPN matching to find missing keywords.
#about
Matches products across datasets using normalised MPN (lowercase, stripped whitespace).
Uses NLTK stopwords corpus with multi-language support (EN, DE, FR, ES, IT, NL, PT).
Text preprocessing: lowercase, punctuation removal, minimum word length filter, custom stopword exclusion.
Collections.Counter calculates word frequency differences.
Streamlit app
- Platform
- Browser-based (no installation required)
- Input
- Your crawl CSV with url, h1/title, mpn columnsCompetitor crawls CSV with same columnsUTF-8 or Latin-1 encoding
- Output
- CSV with content gaps and missing words
- Category
- E-commerce
Use cases
- Product title optimisation
- Competitive content gap analysis
- Identifying missing product attributes
- Bulk title improvement suggestions
#features
- MPN/SKU matching (normalised lowercase)
- NLTK stopwords: English, German, French, Spanish, Italian, Dutch, Portuguese
- Custom stopwords input
- Minimum word length filter (1-10 characters)
- Collections.Counter word frequency analysis
- Title length gap calculation
#how-to-use
- Crawl your site and competitors with MPN extraction
- Upload your crawl and competitor files
- Map URL, H1, and MPN columns
- Select stopwords language and add custom exclusions
- Set minimum word length
- Download gap analysis results
#faq
- Why do so few of my products match against competitors?
- MPN matching is exact after lowercasing and trimming outer whitespace only. Formatting differences inside the value, such as dashes, internal spaces or leading zeros ('AB-123' vs 'AB123', '0451' vs '451'), are not normalised and will not match. Products with no MPN match in any competitor file are dropped from the results entirely, so a small output usually means the identifiers are formatted differently across crawls, not that the tool failed.
- How does the tool find my crawl's columns?
- It auto-detects columns by substring: any column containing 'url' or 'address' for the URL, 'h1', 'title 1', 'title' or 'heading' for the title, and 'mpn', 'sku', 'product_id' or 'part_number' for the identifier. If your export uses different names, or the wrong column is picked up, override the selection in the Column Mapping expander before running.
- How is the Length Gap calculated?
- Both your title and each matched competitor title are first stripped of punctuation, stopwords and words shorter than the minimum word length (default 2 characters). The Length Gap is the median competitor word count minus your word count on that cleaned text, and results are sorted by it descending. It can therefore differ from a raw word count comparison of the visible titles.
- Why do hyphenated terms appear as one merged word in Missing Words?
- Preprocessing removes all punctuation without inserting spaces, so 'heavy-duty' becomes 'heavyduty' before comparison. If competitors hyphenate a term you write as two words, it can be flagged as missing even though you effectively have it. Adding the merged form as a custom stopword suppresses the noise.
- What happens when a competitor lists the same MPN more than once?
- Only the first matching row from each competitor file is used for the comparison; any further products with the same MPN in that file are ignored. Deduplicate competitor crawls by MPN first if you want control over which version is compared.
/contact
Want me to run this for you? I run this tool as a managed service, or build something custom around your data. You get the insights without touching the code.