{"id":328969,"date":"2026-06-20T03:03:18","date_gmt":"2026-06-20T03:03:18","guid":{"rendered":"https:\/\/en-gb.wordpress.org\/plugins\/pirajki-auto-linker\/"},"modified":"2026-06-20T03:02:57","modified_gmt":"2026-06-20T03:02:57","slug":"pirajki-auto-linker","status":"publish","type":"plugin","link":"https:\/\/cn.wordpress.org\/plugins\/pirajki-auto-linker\/","author":20115528,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.0","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"Pirajki Auto Linker","header_author":"pirajki","header_description":"Automatically adds smart internal links to your posts and pages based on keyword rules \u2014 improving SEO, engagement, and crawlability with zero manual effort.","assets_banners_color":"","last_updated":"2026-06-20 03:02:57","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.yogiraj.co.in\/plugins\/pirajki-auto-linker","header_author_uri":"https:\/\/www.yogiraj.co.in\/plugins","rating":0,"author_block_rating":0,"active_installs":0,"downloads":34,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"pirajki","date":"2026-06-20 03:02:57"}},"upgrade_notice":{"2.0.0":"<p>Major rewrite. Existing cache will be cleared automatically on first save after updating.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Settings page \u2014 clean, clearly labelled options","2":"Bulk generation page with live progress bar","3":"Pro upgrade page with feature comparison table"}},"plugin_section":[],"plugin_tags":[239951,529,37125,6681,186],"plugin_category":[55],"plugin_contributors":[266455],"plugin_business_model":[],"class_list":["post-328969","plugin","type-plugin","status-publish","hentry","plugin_tags-auto-linking","plugin_tags-content","plugin_tags-interlinking","plugin_tags-internal-links","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-pirajki","plugin_committers-pirajki"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/pirajki-auto-linker.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Pirajki Auto Linker<\/strong> scans your post content and automatically inserts relevant internal links based on post titles, slugs, and custom keyword rules \u2014 so every new post immediately benefits from a strong internal linking structure.<\/p>\n\n<h4>Why Internal Links Matter<\/h4>\n\n<p>Internal linking is one of the highest-impact on-page SEO tactics. It passes link equity between pages, helps search engines discover and understand your content, and keeps readers engaged longer. Done manually, it's tedious. Pirajki Auto Linker does it automatically.<\/p>\n\n<h4>Free Features<\/h4>\n\n<ul>\n<li><strong>DOM-Safe Processing<\/strong> \u2014 Links are inserted using DOMDocument, never breaking existing markup, images, or shortcodes<\/li>\n<li><strong>Skips Protected Zones<\/strong> \u2014 Never links inside <code>&lt;a&gt;<\/code>, <code>&lt;code&gt;<\/code>, <code>&lt;pre&gt;<\/code>, <code>&lt;script&gt;<\/code>, or <code>&lt;style&gt;<\/code> blocks<\/li>\n<li><strong>Title + Slug Matching<\/strong> \u2014 Matches both post titles and slug-derived phrases for maximum coverage<\/li>\n<li><strong>One Link Per URL<\/strong> \u2014 Prevents the same destination appearing twice in the same post<\/li>\n<li><strong>Max Links Per Post<\/strong> \u2014 Set a per-post link cap (1\u2013100) to keep content natural<\/li>\n<li><strong>Excluded URLs<\/strong> \u2014 Paste any URLs you never want linked to<\/li>\n<li><strong>Pre-Generate Cache<\/strong> \u2014 Optionally pre-cache linked content to serve at full speed<\/li>\n<li><strong>_blank with rel=\"noopener noreferrer\"<\/strong> \u2014 Fully safe external-tab behaviour<\/li>\n<li><strong>Enabled Post Types<\/strong> \u2014 Choose which post types auto-linking runs on<\/li>\n<li><strong>Clear Cache<\/strong> \u2014 One-click cache clear from the settings page<\/li>\n<li><strong>Translation Ready<\/strong> \u2014 Full .pot file included<\/li>\n<\/ul>\n\n<h4>Pro Features<\/h4>\n\n<ul>\n<li><strong>Custom Keyword \u2192 URL Map<\/strong> \u2014 Link any phrase to any URL, independent of post slugs<\/li>\n<li><strong>Max Links Unlimited<\/strong> \u2014 Remove the 10-link cap<\/li>\n<li><strong>nofollow \/ sponsored rel<\/strong> \u2014 Add rel attributes per your link policy<\/li>\n<li><strong>Link Inside Headings<\/strong> \u2014 Optionally include H1\u2013H6 in linking scope<\/li>\n<li><strong>Case-Sensitive Matching<\/strong> \u2014 Match keywords exactly as typed<\/li>\n<li><strong>Bulk Generation<\/strong> \u2014 Re-process all posts in batches with a progress bar<\/li>\n<li><strong>Link Click Analytics<\/strong> \u2014 Track which auto-links get clicked <em>(coming soon)<\/em><\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/webwithwordpress.com\/pirajki-auto-linker-pro\">Get Pro \u2192<\/a><\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin optionally connects to a license verification service when you enter a license key on the Settings page. This only applies to purchases made separately \u2014 the plugin is fully functional without any license key.<\/p>\n\n<p><strong>License Server (yogiraj.co.in)<\/strong>\nWhen a license key is activated, renewed, or verified, the plugin sends:\n* Your license key\n* Your site URL (home_url())<\/p>\n\n<p>This data is sent to: <code>https:\/\/yogiraj.co.in\/wp-json\/pirajki-licenses\/v1\/verify<\/code><\/p>\n\n<p>No personal user data is collected or transmitted. License verification only occurs when an admin manually activates, deactivates, or the plugin performs a periodic recheck.<\/p>\n\n<ul>\n<li>Terms of Service: https:\/\/www.yogiraj.co.in\/terms<\/li>\n<li>Privacy Policy: https:\/\/www.yogiraj.co.in\/privacy<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>pirajki-auto-linker<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate through <strong>Plugins<\/strong> in your WordPress admin<\/li>\n<li>Go to <strong>Pirajki Auto Linker \u2192 Settings<\/strong> and choose your post types<\/li>\n<li>Save \u2014 auto-linking is active immediately<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20it%20break%20my%20existing%20links%3F\"><h3>Will it break my existing links?<\/h3><\/dt>\n<dd><p>No. The engine uses PHP's DOMDocument to work on text nodes only, leaving all existing HTML \u2014 including any links you've already added manually \u2014 completely untouched.<\/p><\/dd>\n<dt id=\"does%20it%20link%20inside%20shortcode%20output%3F\"><h3>Does it link inside shortcode output?<\/h3><\/dt>\n<dd><p>The <code>the_content<\/code> filter runs after shortcodes are expanded, so shortcode output is processed. Code inside <code>[code]<\/code> or <code>[pre]<\/code> shortcodes that render <code>&lt;code&gt;<\/code>\/<code>&lt;pre&gt;<\/code> HTML is skipped automatically.<\/p><\/dd>\n<dt id=\"what%20is%20the%20pre-generate%20cache%20option%3F\"><h3>What is the Pre-Generate Cache option?<\/h3><\/dt>\n<dd><p>When enabled, linked content is saved to post meta the first time a page is viewed (or when bulk generation runs). Subsequent views serve the cached version instantly, avoiding any per-request processing overhead.<\/p><\/dd>\n<dt id=\"how%20do%20i%20exclude%20a%20page%20from%20being%20linked%20to%3F\"><h3>How do I exclude a page from being linked to?<\/h3><\/dt>\n<dd><p>Paste the full URL of that page into <strong>Settings \u2192 Excluded URLs<\/strong> (one per line) and save. The change takes effect immediately.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20page%20builders%20like%20elementor%20%2F%20divi%3F\"><h3>Does it work with page builders like Elementor \/ Divi?<\/h3><\/dt>\n<dd><p>Yes, as long as the page builder outputs content through the standard <code>the_content<\/code> filter. Most page builders do.<\/p><\/dd>\n<dt id=\"is%20the%20pro%20license%20per-site%20or%20unlimited%3F\"><h3>Is the Pro license per-site or unlimited?<\/h3><\/dt>\n<dd><p>Pro licenses are per-site. Volume packs are available on the Pro purchase page.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Rewrote linking engine using DOMDocument \u2014 completely DOM-safe, never breaks markup<\/li>\n<li>Added Custom Keyword Map (Pro), nofollow\/sponsored rel (Pro), case-sensitive mode (Pro)<\/li>\n<li>Added Bulk Generation with AJAX progress (Pro)<\/li>\n<li>Added one-click Clear All Cache button<\/li>\n<li>Added proper nonce verification on all AJAX endpoints<\/li>\n<li>Added post-map transient caching to eliminate per-request <code>get_posts(-1)<\/code> queries<\/li>\n<li>Fixed: links were inserted inside existing <code>&lt;a&gt;<\/code> tags<\/li>\n<li>Fixed: links were inserted inside <code>&lt;code&gt;<\/code> and <code>&lt;pre&gt;<\/code> blocks<\/li>\n<li>Fixed: settings page emitting raw <code>&lt;tr&gt;<\/code> HTML outside a <code>&lt;table&gt;<\/code><\/li>\n<li>Fixed: AJAX handler lacked nonce verification<\/li>\n<li>Fixed: <code>parse_url<\/code> replaced with <code>wp_parse_url<\/code><\/li>\n<li>Fixed: <code>_e()<\/code> replaced with <code>esc_html_e()<\/code> throughout<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Automatically add smart internal links to every post \u2014 improving SEO, time-on-site, and crawlability with zero manual effort.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/328969","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=328969"}],"author":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pirajki"}],"wp:attachment":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=328969"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=328969"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=328969"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=328969"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=328969"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=328969"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}