{"id":22577,"date":"2013-03-22T07:37:40","date_gmt":"2013-03-22T07:37:40","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/wp-tracklink\/"},"modified":"2026-08-06T00:16:53","modified_gmt":"2026-08-06T00:16:53","slug":"wp-tracklink","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/wp-tracklink\/","author":11906498,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.5.0","stable_tag":"0.5.0","tested":"7.0.3","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"WP Tracklink","header_author":"Julian Sternberg","header_description":"","assets_banners_color":"131a1f","last_updated":"2026-08-06 00:16:53","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/ispire.me\/donate\/","header_plugin_uri":"https:\/\/ispire.me\/wp-tracklink\/","header_author_uri":"https:\/\/ispire.me","rating":0,"author_block_rating":0,"active_installs":10,"downloads":2902,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.2.1":{"tag":"0.2.1","author":"Jules81","date":"2013-06-20 00:37:03"},"0.2.2":{"tag":"0.2.2","author":"Jules81","date":"2013-06-20 14:44:42"},"0.2.4":{"tag":"0.2.4","author":"Jules81","date":"2013-06-21 11:56:36"},"0.2.5":{"tag":"0.2.5","author":"Jules81","date":"2013-06-21 12:34:14"},"0.2.6":{"tag":"0.2.6","author":"Jules81","date":"2013-06-24 18:33:55"},"0.2.7":{"tag":"0.2.7","author":"Jules81","date":"2013-06-24 19:15:01"},"0.2.8":{"tag":"0.2.8","author":"Jules81","date":"2013-07-03 21:56:42"},"0.2.9":{"tag":"0.2.9","author":"Jules81","date":"2013-07-04 05:25:07"},"0.3.0":{"tag":"0.3.0","author":"Jules81","date":"2013-07-15 22:01:17"},"0.3.1":{"tag":"0.3.1","author":"Jules81","date":"2013-08-29 17:24:28"},"0.3.3":{"tag":"0.3.3","author":"Jules81","date":"2016-12-08 13:10:13"},"0.3.4":{"tag":"0.3.4","author":"Jules81","date":"2016-12-08 13:47:22"},"0.3.5":{"tag":"0.3.5","author":"Jules81","date":"2016-12-08 14:27:23"},"0.3.6":{"tag":"0.3.6","author":"Jules81","date":"2016-12-08 14:44:45"},"0.3.7":{"tag":"0.3.7","author":"Jules81","date":"2016-12-08 14:59:49"},"0.3.8":{"tag":"0.3.8","author":"Jules81","date":"2016-12-08 17:16:43"},"0.3.9":{"tag":"0.3.9","author":"Jules81","date":"2016-12-08 17:28:55"},"0.4.0":{"tag":"0.4.0","author":"Jules81","date":"2016-12-08 18:09:23"},"0.4.1":{"tag":"0.4.1","author":"Jules81","date":"2016-12-08 18:43:11"},"0.4.2":{"tag":"0.4.2","author":"Jules81","date":"2016-12-08 18:53:05"},"0.4.3":{"tag":"0.4.3","author":"Jules81","date":"2016-12-09 08:55:03"},"0.4.4":{"tag":"0.4.4","author":"Jules81","date":"2016-12-09 08:55:03"},"0.4.5":{"tag":"0.4.5","author":"Jules81","date":"2016-12-12 12:45:57"},"0.4.6":{"tag":"0.4.6","author":"Jules81","date":"2016-12-12 13:14:21"},"0.4.7":{"tag":"0.4.7","author":"Jules81","date":"2016-12-22 12:31:35"},"0.4.8":{"tag":"0.4.8","author":"Jules81","date":"2016-12-22 12:54:32"},"0.4.9":{"tag":"0.4.9","author":"Jules81","date":"2017-01-14 12:19:06"},"0.5.0":{"tag":"0.5.0","author":"Jules81","date":"2026-08-06 00:16:53"}},"upgrade_notice":{"0.5.0":"<p>Background verification, Tranco\/local scoring, block support, and privacy controls. Open Settings &gt; Tracklink after updating.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":0},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3631613,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3631613,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3631613,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3631613,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"wp-tracklink\/list":{"name":"wp-tracklink\/list","title":"WP Tracklink"}},"tagged_versions":["0.2.1","0.2.2","0.2.4","0.2.5","0.2.6","0.2.7","0.2.8","0.2.9","0.3.0","0.3.1","0.3.3","0.3.4","0.3.5","0.3.6","0.3.7","0.3.8","0.3.9","0.4.0","0.4.1","0.4.2","0.4.3","0.4.4","0.4.5","0.4.6","0.4.7","0.4.8","0.4.9","0.5.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[9359,1220,24474,4131,162],"plugin_category":[36,43,55],"plugin_contributors":[98105],"plugin_business_model":[],"class_list":["post-22577","plugin","type-plugin","status-publish","hentry","plugin_tags-backlinks","plugin_tags-block","plugin_tags-inbound-links","plugin_tags-referrer","plugin_tags-widget","plugin_category-analytics","plugin_category-customization","plugin_category-seo-and-marketing","plugin_contributors-jules81","plugin_committers-jules81"],"banners":{"banner":"https:\/\/ps.w.org\/wp-tracklink\/assets\/banner-772x250.png?rev=3631613","banner_2x":"https:\/\/ps.w.org\/wp-tracklink\/assets\/banner-1544x500.png?rev=3631613","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/wp-tracklink\/assets\/icon-128x128.png?rev=3631613","icon_2x":"https:\/\/ps.w.org\/wp-tracklink\/assets\/icon-256x256.png?rev=3631613","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>WP Tracklink watches the HTTP referrer on normal front end visits. New hosts go into a small queue. A cron job fetches the remote page, checks that it links to you, then stores the host and click counts.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>Background verify so page loads stay light<\/li>\n<li>Optional strict mode that requires a real anchor to your domain<\/li>\n<li>Classic widget and a block editor block<\/li>\n<li>Sort by clicks, last seen, or score<\/li>\n<li>Free Tranco ranking download (no API key) or a local click based score<\/li>\n<li>Privacy options: host only or anonymized paths<\/li>\n<li>Retention cleanup on a daily cron<\/li>\n<li>CSV export and a small click chart in settings<\/li>\n<li>Per host rel attribute (nofollow, sponsored, ugc)<\/li>\n<\/ul>\n\n<p><strong>Score without paid APIs<\/strong><\/p>\n\n<p>Tranco publishes a free top sites CSV. Once a week the plugin can download that zip and keep ranks only for hosts already in your table. No signup and no API key. You can also use a local score derived from clicks and recency, or turn scoring off.<\/p>\n\n<p>Plugin page: https:\/\/ispire.me\/wp-tracklink\/<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin can connect to the following third-party \/ external services.<\/p>\n\n<h4>Tranco (tranco-list.eu)<\/h4>\n\n<p>Tranco is a research-oriented public ranking of popular websites. When score mode is set to \"Tranco list\", the plugin uses it to show relative popularity scores for referrer hosts you already track.<\/p>\n\n<p>What is sent and when: About once a week (or when an administrator clicks \"Refresh Tranco scores now\"), your server downloads the public zip file at https:\/\/tranco-list.eu\/top-1m.csv.zip. The request is a normal HTTPS download of that public list. The plugin does not send your site content, visitor personal data, referrer URLs, or an API key. Tranco's servers may see standard web request metadata such as your server's IP address and User-Agent (see their privacy policy). After download, only ranks for hosts already stored in your Tracklink table are kept locally.<\/p>\n\n<p>You can turn this off anytime by setting score mode to \"Local score\" or \"Off\" under Settings &gt; Tracklink.<\/p>\n\n<p>This service is provided by Tranco (DistriNet, KU Leuven).\nTerms of use: https:\/\/tranco-list.eu\/\nPrivacy policy: https:\/\/tranco-list.eu\/privacy_policy<\/p>\n\n<h4>Referrer page verification<\/h4>\n\n<p>When a new referrer host is queued, your server may fetch that referring page once (response size capped) to check whether it links to your site. That request goes to the referrer's own host, not to a single fixed third-party API. No visitor personal data is forwarded beyond what a normal browser request would include in server logs on that remote site. This only runs for hosts that appear as HTTP referrers on your front end (search engines and many bots are ignored).<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin or install the zip.<\/li>\n<li>Activate it under Plugins.<\/li>\n<li>Open Settings &gt; Tracklink.<\/li>\n<li>Add the WP Tracklink widget or the Tracklink block.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20uninstall%20remove%20data%3F\"><h3>Does uninstall remove data?<\/h3><\/dt>\n<dd><p>Yes. The table and options are dropped.<\/p><\/dd>\n<dt id=\"why%20is%20a%20referrer%20not%20listed%20yet%3F\"><h3>Why is a referrer not listed yet?<\/h3><\/dt>\n<dd><p>New hosts wait in the verify queue (about every five minutes). Search engines and many bots are ignored. Strict mode needs a real link to your hostname.<\/p><\/dd>\n<dt id=\"is%20tranco%20required%3F\"><h3>Is Tranco required?<\/h3><\/dt>\n<dd><p>No. It is optional. Local score or \"Off\" also work.<\/p><\/dd>\n<dt id=\"privacy%3F\"><h3>Privacy?<\/h3><\/dt>\n<dd><p>Referrer hosts and counts live in your database. Mention that in your privacy policy if you need to.<\/p><\/dd>\n<dt id=\"what%20does%20this%20plugin%20connect%20to%3F\"><h3>What does this plugin connect to?<\/h3><\/dt>\n<dd><p>Two optional outbound requests, both from your server:<\/p>\n\n<ul>\n<li>When verifying a new referrer, it fetches that page once (size capped) to check for a link to your site.<\/li>\n<li>If Tranco scoring is enabled, it downloads the public Tranco top list zip about once a week. No API key and no account.<\/li>\n<\/ul>\n\n<p>Nothing is sent to the plugin author. See also External services below.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>PHP 8 compatibility<\/li>\n<li>Drop dead Alexa rank lookups; keep the score column via Tranco (free, no API key) or a local click based score<\/li>\n<li>Async verify queue and cron maintenance<\/li>\n<li>Strict anchor verify, privacy options, retention days<\/li>\n<li>Classic widget refresh, block editor block, default title fallback<\/li>\n<li>Sort by clicks, last seen, or score<\/li>\n<li>CSV export, click chart, per link rel controls<\/li>\n<li>Class rename under WP_Tracklink_* and sidebar id migrate from older installs<\/li>\n<li>Object cache click buffering when available, verify\/Tranco response size limits, queue lock<\/li>\n<li>Outbound network behaviour documented in FAQ<\/li>\n<\/ul>\n\n<h4>0.4.9<\/h4>\n\n<ul>\n<li>Last release on wordpress.org before this refresh<\/li>\n<\/ul>","raw_excerpt":"Records inbound referrers that link to your site, checks them in the background, and shows them in a widget or block.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/22577","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=22577"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jules81"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=22577"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=22577"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=22577"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=22577"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=22577"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=22577"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}