KIếN THứC WEBSITE › WOOCOMMERCE

SEO redirect 301 khi migrate platform: chiến lược + implement + recovery

SEO redirect 301 khi migrate platform: chiến lược + implement + recovery

Quên redirect 301 khi migrate platform là sai lầm SEO đắt thứ hai sau việc đổi domain không thông báo — traffic Google search có thể giảm trong tuần đầu và mất 6-12 tháng để recovery về baseline cũ. Setup đúng 301 thì drop tạm chỉ 5-15% và phục hồi sau 2-4 tuần.

Bài này hướng dẫn pattern URL Shopify, Haravan, Sapo, Magento; mapping rule chuẩn; implement qua Rank Math vs htaccess vs Nginx config; monitor 404 trong Search Console 30 ngày; và recovery plan đạt tỷ lệ recovery baseline tuần 12.

Vì sao 301 quyết định success của migration

Khách Google search từ khoá cũ landing /products/iphone-15 trên Shopify cũ — URL chết → bounce → Google đọc tín hiệu negative → xếp hạng drop. Backlink từ blog, social, partner site về URL cũ cũng rot, từng được tính authority giờ trỏ vào 404.

HTTP 301 báo Google “URL này chuyển vĩnh viễn sang URL kia”, Google update index trong 2-8 tuần và transfer 95-99% link juice từ URL cũ sang URL mới theo statement của John Mueller 2023.

Bảng SEO impact theo độ coverage redirect

Coverage redirect Traffic drop ngắn hạn Recovery time
100% URL có traffic Drop 5-15% 2-4 tuần
80% URL có traffic Drop 20-30% 2-3 tháng
50% URL có traffic Drop 40-60% 4-6 tháng
Không setup (mọi URL 404) Drop 70-90% 6-12 tháng rebuild SEO

3 cú hích phụ ít người để ý

  • Backlink decay: link từ báo lớn, blog uy tín trỏ về URL cũ 404 sẽ giảm authority truyền sang domain — Ahrefs Domain Rating giảm 5-15 điểm trong 3 tháng nếu coverage redirect dưới 80%.
  • Featured snippet bị mất: URL từng có snippet trên trang 1 Google — chết URL = mất snippet ngay lập tức, đối thủ chiếm chỗ trong 24-48 giờ, lấy lại mất 2-6 tháng.
  • Brand search SERP loãng: tìm “tên shop” thường ra top 3-5 page từ shop cũ — 404 hết khiến SERP brand toàn page rỗng + result đối thủ, ảnh hưởng conversion direct traffic.

Bước 1 — Map URL pattern từng platform về WooCommerce

seo redirect 301 khi migrate — Bước 1 — Map URL pattern từng platform về WooCommerce
Sơ đồ minh hoạ — Bước 1 — Map URL pattern từng platform về WooCommerce
Bước 1 — Map URL pattern từng platform về WooCommerce
Sơ đồ minh hoạ — Bước 1 — Map URL pattern từng platform về WooCommerce

Mỗi platform có URL convention riêng. Map đúng pattern = một regex rule cover hàng trăm URL cùng group.

Map sai 1 pattern = mất 100s URL của pattern đó trong nháy mắt.

URL pattern 4 platform phổ biến VN

# Shopify URL → WooCommerce target

/products/{slug}                    → /{slug}/
/collections/{slug}                 → /product-category/{slug}/
/collections/{slug}/{product}       → /{product}/   (bỏ collection phân khúc)
/blogs/{blog}/{post-slug}           → /{post-slug}/
/pages/{slug}                       → /{slug}/

# Haravan URL → WooCommerce target

/products/{slug}                    → /{slug}/
/collections/{slug}                 → /product-category/{slug}/
/blogs/news/{post-slug}             → /{post-slug}/
/pages/{slug}                       → /{slug}/

# Sapo URL → WooCommerce target

/{slug}-p{id}                       → /{slug}/         (drop -p123 suffix)
/danh-muc/{slug}                    → /product-category/{slug}/
/bai-viet/{slug}                    → /{slug}/

# Magento (hiếm ở VN) → WooCommerce target

/{slug}.html                        → /{slug}/
/catalog/category/view/id/{id}      → /product-category/{slug-by-id}/
/catalog/product/view/id/{id}/s/{slug}/ → /{slug}/

Pattern không cover được phải redirect cứng

  • URL chiến dịch/landing page riêng: /pages/black-friday-2024 không có pattern match — phải redirect cứng từng URL, ưu tiên page top traffic theo report Google Analytics.
  • Slug đổi do conflict với category: Shopify cho slug product trùng category, WooCommerce không cho — phải đổi slug + redirect cứng URL cũ về slug mới.
  • URL chứa Vietnamese diacritic không URL-encode: Shopify cho /products/áo-thun, WooCommerce auto strip dấu thành /ao-thun — redirect cứng pair này.

Bước 2 — Implement: 3 lựa chọn theo volume

Bước 2 — Implement: 3 lựa chọn theo volume
Bước 2 — Implement: 3 lựa chọn theo volume

3 cách phổ biến tuỳ scale redirect và sensitivity về performance: Rank Math Redirections plugin (UI, DB query), .htaccess (file-based Apache, fastest), Nginx config (cho VPS chạy Nginx + PHP-FPM).

Lựa chọn 1 — Rank Math Redirections cho dưới 1.000 redirect

  1. Cài Rank Math SEO (free) hoặc Rank Math Pro tuỳ nhu cầu khác (schema, sitemap nâng cao).
  2. Vào Rank Math → Redirections → “Add New Redirection”.
  3. Source URL nhập regex /products/(.*), Match Type chọn “Regex”.
  4. Destination URL nhập /$1/ (placeholder $1 = capture group).
  5. Redirection Type chọn “Permanent Redirect 301”.
  6. Save. Repeat cho từng pattern Shopify, Haravan, Sapo.
  7. Test trong tab Logs xem có request match đúng không sau khi go-live.

Lựa chọn 2 — .htaccess Apache cho 1.000-10.000 redirect

# Edit .htaccess root WordPress
# QUAN TRỌNG: đặt phía TRÊN dòng "# BEGIN WordPress"
# Nếu đặt dưới, permalink rewrite chạy trước → redirect không fire

RewriteEngine On

# Shopify pattern
RewriteRule ^products/(.*)$ /$1/ [R=301,L]
RewriteRule ^collections/([^/]+)/([^/]+)/?$ /$2/ [R=301,L]
RewriteRule ^collections/([^/]+)/?$ /product-category/$1/ [R=301,L]
RewriteRule ^blogs/[^/]+/(.*)$ /$1/ [R=301,L]
RewriteRule ^pages/(.*)$ /$1/ [R=301,L]

# Sapo pattern
RewriteRule ^([^/]+)-p[0-9]+/?$ /$1/ [R=301,L]
RewriteRule ^danh-muc/(.*)$ /product-category/$1/ [R=301,L]
RewriteRule ^bai-viet/(.*)$ /$1/ [R=301,L]

# Magento pattern (nếu shop từng dùng)
RewriteRule ^([^/]+).html$ /$1/ [R=301,L]

# Specific redirect — URL không match pattern, redirect cứng
Redirect 301 /old-landing-page/ /new-landing-page/
Redirect 301 /promotion-2024/ /promotion-2026/
Redirect 301 /pages/black-friday/ /pages/khuyen-mai/

# BEGIN WordPress  (block default WP, KHÔNG edit)
<IfModule mod_rewrite.c>
...
</IfModule>
# END WordPress

Lựa chọn 3 — Nginx config cho VPS performance-critical

# File: /etc/nginx/sites-available/yourshop.conf
# Đặt trong block server { } TRƯỚC location / { }

# Shopify pattern
rewrite ^/products/(.*)$ /$1/ permanent;
rewrite ^/collections/([^/]+)/([^/]+)/?$ /$2/ permanent;
rewrite ^/collections/([^/]+)/?$ /product-category/$1/ permanent;
rewrite ^/blogs/[^/]+/(.*)$ /$1/ permanent;
rewrite ^/pages/(.*)$ /$1/ permanent;

# Sapo pattern
rewrite ^/([^/]+)-p[0-9]+/?$ /$1/ permanent;
rewrite ^/danh-muc/(.*)$ /product-category/$1/ permanent;
rewrite ^/bai-viet/(.*)$ /$1/ permanent;

# Magento pattern
rewrite ^/(.+).html$ /$1/ permanent;

# Specific cứng (map file riêng để dễ maintain)
include /etc/nginx/redirects/specific-redirects.conf;

# Reload sau khi edit:
# nginx -t  (test config)
# systemctl reload nginx

Bước 3 — Verify mọi pattern work end-to-end

Setup xong không đồng nghĩa work. Phải test từng pattern với URL thật, verify HTTP 301 + Location header chính xác.

Bỏ verify = miss 1 pattern và mất hàng trăm URL của pattern đó silently trong tuần đầu post-launch.

Test với curl cho 5 pattern chính

# Test 1 — Product redirect Shopify
curl -I https://yoursite.vn/products/iphone-15
# Expected:
# HTTP/2 301
# location: https://yoursite.vn/iphone-15/

# Test 2 — Collection redirect Shopify
curl -I https://yoursite.vn/collections/electronics
# Expected: 301 → /product-category/electronics/

# Test 3 — Blog redirect Shopify
curl -I https://yoursite.vn/blogs/news/iphone-launch-2024
# Expected: 301 → /iphone-launch-2024/

# Test 4 — Sapo product với suffix -p{id}
curl -I https://yoursite.vn/ao-thun-basic-p1234
# Expected: 301 → /ao-thun-basic/

# Test 5 — URL không match pattern (404 acceptable)
curl -I https://yoursite.vn/random-old-internal-page
# Expected: 404 hoặc redirect catch-all về /sitemap/

# Verify Location header chính xác (tránh redirect loop):
curl -IL https://yoursite.vn/products/iphone-15
# Flag -L follow tất cả redirect, đếm số hop
# Expected: chỉ 1 redirect, hop 2 trả về 200 OK

Tool browser thay curl

  • Chrome extension Redirect Path: click 1 lần xem hop chain + HTTP status code cho mỗi hop. Phù hợp QA visual nhanh 20-50 URL.
  • httpstatus.io: tool online paste bulk URL (tới 100 URL/lần), trả về status code + final destination.

    Phù hợp QA sau migration toàn bộ top 100 URL traffic cao.

  • Screaming Frog SEO Spider: crawl mode “List” import 1.000-10.000 URL cũ từ Search Console, verify từng URL có redirect đúng + final destination 200 OK.

Bước 4 — Monitor 404 trong Search Console 30 ngày

Submit sitemap mới và monitor 404 errors là phần ít đơn vị làm kỹ — đa số setup redirect xong là bỏ project. Đây là điểm khác biệt giữa migration thành công và migration cứu được 50-60% traffic.

Workflow Search Console 4 tuần post-migration

  • Tuần 1 — Submit sitemap mới: GSC → Sitemaps → submit https://yoursite.vn/sitemap_index.xml (Rank Math auto generate). Verify status “Success” và “Discovered URLs” tăng dần.
  • Tuần 1-2 — Submit URL inspection bulk: GSC → URL Inspection → “Request Indexing” cho top 30-50 URL traffic cao. Đẩy Google crawl nhanh hơn 1-2 tuần so với đợi natural.
  • Tuần 2-4 — Monitor Pages report: GSC → Pages → “Why pages aren’t indexed” → focus “Not found (404)”. List URL 404 = URL miss redirect, fix ngay bằng add rule htaccess hoặc Rank Math.
  • Tuần 4 — Disavow toxic backlink: migration là cơ hội disavow backlink xấu tích luỹ — submit disavow file qua GSC Disavow Tool, giảm risk Google Penguin penalty.
  • Tuần 6-8 — Index status check: search “site:yoursite.vn” verify Google đã index URL mới. Count kết quả gần bằng số URL trong sitemap = migrate đã được Google ghi nhận.

Bảng baseline recovery theo tuần

Tuần post-migration Traffic vs baseline Hành động nên làm
Tuần 1-2 50-70% baseline Submit sitemap + URL inspection top URL
Tuần 3-4 65-80% baseline Fix 404 phát hiện trong GSC Pages report
Tuần 5-8 75-90% baseline Disavow backlink xấu, optimize page mới xếp hạng thấp
Tuần 9-12 80-95% baseline (full recovery) Audit toàn diện, fix internal link broken còn sót

Bước 5 — Recovery plan khi traffic không phục hồi

Nếu sau 12 tuần traffic vẫn dưới 70% baseline, có 1 trong 5 vấn đề systemic — không phải vấn đề redirect thông thường. Cần audit sâu hơn theo checklist riêng.

5 root cause khi recovery thất bại

  • Redirect chain 3+ hop: URL cũ → trung gian 1 → trung gian 2 → cuối. Mỗi hop mất 1-3% link juice, 3 hop = mất 5-9%.
  • Audit toàn bộ chain, redirect direct cũ → cuối.
  • Nội dung trang mới mất 40-60% content cũ: migrate dropped phần content quan trọng (description dài, FAQ, schema). Google demote xếp hạng vì page không deserve top spot nữa.
  • Restore content từ Wayback Machine.
  • Internal link broken sót: link trong body content trỏ /products/old-slug nhưng redirect chỉ work khi user click ngoài site. Crawl Screaming Frog tìm internal link 404, fix bằng search-replace DB.
  • Core Web Vitals tệ hơn shop cũ: theme WooCommerce nặng hơn theme Shopify gốc, LCP từ 1.8s lên 3.5s. Google demote xếp hạng.
  • Optimize theme hoặc dùng theme block 2026 nhẹ hơn.
  • Schema markup mất sau migrate: Shopify auto-render Product schema, WooCommerce cần plugin Rank Math hoặc Yoast cấu hình. Validate Schema.org rồi reconfigure.

4 dấu hiệu cần audit ngay khi recovery chậm

  • Tuần 4 mà traffic dưới 60% baseline: bất thường, không phải lag tự nhiên. Crawl Screaming Frog list URL từ Search Console, identify URL nào trả 404 không nằm trong redirect rule.
  • GSC Pages report 404 tăng dần thay vì giảm: redirect rule có bug, request match sai pattern khiến page mới cũng bị redirect nhầm. Tạm tắt rule mới nhất, isolate root cause.
  • Page mới có impression nhưng CTR < 1%: meta title/description bị mất khi migrate, Google hiển thị URL trần. Reconfigure Rank Math meta cho top 50 URL traffic cao.
  • Branded search ra page không tồn tại: Google chưa update SERP brand. Submit từng URL brand qua URL Inspection, request indexing thủ công.

Bước 6 — Canonical tag và hreflang khi shop đa ngôn ngữ

Setup redirect 301 chỉ giải quyết URL pattern. Shop đa ngôn ngữ (VN + EN) hoặc đa region cần thêm canonical + hreflang đồng bộ để Google không tự ý merge duplicate content giữa các phiên bản.

Pattern canonical sau migrate

  • Canonical về URL mới WooCommerce: mỗi page mới khai báo <link rel="canonical" href="https://yoursite.vn/iphone-15/" />. Rank Math auto generate nếu Settings → Titles & Meta → Canonical URLs bật.
  • Hreflang cho phiên bản EN: nếu shop có /en/ subdirectory cho khách quốc tế, thêm <link rel="alternate" hreflang="vi" href="..."> + hreflang="en" href="..."> + hreflang="x-default".
  • Self-canonical pagination: trang category /product-category/electronics/page/2/ canonical về chính nó, không về page/1/ — tránh Google bỏ qua paginate page khỏi index.

5 lỗi setup redirect phổ biến và cách fix

  • Redirect chain 2-3 hop: URL cũ → URL trung gian → URL cuối, mất 1-3% link juice mỗi hop. Redirect direct cũ về cuối, skip trung gian.
  • Dùng 302 thay vì 301: 302 = “Found temporary”, Google không transfer link juice. Explicitly set 301 trong plugin hoặc htaccess, verify lại bằng curl -I.
  • Redirect qua meta refresh hoặc JavaScript: Google không recognize tin cậy, SEO drop. Server-side redirect 301 only, không client-side workaround.
  • Loop redirect A → B → A: infinite loop, browser báo ERR_TOO_MANY_REDIRECTS. Review rule cẩn thận, đảm bảo không circular reference giữa htaccess + plugin.
  • Pattern miss trailing slash: regex /products/(.*) không match /products/iphone vs /products/iphone/ inconsistent. Add cả 2 version /{slug}/{slug}/, hoặc normalize trailing slash bằng rule riêng.

Bài liên quan trong cụm WooCommerce migration

SEO redirect là bước cuối cùng nhưng quan trọng nhất của project chuyển platform. Bổ sung kiến thức 2 bước trước trong cùng workflow:

Câu hỏi thường gặp

Bao lâu Google update index URL mới?

2-8 tuần tuỳ authority domain và crawl frequency. Site có Domain Rating Ahrefs trên 30, Googlebot crawl daily — update trong 2-3 tuần.

Site nhỏ DR dưới 15 — update có thể mất 6-8 tuần.

Tăng tốc bằng submit sitemap mới + URL Inspection top 30-50 URL traffic cao trong Search Console. Crawl rate tăng 2-3 lần sau submit sitemap, giảm thời gian update index xuống 1-2 tuần.

Redirect 301 transfer 100% link juice không?

95-99% theo statement John Mueller Google 2023. Drop nhỏ 1-5% là natural và acceptable.

Để minimize drop: avoid redirect chain (cũ → trung gian → cuối), chỉ direct redirect 1 hop.

Drop lớn hơn 10% sau 8 tuần là dấu hiệu redirect chain hoặc content URL đích kém chất lượng hơn URL nguồn. Audit chain + restore content nguyên gốc từ archive.

Khi nào nên dùng plugin Rank Math vs htaccess vs Nginx config?

Rank Math: dưới 500 redirect, UI dễ manage, non-technical team self-serve được. Trade-off: query DB cho mỗi request, thêm 10-30ms latency mỗi hit redirect rule.

.htaccess: 500-10.000 redirect, file-based fastest cho Apache, không touch DB. Nginx config: VPS dùng Nginx, performance-critical, volume trên 10.000 redirect.

Shop SME default chọn Rank Math, scale lên htaccess khi vượt 500 rule.

Có nên redirect 100% URL hay chỉ top traffic?

Redirect 100% URL có traffic hoặc backlink trỏ về. URL không có cả 2 (page rỗng cũ, archive cũ không ai vào) — skip để giảm complexity, redirect rule càng nhiều càng tốn server resource.

Identify URL high-value qua Search Console (top 200 URL có click 90 ngày) + Ahrefs Site Explorer (URL có backlink trỏ về). Union 2 set này = list URL bắt buộc redirect.

URL ngoài list — đa số 404 cũng không thiệt hại đáng kể.

Redirect ảnh hưởng tốc độ load trang không?

Negligible với redirect đúng 1 hop 301 — thêm 5-30ms latency, không user nào cảm nhận được. Vấn đề chỉ xuất hiện khi redirect chain 3-5 hop, cộng dồn 100-200ms, ảnh hưởng đến LCP và Core Web Vitals.

Audit chain định kỳ bằng Screaming Frog crawl mode “List” — flag URL có hop chain trên 2. Refactor về direct redirect cũ → cuối là cách tối ưu duy nhất.

Triển khai redirect 301 + recovery plan trọn gói

SEO redirect là phần dễ làm ẩu nhất trong migration vì kết quả nhìn thấy chậm — drop traffic phát hiện sau 2-4 tuần, đơn vị đã off-board. Web22 setup redirect kèm monitor 404 + recovery plan 12 tuần, cam kết phục hồi 80-95% baseline traffic theo benchmark migration thông thường.

Tư vấn shop online WooCommerce chuyên nghiệp — bao gồm SEO migration trọn gói: pattern mapping + implement redirect + monitor 404 + recovery plan 12 tuần cho shop chuyển từ Shopify, Haravan, Sapo, Magento sang WooCommerce.