How we moved a 480-post Blogger recipe site to self-hosted WordPress with every URL, image, comment thread and top-10 ranking intact — with the exact redirect map, image import commands, and 30-day traffic outcome.
Client: Family-run recipe blog, 6 years on Blogger (BlogSpot subdomain, later mapped to a custom .com) · 480 published posts, ~9,200 comments, 145k monthly organic sessions.
Constraint: Owner refused to accept even a 5% traffic drop — the site is her income and one recipe alone drives 22k monthly visits from Google.
Resolution window: 4 days for the full cutover · 30-day traffic verification.
Why the Move — and Why It Scares Most Owners
The owner had outgrown Blogger’s ceiling. She wanted a recipe schema plugin, a proper email list, WooCommerce for a small cookbook launch, and design freedom Blogger doesn’t offer. What kept her stuck for two years was the same fear I hear on every migration call: "What if I lose my Google rankings?" That fear is rational — a botched Blogger→WordPress move is one of the fastest ways to erase years of SEO equity, because the URL patterns, feed structure, and comment system all shift at once.
What Blogger Gets Right — and What Trips You Up
- Blogger post URLs follow
/YYYY/MM/post-slug.html. WordPress defaults to /YYYY/MM/DD/post-slug/. A naïve import breaks every backlink and every internal recipe pin on Pinterest.
- Blogger comments live on Google’s side. If you export to WordPress without a plan, threads collapse and reply chains lose their parent references.
- Blogger’s
picasaweb/googleusercontent image URLs keep working after export — until Google eventually rotates them and half your posts show broken images. Every image must be pulled to your own media library.
- Blogger’s auto-generated Atom feed sits at
/feeds/posts/default. If your readers subscribe via RSS, that feed needs a permanent redirect too.
Pre-Cutover: Baseline Everything
Before I touched a single setting, I recorded a full baseline so we could measure whether the move actually preserved traffic. This step is skipped by 90% of DIY migrations, and it’s the exact reason those owners can’t tell whether a post-migration dip is real or noise.
- Full Search Console export: top 500 pages by clicks and impressions for the trailing 90 days.
- GA4 pull: sessions, engaged sessions, average engagement time per landing page.
- A crawl of every published Blogger URL using Screaming Frog, saved with HTTP status, title, meta, and word count.
- An
archive.org snapshot of the top 20 posts, so we had a visual reference if any layout regression slipped through.
The Import: Step by Step
1. Export from Blogger
Blogger’s Settings → Manage blog → Back up content produces an XML dump of every post, page, and comment. On sites with heavy media I download it twice a few minutes apart and diff the file sizes as a sanity check — Blogger’s export occasionally truncates on very large blogs.
2. Fresh WordPress install with the right permalink structure
The trick almost nobody documents: set permalinks before the import to /%year%/%monthnum%/%postname%/ so the imported posts land at URLs that match the Blogger pattern minus the trailing .html. That leaves us just one redirect rule to write instead of hundreds.
3. Run the Blogger importer, then verify counts
WordPress’ official Blogger importer handles posts, comments, and comment threading if you feed it the export XML. After import I always run WP-CLI to confirm the counts match Blogger’s own numbers — because silent partial imports are the number one reason recovery calls exist.
wp post list --post_type=post --format=count
wp comment list --format=count
wp comment list --status=approve --format=count
We had 480 posts on Blogger and 480 on WordPress. Comments came in at 9,187 vs. the Blogger dashboard’s 9,204 — a 17-comment gap. Investigation showed they were all on a single deleted post that had left orphaned comments in Blogger’s export. Documented and moved on.
4. Pull every image to the WordPress media library
This is the step that saves the site 18 months later. Blogger post bodies point at *.googleusercontent.com URLs; over time Google rotates those, and posts silently break. I used the Auto Upload Images plugin scoped to a WP-CLI batch, then re-ran the search-replace to swap external URLs for local ones:
wp media regenerate --yes
wp search-replace 'https://blogger.googleusercontent.com/img/' 'https://recipeblog.com/wp-content/uploads/' --precise --dry-run
4,318 images imported and rewritten. Total media library size: 6.2 GB after WebP conversion.
5. The redirect map that saved the SEO
Because we set permalinks correctly up front, the entire Blogger URL space folded down to a single Nginx rule for the .html stripping, plus a handful of one-off maps for label pages and the feed:
# strip trailing .html on any /YYYY/MM/slug.html
rewrite ^/([0-9]{4})/([0-9]{2})/([^/]+)\.html$ /$1/$2/$3/ permanent;
# Blogger labels -> WordPress categories
rewrite ^/search/label/([^/]+)/?$ /category/$1/ permanent;
# preserve RSS subscribers
rewrite ^/feeds/posts/default/?$ /feed/ permanent;
rewrite ^/feeds/comments/default/?$ /comments/feed/ permanent;
I re-ran the Screaming Frog crawl against the new WordPress site using the old URL list. Every URL returned 301 to the correct new location. Zero 404s.
6. Recipe schema, sitemap, and Search Console re-verification
We installed WP Recipe Maker on top of the imported content and mapped the existing recipe blocks into structured data. Rank Math generated a fresh sitemap. In Search Console we kept the old property active (still receiving the redirected hits) and added a new property for the WordPress install, then submitted the new sitemap and requested indexing on the top 20 posts individually.
Cutover Day: DNS Flip in the Quiet Window
DNS was flipped at 2 AM local time — her lowest-traffic window from GA4. Because we’d dropped TTL to 300 seconds 24 hours earlier, propagation was effectively complete inside 15 minutes. I sat with her on WhatsApp for the first two hours after cutover, hitting the top 10 posts on desktop and mobile, and watching real-time analytics for any anomaly.
The 30-Day Traffic Verdict
- Week 1: Organic sessions -6% vs. the prior 4-week average. Expected — Google was crawling and re-scoring redirects.
- Week 2: -2%. Almost all redirected URLs now indexed at the new location.
- Week 3: +1%. First recipe-schema rich results appeared, which had not been possible on Blogger.
- Week 4: +11%. The site was now benefiting from faster page-load (TTFB 380ms vs. Blogger’s ~900ms) and the new schema markup.
- Comment engagement: +34% in the first month — likely because the WordPress comment form is faster and simpler than Blogger’s Google-login-gated form.
What Would Have Broken This Migration
- Skipping the permalink pre-config: would have forced a 480-entry redirect map instead of one rewrite rule.
- Leaving images on
googleusercontent.com: would have looked fine for months, then silently degraded.
- Not preserving the RSS feed URL: email newsletters using RSS-to-email (Mailchimp, Kit) would have stopped delivering with no error, just silence.
- Deleting the Blogger site immediately: Blogger still handles the very first hit on a legacy backlink faster than the new server in some geographies during the DNS transition — keep the Blogger install alive but with a site-wide redirect for at least 60 days.
Migration Checklist to Copy
- Baseline crawl + Search Console + GA4 export before anything moves.
- Drop DNS TTL to 300 seconds 24 hours before cutover.
- Set the WordPress permalink structure to
/%year%/%monthnum%/%postname%/ before importing.
- Import posts and comments, verify counts with WP-CLI, document any gaps.
- Pull every image local, regenerate thumbnails, run search-replace.
- Write the redirect rules for post URLs, label pages, feed, and comment feed.
- Test every top-100 URL against a fresh crawl; expect
301, not 200, from the old paths.
- Keep the Blogger install alive with a site-wide redirect for 60 days.
- Re-verify the new property in Search Console; submit sitemap; watch coverage daily for 14 days.
Thinking About the Same Move?
Blogger→WordPress is one of the highest-stakes migrations you can run on a content site because the URL and comment structures shift at once. Done right it unlocks years of growth headroom. Done wrong it deletes years of SEO equity overnight.
If you are ready to move — or already halfway through and something has gone sideways — message me on WhatsApp for a free 20-minute assessment. I will pull a crawl of your current Blogger URLs, tell you exactly how many redirect rules the move will need, and give you a fixed-price quote before any migration work starts.