Replacing internal links
You can replace the internal link URLs with the corresponding URL for the target language.
Only URLs containing the domain of the website (eg: https://mysite.com/hello-world/) are replaced. Relative URLs (eg: /hello-world/) are not supported.
Internal link replacements are only executed for:
- Custom posts (content and meta)
- Media items (meta)
In the Settings page, go to the General Configuration > Internal Links Replacement tab, and configure to replace links for which groups:

Enabling groups
Entities are identified via groups, which are enabled/disabled independently:
- Homepage
- Custom posts
- Tags
- Categories
- Media
- Users
If the website content does not contain links pointing to a certain group, then you can disable that group to speedup the execution of the process.
Depending on the group, links may be extracted and identified from the origin content, or not:
- Links to custom posts and media items are extracted from the origin content, allowing to only load the corresponding translated entries from the DB.
- Links to tags, categories and users are not extracted from the origin content, instead all these entries are loaded in advance from the DB to retrieve their URLs.
For instance, if your post contains the following content:
<p>Link to <a href="https://mysite.com/hello-world/">Hello world</a> post.</p>
<p>Link to <a href="https://mysite.com/category/blog/">category</a>.</p>
<p>Link to <a href="https://mysite.com/tag/release/">tag</a>.</p>Then, to replace the internal link for the Hello world post, only that post is loaded from the DB to retrieve its URL for all languages.
However, to replace the internal links for the blog category and release tag, all categories and tags must be loaded from the DB to retrieve their URLs.
If you have plenty of tags, categories, or users, and you do not link to them, then it's better to keep their groups disabled.