Chuẩn bị dữ liệu cho CarMall

Tài liệu này hướng dẫn cách chuẩn bị dữ liệu sản phẩm, dịch vụ, danh mục, thương hiệu, đại lý, blog và khuyến mãi để tối ưu cho công cụ tìm kiếm. Đây là bước phải làm trước khi tối ưu on-page, schema, sitemap hoặc chạy Ads.

Mục tiêu

  • Đảm bảo dữ liệu nhập vào CarMall đủ rõ để người dùng và công cụ tìm kiếm đều hiểu.
  • Giảm lỗi siêu dữ liệu trùng lặp, mô tả chung chung, slug sai, ảnh thiếu ngữ cảnh.
  • Chuẩn hóa dữ liệu cho các trang quan trọng: sản phẩm, dịch vụ, danh mục, thương hiệu, đại lý, blog, khuyến mãi.
  • Tạo nền dữ liệu đủ tốt cho schema Product, Service, LocalBusiness, Article, BreadcrumbList và Offer.

Khi nào dùng

  • Trước khi nhập dữ liệu mới vào admin.
  • Khi chuẩn bị đưa một nhóm sản phẩm/dịch vụ lên môi trường chính thức.
  • Khi tạo danh mục, thương hiệu hoặc đại lý mới.
  • Khi import dữ liệu hàng loạt từ CSV.
  • Khi Search Console hoặc công cụ crawl báo title/description trùng, trang mỏng nội dung hoặc schema thiếu dữ liệu.

Đầu ra cần có

Sau khi hoàn thành bước chuẩn bị dữ liệu:

  • Danh sách sản phẩm, dịch vụ, danh mục, thương hiệu, đại lý, blog hoặc khuyến mãi sẽ công khai.
  • Trạng thái rõ cho từng trang: cho phép index, tạm chưa công khai, hoặc không cho index.
  • Bộ trường dữ liệu đã đủ theo checklist bắt buộc bên dưới.
  • Slug ổn định cho từng trang.
  • Mô tả ngắn, mô tả chi tiết, title và description riêng cho từng trang quan trọng.
  • Ảnh đại diện và ảnh phụ đúng nội dung.
  • Dữ liệu giá, tồn kho, thời lượng dịch vụ, ngày khuyến mãi, địa chỉ đại lý là dữ liệu thật.
  • Danh sách lỗi cần sửa trước khi cho trang xuất hiện trên công cụ tìm kiếm.

Nguyên tắc dữ liệu SEO

  • Dữ liệu phải cụ thể, không viết chung chung.
  • Mỗi đối tượng dữ liệu có slug ổn định, dễ đọc, phản ánh đúng nội dung.
  • name, summary, description, metaTitle, metaDescription phải khớp nhau về ý nghĩa.
  • Ảnh đại diện phải thể hiện đúng sản phẩm/dịch vụ/thương hiệu/đại lý.
  • Giá, tồn kho, tình trạng hàng, đánh giá phải là dữ liệu thật.
  • Không tạo nhiều trang gần giống nhau nếu chỉ khác chi tiết nhỏ.
  • Không nhập dữ liệu giả chỉ để schema đẹp hơn.

Checklist bắt buộc theo loại dữ liệu

Loại dữ liệuTrường bắt buộc cho SEOTrường nên có
Sản phẩmsku, name, summary (dưới 256 ký tự), description (Markdown từ file .md), category, brand, metaTitle, metaDescriptioncoverImageUrl, variants, attributes, highlights, origin
Biến thể sản phẩmproduct_sku, variant_sku, name, price, statusattributes và các cột con theo dạng Tên tiếng Việt (json_name), manufacturerPartNumber, description
Dịch vụname, slug, summary, description, category, coverImageUrl, metaTitle, metaDescriptionsteps, variants, medias
Biến thể dịch vụname, price, durationMinutedescription, steps
Danh mụcname, slug, type, description, metaTitle, metaDescriptionparent, imageUrl, brands, position
Thương hiệuname, slug, logoUrl, description, metaTitle, metaDescriptioncategories, status
Đại lýfullName, slug, contactNumber, description, addressescoverImageUrl, productRating, serviceRating, openingHours¹, specialties¹, categories¹, brands¹
Blogtitle, slug, summary, content, categoryId, coverImageUrl, metaTitle, metaDescriptiontags, isFeatured, internalUrl
Khuyến mãi (chương trình)²name, slug, description, startDate, statusendDate, imageUrl
Mã giảm giá (coupon)³name, description, terms, status, validFromvalidUntil, sản phẩm/dịch vụ/danh mục/thương hiệu áp dụng (qua điều kiện áp dụng)

¹ Chỉ có ở dữ liệu chi tiết đại lý (IDealerDetailDto), không có ở dữ liệu đại lý cơ bản dùng cho danh sách/thẻ. ² Là trang có URL riêng (/khuyen-mai/[slug]), dùng để làm trang đích SEO công khai. ³ Là mã giảm giá áp dụng trong giỏ hàng/thanh toán, không có slug/imageUrl riêng nên không tạo trang đích SEO độc lập — chỉ hiển thị lồng trong trang khuyến mãi hoặc giỏ hàng.

Quy trình tổng thể

  1. Xác định nhóm dữ liệu cần công khai.

    • Ví dụ: 50 sản phẩm lốp, 10 dịch vụ bảo dưỡng, 5 thương hiệu, 20 đại lý.
    • Không đưa tất cả dữ liệu lên chỉ vì đã có trong hệ thống; ưu tiên nhóm có nhu cầu tìm kiếm và có khả năng tạo doanh thu.
  2. Quyết định trang nào được index.

    • Trang đủ dữ liệu và có giá trị tìm kiếm: cho phép index.
    • Trang thiếu dữ liệu, trùng lặp hoặc chỉ phục vụ thao tác cá nhân: không cho index.
    • Trang thử nghiệm, dữ liệu nháp, dữ liệu chưa có giá/tồn kho/đại lý: chưa công khai.
  3. Chuẩn hóa tên, slug, danh mục và thương hiệu.

    • Tên phải phản ánh đúng thực thể kinh doanh.
    • Slug không dấu, dễ đọc, ổn định.
    • Danh mục và thương hiệu phải dùng một nguồn chuẩn, không tạo bản ghi trùng.
  4. Viết nội dung chính.

    • summary trả lời nhanh “đây là gì, dành cho ai, giá trị chính là gì”.
    • description cung cấp thông tin chọn mua, thông số, quy trình, bảo hành, điều kiện áp dụng hoặc khu vực phục vụ.
  5. Viết siêu dữ liệu.

    • metaTitle dùng cho tiêu đề kết quả tìm kiếm.
    • metaDescription dùng cho mô tả kết quả tìm kiếm.
    • Không dùng một mẫu giống nhau cho hàng loạt trang.
  6. Chuẩn bị ảnh.

    • Ảnh phải rõ, đúng đối tượng, không méo, không quá tối.
    • Tên ảnh và alt text nên mô tả đúng nội dung khi hệ thống hỗ trợ.
  7. Kiểm tra dữ liệu trước khi xuất bản.

    • Rà lỗi chính tả, sai thương hiệu, sai danh mục, sai giá, sai tồn kho, sai ngày khuyến mãi.
    • Kiểm tra trang trên môi trường thử nghiệm trước khi đưa lên môi trường chính thức.

Chuẩn dữ liệu sản phẩm

Mục tiêu

Trang sản phẩm phải giúp người dùng biết sản phẩm là gì, dùng cho xe/nhu cầu nào, thông số ra sao, có giá/tồn kho không, mua ở đâu và vì sao nên mua trên CarMall.

Cách chuẩn bị

  1. Viết name rõ ràng.

    • Nên gồm loại sản phẩm, thương hiệu, dòng/mã, thông số quan trọng.
    • Ví dụ tốt: Lốp Michelin Pilot Sport 4 225/45R17.
    • Ví dụ yếu: Lốp Michelin đẹp.
  2. Kiểm tra slug tự động.

    • Không cần chuẩn bị hoặc nhập cột slug cho sản phẩm.
    • Hệ thống tự tạo slug từ name theo dạng chữ thường, không dấu và có gạch nối.
    • Dấu + được chuyển thành từ plus; ví dụ ENERGY XM2+ thành energy-xm2-plus.
    • Dấu / được chuyển thành dấu -; ví dụ 225/45R17 thành 225-45r17.
    • Ví dụ: Lốp Michelin Pilot Sport 4 225/45R17 tự tạo thành lop-michelin-pilot-sport-4-225-45r17.
  3. Viết summary.

    • 1-2 câu, nói nhanh sản phẩm phù hợp với ai.
    • Nên có loại xe/nhu cầu hoặc lợi ích chính.
    • Phải dưới 256 ký tự, tương đương tối đa 255 ký tự.
  4. Viết description.

    • Chuẩn bị nội dung dưới dạng Markdown trong file .md.
    • Có mô tả chi tiết, lợi ích, thông số, trường hợp sử dụng, bảo hành, lưu ý lắp đặt.
    • Nếu là lốp/ắc quy/dầu nhớt, phải có thông số giúp người dùng chọn đúng.
  5. Chuẩn hóa category và brand.

    • Không để sản phẩm sai danh mục.
    • Không tạo nhiều thương hiệu trùng như Michelin, MICHELIN, michelin.
  6. Chuẩn hóa các cột thuộc attributes.

    • Header phải có tên hiển thị bằng tiếng Việt, theo sau là tên dùng trong JSON bằng tiếng Anh đặt trong ngoặc đơn.
    • Dùng định dạng Tên tiếng Việt (json_name), ví dụ: Kích thước (size), Số lớp bố (pr), Mã gai (pattern_code).
    • json_name là key được lưu trong hệ thống, phải viết theo kiểu snake_case, không dấu, không khoảng trắng và ổn định giữa các file import.
    • Ví dụ, cột Kích thước (size) sẽ được chuyển thành thuộc tính "size": "7.00R16" trong JSON; phần Kích thước chỉ dùng làm tên hiển thị.
  7. Nhập variants.

    • Mỗi biến thể cần có product_sku, variant_sku, tên, giá và trạng thái; không yêu cầu cột quantity trong file biến thể.
    • product_sku dùng để tìm và liên kết biến thể với sản phẩm cha.
    • variant_sku dùng để định danh biến thể và phải là duy nhất giữa các biến thể.
    • Nhóm cột thuộc tính dùng header chính attributes. Các cột con bên dưới áp dụng cùng quy tắc với thuộc tính sản phẩm: Tên tiếng Việt (json_name).
    • Ví dụ: Kích thước (size), Số lớp bố (pr), Mã gai (pattern_code); các key được lưu vào JSON lần lượt là size, pr, pattern_code.
  8. Chuẩn bị ảnh.

    • coverImageUrl không bắt buộc trong dữ liệu import ban đầu.
    • Nếu có, coverImageUrl phải là ảnh sản phẩm thật hoặc ảnh đại diện rõ.
    • Ảnh phụ nên thể hiện góc khác, thông số, bao bì, tem chính hãng nếu có.
    • Alt text nên mô tả: Lốp Michelin Pilot Sport 4 kích thước 225/45R17.
  9. Viết SEO dữ liệu.

    • metaTitle: 50-60 ký tự nếu có thể, có từ khóa chính và CarMall.
    • metaDescription: 140-160 ký tự nếu có thể, có lợi ích, yếu tố tin cậy, CTA.

Ví dụ

TrườngVí dụ tốt
nameLốp Michelin Pilot Sport 4 225/45R17
summaryLốp hiệu suất cao cho sedan và hatchback, bám đường tốt trên đường khô và ướt.
descriptionNội dung Markdown được chuẩn bị trong file .md
metaTitleLốp Michelin Pilot Sport 4 225/45R17 | CarMall
metaDescriptionMua lốp Michelin Pilot Sport 4 225/45R17 chính hãng tại CarMall. Có đại lý lắp đặt, giá rõ ràng, hỗ trợ tư vấn nhanh.

Chuẩn dữ liệu dịch vụ

Mục tiêu

Trang dịch vụ phải giúp người dùng hiểu dịch vụ giải quyết vấn đề gì, quy trình ra sao, mất bao lâu, giá thế nào và đặt lịch ở đâu.

Cách chuẩn bị

  1. Viết name theo hành động hoặc nhu cầu.

    • Ví dụ tốt: Thay dầu động cơ ô tô.
    • Ví dụ yếu: Dịch vụ tốt.
  2. Viết summary.

    • Nêu vấn đề, lợi ích và thời điểm nên dùng dịch vụ.
  3. Viết description.

    • Có quy trình, thời gian, loại xe phù hợp, điều kiện bảo hành, lưu ý trước/sau khi làm dịch vụ.
  4. Nhập steps.

    • Mỗi bước nên có mô tả và thời lượng nếu biết.
    • Giúp người dùng tin tưởng và giúp trang có nội dung sâu hơn.
  5. Nhập biến thể dịch vụ.

    • Ví dụ: Gói cơ bản, Gói tiêu chuẩn, Gói cao cấp.
    • Mỗi biến thể cần giá, thời lượng, mô tả khác biệt.
  6. Gắn danh mục và đại lý cung cấp.

    • Dịch vụ không có đại lý thực hiện sẽ khó chuyển đổi.
  7. Viết siêu dữ liệu.

    • metaTitle nên chứa tên dịch vụ.
    • metaDescription nên có lợi ích, thời gian/giá nếu phù hợp, CTA đặt lịch.

Ví dụ

TrườngVí dụ tốt
nameThay dầu động cơ ô tô
slugthay-dau-dong-co-o-to
summaryDịch vụ thay dầu động cơ giúp xe vận hành êm, bảo vệ động cơ và duy trì hiệu suất.
metaTitleThay dầu động cơ ô tô chuyên nghiệp | CarMall
metaDescriptionĐặt lịch thay dầu động cơ ô tô tại CarMall. Quy trình rõ ràng, có đại lý gần bạn, giá minh bạch và hỗ trợ tư vấn nhanh.

Chuẩn dữ liệu danh mục

Mục tiêu

Danh mục phải là trang đích SEO có giá trị, không chỉ là danh sách sản phẩm hoặc dịch vụ.

Cách chuẩn bị

  1. Đặt name theo cách người dùng tìm kiếm.

    • Ví dụ: Lốp xe ô tô, Ắc quy ô tô, Bảo dưỡng định kỳ.
  2. Tạo slug ngắn và ổn định.

    • Ví dụ: lop-xe-o-to, ac-quy-o-to, bao-duong-dinh-ky.
  3. Viết description.

    • Giải thích danh mục gồm gì, phù hợp nhu cầu nào, tiêu chí chọn ra sao.
    • Nên có internal link sang sản phẩm/dịch vụ nổi bật hoặc bài tư vấn.
  4. Gắn type.

    • Phân biệt rõ danh mục sản phẩm, dịch vụ, blog hoặc loại đối tượng dữ liệu tương ứng.
  5. Chuẩn hóa cây cha/con.

    • Danh mục con phải thật sự cụ thể hơn danh mục cha.
    • Không tạo danh mục con chỉ để nhồi từ khóa.
  6. Viết siêu dữ liệu riêng.

    • Không dùng cùng một description cho nhiều danh mục.

Ví dụ

TrườngVí dụ tốt
nameLốp xe ô tô
sluglop-xe-o-to
descriptionDanh mục lốp xe ô tô chính hãng, hỗ trợ chọn theo kích thước, dòng xe, thương hiệu và nhu cầu vận hành.
metaTitleLốp xe ô tô chính hãng, nhiều thương hiệu | CarMall
metaDescriptionTìm lốp xe ô tô theo kích thước, thương hiệu và dòng xe tại CarMall. Có đại lý lắp đặt, giá rõ ràng, hỗ trợ tư vấn.

Chuẩn dữ liệu thương hiệu

Mục tiêu

Trang thương hiệu giúp người dùng tìm sản phẩm chính hãng theo thương hiệu và giúp công cụ tìm kiếm hiểu mối quan hệ giữa thương hiệu, danh mục và sản phẩm.

Cách chuẩn bị

  1. Chuẩn hóa name.

    • Chỉ một cách viết chính thức cho mỗi thương hiệu.
    • Không tạo thương hiệu trùng do khác viết hoa/viết thường.
  2. Tạo slug.

    • Ví dụ: michelin, bosch, bridgestone.
  3. Thêm logoUrl.

    • Dùng logo rõ, đúng tỉ lệ, không méo hoặc mờ.
  4. Viết description.

    • Nêu thương hiệu là ai, nổi bật ở nhóm sản phẩm nào, vì sao phù hợp với khách CarMall.
    • Không copy mô tả chung quá dài từ nguồn khác nếu không cần.
  5. Gắn danh mục liên quan.

    • Ví dụ Michelin gắn với lốp; Bosch có thể gắn với ắc quy/phụ tùng.
  6. Viết siêu dữ liệu riêng.

    • metaTitle nên có tên thương hiệu và nhóm sản phẩm chính.

Ví dụ

TrườngVí dụ tốt
nameMichelin
slugmichelin
descriptionMichelin là thương hiệu lốp xe nổi tiếng, phù hợp nhiều dòng xe du lịch, SUV và xe hiệu suất cao.
metaTitleSản phẩm Michelin chính hãng tại CarMall
metaDescriptionKhám phá sản phẩm Michelin chính hãng tại CarMall. Tìm lốp phù hợp theo kích thước, dòng xe và đại lý lắp đặt gần bạn.

Chuẩn dữ liệu đại lý

Mục tiêu

Trang đại lý phải đủ dữ liệu cho Local SEO và đủ thông tin để người dùng gọi điện, chỉ đường, đặt lịch hoặc mua hàng.

Ghi chú: khác với sản phẩm/dịch vụ/danh mục/thương hiệu/blog, dữ liệu đại lý hiện chưa có metaTitle/metaDescription riêng. Cần đề xuất bổ sung ở backend nếu muốn tối ưu tiêu đề/mô tả kết quả tìm kiếm cho từng trang đại lý; trong lúc chờ, title/description trang đại lý phải tự sinh từ fullName + địa chỉ.

Cách chuẩn bị

  1. Chuẩn hóa fullName.

    • Dùng tên đại lý/garage đúng như biển hiệu hoặc hồ sơ doanh nghiệp.
  2. Tạo slug.

    • Nên có tên đại lý và khu vực nếu cần phân biệt.
  3. Nhập contactNumber.

    • Số điện thoại phải gọi được.
  4. Nhập địa chỉ.

    • Cần tỉnh/thành, phường/xã, địa chỉ cụ thể.
    • Nếu có tọa độ, nhập để hỗ trợ tìm đại lý gần nhất.
  5. Viết description.

    • Nêu đại lý chuyên gì, khu vực phục vụ, sản phẩm/dịch vụ nổi bật.
  6. Thêm giờ hoạt động và chuyên môn.

    • openingHours, specialties, categories, brands giúp trang rõ hơn.
  7. Chuẩn bị ảnh.

    • Ảnh mặt tiền, khu vực tiếp khách, khu vực làm dịch vụ, logo nếu có.

Chuẩn dữ liệu blog

Mục tiêu

Blog phải phục vụ nhu cầu tư vấn và dẫn người dùng về trang có khả năng chuyển đổi.

Cách chuẩn bị

  1. title trả lời đúng câu hỏi người dùng đang tìm.
  2. slug ngắn, không dấu, dễ đọc.
  3. summary tóm tắt câu trả lời chính.
  4. content phải có câu trả lời rõ, bảng/checklist nếu hữu ích, FAQ nếu có câu hỏi thường gặp.
  5. categoryId đúng nhóm chủ đề.
  6. tags dùng tiết chế, không nhồi từ khóa.
  7. internalUrl hoặc internal link trong nội dung phải dẫn về sản phẩm/dịch vụ/danh mục/đại lý liên quan.
  8. metaTitle và metaDescription phải viết riêng.

Chuẩn dữ liệu khuyến mãi

Mục tiêu

Trang khuyến mãi phải đủ rõ để người dùng hiểu ưu đãi, điều kiện và thời gian áp dụng; đồng thời hỗ trợ đo lường chiến dịch.

Hệ thống có hai loại dữ liệu khuyến mãi khác nhau, không dùng chung một bộ trường:

  • Chương trình khuyến mãi: có trang đích riêng /khuyen-mai/[slug], dùng để SEO và truyền thông.
  • Mã giảm giá (coupon): gắn với một hoặc nhiều chương trình, áp dụng trong giỏ hàng/thanh toán, không có slug/imageUrl riêng nên không tạo trang đích SEO độc lập.

Cách chuẩn bị chương trình khuyến mãi

  1. name nói rõ ưu đãi.
  2. slug ngắn và theo tên chương trình.
  3. description nêu lợi ích chính.
  4. startDate và endDate chính xác.
  5. Ảnh khuyến mãi (imageUrl) rõ thông điệp, không che mất sản phẩm/dịch vụ chính.
  6. Không để chương trình hết hạn hiển thị như còn hiệu lực (status).

Cách chuẩn bị mã giảm giá (coupon)

  1. name nói rõ ưu đãi của mã.
  2. terms ghi điều kiện áp dụng.
  3. validFrom và validUntil chính xác.
  4. Gắn sản phẩm, dịch vụ, danh mục, thương hiệu hoặc đại lý áp dụng qua điều kiện áp dụng.
  5. Không để mã hết hạn hiển thị như còn dùng được (status).

Checklist trước khi xuất bản

Câu hỏiĐạt khi
Tên có rõ không?Người mới đọc biết đối tượng dữ liệu là gì
Slug có ổn định không?Không dấu, dễ đọc, không nhồi từ khóa
Summary có trả lời nhanh không?1-2 câu nêu giá trị chính
Description có đủ sâu không?Có thông tin thật, không chung chung
Siêu dữ liệu có riêng không?Không trùng hàng loạt giữa nhiều đối tượng dữ liệu
Ảnh có đúng nội dung không?Ảnh rõ, đúng đối tượng dữ liệu, có alt text khi hiển thị
Danh mục/thương hiệu có đúng không?Không gắn sai để lấy lưu lượng truy cập
Giá/tồn kho/trạng thái có thật không?Khớp dữ liệu vận hành
Có internal link không?Có đường đi sang trang liên quan
Có đo lường được không?Trang có sự kiện hoặc KPI phù hợp

Lỗi thường gặp

  • Nhập name quá ngắn hoặc quá chung.
  • Tạo nhiều thương hiệu/danh mục trùng do khác cách viết.
  • Slug thay đổi nhiều lần sau khi đã index.
  • Dùng cùng metaTitle hoặc metaDescription cho nhiều trang.
  • Mô tả sản phẩm/dịch vụ chỉ có câu quảng cáo, thiếu thông số thật.
  • Dữ liệu biến thể thiếu product_sku, variant_sku, giá hoặc trạng thái.
  • Ảnh đại diện không thể hiện đúng đối tượng dữ liệu.
  • Khuyến mãi hết hạn nhưng chưa tắt hoặc chưa cập nhật nội dung.

Cách kiểm tra kết quả

  • Dùng crawler kiểm tra title, description, H1, canonical, ảnh và link nội bộ.
  • Dùng Rich Results Test kiểm tra schema sau khi trang được render.
  • Dùng Search Console xem trang có được index và có truy vấn phù hợp không.
  • Dùng GA4 xem trang có tạo sự kiện chuyển đổi phù hợp không.
  • Dùng Clarity xem người dùng có hiểu trang và click CTA không.

Tài liệu tham khảo chính thức