How to import keyword concepts
Learn how to bulk import keyword concepts using a CSV file with all available columns and formatting options.
How to import keyword concepts
Import your keyword concepts in bulk using a CSV file. This is the fastest way to populate your keyword library when you have many concepts to add.
Before you start
Before importing, make sure you have:
- A CSV file with your keywords (you can download our template from the import modal)
- Your keywords organized by concept name
- Optional: keyword groups already created (or they'll be created automatically)
Downloading the template
- Go to Keywords in your dashboard
- Click the Import button
- Click Download template to get a pre-formatted CSV
- The template includes example data and your existing groups
CSV columns explained
Your CSV file should have a header row with these columns:
Required column
| Column | Description |
|---|---|
| concept_name | The main concept name that appears in your library. This is the primary identifier for the keyword concept. Example: "portland plumber" |
Optional columns
| Column | Description |
|---|---|
| concept_group | Group name for organizing concepts. If the group doesn't exist, it will be created automatically. Example: "Services" |
| review_phrase | How customers might mention this concept in reviews. Used for matching keywords in customer feedback. Example: "great plumbing services" |
| aliases | Alternative names for this concept, separated by pipes | or commas. Helps with broader matching. Example: "plumber|plumbing" |
| search_terms | Keywords for SEO rank tracking, separated by pipes |. The first term is the canonical (primary) search term. Example: "plumber portland oregon|best plumber portland" |
| ai_questions | Questions for AI visibility monitoring, separated by pipes |. These are questions people might ask AI chatbots. Example: "What does a plumber do?|Who is the best plumber in Portland?" |
| funnel_stages | Marketing funnel stage for each AI question, separated by pipes |. Values: top, middle, or bottom. Should match the number of ai_questions. Example: "top|bottom" |
| rank_tracking_group | Name of an existing rank tracking group to add this concept to. The group must already exist. Example: "Main Keywords" |
Column aliases
The import system accepts various column name formats. All of these will work:
| Standard name | Also accepts |
|---|---|
| concept_name | phrase, keyword, keywordphrase |
| concept_group | keyword_group, group |
| review_phrase | customer_phrase |
| search_terms | search_terms (pipe-separated) |
| search_query | searchphrase |
| aliases | alias, alternative_terms |
| location_scope | scope |
| ai_questions | related_questions, questions |
| funnel_stages | stages |
| rank_tracking_group | rank_group |
Location scope values
If using the location_scope column, valid values are:
- local - Neighborhood or city level
- regional - State or multi-city area
- national - Country-wide
- global - International
Example CSV content
concept_name,concept_group,review_phrase,aliases,search_terms,ai_questions,funnel_stages,rank_tracking_group
portland plumber,Services,plumbing services,plumber|plumbing,plumber portland oregon|best plumber portland,What does a plumber do?|Who is the best plumber in Portland?,top|bottom,Main Keywords
emergency plumbing,Services,emergency plumbing help,24 hour plumber|urgent plumbing,emergency plumber near me|24/7 plumber,How do I handle a plumbing emergency?,middle,
drain cleaning,,professional drain cleaning,clogged drain|drain unclogging,drain cleaning service portland,,,
Importing your file
- Click Choose file and select your CSV
- Review the preview showing your data mapped to columns
- Click Import keywords to start the import
- Review the results showing:
- How many concepts were created
- Any duplicates that were skipped
- Any errors that occurred
Handling duplicates
The system automatically detects duplicate keywords based on the normalized phrase (lowercased, trimmed). Duplicates are:
- Skipped during import
- Listed in the results so you know which ones weren't added
- Not counted as errors
Troubleshooting
"Phrase is required" error
Every row must have a value in the concept_name (or phrase) column. Check for empty rows in your spreadsheet.
"Invalid location_scope" error
The location_scope value must be exactly one of: local, regional, national, or global.
"Rank tracking group not found" error
The rank_tracking_group must match an existing group name exactly. Create the rank tracking group first, or leave this column empty.
Excel CSV encoding issues
If you see strange characters, ensure your CSV is saved with UTF-8 encoding:
- In Excel: Save As → CSV UTF-8 (Comma delimited)
- In Google Sheets: File → Download → Comma-separated values
Tips for success
- Start with the template - It includes proper formatting and example data
- Use pipe separators - For multi-value fields like search_terms and aliases, use
|between values - Match funnel stages to questions - The number of funnel_stages should match the number of ai_questions
- Create groups first - While groups are auto-created, creating them beforehand lets you set custom display orders
- Test with a small batch - Import 5-10 keywords first to verify your format is correct
- Keep concepts focused - Each row should represent one distinct concept, not a list of keywords