Description
JS Links lets you obfuscate links so crawlers can’t follow them — while users still can.
It replaces <a> tags with accessible <span> elements (role="link", tabindex="0") containing Base64-encoded URLs.
✅ Use cases
— Hide links to legal pages, login, or affiliate URLs
— Prevent PageRank dilution in footers or widgets
— Keep a clean, SEO-friendly internal linking structure
✅ Key features
— Lightweight, no external calls or tracking
— 100 % reversible (disable = restores original links)
— Works with all SEO plugins (Yoast, Rank Math, SEOPress)
— Compatible with any theme or builder
— Accessible (keyboard navigation supported)
— Optionally disable obfuscation on specific pages
— Custom CSS styling per area (content, menu, footer, widget)
✅ Why not just use nofollow?
Because nofollow links are still visible to crawlers and can leak PageRank.
JS Links removes the href entirely and hides the destination — Google can’t see it, so no PageRank flows.
✅ Safe and compliant
JS Links follows WordPress coding standards and includes:
— URL sanitization (esc_url_raw())
— Output escaping (esc_attr(), wp_kses_post())
— CSS filtering (safecss_filter_attr())
— Protection against reverse tabnabbing (noopener noreferrer)
🧠 Result: total control of your internal link flow, with zero impact on UX.
Description (FR)
JS Links permet d’obfusquer certains liens pour empêcher Google et les robots d’exploration de les suivre — tout en conservant un comportement identique pour l’utilisateur.
Les balises <a> sont remplacées par des <span> cliquables (role="link", tabindex="0") contenant l’URL encodée en Base64.
✅ Cas d’usage
— Empêcher la transmission de PageRank sur les liens non stratégiques (CGU, mentions légales, etc.)
— Bloquer les liens d’affiliation ou externes sans casser le design
— Préserver un maillage interne propre et hiérarchisé
✅ Fonctionnalités
— Ultra-léger et 100 % réversible
— Compatible avec tous les thèmes et plugins SEO
— Accessible au clavier
— Personnalisation visuelle simple (CSS par zone)
— Exclusion possible de certaines pages
✅ Différence avec nofollow
Un lien nofollow reste une balise <a> visible par Google.
JS Links, lui, supprime l’attribut href et encode l’URL — donc Google ne voit pas le lien.
✅ Sécurité
JS Links respecte les bonnes pratiques WordPress :
— Nettoyage et validation des URLs
— Échappement systématique des sorties
— Filtrage CSS sécurisé
— Protection contre le reverse tabnabbing
— Fallback sans JavaScript (<noscript>)
🧠 En clair : tu gardes ton jus SEO sans sacrifier ton ergonomie.
Credits
Developed and maintained by Pierre Ribeaucourt
Support
If you encounter any issues or have suggestions, feel free to open a thread on the Support Forum.
Installation
- Upload the
js-linksfolder to/wp-content/plugins/ - Activate the plugin through the “Plugins” menu in WordPress
- In the Gutenberg editor, use the JS Link button.
- For menus, a dedicated field is available under Appearance > Menus.
FAQ
-
How is this different from rel=”nofollow”?
-
A
nofollowlink is still a visible<a>tag and may leak PageRank.
JS Links removes thehrefattribute and encodes the URL — Google doesn’t follow it. -
Is it compatible with SEO plugins like Yoast, Rank Math, or SEOPress?
-
Yes. JS Links runs after SEO plugins and doesn’t interfere with their output.
-
Is it accessible?
-
Yes — links are fully keyboard-activable (
Enter/Space) viarole="link"andtabindex="0".
However, some screen readers that only list real<a>links may skip them.
We recommend not obfuscating critical navigation or accessibility links. -
Can I exclude specific pages?
-
Yes, by listing their relative URLs (e.g.,
/,/contact,/legal) in the exclusion field.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“JS Links — SEO Link Obfuscation” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “JS Links — SEO Link Obfuscation” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
2.0.0
- Initial WordPress.org release
- WP 6.8 compatibility / PHP 7.4+
- Improved accessibility and sanitization
