Lewati ke konten
Kembali ke blog
Tim Lancartech 2 menit baca

Migrasi WordPress ke Astro: Studi Kasus dengan Hasil 6× Lebih Cepat

Step-by-step migrasi blog WordPress dengan ratusan post ke Astro. Plus tips redirect, gambar, dan SEO yang sering terlewat.

Migrasi WordPress ke Astro: Studi Kasus dengan Hasil 6× Lebih Cepat

Kenapa migrasi?

WordPress masih oke, tapi:

  • Performa lambat — average LCP 3-6 detik, vs Astro 1-2 detik
  • Hosting mahal — butuh PHP + MySQL + cache layer, vs Astro static (free di Cloudflare Pages)
  • Maintenance ribet — update PHP, plugin, security patch tiap minggu
  • Bloat — JS terinject dari setiap plugin, sering tidak dipakai

Step-by-step migrasi

1. Export konten dari WordPress

Plugin WP All Export atau via REST API:

curl https://oldsite.com/wp-json/wp/v2/posts?per_page=100&page=1 > posts.json

Loop pages sampai habis.

2. Convert ke Markdown

Tools: wordpress-export-to-markdown (npm package). Atau script Node sederhana:

import TurndownService from 'turndown';
const td = new TurndownService();
const md = td.turndown(post.content.rendered);
fs.writeFileSync(`src/content/blog/${post.slug}.md`,
  `---
title: "${post.title.rendered}"
date: ${post.date}
slug: ${post.slug}
---

${md}`);

3. Setup Astro content collection

// src/content.config.ts
import { defineCollection, z } from "astro:content";
import { glob } from "astro/loaders";

export const collections = {
  blog: defineCollection({
    loader: glob({ pattern: "**/*.md", base: "./src/content/blog" }),
    schema: z.object({
      title: z.string(),
      date: z.coerce.date(),
      slug: z.string(),
    }),
  }),
};

4. Download & re-host gambar

WP simpan gambar di /wp-content/uploads/. Download semua ke public/images/ lalu update path di markdown.

Tips: pakai AVIF/WebP instead of original JPG/PNG. Sharp + Astro <Image> handle ini otomatis saat build.

5. Setup redirect dari URL lama

Astro permalink mungkin beda dari WP. Buat _redirects (Cloudflare/Netlify):

/2024/06/old-post-slug   /blog/old-post-slug   301
/category/foo            /blog/tag/foo         301
/wp-admin/*              /                     302

Atau di nginx/Caddy:

redir /2024/* /blog{path} permanent

6. SEO preserve

Yang harus migrate:

  • Meta title & description per post
  • OG image (atau generate baru dari template)
  • Canonical URL point ke domain baru
  • Sitemap — Astro auto-generate
  • Structured data (Article schema)
  • Hreflang kalau multi-language

7. Submit perubahan ke Google

  1. Google Search Console → Add property baru
  2. Submit sitemap: https://newsite.com/sitemap.xml
  3. URL Inspection untuk top 10 URL — request indexing
  4. Monitor “Coverage” report selama 2-4 minggu

Hasil dari project nyata

Klien retail kami: WP blog dengan 280 post, traffic 50K/bulan.

MetricWordPressAstro
LCP (mobile 4G)4.8 s0.9 s
Lighthouse score4298
Build timen/a18 s
Hosting cost$40/bulan$0 (Cloudflare Pages)
Maintenance hours/bulan~6~0.5

Trafik organik biasanya ikut membaik setelah migrasi karena fondasi SEO dan performa yang lebih kuat.

Yang sering jadi pitfall

  1. Lupa redirect — ranking langsung drop saat URL berubah tanpa 301.
  2. Image path broken — relative path WP beda dari Astro.
  3. Form submission — WP punya plugin Contact Form 7, Astro static perlu external (Formspree, Netlify Forms, atau backend sendiri).
  4. Comment system — Disqus sebagai drop-in replacement, atau Giscus untuk dev blog.
  5. WP shortcode — Markdown tidak punya equivalent, harus convert manual atau bikin custom MDX component.

Konsultasi migrasi WordPress — kami sudah migrate 30+ site WordPress ke Astro/Next.js.

Tim Lancartech · · 2 menit baca

Siap mulai proyek berikutnya?

Konsultasi awal gratis — kami bantu rancang strategi digital yang paling cocok untuk bisnis Anda.