diniscruz.ai / engineering / migration

Moving from docs.diniscruz.ai

The research and essays used to live at docs.diniscruz.ai, an MkDocs Material site. It never ranked well. The content sat on a subdomain rather than the name people search for, the pages carried little structured data, and many had no description. So the content has moved here, to the domain that carries the name.

Every URL keeps its path

The old site used use_directory_urls: false, so every page was a plain .html file, and this site keeps exactly those paths. Moving the host is the only change:

OldNew
docs.diniscruz.ai/2025/06/07/<slug>.htmldiniscruz.ai/2025/06/07/<slug>.html
docs.diniscruz.ai/research/<topic>.htmldiniscruz.ai/research/<topic>.html
docs.diniscruz.ai/resources/presentations.htmldiniscruz.ai/resources/presentations.html
docs.diniscruz.ai/about.htmldiniscruz.ai/about/index.html (a redirect page stays at /about.html)
docs.diniscruz.ai/feed_rss_created.xmlSame path, plus diniscruz.ai/feed.xml

The PDFs, audio and slides stay where they were, on files.diniscruz.ai. The markdown sources are copied under content/ in this repository, with front matter unchanged.

What changed for search

Retiring the old host

  1. Best option, if the DNS is on Cloudflare: a bulk redirect rule docs.diniscruz.ai/* → https://diniscruz.ai/${1} with status 301. That is a real permanent redirect, and all ranking signals pass through.
  2. Otherwise (GitHub Pages only): run python3 admin/migration/make_redirect_stubs.py <dir> and publish its output as the docs.diniscruz.ai site. Every old URL becomes a page with a canonical link to its new URL, an instant meta refresh and a JS redirect, which Google treats as a permanent move. A 404.html catch-all covers anything else.
  3. In Google Search Console, verify diniscruz.ai and submit https://diniscruz.ai/sitemap.xml. With 301s in place, also file a change of address from the old property.
  4. Update the links that point at the old host: LinkedIn profile and posts, the sgit.ai and open-source.sgit.ai author pages, and the GitHub profile.

Order matters: switch docs.diniscruz.ai to redirects only after this site is live on diniscruz.ai and the new URLs return 200.