Fix UTM in Path Issue: Convert to Query String
Your UTM parameters are in the URL path instead of the query string. GA4 doesn't track them.
Here's the 5-minute fix to convert path-based to query-based format.
🚨 Not sure what's breaking your tracking?
Run a free 60-second audit to check all 40+ ways UTM tracking can fail.
Scan Your Campaigns Free✓ No credit card ✓ See results instantly
The Problem (10-Second Version)
❌ PATH-BASED (broken):
site.com/page/utm_source/facebook/utm_medium/cpc
✅ QUERY-BASED (working):
site.com/page?utm_source=facebook&utm_medium=cpc
GA4 only reads query strings (after ?), not URL paths.
The 5-Minute Fix
Step 1: Identify Path-Based UTMs (1 minute)
Your URLs look like folder structures:
❌ site.com/article/utm_source/newsletter/
❌ site.com/products/source/facebook/medium/cpc/
❌ site.com/page/facebook/cpc/spring/
All WRONG - UTMs in path
Step 2: Convert Format (2 minutes)
Conversion formula:
Remove: Folder slashes (/)
Add: Question mark before first param (?)
Add: Ampersands between params (&)
Add: Equal signs for key-value (=)
Examples:
❌ site.com/page/utm_source/facebook/utm_medium/cpc/
✅ site.com/page?utm_source=facebook&utm_medium=cpc
❌ site.com/article/source/newsletter/campaign/weekly/
✅ site.com/article?utm_source=newsletter&utm_campaign=weekly
❌ site.com/products/facebook/paid/spring2024/
✅ site.com/products?utm_source=facebook&utm_medium=paid&utm_campaign=spring2024
Step 3: Update Active Campaigns (1 minute)
Replace broken URLs everywhere:
- Social media posts
- Email campaigns
- Paid ads
- Partner links
Step 4: Test (1 minute)
- Visit corrected URL in incognito browser
- Open GA4 → Real-Time
- Verify campaign appears
Done? Tracking restored.
😰 Is this your only tracking issue?
This is just 1 of 40+ ways UTM tracking breaks. Most marketing teams have 8-12 critical issues they don't know about.
• 94% of sites have UTM errors
• Average: $8,400/month in wasted ad spend
• Fix time: 15 minutes with our report
✓ Connects directly to GA4 (read-only, secure)
✓ Scans 90 days of data in 2 minutes
✓ Prioritizes issues by revenue impact
✓ Shows exact sessions affected
Quick Conversion Tool (JavaScript)
// Convert path-based UTM to query-based
function convertPathToQuery(pathUrl) {
// Extract base URL and path components
const parts = pathUrl.split('/');
// Find where UTM parameters start
const utmIndex = parts.findIndex(p => p.startsWith('utm_') || p === 'source' || p === 'medium' || p === 'campaign');
if (utmIndex === -1) {
return pathUrl; // No UTMs found
}
// Base URL (everything before UTMs)
const base = parts.slice(0, utmIndex).join('/');
// Extract UTM parameters
const utmParts = parts.slice(utmIndex);
const utmParams = [];
for (let i = 0; i < utmParts.length; i += 2) {
const key = utmParts[i].startsWith('utm_') ? utmParts[i] : `utm_${utmParts[i]}`;
const value = utmParts[i + 1] || '';
if (value) {
utmParams.push(`${"{"}{"{"}key{"}"}{"}"}}=${"{"}{"{"}value{"}"}{"}"}}`);
}
}
// Rebuild as query string
return `${"{"}{"{"}base{"}"}{"}"}}?${utmParams.join('&')}`;
}
// Usage
const broken = 'https://site.com/page/utm_source/facebook/utm_medium/cpc/';
const fixed = convertPathToQuery(broken);
console.log(fixed);
// Output: https://site.com/page?utm_source=facebook&utm_medium=cpcCommon Path-Based Patterns
Pattern 1: Full utm_ Prefix
❌ site.com/page/utm_source/facebook/utm_medium/cpc/utm_campaign/spring/
✅ site.com/page?utm_source=facebook&utm_medium=cpc&utm_campaign=spring
Pattern 2: Abbreviated Keys
❌ site.com/page/source/facebook/medium/cpc/campaign/spring/
✅ site.com/page?utm_source=facebook&utm_medium=cpc&utm_campaign=spring
Pattern 3: No Key Labels
❌ site.com/page/facebook/cpc/spring/
✅ site.com/page?utm_source=facebook&utm_medium=cpc&utm_campaign=spring
(Assumes order: source, medium, campaign)
Pattern 4: Mixed Format
❌ site.com/page/utm_source/facebook?other=value
✅ site.com/page?utm_source=facebook&other=value
(Keep all parameters in query string)
Bulk Conversion (Spreadsheet)
If you have many URLs to fix:
Google Sheets Formula:
// Column A: Broken path-based URLs
// Column B: Fixed query-based URLs
=REGEXREPLACE(
REGEXREPLACE(
REGEXREPLACE(A1,
"/utm_source/([^/]+)/",
"?utm_source=$1&"),
"/utm_medium/([^/]+)/",
"utm_medium=$1&"),
"/utm_campaign/([^/]+)/",
"utm_campaign=$1")This converts:
- First occurrence → Adds
? - Subsequent occurrences → Adds
&
Platform-Specific Quick Fixes
WordPress
1. Admin → Settings → Permalinks
2. Select: Post name (/%postname%/)
3. Save Changes
4. Flush cache
Webflow
1. CMS Settings → URL Structure
2. Remove UTM variables from structure
3. Republish site
Custom Site
# Add to .htaccess
RewriteRule ^(.+)/utm_source/([^/]+)/utm_medium/([^/]+)/?$ /$1?utm_source=$2&utm_medium=$3 [R=301,L]✅ Fixed this issue? Great! Now check the other 39...
You just fixed one tracking issue. But are your Google Ads doubling sessions? Is Facebook attribution broken? Are internal links overwriting campaigns?
• Connects to GA4 (read-only, OAuth secured)
• Scans 90 days of traffic in 2 minutes
• Prioritizes by revenue impact
• Free forever for monthly audits
Join 2,847 marketers fixing their tracking daily
FAQ
Will fixing this break existing links?
If you have published links, set up 301 redirects from old format to new format.
Can I automate the conversion?
Yes, use server rewrite rules (see Platform-Specific section) or the JavaScript function above.
What if I have thousands of URLs to fix?
Use bulk conversion in spreadsheets, then update campaign management platforms in bulk.
Do I need to pause my campaigns?
No. Just update the URLs. Tracking resumes immediately for new clicks.
How do I prevent this from happening again?
Disable CMS URL rewriting features and always use query string format for UTM parameters.
Conclusion
UTM parameters in URL path? Convert to query string format.
Conversion:
❌ BROKEN: site.com/page/utm_source/facebook/utm_medium/cpc/
✅ FIXED: site.com/page?utm_source=facebook&utm_medium=cpc
Steps:
- Remove folder slashes
- Add
?before first parameter - Use
&between parameters - Use
=for key-value pairs - Test in GA4 Real-Time
Fixed in 5 minutes. Perfect tracking restored.
Technical Reference: UTM in Path Validation Rule