Schema & Structured Data

SoftwareSourceCode Schema

Schema mô tả mã nguồn phần mềm (source code), bao gồm repository, license, programming language và phiên bản.

3 lượt xem Cập nhật: 26/05/2026

SoftwareSourceCode Schema là gì?

SoftwareSourceCode Schema là một loại markup cấu trúc (structured data) thuộc chuẩn schema.org, dùng để mô tả chi tiết mã nguồn phần mềm — bao gồm vị trí lưu trữ (repository), giấy phép sử dụng (license), ngôn ngữ lập trình, phiên bản phát hành và các thuộc tính kỹ thuật liên quan. Đây không phải là một schema độc lập, mà là một lớp con của SoftwareApplication, được thiết kế riêng cho các trang web giới thiệu hoặc phân phối mã nguồn mở (open-source) như GitHub, GitLab, trang dự án cá nhân hoặc tài liệu kỹ thuật.

Tại sao quan trọng trong SEO?

SoftwareSourceCode Schema giúp công cụ tìm kiếm hiểu rõ hơn về bản chất kỹ thuật của nội dung — đặc biệt khi trang web đang quảng bá một thư viện, framework hoặc công cụ lập trình. Khi triển khai đúng, schema này có thể hỗ trợ:

  • Tăng khả năng xuất hiện trong kết quả tìm kiếm nâng cao (rich results), ví dụ: hiển thị badge "Open Source", logo license, hoặc nút "View on GitHub";
  • Cải thiện độ tin cậy (E-E-A-T) nhờ làm rõ thông tin xác thực: ai phát triển, giấy phép nào áp dụng, có được cập nhật gần đây không;
  • Hỗ trợ lập chỉ mục chính xác hơn cho các truy vấn như "mã nguồn Python xử lý CSV", "library JavaScript mã hóa JWT" — vì Google có thể khớp trực tiếp giữa query và thuộc tính programmingLanguage, codeRepository hoặc softwareVersion.

Lưu ý: Hiện tại Google không hiển thị rich result riêng biệt cho SoftwareSourceCode như với Recipe hay Event. Tuy nhiên, schema này vẫn góp phần vào việc xây dựng đồ thị tri thức (knowledge graph) và hỗ trợ xếp hạng gián tiếp qua tín hiệu chất lượng.

Cách hoạt động

SoftwareSourceCode Schema hoạt động bằng cách thêm dữ liệu có cấu trúc vào mã HTML (thường dưới dạng JSON-LD trong thẻ <script>), giúp máy tìm kiếm đọc hiểu các thực thể và mối quan hệ giữa chúng — thay vì chỉ phân tích văn bản thuần. Ví dụ: khi Google thấy giá trị "license": "https://opensource.org/licenses/MIT", nó biết đây là giấy phép MIT, không phải chuỗi ký tự vô nghĩa.

Schema này không yêu cầu trang phải chứa mã nguồn đầy đủ — chỉ cần mô tả chính xác các thuộc tính bắt buộc và khuyến nghị theo tiêu chuẩn schema.org. Việc triển khai sai hoặc thiếu thuộc tính bắt buộc (như codeRepository) sẽ khiến schema bị bỏ qua hoàn toàn.

Hướng dẫn thực hiện

Dưới đây là các bước triển khai SoftwareSourceCode Schema đúng chuẩn:

  1. Xác định trang phù hợp: Chỉ triển khai trên trang giới thiệu sản phẩm phần mềm có mã nguồn công khai — ví dụ: trang chủ thư viện axios, trang docs của Vue Router, hoặc blog giới thiệu tool CLI bạn viết.
  2. Chuẩn bị thông tin bắt buộc:
    • codeRepository: URL trực tiếp đến kho lưu trữ (GitHub/GitLab — phải là URL gốc, không phải link rút gọn);
    • programmingLanguage: tên ngôn ngữ dưới dạng chuỗi (ví dụ: "JavaScript", "Python"), hoặc tham chiếu tới schema ComputerLanguage nếu muốn chi tiết hơn;
    • name: tên phần mềm (bắt buộc theo schema.org, dù không hiển thị trực tiếp).
  3. Thêm JSON-LD vào <head>: Đặt đoạn mã dưới dạng <script type="application/ld+json">...</script> trong thẻ <head> hoặc trước thẻ </body>.
  4. Kiểm tra bằng công cụ: Dùng Google Search Console → Công cụ kiểm tra URL → tab “Preview” hoặc URL Inspection Tool. Cũng nên kiểm tra chéo bằng Schema Markup Validator.

Lỗi thường gặp

Dưới đây là những lỗi phổ biến và cách khắc phục:

Lỗi Nguồn gốc Cách sửa
Thiếu codeRepository Bỏ sót thuộc tính bắt buộc Thêm URL kho lưu trữ hợp lệ (ví dụ: https://github.com/facebook/react). Không dùng URL trang web chính thức hoặc demo.
programmingLanguage sai định dạng Ghi "js" hoặc "py" thay vì tên đầy đủ Dùng tên chuẩn: "JavaScript", "Python", "TypeScript". Có thể tra cứu danh sách chuẩn tại schema.org/ComputerLanguage.
License không phải URL hoặc URI hợp lệ Ghi "MIT License" thay vì URI Dùng URI chuẩn từ SPDX (ví dụ: "https://spdx.org/licenses/MIT") hoặc URL giấy phép đầy đủ.
Đặt schema trên trang không liên quan Thêm vào bài blog không nói về mã nguồn Chỉ triển khai trên trang mô tả phần mềm có mã nguồn công khai. Không dùng cho bài hướng dẫn sử dụng hoặc review sản phẩm thương mại.

Ví dụ thực tế

Dưới đây là đoạn JSON-LD mẫu cho thư viện Day.js — một thư viện xử lý ngày tháng nhẹ cho JavaScript:

{ "@context": "https://schema.org", "@type": "SoftwareSourceCode", "name": "Day.js", "description": "Một thư viện xử lý ngày tháng nhẹ, không thay đổi nguyên bản, tương thích với Moment.js.", "codeRepository": "https://github.com/iamkun/dayjs", "programmingLanguage": "JavaScript", "runtimePlatform": "Node.js, Browser", "softwareVersion": "1.11.10", "license": "https://spdx.org/licenses/MIT", "author": { "@type": "Person", "name": "Iamkun" }, "datePublished": "2018-06-01", "downloadUrl": "https://cdn.jsdelivr.net/npm/dayjs@1.11.10/dayjs.min.js" }

Lưu ý: Các thuộc tính như datePublished, author, downloadUrl là tùy chọn nhưng rất khuyến khích để tăng độ phong phú và tính xác thực.

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

SoftwareSourceCode Schema có làm tăng thứ hạng trực tiếp không?

Không. Hiện chưa có bằng chứng nào cho thấy schema này ảnh hưởng trực tiếp đến thứ hạng. Tuy nhiên, nó hỗ trợ cải thiện trải nghiệm người dùng qua rich snippet tiềm năng và tăng độ tin cậy — hai yếu tố gián tiếp ảnh hưởng đến CTR và thời gian ở lại trang.

Có thể dùng nhiều SoftwareSourceCode Schema trên cùng một trang không?

Có thể, nhưng chỉ khi trang đó mô tả nhiều phần mềm riêng biệt (ví dụ: trang so sánh thư viện). Mỗi schema phải đại diện cho một thực thể duy nhất và không trùng lặp @id. Nếu không chắc, nên dùng một schema mỗi trang.

Phải dùng JSON-LD hay có thể dùng Microdata / RDFa?

Google ưu tiên JSON-LD vì dễ triển khai và ít gây xung đột với HTML. Microdata và RDFa vẫn hoạt động nhưng dễ sai cú pháp hơn, đặc biệt với cấu trúc lồng nhau. Với SoftwareSourceCode, JSON-LD là lựa chọn an toàn và được khuyến nghị chính thức bởi schema.org.