Back to Tools

Bulk Keyword Tagger

Use cases

Bulk categorising keywords by topic or intent Applying negative keyword classifications Segmenting keywords by product type Tagging keywords for different campaigns

Applies up to 7 tag categories via substring matching - checks if any tag term exists within each keyword string.

Converts everything to lowercase, removes empty values, and concatenates matching tags with semicolons.

Output rows are sorted alphabetically.

Designed for Google Colab with automatic download.

Jupyter Notebook

Platform

Jupyter Notebook (requires Python environment)

Input

Keywords CSV

Tags CSV with classification columns

Output

Tagged keywords CSV

View Source

Features

  • Up to 7 tag categories (tag_1 through tag_7)
  • Substring matching (tag appears within keyword)
  • Case-insensitive matching
  • Alphabetically sorted output
  • Semicolon-concatenated multi-tag output
  • Auto skips malformed CSV lines

How to use

  1. 1 Prepare keywords CSV with Keyword column
  2. 2 Create tags CSV with up to 7 tag columns (tag_1, tag_2, etc.)
  3. 3 Upload both files to Colab notebook
  4. 4 Run cells to apply matching
  5. 5 Download your_keywords_tagged.csv

Frequently asked questions

What format do the two CSV files need to be in?
The keywords file should be a single column of keywords with no header row: the notebook reads it headerless and names the column itself, so a header would be treated as a keyword. The tags file has up to 7 columns (tag_1 through tag_7), one tag category per column, one term per row. You do not need all 7: missing columns are simply skipped.
How does the tagging actually work?
It is plain substring matching, not semantic or fuzzy matching. Everything is lowercased, then a keyword receives a tag if the tag term appears anywhere inside it. If several terms from the same category match one keyword, they are joined with semicolons in that category's column.
Why is a tag matching keywords it should not?
Because matching is substring based, short tag terms match inside longer words: "sale" matches "wholesale" and "ring" matches "monitoring". If you see false positives, make the tag term longer or more specific, for example "for sale" instead of "sale".
Can one keyword get multiple tags?
Yes, in two ways. Within a single category, every matching term is concatenated with semicolons. Across categories, each of the 7 tag columns is matched independently, so a keyword can carry a tag in every column at once.
How many keywords can it handle, and what does it cost?
There is no limit in the code: it is plain pandas string matching, so capacity is bounded by the free Google Colab session rather than any quota, and runtime grows with keyword count times tag count. Nothing to install and no API keys needed.

Need something built for your business?

This tool started as bespoke client work. I build custom scripts, data pipelines, and full apps for SEO and product data problems that off-the-shelf tools don't solve.

Tell Me What You Need