Internal linking for PrestaShop: structure, audits and safe automation
Build useful internal links in PrestaShop, audit orphan pages and crawl depth, and check automatic linking without relying on ranking guarantees.
Help shoppers and crawlers reach the products, categories and guides that matter. Use this workflow to plan links, audit gaps and verify automatic linking.
What we would do
We would start with the categories, products and guides that matter to your customers, then repair their missing routes manually before automating repeated mentions. The right approach depends on your existing shop: its PrestaShop version, theme, menu and content modules, catalogue data, languages and markets, import or ERP integrations, and who maintains the text. Check whether an import will overwrite an editor's links before assigning manual repairs to your team.
For changes to templates, category paths or automatic rules, work on a staging copy with the same theme, modules and cache configuration, isolated from live orders, emails and integrations. Rehearse representative pages and reversal, then publish the tested change in a planned window with saved content and configuration ready to restore. Apply only the reviewed content, template and configuration changes, without replacing the live database with the older staging copy. A small editorial repair can use your normal publishing process, with the previous text retained.
| What you find | Starting route | Evidence before expanding |
|---|---|---|
| A useful guide or product has no relevant route from the shop. | Repair its archive, category or contextual links manually. | A visitor and a homepage-started crawl can now reach it. |
| The same relevant phrase is unlinked across maintained descriptions. | Trial a narrowly scoped keyword rule after a manual example. | Matches reach the intended destination in each language and shop. |
| Links exist in the editor but disappear from the storefront. | Inspect the theme position, rendering and cache first. | The intended block and links appear in the delivered page. |
| Linked pages remain excluded or point to competing URL versions. | Investigate indexability and URL selection before adding more links. | The intended destination, canonical and response agree. |
For unresolved discovery or indexation conflicts, the PrestaShop SEO Audit & Action Plan provides an evidenced repair plan; implementation is separate.
Build a useful category and content structure
Internal links help visitors and crawlers find your pages. They also help Google understand relationships and relative importance. Menus, category listings, breadcrumbs and links within descriptions all contribute. A sitemap can expose URLs, but it does not replace a useful path through your shop.
Do not treat link value as a fixed amount divided equally by every outgoing link. You cannot calculate Google's current ranking signals from a count of links. Your homepage is a useful starting point for navigation, but it is not necessarily your strongest page.
An office chair example
- Use the office chairs category as a hub for the range.
- Link to relevant subcategories, such as chairs under EUR 300, and explain how they differ.
- Link a buying guide about ergonomic workspaces to the category and the specific chairs it discusses.
- Give product pages a useful category path, relevant accessories and a link to the buying guide where it answers a purchase question.
- Link supporting articles to each other when the next article helps the reader.
Write enough description to answer the shopper's questions. There is no required word count or ideal number of links. Avoid adding unrelated links to meet a quota. Google explains the role of menus and cross-page links in its ecommerce site structure guidance.
Use the linking surfaces in your shop
Category and product descriptions
Edit category descriptions under Catalog, Categories. Link to useful subcategories, related ranges and supporting guides. Confirm that your theme actually renders the description, including on paginated listings.
For a product, link descriptive phrases to its category, compatible accessories or an explanation of a technical feature. A link reading "ergonomic office chairs" gives more useful context than "click here". Keep anchors natural and avoid forcing the same phrase into every page.
PrestaShop 9.1 has a native additional_description category field. Whether a second description appears below the product grid depends on the theme and extensions. Check the rendered category page after editing it. Use the native field when it is available and renders where you need it. If it cannot meet the placement requirement, see the Second Category Description help page for the separate extension's placement and setup.
Breadcrumbs and category context
A product can belong to several categories. Check its category associations and default category, then test the breadcrumb after opening the product directly and after following different category paths.
In PrestaShop 9.1, PS_PRODUCT_BREADCRUMB_CATEGORY selects the current category when set to current and a current category is available. Otherwise the controller uses the product's default category. Check your version and theme before changing default categories to alter breadcrumbs.
Navigation, footer and content links
Keep important categories reachable through normal navigation. Use the footer for useful customer information and selected destinations. The editor and available positions depend on your theme and installed menu or link-list module.
Repeated navigation links still communicate structure. Contextual links add an explanation of why two pages belong together. Use both, and remove clutter based on usefulness rather than an assumed mathematical limit.
Review your product miniature and related-product templates. Make sure product names link to product pages, and confirm that quick-view controls are not the only way to reach an item. Connect blog posts with the products and guides they discuss. Check that related blocks contain crawlable links in the rendered page.
Audit depth, inlinks and orphan pages
- Start a crawler at the shop homepage. Keep its starting URL, exclusions and shop scope consistent between audits.
- Check whether important links exist in the returned HTML. If your theme needs JavaScript to expose them, compare a rendered crawl. In Screaming Frog, JavaScript rendering requires a licence.
- Complete the crawl, then run Crawl Analysis to populate Link Score and the relevant analysis filters.
- Compare crawl depth, unique inlinks, indexability and response codes for important categories and products.
- Compare discovered URLs with your sitemap, catalogue or CMS exports, and Search Console landing-page data to find pages missing from the link crawl.
Screaming Frog defines Link Score as its own relative internal-link metric, not a Google ranking score. Its tabs documentation describes these columns. Check the feature comparison for the free crawl limit and licence requirements for JavaScript rendering, Search Console integration and custom search.
| Signal | What to investigate |
|---|---|
| High crawl depth | Unnecessary category nesting, pagination or a missing link from a relevant hub. |
| Few unique inlinks | A valuable page that has little connection to related content. |
| Low relative Link Score | A mismatch between business importance and the structure represented by this crawl. |
| No inlinks in the crawl | A possible orphan, a crawl exclusion, a blocked page or a link available only after rendering. |
There is no universal four-click problem threshold or minimum of three inlinks. A page with one useful link may be appropriate. Investigate patterns in the context of your catalogue.
Find pages the crawl cannot discover
A link-only crawl cannot discover a truly orphaned page. Compare external URL inventories. Look for old CMS pages removed from menus, posts without archive links, products missing from category navigation, and brand or supplier pages that visitors cannot reach.
Add relevant links to a useful orphan. Redirect an obsolete URL only when a genuinely equivalent destination exists. Otherwise use an appropriate 404 or 410 response and remove it from the sitemap. Do not redirect every retired product to the homepage.
Find unlinked mentions
Search descriptions and articles for terms that refer to a useful destination. Where your Screaming Frog version supports them, use Custom Search's "Page Text No Anchors" filter to find unlinked mentions of an approved term, and the N-Grams view's Body Text, unlinked option to find recurring phrases. Check the installed version and licence before planning this workflow. Review each match so a shared word does not create an irrelevant link.
Keep each audit row tied to a source page, its proposed destination, the reason the link helps, and a named owner. Separate preferred URLs from redirected or duplicate variants before calling a page orphaned. If links target an old address or the canonical names another page, resolve the intended destination using the URLs, canonicals and redirects guide before rolling out new links.
Work through a missing guide and repeated mentions
Suppose your ergonomic workspace guide is missing from the blog archive, while chair descriptions repeatedly mention adjustable office chairs without a link. These need different repairs: restore the guide's archive entry and link it from the office chairs hub, then assess the repeated phrase separately. A keyword rule cannot repair the missing archive entry.
- Save the affected text and crawl evidence. Open the guide and category directly, confirming that they are available to shoppers and are the intended destinations for this language and shop.
- Edit a relevant chair description manually, linking the phrase to the category. Follow it on mobile and desktop and check that the destination actually covers the chairs being discussed.
- Use that page as the editorial example. Search for the same unlinked wording elsewhere and inspect the surrounding sentences. Exclude mentions about a different range or an accessory that would send shoppers to the wrong place.
- On staging, trial a rule only in the intended description containers and language. Keep the manually linked occurrence as a check that existing anchors remain intact; compare another matching page without that saved link.
- Repeat requests with the page cache warm, then try another language and shop where available. Check the delivered hrefs, placement and response time, and confirm that the rule has not affected menus or controls.
- Pause the rule and clear affected cached pages to prove the generated links disappear. The manually saved link should remain. Restore saved text separately if you also want to undo that editorial change.
After proving reversal, re-enable the approved rule on staging and verify its output again. Record the approved phrases, destination, scope and limits, then publish the reviewed changes in the planned window and invalidate affected live caches. Check the live links and saved editorial repairs, then re-crawl from the homepage using the same settings. Have the content owner review new matches when ranges or wording change.
Understand safe automatic linking
For a small catalogue, edit the useful links directly. With automatic keyword rules, limit processing to the content areas you intend to change. Exclude existing anchors, scripts, style content, form controls and navigation. Match complete words where appropriate, respect language and shop context, and avoid linking a page to itself.
Automatic Internal SEO Linker uses hookActionOutputHTMLBefore($params) to change the final HTML. It requires a front-office controller, skips AJAX and non-HTML responses, and checks that the content looks like HTML before processing it. Its insertion stage is:
$injector = new LinkInjector($config);
$params['html'] = $injector->process($params['html'], $groups);
This is an excerpt from an existing implementation, not a standalone module. Its configuration supplies selected content containers, active language-specific groups and placement limits. A displayProductAdditionalInfo handler adds markup at a theme position; returning a rewritten description there can duplicate the description. It is not a general content filter.
The module has page and group budgets, defaulting to five links per page and three per group; choose limits that fit the page and content. Its settings offer first, middle, last and spread placement choices. Confirm their effect on repeated phrases in your installed build before relying on them.
For supported selectors, placement controls and configuration, see the Automatic Internal SEO Linker help page.
After changing rules, inspect actual output with your theme and page cache enabled. Confirm that existing links remain intact, the link text makes sense and repeated requests do not accumulate markup. If a cache continues serving old links after a rule changes, invalidate the affected pages and repeat the check.
Prioritise repairs and measure the result
- Restore access to valuable orphaned or broken destinations.
- Improve paths to important pages that are unnecessarily difficult to find.
- Connect your main categories, relevant products and useful buying guides.
- Convert relevant unlinked mentions, then improve vague anchor text.
- Re-crawl using the same configuration and inspect the pages you changed.
Use normal <a href="..."> links to the preferred destination URL. Avoid sending users through unnecessary redirect chains. Review accidental nofollow attributes on ordinary editorial links, but retain appropriate attributes for sponsored or user-generated links. Google treats nofollow as a hint; it is not an absolute guarantee that no ranking signal can pass. See Google's link attribute explanation.
Keep dated before-and-after exports of depth, inlinks, response codes and indexability. Watch Search Console indexing and performance for the affected URLs. A "Discovered, currently not indexed" report can have several causes. Check other indexing factors alongside internal links; adding links does not guarantee indexing.
Compare results over a period that allows recrawling, and record other changes such as new content or promotions. A lower average depth or a higher crawler Link Score confirms a structural change. It does not prove a traffic or ranking increase. Check crawl errors and server performance separately if fetching pages is unreliable.
Google's link guidance covers crawlable links, descriptive anchor text and useful context. Apply those checks whenever you publish a product, category or article.
What to ask your developer or agency
- Which URLs are business priorities, and which source pages will link to them? Ask for examples and a reason for each proposed route.
- Does the fault belong to saved content, an import, a template or generated output? Who owns that source after handover?
- Which shop, language, theme and cache combinations were tested, and can you see the delivered links rather than only the configuration screen?
- What exactly reverses the change, which cached pages need refreshing, and has that reversal been rehearsed?
- Which before-and-after exports show the repair, and who will check links after products move, retire or change address?
Questions owners ask
Do I need a linking module for a small shop?
Use direct edits when your team can maintain the relevant links. Automation becomes useful when the same approved phrase-to-destination mapping recurs across content; the worked trial above shows what to verify before expanding it.
Should I move categories to reduce crawl depth?
First test a relevant link from an existing hub. If you still need to reorganise categories, check product associations, breadcrumbs and affected URLs on staging before publishing the new structure.
How many links should each description contain?
Judge each link by the next decision it helps a shopper make. The module's budgets control insertion, not an SEO target; a short description may need no additional links.
Will a newly linked page be indexed?
Keep the discovery and indexing checks separate: first confirm the crawler can follow the new route, then inspect the destination's indexability and Search Console evidence.
Who keeps the links correct after launch?
Assign that responsibility to the person or team maintaining the source content or import. Include destination checks in the existing publishing and catalogue-change checklist, and repeat the relevant crawl after navigation or template changes.