Tấn Phát Digital — Bài viết được biên dịch và Việt hóa từ tài liệu chính thức "Designing a URL structure for ecommerce websites" của Google Search Central. Đây là bài kỹ thuật chuyên sâu dành cho developer, technical SEO, và ecommerce manager muốn xây dựng cấu trúc URL tối ưu cho Google ngay từ đầu.
URL — Phần "vô hình" nhưng quyết định thành bại
Hãy thử tưởng tượng 2 website ecommerce cùng bán áo thun:
Website A:
https://shop-a.com/product?id=12345&cat=789&sort=price&filter=red
Website B:
https://shop-b.com/ao-thun-nam/cotton-trang
Bạn click vào cái nào? 99% người sẽ chọn Website B. Và Google cũng vậy.
URL không chỉ là "đường dẫn" — nó là:
First impression với user (trong SERP)
Signal mạnh cho Google về nội dung
Crawl efficiency quyết định
Internal linking foundation
Trust factor quan trọng
Với ecommerce, URL còn quan trọng hơn 10 lần vì:
Hàng nghìn đến hàng triệu trang
Filter, sort, variant tạo combinations vô tận
Pagination phức tạp
Duplicate content risk cao
Google đã viết tài liệu kỹ thuật chuyên biệt về URL Structure cho Ecommerce. Đây là tài liệu bắt buộc đọc cho mọi developer xây dựng platform ecommerce hoặc fix legacy site.
Bài viết này dành cho:
Developer xây dựng ecommerce platform
Technical SEO chuyên về ecommerce
Ecommerce Manager cần hiểu để giao việc cho dev
Owner của shop online đang gặp vấn đề SEO
Phần 1: Tại sao URL Structure quan trọng?
1.1. 3 hậu quả nghiêm trọng khi URL structure tệ
Google liệt kê 3 vấn đề chính xảy ra khi URL structure kém:
Vấn đề 1: Content bị MISS (bỏ sót)
"Content có thể bị missed nếu Googlebot incorrectly thinks 2 URLs sẽ return cùng content — chỉ một URL được crawler retrieve (cái còn lại bị discard như duplicate)."
Ví dụ Google đưa ra:
/product/t-shirt#black
/product/t-shirt#white
→ Google coi đây là cùng 1 trang vì fragment identifier (#) KHÔNG được dùng trong indexing.
🚨 Hậu quả tại VN: Nhiều shop dùng # để switch variant → Google chỉ index 1 variant, bỏ sót các variant khác.
Vấn đề 2: Crawl LÃNG PHÍ
"Cùng content có thể bị retrieved NHIỀU LẦN bởi crawler nếu Google thinks 2 URLs are different nhưng result trong cùng page being returned. Điều này có thể slow down việc crawling site của bạn."
Ví dụ Google đưa ra:
/product/black-t-shirt ← URL 1
/product?sku=1234 ← URL 2
→ Cả 2 có thể return cùng product, nhưng Google không biết điều đó cho đến khi crawl cả 2.
🚨 Hậu quả: Crawl budget lãng phí, server tải nặng, các trang quan trọng khác bị bỏ sót.
Vấn đề 3: INFINITE pages (vô tận trang)
"Crawler có thể think site của bạn contains INFINITE NUMBER of pages nếu URLs include continually changing value như timestamp."
Ví dụ Google đưa ra:
/about?now=12:34am
/about?now=12:35am
/about?now=12:36am
...
→ Google coi mỗi URL là khác nhau → crawl vô tận → không bao giờ index xong site.
🚨 Hậu quả tại VN: Shop dùng tracking parameters động (timestamp, session-id) → Google bị "kẹt" crawl.
Phần 2: Best Practices URL Structure — General Recommendations
Google đưa ra 4 nguyên tắc vàng cho URL structure tốt:
Nguyên tắc 1: Minimize alternative URLs
"Minimize số lượng alternative URLs return cùng content để avoid Google making more requests to your site than needed."
Lý do: Google không biết 2 URLs về cùng content cho đến khi crawl cả 2. Mỗi URL "trùng" = 1 crawl request lãng phí.
Hành động cụ thể:
✅ Một content = một URL chính (canonical) ✅ Loại bỏ URL không cần thiết ✅ Redirect 301 từ URL cũ về URL mới ✅ Implement canonical tags
Nguyên tắc 2: Consistent case (chữ hoa/thường)
"Nếu upper và lower case text trong URL được treated giống nhau bởi web server, convert tất cả text sang cùng case để Google EASIER xác định URLs reference cùng page."
Vấn đề:
Nếu server treat case-insensitive (mặc định ở Windows server):
/Product/Black-T-Shirt
/product/black-t-shirt
/PRODUCT/BLACK-T-SHIRT
→ Tất cả return cùng trang → Google có thể crawl cả 3 → lãng phí.
Giải pháp:
✅ Tất cả URLs dùng lowercase (thông lệ chuẩn) ✅ Server-level redirect uppercase → lowercase ✅ Internal links luôn dùng lowercase
Code minh họa (Nginx):
# Redirect tất cả uppercase URLs về lowercase
if ($request_uri ~ [A-Z]) {
rewrite ^(.*)$ $1 last;
}
Nguyên tắc 3: Unique URL cho mỗi paginated page
"Đảm bảo mỗi page trong paginated results có UNIQUE URL. Chúng tôi see most URL mistakes trong pagination URL structures."
🎯 Google thừa nhận: Pagination là nơi developers mắc lỗi nhiều nhất.
Ví dụ pagination tốt:
/ao-thun-nam ← Page 1 (canonical)
/ao-thun-nam?page=2 ← Page 2
/ao-thun-nam?page=3 ← Page 3
Ví dụ pagination sai:
/ao-thun-nam ← Page 1
/ao-thun-nam#page2 ← Page 2 (Google không hiểu)
/ao-thun-nam ← Page 3 (cùng URL với Page 1, content load qua AJAX)
Nguyên tắc 4: Descriptive words trong URL paths
"Add descriptive words trong URL paths. Các từ trong URLs có thể giúp Google better understand the page."
Ví dụ Google đưa ra:
✅ Recommended:
/product/black-t-shirt-with-a-white-collar
❌ Not recommended:
/product/3243
Áp dụng cho VN:
✅ Tốt:
/ao-thun-nam-cotton-trang
/serum-vitamin-c-the-ordinary
/iphone-16-pro-max-256gb-titan-tu-nhien
❌ Xấu:
/p/12345
/product?id=999
/item.php?code=ABC
Lưu ý cho tiếng Việt:
KHÔNG dùng dấu trong URL (
ao-thunthay vìáo-thun)Dùng dấu gạch ngang (-) thay khoảng cách
Ngắn gọn nhưng có ý nghĩa
Có từ khóa chính một cách tự nhiên
Phần 3: Query Parameters — Quy tắc vàng
Query parameters (?key=value) là phần phức tạp nhất của URL ecommerce. Google đưa ra 3 quy tắc quan trọng:
Quy tắc 1: Dùng ?key=value, không phải ?value
"Use
?key=valueURL parameters thay vì?value, where possible."
Tại sao?
Format ?key=value giúp Google hiểu được semantic của parameter.
Ví dụ Google đưa ra:
✅ Recommended:
/photo-frames?page=2
/t-shirt?color=green
❌ Not recommended:
/photo-frames?2
/t-shirt?green
→ Với format ?2, Google không biết "2" là gì — page number? size? color?
Quy tắc 2: Avoid duplicate parameters
"Avoid using cùng parameters HAI LẦN. Googlebot có thể IGNORE một trong các values otherwise."
Ví dụ Google đưa ra:
✅ Recommended:
?type=candy,sweet
❌ Not recommended:
?type=candy&type=sweet
→ Khi dùng parameter 2 lần, Google không biết giá trị nào ưu tiên.
Áp dụng cho ecommerce:
✅ Tốt:
/ao-thun?color=red,blue,green
/ao-thun?size=S,M,L
❌ Xấu:
/ao-thun?color=red&color=blue&color=green
/ao-thun?size=S&size=M&size=L
Quy tắc 3: Avoid temporary/dynamic parameters
"Avoid internally linking to TEMPORARY parameters, như session-IDs, tracking codes, user-relative values (
location=nearby,time=last-week), và current time."
Lý do: Các parameters này tạo URL có short life hoặc duplicate URLs cho cùng page.
Ví dụ Google đưa ra:
✅ Recommended:
/t-shirt?location=UK
❌ Not recommended:
/t-shirt?location=nearby ← Relative, mỗi user khác nhau
/t-shirt?current-time=12:02 ← Thay đổi mỗi phút
/t-shirt?session=123123123 ← Thay đổi mỗi user
Cảnh báo cho VN:
🚨 Tracking parameters phổ biến cần xử lý:
?utm_source=facebook(UTM tracking)?fbclid=...(Facebook click ID)?gclid=...(Google Ads click ID)?ref=...(Referral)?sid=...(Session ID)?aff=...(Affiliate)
→ Các URL này KHÔNG nên được index. Dùng canonical về URL gốc.
Phần 4: Product Variants — URL Structure Cho Sản Phẩm Có Biến Thể
Đây là phần đặc biệt quan trọng cho ecommerce. Google đưa ra hướng dẫn rõ ràng.
4.1. Product Variant là gì?
Google định nghĩa:
"Mỗi combination của product attributes được referred to as a PRODUCT VARIANT."
Ví dụ:
Áo thun có các attributes:
Color: Đỏ, Xanh, Trắng, Đen
Size: S, M, L, XL
→ Mỗi combination (vd: Đỏ + M) = 1 variant → Tổng: 4 colors × 4 sizes = 16 variants
4.2. Mỗi variant cần URL riêng
Google nhấn mạnh:
"Để help Google understand product variants của bạn, đảm bảo mỗi variant có thể được identified bởi MỘT URL RIÊNG."
4.3. 2 phương pháp URL cho variants
Google khuyến nghị 2 cách:
Phương pháp 1: Path Segment
/t-shirt/green
/t-shirt/red
/t-shirt/blue
Ưu điểm:
URL ngắn gọn, đẹp
SEO-friendly
Dễ nhớ
Nhược điểm:
Khó scale với nhiều attributes
Cần routing config phức tạp
Phương pháp 2: Query Parameter
/t-shirt?color=green
/t-shirt?color=red
/t-shirt?color=blue
Ưu điểm:
Dễ implement
Scale tốt với nhiều attributes
Filter UI dễ build
Nhược điểm:
URL dài hơn
Cần canonical management tốt
4.4. Canonical strategy cho variants
Google đưa ra lời khuyên cực kỳ quan trọng:
"Nếu bạn dùng OPTIONAL query parameters để identify variants, use URL với query parameter OMITTED như canonical URL."
Sơ đồ minh họa:
URL Canonical (mặc định):
/t-shirt ← KHÔNG có color parameter
URLs Variants:
/t-shirt?color=blue ← canonical → /t-shirt
/t-shirt?color=red ← canonical → /t-shirt
/t-shirt?color=green ← canonical → /t-shirt
Code minh họa:
<!-- Trang /t-shirt?color=blue -->
<head>
<link rel="canonical" href="https://shop.com/t-shirt">
</head>
<!-- Trang /t-shirt?color=red -->
<head>
<link rel="canonical" href="https://shop.com/t-shirt">
</head>
<!-- Trang /t-shirt (canonical) -->
<head>
<link rel="canonical" href="https://shop.com/t-shirt">
</head>
→ Cách này giúp Google hiểu relationship giữa variants.
4.5. Mở rộng: Khi variant là sản phẩm thực sự khác
⚠️ Lưu ý quan trọng: Đôi khi "variant" có thể là sản phẩm hoàn toàn khác, không chỉ thay đổi nhỏ.
Ví dụ:
"iPhone 16" và "iPhone 16 Pro" → Đây là sản phẩm khác, không phải variants
"Áo thun M" và "Áo thun XL" → Đây là variants (cùng sản phẩm)
→ Phân biệt đúng để có canonical strategy đúng.
Phần 5: Best Practices Khi Dùng URLs Trong Content
5.1. Consistency là chìa khóa
Google nhấn mạnh:
"Use SAME URL trong internal links, sitemap files, và
<link rel="canonical">tags."
Ví dụ phổ biến: Nếu page 1 của pagination có thể là /category hoặc /category?page=1:
✅ Đúng: Chọn 1 format và dùng nhất quán khắp site
❌ Sai:
Sitemap có
/categoryInternal link có
/category?page=1Canonical có
/category
→ Google bị confuse → có thể chọn URL không như mong đợi.
5.2. Self-referencing canonical
"Use self-referencing
<link rel="canonical">tag (URL trong tag points to current page) trên ALL indexable pages."
Ví dụ:
<!-- Trang https://shop.com/ao-thun -->
<head>
<link rel="canonical" href="https://shop.com/ao-thun"> ✅
</head>
→ Đây là best practice ngay cả khi không có duplicate content.
5.3. Canonical cho variants
Đối với products có unique URL cho mỗi variant:
"Include canonical product URL trên ALL variant pages bằng
<link rel="canonical">tag."
Ví dụ:
<!-- Trang /t-shirt/green -->
<head>
<link rel="canonical" href="https://shop.com/t-shirt">
</head>
<!-- Trang /t-shirt/red -->
<head>
<link rel="canonical" href="https://shop.com/t-shirt">
</head>
5.4. Internal links phải dùng <a href>
Google cảnh báo:
"Include links directly trên pages dùng
<a href>tags; DON'T use JavaScript để navigate giữa pages."
Lý do: Googlebot có thể không detect navigation từ JavaScript code.
❌ Xấu:
<div onclick="navigate('/category')">Categories</div>
<button onclick="window.location='/cart'">Cart</button>
✅ Tốt:
<a href="/category">Categories</a>
<a href="/cart">Cart</a>
5.5. Anchor text có ý nghĩa
"Include meaningful text giữa
<a href>và</a>tags where possible, such as TITLE OF PRODUCT being linked to. DON'T use generic phrases như 'click here'."
Ví dụ:
❌ Xấu:
<a href="/ao-thun-trang">Click here</a>
<a href="/ao-thun-trang">Xem thêm</a>
<a href="/ao-thun-trang">Tại đây</a>
✅ Tốt:
<a href="/ao-thun-trang">Áo thun nam cotton trắng</a>
<a href="/ao-thun-trang">
<img src="ao.jpg" alt="Áo thun nam cotton trắng">
</a>
5.6. Tránh link đến/index trang trống
"Avoid linking to, hoặc ít nhất indexing, các pages WITHOUT useful content."
Tình huống thường gặp:
Category page khi không có sản phẩm nào trong category
Trang sản phẩm khi sản phẩm đã hết hàng vĩnh viễn
Search results page rỗng
Khuyến nghị từ Google:
Nếu trang tạm rỗng:
<meta name="robots" content="noindex">Nếu category bị xóa khỏi search/browse:
Return: HTTP 404 (Not Found)
Phần 6: Cấu trúc URL chuẩn cho Ecommerce Việt Nam
Dựa trên best practices của Google + thực tế thị trường VN, Tấn Phát Digital đề xuất:
6.1. Cấu trúc tổng thể
shop.com/ ← Homepage
shop.com/danh-muc/ ← All categories
shop.com/danh-muc/{category-slug}/ ← Category page
shop.com/danh-muc/{category-slug}/{sub-category}/ ← Sub-category
shop.com/san-pham/{product-slug} ← Product page
shop.com/blog/ ← Blog
shop.com/blog/{post-slug} ← Blog post
shop.com/gioi-thieu ← About
shop.com/lien-he ← Contact
shop.com/chinh-sach/{policy-slug} ← Policies
6.2. Ví dụ cụ thể
✅ shop.com/danh-muc/quan-ao-nam/
✅ shop.com/danh-muc/quan-ao-nam/ao-thun/
✅ shop.com/san-pham/ao-thun-nam-cotton-trang
✅ shop.com/san-pham/ao-thun-nam-cotton-trang?color=blue
✅ shop.com/blog/cach-chon-ao-thun-phu-hop-voi-dang-nguoi
6.3. URL nên TRÁNH
❌ shop.com/index.php?cat=12
❌ shop.com/product/12345.html
❌ shop.com/ao-thun-cotton/?sid=abc123
❌ shop.com/AoThunNam/CottonTrang ← Camel case
❌ shop.com/ao_thun_nam ← Underscore thay vì hyphen
❌ shop.com/áo-thun-nam ← Có dấu (gây issues encoding)
❌ shop.com/ao-thun-nam-co-ban-tot-nhat-2026-gia-re-chinh-hang ← Quá dài
6.4. Quy tắc đặt URL slug
6 quy tắc Tấn Phát Digital khuyến nghị:
Dùng tiếng Việt KHÔNG dấu —
ao-thun-nam, khôngáo-thun-namDùng hyphen (-), không underscore (_) —
ao-thun-nam, khôngao_thun_namLowercase 100% —
/san-pham/, không/San-Pham/Ngắn gọn — Tối đa 5-7 từ
Có từ khóa chính — Nhưng không stuffing
Không trailing slash sai — Chọn 1 format và consistent
Phần 7: Common Mistakes & Solutions
Mistake 1: Faceted Navigation tạo hàng triệu URLs
Vấn đề:
Site có filter: Color (10), Size (5), Brand (20), Price ranges (5).
Mỗi combination tạo 1 URL → 10 × 5 × 20 × 5 = 5,000 URLs cho 1 category!
Với 100 categories → 500,000 URLs trùng lặp.
Giải pháp:
<!-- Canonical về URL gốc -->
<link rel="canonical" href="https://shop.com/ao-thun">
<!-- HOẶC noindex các trang filter -->
<meta name="robots" content="noindex">
Hoặc trong robots.txt:
Disallow: /*?color=
Disallow: /*?size=
Disallow: /*?brand=
⚠️ Cẩn thận: Robots.txt chặn crawl nhưng không noindex. Dùng kết hợp.
Mistake 2: Session IDs trong URL
Vấn đề:
/ao-thun?session=abc123
/ao-thun?session=def456
/ao-thun?session=ghi789
→ Mỗi user = 1 URL mới → infinite URLs.
Giải pháp:
Dùng cookies cho session
Hoặc canonical về URL không session:
<link rel="canonical" href="https://shop.com/ao-thun">
Mistake 3: Trailing slash inconsistent
Vấn đề:
/ao-thun ← Có thể accessible
/ao-thun/ ← Cũng accessible
→ Google có thể coi là 2 URLs.
Giải pháp:
Chọn 1 và redirect 301:
# Nginx: Remove trailing slash
rewrite ^/(.*)/$ /$1 permanent;
# HOẶC: Add trailing slash
rewrite ^([^.]*[^/])$ $1/ permanent;
Mistake 4: URL có và không có www
Vấn đề:
https://shop.com/ao-thun
https://www.shop.com/ao-thun
Giải pháp:
Redirect 301 từ phiên bản không ưu tiên về phiên bản chính:
# Redirect www → non-www
server {
server_name www.shop.com;
return 301 https://shop.com$request_uri;
}
Mistake 5: HTTP và HTTPS đều accessible
Vấn đề:
http://shop.com/ao-thun
https://shop.com/ao-thun
Giải pháp:
Force HTTPS 100%:
server {
listen 80;
return 301 https://$host$request_uri;
}
Mistake 6: Hết hàng → 404
Vấn đề:
Sản phẩm hết hàng tạm thời → return 404 → mất ranking.
Giải pháp:
Nếu hết hàng tạm thời:
Giữ trang, đánh dấu "Hết hàng"
Suggest sản phẩm tương tự
Email notify khi có hàng
Nếu hết hàng vĩnh viễn:
301 redirect về category gần nhất
Hoặc đến sản phẩm thay thế tương đương
Mistake 7: Dùng JavaScript cho navigation
Vấn đề:
<div onclick="loadCategory('ao-thun')">Áo thun</div>
→ Google không click → không crawl được.
Giải pháp:
<a href="/danh-muc/ao-thun">Áo thun</a>
→ Có thể giữ JS để enhance UX, nhưng base HTML phải có <a href>.
Phần 8: Checklist URL Structure Audit
Tấn Phát Digital chia checklist thành 5 nhóm:
Nhóm 1: URL Format
[ ] URLs có ý nghĩa, không phải ID số
[ ] URLs dùng lowercase 100%
[ ] URLs dùng hyphen (-), không underscore (_)
[ ] URLs không có dấu tiếng Việt
[ ] URLs không quá dài (max 5-7 từ)
[ ] Trailing slash consistent
[ ] HTTPS bắt buộc
[ ] www/non-www chỉ chọn 1
Nhóm 2: Query Parameters
[ ] Dùng
?key=valueformat[ ] Không duplicate parameters
[ ] Không session IDs trong URL
[ ] Không tracking parameters bị index
[ ] Không timestamp/dynamic values
Nhóm 3: Product Variants
[ ] Mỗi variant có URL riêng
[ ] Canonical về URL không có query param
[ ] Variant linkage rõ ràng
Nhóm 4: Pagination
[ ] Mỗi page có unique URL
[ ] Pagination dùng
<a href>(crawlable)[ ] Không dùng
#cho pagination[ ] Page 1 có canonical chuẩn
Nhóm 5: Faceted Navigation
[ ] Filters có canonical hợp lý
[ ] Robots.txt block các filter combinations
[ ] Hoặc noindex các filter pages
[ ] Internal links không trỏ đến filter URLs
Nhóm 6: Empty/Error Pages
[ ] Empty category → noindex
[ ] Sản phẩm xóa vĩnh viễn → 301 redirect hoặc 404
[ ] Sản phẩm hết hàng tạm thời → giữ trang
Phần 9: Implementation Guide cho các Platform phổ biến
9.1. WordPress (WooCommerce)
Plugin recommended:
Yoast SEO hoặc Rank Math — Canonical management
WP Rocket — Performance + URL optimization
Setup:
Settings → Permalinks → Custom Structure:
/%category%/%postname%/
WooCommerce → Settings → Products → General:
Product permalinks: /san-pham/
Category base: /danh-muc/
Code snippet để handle filter URLs:
// functions.php
add_filter('woocommerce_get_canonical_url', function($url) {
// Remove tracking parameters
$url = remove_query_arg(['utm_source', 'fbclid', 'gclid'], $url);
return $url;
});
9.2. Shopify
Built-in features:
Auto canonical tags
Pretty URLs
HTTPS mặc định
Manual customization:
<!-- theme.liquid -->
<link rel="canonical" href="{{ canonical_url }}">
{% if template == 'product' %}
<!-- Variant canonical -->
<link rel="canonical" href="{{ product.url }}">
{% endif %}
9.3. Magento 2
Configuration:
Stores → Configuration → Web → URL Options:
- Add Store Code to Urls: No
- Auto-redirect to Base URL: Yes (301)
SEO Settings:
Stores → Configuration → Catalog → Search Engine Optimization:
- Use Categories Path for Product URLs: No (để URL ngắn hơn)
- Create Permanent Redirect: Yes
9.4. Custom platform
Nếu build từ đầu, follow nguyên tắc:
Routing layer: Express, Laravel, Django routes
Middleware: Force lowercase, HTTPS, canonical
Database: Slug field cho mỗi entity
Caching: Redis/CDN cho URL lookups
Ví dụ Express.js middleware:
// Force lowercase URLs
app.use((req, res, next) => {
if (req.path !== req.path.toLowerCase()) {
return res.redirect(301, req.path.toLowerCase());
}
next();
});
// Force HTTPS
app.use((req, res, next) => {
if (req.header('x-forwarded-proto') !== 'https') {
return res.redirect(301, `https://${req.header('host')}${req.url}`);
}
next();
});
Phần 10: URL Migration — Khi cần đổi cấu trúc
Đây là tình huống phổ biến: Site cũ có URL tệ → cần migrate sang URL mới tốt hơn.
10.1. Quy trình migration an toàn
Bước 1: Lập map URL cũ → mới
URL Cũ → URL Mới
/p?id=12345 → /ao-thun-nam-cotton-trang
/category.php?cat=789 → /danh-muc/ao-thun-nam
/index.php?page=about → /gioi-thieu
Bước 2: Implement 301 redirects
# Nginx
rewrite ^/p?id=12345$ /ao-thun-nam-cotton-trang permanent;
rewrite ^/category\.php\?cat=789$ /danh-muc/ao-thun-nam permanent;
Bước 3: Update internal links
Sitemap
Navigation
Footer
Internal cross-links
Bước 4: Update canonical tags
<link rel="canonical" href="https://shop.com/ao-thun-nam-cotton-trang">
Bước 5: Submit sitemap mới + Request indexing
Submit XML sitemap với URLs mới
URL Inspection → Request indexing cho top pages
Bước 6: Monitor
Daily check Search Console
Watch for 404 errors
Monitor traffic recovery
10.2. Thời gian recovery
Site size | Thời gian Google recrawl |
|---|---|
< 1,000 URLs | 1-2 tuần |
1,000-10,000 URLs | 2-4 tuần |
10,000-100,000 URLs | 1-3 tháng |
> 100,000 URLs | 3-6 tháng |
URL Structure — Đầu tư một lần, hưởng lợi mãi mãi
URL structure là một trong những foundation quan trọng nhất của ecommerce SEO. Làm đúng ngay từ đầu → tiết kiệm hàng năm refactor sau này.
5 thông điệp cuối
1. Mỗi content = một URL chính. Đừng để duplicate URLs làm lãng phí crawl budget.
2. Descriptive > Cryptic. URL có ý nghĩa luôn tốt hơn ID số.
3. Consistency là king. Format URL phải nhất quán toàn site.
4. Variants cần URL riêng + Canonical đúng. Đây là điểm phức tạp nhất.
5. Migration là rủi ro cao. Plan kỹ, redirect đầy đủ, monitor liên tục.
Bài tiếp theo
Trong bài tiếp theo của cluster Ecommerce, chúng ta sẽ đi sâu vào Bài 13: Product Schema Markup Chi Tiết — cách implement structured data đầy đủ cho sản phẩm.
Tài liệu tham khảo chính thức
Designing a URL structure for ecommerce sites — Tài liệu nguồn
Về Tấn Phát Digital
Tấn Phát Digital có kinh nghiệm migration URL cho hàng chục ecommerce site lớn tại VN. Chúng tôi cung cấp:
URL Architecture Audit — Đánh giá hiện trạng URL structure
URL Migration Service — An toàn không mất SEO juice
Faceted Navigation Setup — Tối ưu filter cho ecommerce lớn
Multi-platform expertise — WordPress, Shopify, Magento, Custom
Liên hệ Tấn Phát Digital để được tư vấn về URL structure cho shop của bạn.
Bài viết được biên soạn từ tài liệu chính thức Google Search Central, cập nhật 10/12/2025. Phần phân tích, code examples, checklist và Implementation guide thuộc về Tấn Phát Digital.
SEO Ecommerce không chỉ nằm ở nội dung hay backlink — mà còn bắt đầu từ nền tảng kỹ thuật như cấu trúc URL.
Nếu bạn muốn xây dựng website bán hàng chuẩn SEO và tối ưu technical SEO toàn diện, hãy liên hệ Tấn Phát Digital để được tư vấn.









