Skip to content

[UX][P2] Add locale-prefix and legacy-route redirects for common direct-entry tool URLs #327

Description

@baixiangcpp

User-facing finding

Visual browser audit on 2026-07-01 found direct-entry route confusion:

  • https://byteflow.tools/qr-code-generator shows the generic Page not found screen instead of redirecting to /en/qr-code-generator or the preferred locale route.
  • https://byteflow.tools/en/csv-to-json shows Page not found, while the actual tool is /en/csv-json-converter.

Why this matters

Users often paste, guess, or share direct tool URLs. A privacy-first utility site should be forgiving for predictable paths, especially for high-intent tool names and legacy/SEO-style slugs.

A 404 at this stage feels like the tool is missing, even when the catalog contains the tool under a slightly different slug.

Recommended implementation

Add a generated redirect/alias registry for:

  • no-locale tool paths -> preferred/default locale tool path;
  • obvious legacy aliases -> canonical tool slugs;
  • common naming variants such as csv-to-json -> csv-json-converter;
  • route aliases should preserve query strings and hashes.

Keep this static-export compatible. If runtime redirect scripts are used, they should run before users see the 404 shell.

Acceptance criteria

  • /qr-code-generator redirects to the locale-aware QR tool route.
  • /json-formatter, /base64-encode-decode, and other high-traffic direct tool paths redirect to locale-aware routes.
  • /en/csv-to-json redirects to /en/csv-json-converter or another clearly canonical CSV/JSON route.
  • Query string and hash fragments are preserved.
  • Add a route/legacy redirect guard so new aliases stay synchronized with the generated tool index.

Related

This complements the first-load/locale audit in #320, but should be tracked separately because it is a direct route-resolution/404 issue rather than only a flicker or layout-shift issue.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions