Friendly URLs and redirects

Every product, category, brand, collection, vendor, page, blog post, news item, course and knowledgebase article has a search engine friendly name - the readable part of its address, such as /aurora-room-portable-speaker. GrandNode creates it from the name, and you can change it on the item's SEO tab.

How names are built

  • The name is lower-cased, spaces become hyphens and characters that do not belong in an address are removed.
  • With Convert non-western chars, letters such as ą, ö or ß are converted to their Latin equivalents (a, o, ss). With Allow Unicode chars in URLs they are kept. Both are in the SEO settings.
  • Names are unique across all types: if speakers is taken, the next one becomes speakers-2.
  • With several languages and SeoFriendlyUrlsForLanguagesEnabled in appsettings.json, addresses get a language prefix (/de/...) and each language can have its own name.

Renaming keeps old links working

When you change a friendly name, the old one is kept as inactive and answered with a permanent (301) redirect to the new address. Search engines move the page's ranking to the new address and old links keep working.

All friendly names

Configuration → Search engine friendly names lists every name with the type of item, whether it is active and its language. Search it to find which item owns an address, and delete old inactive names you no longer want redirected.

The SEO Names list with names such as aboutus, aurora-audio and aurora-room-portable-speaker, the entity type, active flag and language
Configuration → Search engine friendly names.

Redirects after a migration

When you move to GrandNode from another platform, the old addresses (for example /index.php?route=product&id=42) should redirect to the new ones. Two options:

  • Use the old address as the new friendly name where the format allows it.
  • Add rewrite rules to App_Data/UrlRewrite.xml and set UrlRewrite:UseUrlRewrite to true in appsettings.json. The file uses the IIS URL Rewrite format; it ships with an example rule that redirects www. to the address without it.
<rule name="OldProduct42" stopProcessing="true">
  <match url="^product/42$" />
  <action type="Redirect" url="/aurora-room-portable-speaker" redirectType="Permanent" />
</rule>

Tips

  • Short, descriptive names without stop words work best: /oak-dining-table, not /the-best-oak-dining-table-for-your-home-2026.
  • Choose www or non-www once and redirect the other; mixing them splits your ranking.

Question not answered here? Ask the community on GitHub Discussions ↗