Case study: WordPress to Astro and Cloudflare Workers — crawling, response time and indexing after the move
kk.coach moved from WordPress to static Astro pages on Cloudflare Workers. Googlebot sent 136 requests on launch day, response time fell from 411 to 129 ms, and 37 of 40 sitemap URLs reached search in 24 days.

24 days after launch, 37 of the new site’s 40 sitemap URLs had appeared in Google, while the response time Googlebot measured fell from 411 ms to 129 ms.
kk.coach had no meaningful organic traffic before the move, and it still doesn’t: in the 24 days since launch, Google sent four clicks. So this article measures something else: how Google reacted to the move.
The usual fear with a migration is that old URLs lose their rankings and the new ones go unnoticed for weeks. I wanted to know three things: how long it takes Google to find and process the new site, how much it has to download to do so, and how fast it gets a response.
The technology and the content changed at the same time. I rewrote every page, in English and in Hungarian. The numbers can’t separate how much of the result comes from faster delivery and how much from better content.
The starting point: the old WordPress site
The old site ran on WordPress with the GeneratePress theme, one of the fastest WordPress themes. It had caching and the usual plugins, and it was reasonably fast.
In the 39 days from July 24 to August 31, Googlebot sent an average of 19 requests a day. Each request downloaded 30 KB on average, and the median of the daily average response times was 411 ms. The site got 4 impressions a day in search, and in the 66 days from July 24 to September 27, a total of 17 URLs appeared at least once.
In September, Googlebot almost stopped. Between September 1 and 27 it sent an average of 5 requests a day, and none at all on 12 days. I don’t know why. I don’t use this period for comparison, because it would make the difference look bigger than it is.
What changed
The new site is built with Astro and runs on a Cloudflare Worker. Every page ships as finished HTML with no client-side JavaScript rendering, so Googlebot gets the full text on the first download. There are 42 pages, 21 in English and 21 in Hungarian. 40 of them are in the sitemap; the two thank-you pages are noindex.
Most URLs changed. I sorted the 111 URLs from a June crawl of the old site into three groups: 29 got a 301 redirect to a new page, 5 kept the same address, and the 77 WordPress leftovers (feeds, the author page, uploads and the like) return 404. There are 80 redirect rules.
Launch day
The new site went live on September 28, 2026, at 2:56 p.m. Budapest time.
The first attempt, at 2:09 p.m., used a custom domain and failed: Cloudflare won’t overwrite an externally managed apex A record, and that’s what the old site ran on. The second attempt was a zone route on the Worker (kk.coach/*), and it worked. DNS didn’t need to change. The A record points to the same place as before; the route just sits in front of it. Rolling back would have meant deleting the route.
The day before, Googlebot sent two requests. On launch day it sent 136. The report is daily, so it can’t be broken down by hour, but in the WordPress period no single day had more than 49 requests. Googlebot started crawling the redirects and the new URLs the same day.
What Googlebot measured
| Metric | WordPress (Jul 24 – Aug 31) | Astro (Sep 28 – Oct 20) |
|---|---|---|
| Requests per day | 18.8 | 30.3 |
| Download per request | 30.4 KB | 11.8 KB |
| Response time (median of daily averages) | 411 ms | 129 ms |
| Impressions per day | 3.8 | 25.1 |
Response time and download size are Googlebot’s own measurements, from the Crawl stats report in Search Console. The requests include HTML, CSS, images and other files, and the figures are averages across all of them.
The first two days push the daily request count up. Counting from September 30, it’s 24 requests a day, slightly more than under WordPress. The bigger change is in the other two rows: each request carries 40% of the data it used to, and gets a response three times faster.
Between October 13 and 15, response time rose to 250–270 ms, then fell back to 100–150 ms.
When each page appeared in search
The Search Console API doesn’t report index counts, but only an indexed URL can get an impression. So I counted when each of the 40 sitemap URLs got its first impression:
- on launch day, 3 (the two home pages and the English contact page, whose URLs didn’t change);
- on day 5 (October 3), 17;
- on day 7 (October 5), 20, half of them;
- on day 17 (October 15), 35; ten new URLs appeared that day, including all five Hungarian articles;
- by October 21, 37.
As of October 16, the Page indexing report showed 40 indexed URLs: 36 from the new site and 4 from the old one. Googlebot last crawled all 36 new URLs between September 29 and October 17, every one of them after launch. The GEO page got its first impression on October 21, so it has been indexed since then too, which makes 37 of 40.
Three pages aren’t in yet: the two technical SEO pages (English and Hungarian) and the /perspective/ archive.
Twelve old URLs still got impressions after launch, mostly in the first few days. Google was still showing the old address, and the redirect took the visitor to the new page. None of them has had an impression since October 16. Four old URLs are still in the index. Googlebot last crawled each of them before launch, and the next time it visits, it will see the redirect.
What the numbers don’t show
Impressions grew more than sixfold; clicks didn’t: four in 24 days. The average position is around 28, because the site now shows up for many queries where it sits on pages two to five. The English article about my own SERP tracker gets the most impressions (250, average position 12.7), followed by the Hungarian SEO consulting page (153, average position 47). The best average position belongs to the article on AI search and the B2B buyer journey, at 2.6, but with only 39 impressions.
For a 40-page site, crawl budget isn’t a bottleneck; Google would have crawled the old site as well. A faster response and a smaller download make crawling cheaper, but the fact that Google showed almost every page within 24 days doesn’t mean speed caused it. What I can say for sure: there was no weeks-long gap after the move, and on launch day Googlebot was already crawling the new structure.
The preparation
I spent at least two months planning and building the site, and AI wrote the code. The launch itself took one afternoon, because everything else was ready by then:
- I built the redirect map from a crawl of the old site and from Search Console data. Right after launch a check ran: all 80 rules return a 301, and every target returns a 200.
- The old hosting stayed, because email still runs on it. Before launch I checked that mail didn’t depend on the apex record.
- With the route, rolling back would have been one step. It wasn’t needed.
I’d do it the same way next time.
What’s next
I’ll measure again at 90 days, at the end of December. By then there will be something to say about clicks and rankings as well.