Everything you'd want to know before you install.
A detailed look at how SEO Link Obfuscation: hide faceted links and optimize crawl budget works, why we built it the way we did, and the thinking behind the features above.
Crawl budget is not unlimited
Google allocates each site a daily crawl volume that depends on its authority and server responsiveness. On a 2,000 reference shop with faceted navigation, filter URLs often outweigh product pages in the logs. Every filter URL crawled is a product page left waiting. Reducing the number of discoverable links pushes crawling back towards the pages you care about.
Why server-side rather than JavaScript
Many obfuscation solutions replace links after page load, in JavaScript. The link is then present in the initial HTML, the very document a crawler fetches before any rendering. This module works on the server output: the HTML leaving PrestaShop no longer contains the targeted links. Nothing to intercept, nothing to execute, nothing to guess.
What the module does not do
No user-agent detection, no content varying by visitor. The HTML is the same for everyone. That distinction is the line between obfuscation and cloaking. The module also does not deindex URLs Google already knows: keep your noindex rules or redirects for that. Obfuscation acts on discovery, not on the existing index.
Choosing what to obfuscate
Facets and sorting are the obvious candidates: they are alternative views of the same content, with no ranking value of their own. Pagination is a more delicate case, disabled by default. If your product pages are only reachable through pages 2, 3 and beyond, obfuscating them cuts a crawl path. Only enable it if your sitemap and internal linking already cover the whole catalog.
Accessibility and user experience
An obfuscated link stays operable like a link. Elements receive role link and tabindex 0, which puts them in the tab order and announces them correctly to assistive technology. The Enter key triggers navigation, ctrl+click and middle click open a new tab. The original target attribute is preserved when present.
Behaviour when something goes wrong
The module checks that the output is a complete HTML page before acting, which rules out AJAX and JSON responses. If document parsing fails, or if no selector matches, the original output is returned as is. The order and cart controllers are excluded by default and the list is editable, so no checkout path depends on navigation JavaScript.
There are no reviews yet.