KDIGI CMS

Tính năng

SEO on-page và JSON-LD tự động trong KDIGI CMS

Trường SEO, mẫu tiêu đề kiểu Rank Math, JSON-LD tự sinh khi lưu và công cụ kiểm tra ngay trong CMS.

Cập nhật lần cuối:

Kính lúp kính mờ cạnh biểu đồ cột và đồ thị nút, đại diện cho SEO và JSON-LD

Tiêu đề và mô tả là mẫu có biến, giải quyết lúc render; JSON-LD schema.org được tự sinh khi lưu vào seo.jsonLd.raw. Bạn không cần plugin SEO riêng.

Tóm tắt nhanh

  • Mẫu theo site, ghi đè theo từng tài liệu.
  • JSON-LD @graph sinh khi lưu, chèn nguyên văn.
  • Ảnh Open Graph có chuỗi dự phòng.
  • Điểm SEO 0–100 và GET /api/seo/audit.
  • Đổi slug tự tạo redirect 301.

Tab SEO của một site: ảnh Open Graph mặc định và danh tính Knowledge Graph

Mẫu thay vì giá trị lưu cứng

  1. Mẫu của site Sites.seoTitles: admin đặt một lần cho mỗi nhóm nội dung.
  2. Ghi đè từng tài liệu seo.title, seo.description. Để trống là dùng mẫu.
  3. Frontend giải quyết Khi render, theo cùng quy tắc ưu tiên.

Biến thường dùng: %title%, %sitename%, %sep%, %excerpt%, %category%, %focuskw%.

Lưu ý seo.title trống trong API là đúng thiết kế. Đổi mẫu của site có hiệu lực ngay với mọi tài liệu chưa ghi đè.

JSON-LD tự sinh

Hook chạy sau mỗi lần lưu pages, posts, products, landings, taxonomies. Nó ghi bằng một lệnh UPDATE nên không tạo thêm phiên bản.

Loại Node chính
posts BlogPosting, Person, BreadcrumbList, WebSite, Organization
pages WebPage (hoặc ContactPage, AboutPage), BreadcrumbList, FAQPage
products, landings Product kèm Offer, ItemPage, FAQPage
taxonomies CollectionPage, BreadcrumbList
<div dangerouslySetInnerHTML={{ __html: post.seo.jsonLd.raw }} />
  • offers chỉ xuất khi giá hiện tại lớn hơn 0
  • aggregateRating cần đủ lượt đánh giá hoặc bật override
  • FAQPage bỏ mục thiếu câu hỏi hoặc câu trả lời
  • Mọi ký tự < được escape thành \u003c

Ảnh Open Graph

Thứ tự dự phòng: seo.openGraph.image → featuredImage → Sites.seoDefaults.ogImage. JSON-LD dùng cùng thứ tự nên thẻ meta và đồ thị luôn khớp nhau.

Công cụ kiểm tra

  • Điểm SEO 0–100 trong trình soạn thảo: từ khóa, độ dài, liên kết nội bộ.
  • Kiểm tra SEO GET /api/seo/audit liệt kê tài liệu thiếu sót, xấu nhất trước.
  • Gợi ý liên kết nội bộ GET /api/seo/internal-link-suggest, tối đa 10 gợi ý.
  • AI SEO (tùy chọn) Gợi ý tiêu đề, mô tả, alt; cần DEEPSEEK_API_KEY và DEEPSEEK_MODEL.

Thẻ Kiểm tra SEO trên bảng điều khiển liệt kê tài liệu cần cải thiện
Thẻ Kiểm tra SEO trên bảng điều khiển

Slug và redirect

Slug tự sinh từ tiêu đề (bỏ dấu, đ thành d). Đổi slug của tài liệu đã có thì CMS tạo redirect 301 và xếp job làm mới cache cho slug cũ. Hook không bao giờ chặn việc lưu.

Quy trình cho site mới

  1. Điền danh tính knowledgeGraph, socialProfiles, seoDefaults.ogImage ở tab Trang & SEO của site.
  2. Đặt mẫu seoTitles cho từng nhóm, giữ tiêu đề ≤ 60 ký tự.
  3. Nhập từ khóa chính Ở seo.focusKeywords, theo dõi điểm trong trình soạn thảo.
  4. Chèn JSON-LD Dùng seo.jsonLd.raw ở frontend và kiểm tra bằng công cụ dữ liệu có cấu trúc.
  5. Chạy audit Định kỳ để tìm tài liệu noindex hay canonical hỏng.

Xem thêm SEO on-page với KDIGI CMS, so sánh với WordPress và tài liệu SEO. Soạn bài ở trình soạn thảo Markdown; quay lại tính năng.

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

JSON-LD được tạo tự động hay phải viết tay?

Tự động. Mỗi lần lưu, CMS dựng đồ thị schema.org vào seo.jsonLd.raw dưới dạng thẻ script hoàn chỉnh. Frontend chỉ cần chèn nguyên văn.

Vì sao `seo.title` trong API thường để trống?

Đó là thiết kế: trống nghĩa là dùng mẫu của site. Đổi mẫu thì mọi tài liệu chưa ghi đè đổi theo ngay. Đừng điền sẵn hàng loạt vì sẽ đóng băng giá trị.

Có bắt buộc dùng AI để viết SEO không?

Không. AI SEO chỉ bật khi đặt DEEPSEEK_API_KEY và DEEPSEEK_MODEL. Thiếu khóa thì các tính năng SEO khác vẫn chạy bình thường.

Đổi slug có làm mất thứ hạng không?

CMS giảm rủi ro: đổi slug trong admin tự tạo redirect 301 từ đường dẫn cũ sang mới. Frontend phải áp dụng danh sách redirect; script ngoài admin phải tự tạo.

Đọc tiếp