Context
The site currently deploys to GitHub Pages, which cannot serve real HTTP redirects. All legacy-URL redirects work via client-side meta-refresh:
- Hugo
aliases: frontmatter (generates meta-refresh stub pages), and
- one hand-written stub at
static/docs/installation/desktop/index.html (needed because it targets an anchor fragment, which Hugo aliases can't do).
Meta-refresh is a weak canonicalization signal, so search engines tend to keep the old URLs indexed. When the site moves to its own hosting, we can and should serve proper 301 Moved Permanently responses instead.
Task
When migrating off GitHub Pages:
Redirect table (current, from aliases: + static stub)
| From |
To |
301 status |
/docs/installation/ |
/docs/how-to/ |
|
/docs/installation/desktop/ |
/docs/how-to/connect-claude/#claude-desktop |
fragment OK in Location header |
/docs/installation/web/ |
/docs/how-to/connect-chatgpt-to-anki/ |
|
/docs/installation/mcp-clients/ |
/docs/how-to/connect-mcp-clients/ |
|
/docs/how-to/connect-claude-web/ |
/docs/how-to/connect-claude/ |
|
/docs/how-to/connect-claude-desktop/ |
/docs/how-to/connect-claude/ |
|
/docs/how-to/connect-claude-code/ |
/docs/how-to/connect-claude/ |
|
/docs/prompts/ |
/docs/how-to/anki-ai-prompts/ |
|
/docs/image-flashcards/ |
/docs/how-to/add-images-to-cards/ |
|
/docs/audio-flashcards/ |
/docs/how-to/add-audio-to-cards/ |
|
/docs/known-issues/ |
/docs/how-to/troubleshooting/ |
|
/docs/known-issues/viewing-notes-blocks-updates/ |
/docs/how-to/troubleshooting/ |
|
/docs/concepts/anki-on-premise/ |
/docs/hosted-anki/ |
added on docs-rewrite branch |
Note: regenerate this table from the aliases: frontmatter at migration time in case more aliases were added since this issue was filed (grep -r "aliases:" content/).
Why it matters
Several of the legacy URLs above still receive meaningful organic search traffic. With meta-refresh they keep working for users, but proper 301s let search engines consolidate ranking signals onto the canonical pages and are the standard, safe way to preserve SEO through a hosting migration.
Context
The site currently deploys to GitHub Pages, which cannot serve real HTTP redirects. All legacy-URL redirects work via client-side meta-refresh:
aliases:frontmatter (generates meta-refresh stub pages), andstatic/docs/installation/desktop/index.html(needed because it targets an anchor fragment, which Hugo aliases can't do).Meta-refresh is a weak canonicalization signal, so search engines tend to keep the old URLs indexed. When the site moves to its own hosting, we can and should serve proper
301 Moved Permanentlyresponses instead.Task
When migrating off GitHub Pages:
_redirects— whichever the new host uses), kept in version control in this repo, not only in a hosting dashboard.aliases:frontmatter as the source of truth (harmless belt-and-suspenders; the server rules take precedence)./foo/→index.html; the new host must not introduce/foo↔/foo/redirect chains).404status (not a 200 "soft 404").Redirect table (current, from
aliases:+ static stub)/docs/installation//docs/how-to//docs/installation/desktop//docs/how-to/connect-claude/#claude-desktopLocationheader/docs/installation/web//docs/how-to/connect-chatgpt-to-anki//docs/installation/mcp-clients//docs/how-to/connect-mcp-clients//docs/how-to/connect-claude-web//docs/how-to/connect-claude//docs/how-to/connect-claude-desktop//docs/how-to/connect-claude//docs/how-to/connect-claude-code//docs/how-to/connect-claude//docs/prompts//docs/how-to/anki-ai-prompts//docs/image-flashcards//docs/how-to/add-images-to-cards//docs/audio-flashcards//docs/how-to/add-audio-to-cards//docs/known-issues//docs/how-to/troubleshooting//docs/known-issues/viewing-notes-blocks-updates//docs/how-to/troubleshooting//docs/concepts/anki-on-premise//docs/hosted-anki/docs-rewritebranchWhy it matters
Several of the legacy URLs above still receive meaningful organic search traffic. With meta-refresh they keep working for users, but proper 301s let search engines consolidate ranking signals onto the canonical pages and are the standard, safe way to preserve SEO through a hosting migration.