Troubleshooting Cross-Linking Issues
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.
Having issues with the Cross-Linking extension? This page covers the most common problems and how to fix them. Start with the quick diagnostics section to narrow down what's wrong, then jump to the relevant issue. We've also included debugging tips and what to check when cross-links aren't appearing where you expect them.
Common issues and solutions for Cross-Linking.
Quick Diagnostics
- Check the module is enabled at Stores → Configuration → Magmodules → Cross-Linking → General
- Check the entity type is enabled (Products, Categories or CMS Pages section)
- Flush the full page cache: System → Cache Management
- Verify your cross-link rule is active at Marketing → Cross-Links
- Enable debug mode and check
var/log/debug.logfor replacement activity
Common Issues
Issue: Cross-links not appearing on the page
Symptoms:
- Keyword exists in the content but no link is generated
- Page renders normally without any cross-links
Solution:
- Verify the module is enabled in General → Enabled
- Verify the entity type is enabled (e.g., Products → Enable for Products)
- Check that the cross-link rule is Active and the keyword is correct
- Confirm the rule's Store Views includes the store you're viewing
- Flush all caches:
bin/magento cache:flush - Enable debug mode and check
var/log/debug.logfor messages
Prevention:
- Always flush cache after making configuration or rule changes
- Double-check store view assignments when creating rules
Issue: Cross-links not appearing on Hyva homepage or template content
Symptoms:
- Cross-links work on product pages and CMS pages, but not on the Hyva default homepage
- Content rendered by
.phtmltemplates doesn't get cross-links
Solution: This is expected behavior, not a bug. The module replaces keywords in content that passes through Magento's CMS template filter:
- Product descriptions (rendered via
Magento\Catalog\Helper\Output) - Category descriptions (rendered via
Magento\Catalog\Helper\Output) - CMS page and block content (rendered via
Magento\Cms\Model\Template\Filter)
Content hardcoded in .phtml templates (like the Hyva default homepage hero section) does not pass through these filters and cannot be processed.
Workaround:
- Move content from
.phtmltemplates into CMS blocks or CMS pages - Use CMS block widgets in your layout XML instead of hardcoded templates
Issue: Keyword is matched but too many or too few links appear
Symptoms:
- A keyword is replaced more times than expected
- A keyword is only replaced once when you expected more
Solution:
- Check the rule's Max Replacements setting — this limits replacements per keyword per page
- Check the entity type's Max Links Per Page setting — this limits total links across all rules
- A Max Replacements of 0 means unlimited (up to the page-level max)
- Remember that higher-priority rules consume the page-level limit first
Prevention:
- Set clear max replacements per rule (1 is recommended for most cases)
- Set reasonable page-level limits (5-10 for most pages)
Issue: Wrong keyword gets linked when keywords overlap
Symptoms:
- Rule for "yoga mats" exists but "yoga" gets linked instead
- Shorter keyword takes precedence over longer, more specific one
Solution:
- Set higher priority on the longer/more specific keyword
- The module processes rules by priority DESC, then keyword length DESC
- "yoga mats" with priority 10 will match before "yoga" with priority 5
- With equal priority, longer keywords match first automatically
Prevention:
- Always give longer, more specific keywords equal or higher priority than shorter ones
- Review rule priorities when adding new keywords that overlap with existing ones
Issue: Cross-link appears inside an HTML tag or breaks page layout
Symptoms:
- Link is inserted inside an attribute value
- Page layout breaks after enabling cross-links
Solution:
The module uses word boundary matching and skips content inside HTML tags and existing <a> tags. If you're seeing broken HTML:
- Check if the keyword appears in an unusual context (e.g., inside inline JavaScript or CSS)
- Verify the content doesn't have malformed HTML that confuses the parser
- Disable the rule temporarily and check if the page renders correctly
Prevention:
- Avoid keywords that commonly appear in code or attribute values
- Use multi-word keywords instead of single generic words
Issue: Cross-links not appearing after changing configuration
Symptoms:
- Changed settings but the page still shows old behavior
Solution:
- Flush full page cache:
bin/magento cache:flush full_page - Flush block HTML cache:
bin/magento cache:flush block_html - Or flush all caches:
bin/magento cache:flush - Hard-refresh your browser (Ctrl+Shift+R / Cmd+Shift+R)
Prevention:
- Always flush cache after any configuration change
- Remember that Varnish or CDN caches may also need purging
Issue: Cross-links work on one store view but not another
Symptoms:
- Links appear on the default store but not on a secondary store view
- Same keyword works for one store but is ignored on another
Solution:
- Check the rule's Store Views setting — it may be assigned to specific stores
- Verify the entity type is enabled for the affected store view (configuration is per-store)
- Check that the content actually contains the keyword on the other store (translated content won't match English keywords)
- Flush cache for all store views:
bin/magento cache:flush
Prevention:
- Use "All Store Views" for universal rules (brand names, product codes)
- Create separate rules per store view for translated keywords
- Use the CLI preview command with
--store-idto test per-store:
bin/magento magmodules:crosslinking:preview --entity-type=product --entity-id=42 --store-id=2
Issue: Cross-links stopped working after module update
Symptoms:
- Cross-links were working before but stopped after updating the module
- No error messages in logs
Solution:
- Run
bin/magento setup:upgradeto apply any database changes - Run
bin/magento setup:di:compileto regenerate dependency injection - Flush all caches:
bin/magento cache:flush - Verify configuration — new versions may add settings that need to be configured (e.g., per-entity-type enable toggles)
Prevention:
- Always run setup:upgrade after updating any Magento module
- Check the CHANGELOG for breaking changes before updating
CLI Preview Tool
Use the preview command to debug replacement issues without visiting the frontend:
bin/magento magmodules:crosslinking:preview --entity-type=product --entity-id=42
This shows the exact before/after output of the replacement engine. Useful for:
- Verifying which keywords match and which don't
- Testing priority and overlap behavior
- Checking store-scoped rules with
--store-id - Confirming max replacements and max links limits
Debug Mode
Enabling Debug Mode
Navigate to: Stores → Configuration → Magmodules → Cross-Linking → Debug & Logging
Set Debug Mode to Yes and save.
Log Location
Debug logs: var/log/debug.log
Error logs: var/log/error.log
What to Look For
When debug mode is enabled, the module logs:
- Which keywords were replaced and how many times
- Which store view the replacement occurred on
- Any errors loading cross-link rules
Example log entry:
[Replacer] Replaced "yoga" 1 time(s) in store 1
If you don't see any log entries when visiting a page with matching keywords, the module's filter is not being triggered for that content type.
Self-Test
Use the built-in self-test at Debug & Logging → Self-Test to check:
- Module enabled status
- PHP version compatibility
- Magento version compatibility
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.