Best Practices for Cross-Linking Extension
Looking for Cross-Linking Extension for Automated Internal Linking? View the full Cross-Linking Extension for Automated Internal Linking page to explore features, configuration options, and pricing.
These are the recommended ways to configure the Cross-Linking extension based on what we've seen work well. We've included a few real-world examples — a simple store, a content-heavy store and a multi-store setup — so you can see how others are using it. There's also a list of common mistakes people make and how to avoid them.
Recommended configurations and patterns for Cross-Linking.
General Guidelines
Do's
- Start with a small set of high-value keywords and expand gradually
- Set max replacements to 1 per keyword for natural reading
- Use longer, more specific keywords over short generic ones
- Give important keywords higher priority values
- Test on a staging environment before going live
- Review cross-links periodically and remove outdated ones
Don'ts
- Don't create rules for single characters or very common words ("the", "and")
- Don't set unlimited replacements for all rules — over-linking hurts readability and SEO
- Don't create overlapping keywords without considering priority (e.g., "yoga" and "yoga mats" need different priorities)
- Don't link to pages that don't exist or return 404 errors
- Don't use cross-links as a replacement for proper navigation
Common Scenarios
Scenario 1: Small Store with Key Product Categories
Use case: Online store with 5-10 main product categories, standard product descriptions
Configuration:
General:
- Enabled: Yes
- Case Insensitive: Yes
Products:
- Enabled: Yes
- Max Links Per Page: 5
Categories:
- Enabled: No (category descriptions are too short)
CMS Pages:
- Enabled: Yes
- Max Links Per Page: 5
Rules (10-20 keywords):
- One rule per main category (e.g., "yoga mats" → /yoga-mats.html)
- One rule per top-selling product (e.g., "ProFlex Mat" → /proflex-mat.html)
- All rules: max replacements = 1, priority based on importance
Result: Subtle internal linking that guides customers to key categories and products without cluttering the content.
Scenario 2: Content-Heavy Store with Blog Pages
Use case: Store with extensive CMS content, blog pages, buying guides
Configuration:
General:
- Enabled: Yes
- Case Insensitive: Yes
Products:
- Enabled: Yes
- Max Links Per Page: 5
Categories:
- Enabled: Yes
- Max Links Per Page: 5
CMS Pages:
- Enabled: Yes
- Max Links Per Page: 15
Rules (50+ keywords):
- Category keywords: priority 10, max replacements 1
- Brand keywords: priority 8, max replacements 1
- Product keywords: priority 5, max replacements 1
- Informational keywords (e.g., "return policy" → /returns.html): priority 3, max replacements 1
Result: Rich internal linking across content pages that improves SEO crawlability and user navigation. Higher page-level limit on CMS pages allows more links in long-form content.
Scenario 3: Multi-Store with Different Languages
Use case: Store with English and French store views
Configuration:
Same general settings for both stores, but separate rules per store view.
Rules:
- "yoga mats" → /yoga-mats.html, Store Views: English
- "tapis de yoga" → /tapis-de-yoga.html, Store Views: French
- "ProFlex Mat" → /proflex-mat.html, Store Views: All Store Views (brand name doesn't change)
Result: Each store view gets localized cross-links matching the language of the content.
Scenario 4: B2B Store with Technical Products
Use case: B2B store selling technical products with detailed specifications in descriptions
Configuration:
General:
- Enabled: Yes
- Case Insensitive: No (technical terms and model numbers need exact matching)
Products:
- Enabled: Yes
- Max Links Per Page: 8
Categories:
- Enabled: Yes
- Max Links Per Page: 5
CMS Pages:
- Enabled: Yes
- Max Links Per Page: 10
Rules (30-50 keywords):
- Product category keywords: priority 10, max replacements 1 (e.g., "industrial pumps" → /industrial-pumps.html)
- Technical standard keywords: priority 8, max replacements 1 (e.g., "ISO 9001" → /certifications/iso-9001.html)
- Application keywords: priority 5, max replacements 1 (e.g., "wastewater treatment" → /applications/wastewater.html)
- Support keywords: priority 3, max replacements 1 (e.g., "technical support" → /support.html)
Result: Technical cross-references guide buyers to related product categories, certifications, and application pages. Exact case matching prevents false matches on model numbers and abbreviations.
Verifying Your Setup
Use the CLI preview command to check how rules apply to a specific entity before flushing cache:
bin/magento magmodules:crosslinking:preview --entity-type=product --entity-id=42
This shows the content before and after replacement, so you can verify that the correct keywords are matched with the right priority and limits.
Performance Considerations
- The module processes content on every page load (unless full page cache is active)
- More rules = more regex operations per page. Keep rules under 200 for best performance
- Full page cache (Varnish or built-in) caches the rendered output including cross-links, so the performance impact is only on cache misses
- Disable debug logging in production — it writes to disk on every replacement
Common Mistakes
Mistake: Creating rules for very short or common words
Why it's wrong: A rule for "a" or "the" matches everywhere and creates unwanted links. Even words like "shop" or "buy" can be too generic.
Correct approach: Use specific multi-word phrases like "yoga mats" or "running shoes" instead of "mats" or "shoes".
Mistake: Setting max replacements too high
Why it's wrong: A page where every instance of "yoga" is a link looks spammy and hurts both readability and SEO.
Correct approach: Set max replacements to 1 for most rules. The first occurrence gets linked, the rest stay as plain text.
Mistake: Not considering keyword overlap
Why it's wrong: Rules for "yoga" and "yoga mats" conflict. Without proper priority, "yoga" might match first and prevent "yoga mats" from matching (since "yoga" is now inside an <a> tag).
Correct approach: Give longer/more specific keywords higher priority. "yoga mats" (priority 10) should process before "yoga" (priority 5).
Mistake: Forgetting to flush cache after changes
Why it's wrong: Cross-link changes won't appear on cached pages. You make a change, visit the page, see nothing, and assume it's broken.
Correct approach: Always flush the full page cache after creating, editing or deleting cross-link rules.
Need More Help?
Documentation:
- All Help Articles - Complete documentation overview
Support:
- Contact Support - Get help from our team
For a complete overview of features and configuration options, see Cross-Linking Extension for Automated Internal Linking.