Complete Blogger to GitHub Pages Migration Guide
Complete Blogger to GitHub Pages Migration Guide
Step-by-Step Instructions
Part 1: Export Your Blogger Content
- Open your web browser and go to www.blogger.com
- Sign in with your Google account
- Select your Positive Lifes blog from the dashboard
- Click on Settings in the left sidebar
- Scroll down and click on Other
- Under “Import & back up”, click the Back up content button
- Save the XML file to your computer (it will be named something like
blog-MM-DD-YYYY.xml)
Part 2: Set Up Your Local Environment
Install Prerequisites (if not already installed)
On Windows:
- Install Python from python.org
- Install Ruby from rubyinstaller.org
- Install Git from git-scm.com
On Mac:
# Install Homebrew if not installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install Python, Ruby, and Git
brew install python ruby git
On Linux (Ubuntu/Debian):
sudo apt update
sudo apt install python3 ruby-full git build-essential
Part 3: Clone and Set Up Repository
Open Terminal (Mac/Linux) or Command Prompt (Windows):
# Clone the repository
git clone https://github.com/MyRechargeHub1/POSITIVE_LIFES.git
# Navigate into the directory
cd POSITIVE_LIFES
# Switch to the migration branch
git checkout claude/migrate-blogger-github-pages-01LbKUXZBQXquk4kxcyATC2J
# Install Ruby dependencies
gem install bundler
bundle install
Part 4: Convert Blogger Posts to Jekyll
# Run the conversion script
# Replace "path/to/blog-export.xml" with your actual file path
python3 blogger_to_jekyll.py ~/Downloads/blog-MM-DD-YYYY.xml
# Example:
# python3 blogger_to_jekyll.py ~/Downloads/blog-01-15-2024.xml
What the script does:
- Reads your Blogger XML export
- Extracts all blog posts (ignoring comments and settings)
- Converts HTML content to Markdown
- Creates properly formatted Jekyll posts in the
_posts/directory - Preserves dates, titles, tags, and author information
You should see output like:
Parsing blog-01-15-2024.xml...
Created: 2024-01-15-your-post-title.md
Created: 2024-01-14-another-post.md
...
✓ Conversion complete!
Posts created: 254
Items skipped: 12
Output directory: _posts
Part 5: Review the Converted Posts
# View the created posts
ls -l _posts/
# Test the site locally
bundle exec jekyll serve
Open http://localhost:4000 in your browser to preview your site!
Check for:
- Post titles are correct
- Dates are preserved
- Images are displaying (you may need to update image URLs)
- Formatting looks good
- Tags are assigned properly
Part 6: Fix Images (if needed)
If your Blogger images aren’t loading, you have two options:
Option A: Keep Blogger-hosted images (easiest)
- Images should work automatically if they’re on Blogger’s CDN
- URLs like
https://blogger.googleusercontent.com/...will continue to work
Option B: Download and host images on GitHub
# Create images directory
mkdir -p assets/images
# Manually download images from Blogger and place in assets/images/
# Then update image URLs in your posts from:
# 
# To:
# 
Part 7: Commit and Push Changes
# Stage all the new posts
git add _posts/
# Commit with a descriptive message
git commit -m "Import 254 blog posts from Blogger
- Converted from Blogger XML export
- All posts with original dates preserved
- Tags and categories maintained
- Ready for GitHub Pages deployment"
# Push to GitHub
git push origin claude/migrate-blogger-github-pages-01LbKUXZBQXquk4kxcyATC2J
Part 8: Create Pull Request and Merge
- Go to https://github.com/MyRechargeHub1/POSITIVE_LIFES
- You’ll see a banner saying “Compare & pull request” - click it
- Review the changes
- Click “Create pull request”
- Add a description like “Complete Blogger migration with all posts”
- Click “Merge pull request”
- Confirm the merge
Part 9: Enable GitHub Pages
- Go to repository Settings tab
- Scroll down to Pages section (in the left sidebar)
- Under “Source”:
- Branch: Select
main - Folder: Select
/ (root) - Click Save
- Branch: Select
- Under “Custom domain”:
- Enter:
www.positivelifes.com - Click Save
- Check “Enforce HTTPS” (may take a few minutes to become available)
- Enter:
Part 10: Configure DNS for Custom Domain
Go to your domain registrar (where you purchased positivelifes.com):
Add these DNS records:
Type: A
Name: @
Value: 185.199.108.153
Type: A
Name: @
Value: 185.199.109.153
Type: A
Name: @
Value: 185.199.110.153
Type: A
Name: @
Value: 185.199.111.153
Type: CNAME
Name: www
Value: myrechargehub1.github.io
DNS propagation takes 24-48 hours, but often works within a few hours.
Part 11: Verify Deployment
After GitHub Actions completes (check the Actions tab):
- Visit: https://myrechargehub1.github.io/POSITIVE_LIFES
- Once DNS is configured, visit: https://www.positivelifes.com
Your site should be live! 🎉
Troubleshooting
“Python not found” error
- Windows: Make sure Python is in your PATH
- Mac/Linux: Use
python3instead ofpython
“Bundle command not found”
gem install bundler
“Permission denied” error
# On Mac/Linux, you may need sudo:
sudo gem install bundler
Posts not showing up
- Check the date in your post filename is not in the future
- Ensure posts are in
_posts/directory - Make sure filenames follow format:
YYYY-MM-DD-title.md
Images not loading
- Use full URLs from Blogger (they’ll continue to work)
- Or download images to
assets/images/and update URLs
Custom domain not working
- Wait 24-48 hours for DNS propagation
- Check DNS records are correct
- Ensure CNAME file exists in repository
- Verify GitHub Pages settings show your domain
Getting Help
If you run into issues:
- Check the error message carefully
- Review this guide step-by-step
- Check GitHub Actions tab for build errors
- Verify all commands completed successfully
Summary Checklist
- Export Blogger XML file
- Install Python, Ruby, Git
- Clone repository
- Run conversion script
- Review converted posts locally
- Commit and push posts
- Merge pull request to main
- Enable GitHub Pages
- Configure DNS
- Wait for DNS propagation
- Visit live site!
Estimated time: 1-2 hours (plus DNS wait time)
Questions? Check the main README.md or Jekyll documentation.