Rebill: SEO website migration from Webflow to Astro
seodraft led the technical build and the SEO strategy of Rebill's new site, in English, Spanish and Portuguese.
- Move
- Webflow to Astro + Sanity
- Languages
- English, Spanish and Portuguese
- URLs mapped
- 686
- Post-launch check
- 828 URLs, 0 failures
See the site: www.rebill.com
Starting point
Webflow, with a Weglot proxy serving English and Portuguese from a Spanish original.
| Area | What was measured |
|---|---|
| Sitemap | 137 URLs, all in Spanish. The English and Portuguese pages were not declared. |
| hreflang | Written by hand on each page, with no x-default. The 83 blog posts had none. |
| Translations | About 92% of English segments and 96% of Portuguese ones were machine translations. |
| Structured data | Mostly injected with JavaScript. A site-wide FAQ script emitted nothing, and the blog's Article dates were invalid. |
| Redirects | 103 legacy rules. 37 pointed to pages that returned 404. |
| Images | 6,207 image references on the Webflow CDN. |
URL decisions
Every URL in the inventory got a written decision, and Rebill approved the full list.
| Decision | URLs |
|---|---|
| Keep | 198 |
| Improve | 117 |
| Keep the existing redirect | 95 |
| Retire | 40 |
| Consolidate | 15 |
| Improve later | 1 |
| Out of scope (other subdomains) | 220 |
| Total | 686 |
The inventory crossed 7 sources: the Webflow API, the published sitemap, the pages Search Console reported, the redirect export, the CMS hreflang fields, the Weglot export and a crawl of the hreflang tags.
The pages marked improve hang from 10 hubs, 6 commercial and 4 editorial, and none of the 117 is orphaned: each one is linked from a hub or from another page.
What we built
A static Astro site with 18 templates, and Sanity as the CMS.
Three languages
- English at the root, Spanish under /es and Brazilian Portuguese under /pt.
- One entity and one slug per piece, shared by the three languages.
- Reciprocal hreflang and x-default, generated at build time and repeated in the sitemap.
- Translations from the old site, published on the new one.176 of 177
Sanity for the editorial team
- Sanity Studio with a menu per language and an “Idiomas” tab that lists each language version of a page.10 document types
- An illustrated guide to Studio, written for Rebill's editorial team.
- Images moved from the Webflow CDN to Sanity's. The build fails if a Webflow image comes back.422 images
Redirects
- Old URLs sent to their new address in one hop.445 × 301
- Retired URLs answered as gone.6 × 410
- The build fails on any chain, any loop, or a 301 to a page that does not exist.0 chains
Technical SEO in the build
- All JSON-LD written into the HTML at build time: Organization, Article, BreadcrumbList, FAQPage from the questions each page shows, and CollectionPage on the hubs.
- Titles and descriptions kept identical to the old site.314 pages, 0 differences
- One H1 per page, enforced by the build.
- Utility pages set to noindex, and a real 404 for pages that do not exist.
Results
On launch day, a check against www.rebill.com requested 828 URLs and found 0 failures.
| Expected answer | URLs | Failures |
|---|---|---|
| Page (200) | 346 | 0 |
| Redirect in one hop (301) | 445 | 0 |
| Gone (410) | 6 | 0 |
| Not found (404) | 30 | 0 |
| Sitemap file, no rule declared (answered 200) | 1 | n/a |
| Total | 828 | 0 |
| Page | New site | Webflow |
|---|---|---|
| Home (English) | 98 | 71 |
| Home (Spanish) | 99 | 77 |
| Pricing | 92 | 84 |
| Product landing page | 78 | 71 |
| Blog index | 100 | 38 |
| Blog post | 99 | 81 |
| Glossary | 100 | 87 |
| Client case study | 95 | 79 |
On the blog index, mobile LCP was 1.5 s against 4.4 s, and the page weighed 5,684 KB against 15,487 KB.
Search results are not reported yet. Search Console data will be added here once it is measured.
What Rebill owns
Every part of the new site lives in Rebill's own accounts.
| Part | Where it lives |
|---|---|
| Code | Rebill's GitHub |
| Hosting | Rebill's Vercel |
| CMS | Rebill's Sanity account |
How we worked
Two repositories: one for the decisions and their evidence, one for the build.
- Claude Code agents worked under written rules, such as never promising rankings and never inventing data about the client's site.
- Written briefs turned approved decisions into pull requests.46 merged
Related services
Rebill's project was larger than SEO Foundation: a full-site migration in three languages, with a CMS for an editorial team.
SEO Foundation applies the same method to a blog, with a fixed scope. SEO Operated is the monthly work that follows.
Rebill's site was custom work, built without the seodraft product.
USD 750 · One-time payment
The setup and the method: pages mapped, decisions written down, technical SEO in the code.
USD 500/month · 3-month minimum · Requires SEO Foundation
The monthly phase: what to publish next, read from Search Console.