Appearance
Vector Embeddings for SEO
SEO Use Cases for Vector EmbeddingsGus PelogiaFresh
Overview
Vector embeddings are numerical representations of content that allow you to measure similarity between pages at scale. This SOP covers 5 practical SEO use cases.
Simple explanation: Embeddings create a content "fingerprint" - cosine similarity measures how close these fingerprints are.
Prerequisites
- [ ] ChatGPT API access (for code generation)
- [ ] Google Colab account (free)
- [ ] OpenAI API key
- [ ] Screaming Frog (for bulk embedding extraction)
- [ ] Basic spreadsheet skills
The Tool Stack
Prompting ChatGPT for Code
Master prompt template:
I need a Python code for Google Colab.
I will upload a CSV with:
- Column A: [describe data]
- Column B: [describe data]
I want the code to:
1. [specific action]
2. Use cosine similarity to measure similarity
3. Output results to a new CSV file
The input CSV filename will be: input.csv
The output CSV filename should be: output.csvNo Coding Required
Gus didn't write a single line of code - ChatGPT generated everything. You just need to specify inputs, outputs, and desired behavior.
Use Case 1: Related Articles Mapping
Problem: Thousands of blog posts need "Related Articles" sections but manual matching is impossible.
Solution:
CSV format:
| URL | Embeddings |
|---|---|
| /how-to-pace-yourself | [0.123, 0.456, ...] |
Output: Each URL with top 3 most similar URLs
Verification: Check if matches make sense (e.g., "How to pace yourself" matches with "How to organize your desk", "How to plan your day")
Use Case 2: CTA Matching
Problem: Articles have generic CTAs instead of topic-relevant ones.
Solution:
- Create taxonomy of available CTAs (predefined tags)
- Generate embeddings for each article
- Match articles to most relevant CTA
Scoring guidance:
- Score 0.40+ = Good match
- Score < 0.40 = Tag may not be relevant
Results: In testing, properly matched CTAs increased click-through rates compared to generic CTAs.
Use Case 3: Hreflang Mapping
Problem: 50,000+ pages across 20 countries need language variant matching.
CSV format:
| Locale | URL | Embeddings |
|---|---|---|
| en-US | /product | [0.123, ...] |
| fr-FR | /produit | [0.456, ...] |
How it works:
- Embeddings capture meaning, not just words
- "Running shoes" in English matches "Chaussures de course" in French
- Outputs matched pairs across locales
Use Case 4: Content Gap Analysis
Problem: Identify pages competitors have that you don't.
Method:
- Crawl both sites (Colab can crawl directly)
- Generate embeddings for all pages
- Compare: which topics exist on competitor but not on your site?
- Use competitor traffic as proxy for opportunity
Example output:
| Competitor Page | Best Match on Your Site | Gap Score |
|---|---|---|
| /google-search-operators | /boost-organic-traffic | 0.28 |
Low score = content gap opportunity
Use Case 5: AI Answer Matching (Experimental)
Theory: Compare your content to AI Mode/Overview answers to understand relevance gaps.
CSV format:
| URL | Page Content | AI Answer |
|---|---|---|
| /page | [text] | [AI response text] |
Insights:
- Identifies if your page content matches what Google thinks is the answer
- May explain why certain pages rank over others for AI results
- Still experimental - needs more testing
Screaming Frog Embedding Features
Screaming Frog now has built-in vector embedding analysis:
- Duplicate detection - Find semantically similar pages
- Off-topic detection - Find pages that don't fit your site's topics
- Requires OpenAI API key
Models Used
| Model | Use Case |
|---|---|
| text-embedding-3-large | ChatGPT/OpenAI workflows |
| text-embeddings-004 | Gemini/Google workflows |
These are default models - no special configuration needed.
Verification Checklist
- [ ] API keys configured
- [ ] Google Colab accessible
- [ ] CSVs formatted correctly
- [ ] Code runs without errors
- [ ] Sample outputs verified for quality
- [ ] Results make semantic sense
Troubleshooting
Colab code errors
Paste error back to ChatGPT with context. It will fix it.
Embeddings not extracting
Check Screaming Frog configuration and API key.
Matches don't make sense
Verify you're using the right embedding model and check for data quality issues.
See Also
- AI Search Optimization - Related AI workflows
- Internal Linking with AI - Use embeddings for linking
- Content Gap Workflow