Easy UTM Builder
Easy UTM Builder
Description
Easy UTM Builder adds a modern campaign-URL builder under Settings Easy UTM Builder. Tag any single (or external) URL the way you would with Google’s Campaign URL Builder, or generate UTM links in bulk across all of your posts, pages and custom post types — then copy, export, or turn them into QR codes.
It runs entirely in the WordPress admin. It adds nothing to your front end, makes no changes to your posts or permalinks, and writes no files to your uploads folder.
Single / external URL builder
- Paste any URL — including external ones — and build a tagged campaign link.
- Live preview updates as you type.
- One-click copy, QR code generation (download as PNG), and save reusable presets.
- Recent values are remembered so you stop retyping the same source/medium/campaign.
Bulk builder (your site content)
- Generate UTM links across all post types, pages and custom post types at once.
- Filter by post status (published, draft, pending, future, private, trash, or all) and by search term.
- Browse results in a paginated table, copy individual links or a whole page.
- Export the full result set as CSV or JSON (streamed straight to your browser).
Built for accuracy
- URLs that already contain a query string (e.g.
?p=123) or a#fragmentare handled correctly — parameters are merged, never duplicated. - Every value is percent-encoded (RFC 3986), so spaces and special characters never break your links.
- Optional, opt-in value formatting: lowercase everything and/or replace spaces with a hyphen or underscore.
GA4 ready
Enable the extra Google Analytics 4 / Google Ads parameters you need: utm_id, utm_source_platform, utm_creative_format and utm_marketing_tactic — alongside the classic utm_source, utm_medium, utm_campaign, utm_term and utm_content.
For power users and agencies
- Block editor panel — copy the current post’s UTM URL while you’re editing it.
- REST API — build URLs programmatically (namespace
easy-utm-builder/v1). - WP-CLI —
wp utm build https://example.com --source=newsletter --medium=email --campaign=spring_sale. - Translation ready and fully accessible, built on native WordPress components.
Available in your language
Ships translated into Spanish, French, German, Italian and Brazilian Portuguese (both the admin interface and server messages), and is ready for more via translate.wordpress.org.
Why UTM URLs?
- Attribute traffic correctly in Google Analytics / GA4
- Measure e-commerce conversions by campaign
- Track social, email, paid, affiliate and QR-code campaigns
Installation
From your WordPress dashboard
- Visit Plugins Add New.
- Search for Easy UTM Builder.
- Click Install Now, then Activate.
- Go to Settings Easy UTM Builder.
Manually
- Upload the
easy-utm-builderfolder to/wp-content/plugins/. - Activate the plugin through the Plugins menu in WordPress.
Usage
- Open Settings Easy UTM Builder.
- On the Single / External URL tab, paste a URL and fill in Source, Medium and Campaign (Term and Content are optional). Copy the previewed link or generate a QR code.
- Or use the Bulk tab to tag your existing content, then export as CSV/JSON.
- Set defaults, formatting rules and which GA4 parameters to show on the Settings tab.
Screenshots

Single / external URL builder — fill in your campaign parameters (including the GA4 extras) and get a live-previewed link with one-click copy, a downloadable QR code and reusable presets.

Bulk builder — tag all your content filtered by post type, status or search, preview the results table, copy any link, and export the full set as CSV or JSON.

Settings — set default values, opt-in formatting (lowercase / replace spaces), choose which GA4 parameters to show, and manage saved presets.
Faq
UTM parameters are tags you add to a URL so analytics tools (like Google Analytics) can report where your traffic came from. The three most common are utm_source (e.g. newsletter), utm_medium (e.g. email) and utm_campaign (e.g. spring_sale).
Source, Medium and Campaign are recommended for meaningful reporting, so the builder highlights them. Term and Content (and the GA4 extras) are optional.
Yes. The classic UTM parameters work with every Analytics version, and you can enable the GA4 / Google Ads extras (utm_id, utm_source_platform, utm_creative_format, utm_marketing_tactic) from the Settings tab.
Yes. The Single / External URL tab works with any URL you paste, on any domain.
No. It only generates links for you to copy or export. It never edits your content, changes permalinks, or adds redirects, and it outputs nothing on the front end.
No. If a URL already contains a query string or a #fragment, the parameters are merged in correctly rather than appended with a second ?.
Yes — every value is percent-encoded. You can also choose to lowercase values and/or replace spaces with a hyphen or underscore, but only if you turn those options on.
Exports are streamed directly to your browser as a download. Unlike older versions, nothing is written to your uploads directory, so there are no leftover, publicly accessible files.
Yes. The Bulk builder lists every public post type, plus options to target all content at once.
No. The plugin loads only on its own admin screen (and the block editor panel). It adds no scripts, styles, or queries to your front end.
No personal data. It saves only your own preferences — default values, presets and recently used campaign values — in a single option, which is removed when you uninstall.
Yes. There’s a REST API (easy-utm-builder/v1) and a WP-CLI command (wp utm build). See the plugin’s developer documentation for details.
WordPress 5.6 or higher and PHP 7.4 or higher.
Reviews
Changelog
2.0.0
- Complete rewrite on a modern, namespaced (PSR-4) architecture with a React admin UI.
- New: single / external URL builder with live preview.
- New: one-click copy, QR codes, JSON export and GA4 parameters.
- New: saved defaults, presets and recent values.
- New: REST API, WP-CLI command and block editor sidebar panel.
- New: bundled translations — Spanish, French, German, Italian and Brazilian Portuguese.
- Fixed: URLs that already contain a query string or fragment are handled correctly.
- Fixed: values are percent-encoded; lowercasing is now opt-in per your settings.
- Fixed: exports are streamed instead of being written to the public uploads folder.
- Raised minimum requirements to WordPress 5.6 and PHP 7.4.
1.1
- Supports post filtering by status; random export filename; tested with 5.5.
1.0
- Initial release.