{"id":382422,"date":"2026-10-10T23:53:17","date_gmt":"2026-10-10T23:53:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/local-pr-outbound-utm-tagger\/"},"modified":"2026-10-10T23:52:48","modified_gmt":"2026-10-10T23:52:48","slug":"local-pr-outbound-utm-tagger","status":"publish","type":"plugin","link":"https:\/\/hat.wordpress.org\/plugins\/local-pr-outbound-utm-tagger\/","author":23580687,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.2.2","stable_tag":"0.2.2","tested":"7.1.3","requires":"6.9","requires_php":"8.0","requires_plugins":null,"header_name":"Local PR Outbound UTM Tagger","header_author":"Dani Owens","header_description":"Adds UTM parameters to links that point to other websites.","assets_banners_color":"0b1223","last_updated":"2026-10-10 23:52:48","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/localpr.com\/tools\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":53,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.2.2":{"tag":"0.2.2","author":"daniowens","date":"2026-10-10 23:52:48","revision":3738800}},"upgrade_notice":{"0.2.2":"<p>First public release on WordPress.org.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3738800,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3738800,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3738800,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3738800,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.2.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3738800,"resolution":"1","location":"assets","locale":"","width":1280,"height":1878}},"screenshots":{"1":"The settings screen: switch tagging on, choose HTML or JavaScript mode, set the UTM values and placeholders, and list domains to skip."}},"plugin_section":[],"plugin_tags":[232,20230,5373,387,24188],"plugin_category":[36],"plugin_contributors":[285631],"plugin_business_model":[],"class_list":["post-382422","plugin","type-plugin","status-publish","hentry","plugin_tags-analytics","plugin_tags-campaign-tracking","plugin_tags-outbound-links","plugin_tags-referral","plugin_tags-utm","plugin_category-analytics","plugin_contributors-daniowens","plugin_committers-daniowens"],"banners":{"banner":"https:\/\/ps.w.org\/local-pr-outbound-utm-tagger\/assets\/banner-772x250.png?rev=3738800","banner_2x":"https:\/\/ps.w.org\/local-pr-outbound-utm-tagger\/assets\/banner-1544x500.png?rev=3738800","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/local-pr-outbound-utm-tagger\/assets\/icon-128x128.png?rev=3738800","icon_2x":"https:\/\/ps.w.org\/local-pr-outbound-utm-tagger\/assets\/icon-256x256.png?rev=3738800","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/local-pr-outbound-utm-tagger\/assets\/screenshot-1.png?rev=3738800","caption":"The settings screen: switch tagging on, choose HTML or JavaScript mode, set the UTM values and placeholders, and list domains to skip."}],"raw_content":"<!--section=description-->\n<p>Outbound UTM Tagger adds UTM parameters (utm_source, utm_medium, utm_campaign, utm_term, utm_content) to links on your site that point to <em>other<\/em> websites. When someone follows a tagged link, the destination site's analytics can see the visit came from you.<\/p>\n\n<p>Links that already carry a <code>utm_<\/code> parameter are never changed, and links to your own site are left alone.<\/p>\n\n<p><strong>Two ways to add the tags<\/strong><\/p>\n\n<ul>\n<li><strong>HTML mode<\/strong>: the tags are written into the page on the server (using the WordPress 6.9 HTML enhancement pipeline and the HTML API, so no fragile regular expressions). Works for every visitor, is visible in View Source, and is seen by search engines.<\/li>\n<li><strong>JavaScript mode<\/strong>: the page keeps clean links and a small script adds the tags at the moment a link is activated. Crawlers and anyone copying a link get the clean version.<\/li>\n<\/ul>\n\n<p><strong>Placeholders<\/strong> let one setting adapt per page, for example <code>{slug}<\/code>, <code>{path}<\/code>, <code>{post_type}<\/code>, <code>{category}<\/code>, <code>{author}<\/code>, <code>{link_text}<\/code>, and <code>{term:your_taxonomy}<\/code>. Every placeholder describes the page, never the visitor, so it stays correct on cached pages.<\/p>\n\n<p><strong>Other details<\/strong><\/p>\n\n<ul>\n<li>Tagging starts switched off: activating the plugin changes nothing until you turn it on and save.<\/li>\n<li>A per-site skip list excludes any domains you choose; your own domain is always skipped.<\/li>\n<li>Add the CSS class <code>noutm<\/code> to a link (or a block containing it) to skip it.<\/li>\n<li>On SiteGround, saving clears the Speed Optimizer cache automatically; elsewhere, clear your page cache after saving.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/<\/code> or install it through the Plugins screen.<\/li>\n<li>Activate it.<\/li>\n<li>Go to Settings \u2192 Outbound UTMs, set your defaults, turn it on, and save.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20change%20links%20to%20my%20own%20site%3F\"><h3>Does it change links to my own site?<\/h3><\/dt>\n<dd><p>No. Your site's domain (and its www variant) are always skipped, plus any domains you add to the skip list.<\/p><\/dd>\n<dt id=\"will%20it%20overwrite%20links%20that%20already%20have%20utm%20parameters%3F\"><h3>Will it overwrite links that already have UTM parameters?<\/h3><\/dt>\n<dd><p>No. Any link that already carries a <code>utm_<\/code> parameter is left exactly as written.<\/p><\/dd>\n<dt id=\"does%20it%20require%20wordpress%206.9%3F\"><h3>Does it require WordPress 6.9?<\/h3><\/dt>\n<dd><p>Yes. HTML mode is built on a feature added in WordPress 6.9, so the plugin requires WordPress 6.9 or newer in both modes.<\/p><\/dd>\n<dt id=\"do%20html%20mode%20and%20javascript%20mode%20tag%20links%20the%20same%20way%3F\"><h3>Do HTML mode and JavaScript mode tag links the same way?<\/h3><\/dt>\n<dd><p>Yes. Both modes skip the same links and produce the same UTM values, including values built from link text. Only the moment the tags are added differs.<\/p><\/dd>\n<dt id=\"does%20it%20collect%20or%20send%20any%20data%3F\"><h3>Does it collect or send any data?<\/h3><\/dt>\n<dd><p>No. The plugin makes no external requests and stores nothing about your visitors. It only adds parameters to links on your pages, and every value describes the page, never the person viewing it.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.2.2<\/h4>\n\n<ul>\n<li>Page mode no longer buffers the whole page while tagging is switched off.<\/li>\n<li>Protocol-relative links to other sites (\/\/example.com\/page) are now tagged in HTML mode, as they already were in JavaScript mode.<\/li>\n<li>International domain names match the skip list whether they are written in Unicode or punycode.<\/li>\n<li>HTML and JavaScript modes now produce identical values from link text: the same handling of non-breaking spaces, punctuation, emoji, and long text.<\/li>\n<li>Text inside a link can no longer be mistaken for a placeholder.<\/li>\n<li>{term:...} placeholders are looked up once per page instead of once per link.<\/li>\n<li>Deleting the plugin on a multisite network removes its settings from every site.<\/li>\n<li>The settings screen's styles now load as a stylesheet on that screen only.<\/li>\n<\/ul>\n\n<h4>0.2.1<\/h4>\n\n<ul>\n<li>First version: sitewide defaults, placeholders, HTML and JavaScript modes, and the skip list.<\/li>\n<\/ul>","raw_excerpt":"Adds UTM parameters to links that point to other websites, so the receiving site's analytics can attribute the visit to you.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/382422","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=382422"}],"author":[{"embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/daniowens"}],"wp:attachment":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=382422"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=382422"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=382422"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=382422"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=382422"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=382422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}