=== Internal Link Juicer: SEO Auto Linker for WordPress ===
Contributors: internallinkjuicer, DavidAnderson, pmbaldha, DNutbourne, aporter, bcrodua, freemius
Donate link: https://www.internallinkjuicer.com/
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl.html
Tags: seo, internal links, automatic linking, linkbuilding, onpage, auto linker, ux, link, links
Requires at least: 5.9.0
Tested up to: 6.4
Requires PHP: 7.1.0
Stable tag: 2.23.6

Improve your SEO and your user experience through internal linkbuilding. Automated links between your posts based on a smart keyword configuration.

== Description ==

### High performance and semi-automatic internal link building plugin for WordPress

★ ★ ★ ★ ★

**Internal Link Juicer** is the *state-of-the-art* solution for building internal links within post content. It works by using an intelligent per-post configuration of your desired keywords. Overall, it **improves** your on-page **SEO** and your user experience (UX) by pointing out the right content for the given context.

[youtube https://www.youtube.com/watch?v=lx-paARAZqo]

### Boost your internal linking

* __Maximum diversification:__ With the intelligent placeholder feature, anchor texts can be diversified and the amount of possible links boosted with little effort. This also ensures a natural linking behavior.
* __Automation:__ You don't have to link your pages manually every time you create a new post. Once your keywords are configured, links will get built automatically.
* __Full control over linking pages:__ Individual posts that shouldn’t contain generated links can be added to the blacklist. Post types, which should be used for linking, can be whitelisted. These options give you full control over the plugin.
* __Customize your link output:__ With the possibility of our predefined template tags, link output can be completely individualized. This lets you customize generated links for your individual context.
* __Configurable linking behavior:__ Link counts per page, as well as links per target URL and linking behavior for targeted keywords, can be flexibly configured using the options. You’ll have full control for every use case.
* __Stay in the loop:__ Despite our "set and forget" approach and the automation that goes with it, you'll never lose track of what's going on within the filterable and sortable statistic dashboard.
* __Perfect workflow:__ The plugins keyword panel in the post editor guarantees an efficient and stress-free workflow.
* __Best possible performance:__ With the high-performance index structure, you’re guaranteed a fast rendering of your pages on the frontend. You don't have to worry about delays in building internal links.

Our free Basic version is full of features and extremely customizable. However, we offer many more advanced features in our Pro version:

> #### PRO features:
> * __Enabled taxonomies:__ Enables links from and to category and tag pages. With this, you cover 100% of your internal linking.
> * __Enabled custom fields:__ Enables links from content of post and term meta. Brings also compatibility for ACF and several page builders.
> * __Custom link targets:__ Link to internal and external pages that are not managed by WordPress. With this, you link to affiliate links in no time at all.
> * __Auto keyword import:__ Import keywords for your assets from internal ressources like post or term titles in bulk. If you have installed Yoast SEO or RankMath, you can also import already set "focus keywords".
> * __Professional statistics:__ Get the maximum out of your optimization process. Deep insights with a full and unlimited link detail view.
> * __Supports manual optimization:__ With the Pro version, you can take your manually created links into account and exclude them from automatic linking on affected pages.
> * __Build a silo structure:__ Easily build a link silo by restricting automatic links between posts that share the same category.
> * __Ready for teams:__ Role-based access to keyword configuration allows you to let your editors work with the Internal Link Juicer.
> * __Full support:__ You will receive prioritized premium email support from our experienced SEO and development team.
>
> Check out the pricing here: [https://www.internallinkjuicer.com/#get](https://www.internallinkjuicer.com/#get)

### Built for...

#### ✔ (SEO) Affiliates
Are you tired of slow or outdated plugins for __automatically building internal links__ to your pages? With the Internal Link Juicer, you can use your full SEO-potential and __enhance the user experience (UX)__ of your website. With zero frontend performance costs, this plugin provides a solid basis for reliably scaling your project. Over time, it helps you sustainably __improve your rankings__ in search engines by optimally distributing your internal link juice through intern links.

#### ✔ Bloggers
Take your blog to the next level and equip your WordPress site with powerful tools for an automated internal link building process. The Internal Link Juicer __requires no technical know-how__. The configuration is simple and we also offer a variety of free tutorials on our website. The features are perfect for you if you want to __automate an important area of on-page optimization__ to focus once more on your main goals.

#### ✔ Agencies
Get happy customers with little effort. With this efficient method for building internal links, you’ll __save time__ and stay stress-free. You can freely configure the view by using __customizable__ template tags. If you’re into analytics, the dashboard will give you insight and control over your internal link juice. This way, you’ll always have an overview of your internal backlinks to keep track of the __metrics__.

#### ✔ Businesses
Plugin stability and security are a must-have for your business. With the Internal Link Juicer, you’re guaranteed reliability in __quality and performance__. This plugin actively optimizes the user experience (UX) on your website. By setting internal links, your visitors will find the information they’re looking for faster. Say goodbye to high bounce rates. Your __interactions will increase__ in a meaningful and lasting way.

#### ✔ You
Join our community and make the Internal Link Juicer your go-to internal link building plugin. Our goal is to create a new WordPress standard for internal link building. We want to be driven by you! Looking for a new feature? Found a bug or redundancy? We can fix it or build it, making certain you get the most out of your experience! Simply use our [Support Forum](https://wordpress.org/support/plugin/internal-links).

### Additional resources

* [Documentation](https://www.internallinkjuicer.com/docs/) - Instructions for using the Internal Link Juicer
* [Full FAQ](https://www.internallinkjuicer.com/faqs/) - Comprehensive and extended FAQs about the Internal Link Juicer
* [Internal Link Hub](https://www.internallinkjuicer.com/hub/) - Educational articles from our team about internal linking, content creation, SEO and WordPress

== Installation ==

1. Download the `internal-links.zip` file and unzip it
2. Upload the `internal-links` folder to your `wp-content/plugins` directory
3. In the WordPress admin area, click "Plugins" on the menu and activate the Internal Link Juicer
4. Set up your keywords in the post editor and let the magic happen!

== Frequently Asked Questions ==

= What is internal linking and what is it good for? =
An __internal link__ is a link that is placed on a page which links to another page within the same domain. Internal links have an __extremely high value__ when it comes to __SEO__ and also the general __optimization__ of websites.

Internal links...

* have an immense influence on SEO
* help search engines find new content quickly
* help search engines to better interpret and classify the content of a page
* can distribute traffic to well converting subpages

On our website we created a [comprehensive guide about internal linking](https://www.internallinkjuicer.com/internal-links-guide/), where you will find a lot of knowledge and useful tips.

= Will the plugin slow down my site? =
Absolutely not. The __Internal Link Juicer__ was explicitly designed for __fast loading times__ and maximum performance. It solves the problem of generating links using its own index. This prevents additional delays while loading the frontend.

= Will the plugin improve my search engine rankings? =
Of course no guarantee can be given for this. But building __internal links__ within a website is a basic discipline for onpage SEO. Internal links help search engines to find your content faster and understand it better. Both are important parts for __good rankings__. We help you to massively improve the structure of intern links and even automate the whole process stress-free.

= Does the plugin change my content? =
__No__ - the plugin has its own index, where links that need to be created are efficiently stored. Whenever a page is rendered, the links are generated before output and your existing content is enriched with them. The content itself is not manipulated by the plugin.

= Does the plugin work with content generated from shortcodes? =
__Yes__ - the plugin works with content (within posts or pages) that gets generated through shortcodes.

= Can I disable linking on specific pages? =
Yes, at any time!  With our [blacklist feature](https://www.internallinkjuicer.com/docs/whitelist-blacklist/) you can easily disable the generation of links on individual pages.

= Can I change the style of the auto generated links? =
Yeah, definitely. With the help of our [templating system](https://www.internallinkjuicer.com/docs/link-templates/) you can change the output of your generated links in no time at all.

= Is Internal Link Juicer compatible with translation plugins? =
__Yes__ - we provide an own compatibility mode for WPML and Polylang as this has been requested by many users. We are planning to support more 3rd party plugins soon - requests always appreciated!

= How can I automate the setting of keywords if I have a lot of posts? =
We understand that, depending on the size of your website, it can be __difficult to enter keywords manually__. For this reason, we implemented the possibility to export all linkable content in the import/export area, __enrich it with your own sources, and re-import__ it afterward.

The Pro version also provides a direct import of __post (and term) titles__ or, if installed, __Yoast SEO and RankMath "focus keywords"__.

== Screenshots ==

1. Content Settings - You can configure posttypes to be used for linking. Individual posts that are to be excluded from building internal links within their content can be blacklisted. You can also specify maximum frequencies for the number of links.
2. Link Settings - Customize the output of the generated links and set them to nofollow if you want.
3. In this example, a post about the topic "Hyperlinks" (1) is currently edited. The heart of the plugin is the keyword editor (2). There you can store all keywords that should refer to the current article. In this example, an additional gap within the phrase ("clickable ... hyperlink") was configured. You can see the result on the next screenshot.
4. The frontend output of another article about the topic "Anchor text". The content contains a phrase, which corresponds to the configuration as seen in screenshot #3. The Internal Link Juicer automatically builds a link to the post about "Hyperlinks".
5. The dashboard - From there you gain insights in all built links and anchor texts.
6. The link detail view - Take a deeper look into your built links.
7. Import and Export Section - Here you can easily import and export plugin settings or your configured keywords.

== Changelog ==

= 2.23.6 - 13/Feb/2024 =
* FIX: Fixed issue with contents not properly rendering.

= 2.23.5 - 25/Jan/2024 =

* FEATURE: Add a cancel all scheduled actions button.
* FEATURE: Add delete cache button to delete transient cache. 
* FEATURE: Add global option for limit incoming links. 
* FEATURE: Allow keywords to be imported from tags. 
* FEATURE: Case Sensitive Mode for keywords. 
* FEATURE: Show the ILJ keyword setting box to add category screen. 
* FEATURE: added a setting to select the action scheduler batch size 
* FEATURE: added new columns to export: element sub-type (page/post/product/etc), incoming and outgoing link counts 
* FIX: Implemented fix for term keywords to adhere to the "Order for configured keywords while linking" preference. This change ensures that keywords will be linked in the specified order. 
* FIX: Fix bug on limit linking within their terms option that allows linking to other page that does not have the same term. 
* FIX: Fix admin bar link vanishes when index mode is reset to automatic.
* FIX: Fix links not generating when WPML plugin is activated. 
* FIX: Fix namespace for cloudflare to avoid PHP errors. 
* FIX: Fixed an issue with Limit outgoing links option value not saving in category or terms 
* FIX: avoid cancelled requests caused by Cloudflare's hard execution time limit of 100 seconds 
* FIX: Resolve issue with index build not continuing when a whitelist option is empty
* FIX: When debug mode was on and the ILJ keywords were exported, a warning and a notice appeared in the exported CSV file. 
* FIX: Fix browser console error in settings page for undefined variable when index generation mode is none
* FIX: refactor table creation for MySQL 8 compatibility
* FIX: add dynamic properties to remove E_DEPRECATED messages
* TWEAK: show always the build index button so user can just click it instead of having to edit/add pages/terms/etc 
* TWEAK: Avoid PHP deprecated warning on null strtolower function. 
* TWEAK: Implemented a dismissable notice when site is running on a LiteSpeed Webserver. 
* TWEAK: Remove duplicated time measuring code by creating a Stopwatch helper method
* TWEAK: The blacklist field now displays the title beside id. 
* PERFORMANCE: Fetch dashboard link statistics table by batch to avoid timeouts and memory exhaust. 
* PERFORMANCE: Reduced mysql calls in rendering the ILJ dashboard. 
* PERFORMANCE: Refactor regex for increased performance and reliability 
* PERFORMANCE: refactor configured keywords count to be resource savvy and cache it in database for faster access
* PERFORMANCE: Implemented WP Transient for faster frontend load time.
* PERFORMANCE: Reduced data being fetched by IndexAsset::getTerms__premium_only() to term_id and description only to improve performance.
* COMPATIBILITY: Fixed an issue related to get_class() method not compatible with 8.3 
* COMPATIBILITY: add new filters for the WooCommerce and Elementor plugins 
* COMPATIBILITY: add missing dynamic properties for PHP 8.2 compatibility
* SECURITY: Fixed Stored Cross-Site Scripting Vulnerabilities in the admin dashboard setting page. 
* SECURITY: Fixed Stored Cross-Site Scripting Vulnerabilities in the keywords metabox and customlinks page.

= 2.23.4 - 16/Aug/2023 =

* OWNERSHIP: Internal Link Juicer is now owned and maintained by Team Updraft - https://teamupdraft.com
* FEATURE: Added function to reset all keywords
* PERFORMANCE: Reduced data being fetched by IndexAsset::getPosts() to ID and post_content only to improve performance.
* FIX: Addressed a problem where the limiting outgoing links feature was not working correctly in the frontend, providing a reliable solution.
* FIX: Addressed a problem where generating outgoing links does not follow the 'Maximum amount of links per post' option was not working correctly in Free version.
* FIX: Rectified an issue on the free version where the individual index build for incoming links was not functioning correctly.
* TWEAK: Improve IndexAsset::getPosts() query providing a reliable solution.

= 2.23.3 - 11/Jul/2023 =

* PERFORMANCE: Fetch only post ids on getPostsBatched, and eliminate the need for array_column in batch building to improve plugin performance.
* PERFORMANCE: Pro: Fetch only term ids on getTermsBatched__premium_only, and eliminate the need for array_column in batch building to improve plugin performance.
* TWEAK: Remove duplicated freemius library files.
* TWEAK: Add translation to a non-translated text.

= 2.23.2 - 26/Jul/2023 =

* TWEAK: Freemius SDK update to 2.5.10.

= 2.23.1 - 26/Jun/2023 =

* FIX: PHP Fatal error:  Uncaught Error: Call to a member function setTimezone() on string in internal-links/helper/batchinfo.php:158, when the "ilj_environment" option is empty.
* TWEAK: Fix Capitalization style of options, buttons and title headings.

= 2.1.2 =
Release Date: February 14th, 2023

* Feature, Pro: Limit incoming/outgoing links on a per-post basis in the keyword editor
* Improvement: Optimized batch processing for significantly better link index performance on large websites.
* Improvement: Added option to hide the Internal Link Juicer admin bar entry (link index status)
* Improvement, Pro: Expanded user role setting for keyword editor to include all available roles in the system
* Improvement, Pro: New template tag "{{title}}" allows for post/term title usage in link templates

= 2.1.1 =
Release Date: December 23rd, 2022

* Improvement: replaced dependency on SweetAlert2 with own modal implementation
* Fix: Corrected view and hover area of admin bar link-index status
* Fix, Pro: Fixed bug that in some cases caused custom fields to link to themselves

= 2.1.0 =
Release Date: December 2nd, 2022

* Feature, Pro: Linking in custom field content (posts and meta) is now possible
* Improvement, Pro: Added compatibility mode for Oxygen Builder and Muffin Builder page builders
* Improvement: Updated dependencies

= Earlier versions =

For the complete changelog, please refer to [https://www.internallinkjuicer.com/changelog/](https://www.internallinkjuicer.com/changelog/).

