Trình tạo mã cấu trúc dữ liệu Schema Markup Generator là gì?
Trình tạo mã cấu trúc dữ liệu là công cụ chuyển thông tin nhập trong biểu mẫu thành đoạn JSON-LD để mô tả nội dung website cho máy đọc. Người quản trị nội dung có thể dùng đoạn kết quả làm mẫu triển khai dữ liệu có cấu trúc, thay vì tự viết từng thuộc tính và sắp xếp toàn bộ cấu trúc JSON.
Công cụ có bốn lựa chọn: Article cho bài viết, Product cho sản phẩm, FAQPage cho hỏi đáp và LocalBusiness cho doanh nghiệp địa phương. Đây là bốn mẫu cụ thể, không phải bộ tạo hỗ trợ mọi loại dữ liệu trong hệ từ vựng Schema.org. Bạn có thể mở Trình tạo mã cấu trúc dữ liệu để tạo ngay đoạn JSON-LD cho trang của mình.
Về kiến thức nền, dữ liệu có cấu trúc giúp diễn giải các thông tin như tên sản phẩm, tác giả hay địa chỉ theo những thuộc tính có ý nghĩa xác định. Nó không thay thế phần nội dung người đọc nhìn thấy. Chẳng hạn, khai báo một câu trả lời trong JSON-LD không tự làm câu trả lời đó xuất hiện trong phần hỏi đáp của trang.
Chức năng được xác nhận của công cụ là tạo kết quả theo loại đang chọn, cập nhật khi nhập liệu và hỗ trợ sao chép. Công cụ không tự cài đoạn mã lên website, không xác thực điều kiện rich results và không bảo đảm thứ hạng tìm kiếm. Vì vậy, đầu ra nên được hiểu là mẫu cần rà soát trước khi triển khai, không phải chứng nhận chất lượng SEO. Xem thêm các công cụ khác trong danh mục SEO để hỗ trợ tối ưu trang của bạn.

Năm thuật ngữ cần hiểu khi tạo dữ liệu có cấu trúc
Schema markup
Schema markup là dữ liệu có cấu trúc dùng một hệ từ vựng để mô tả ý nghĩa của nội dung. Trong ngữ cảnh website, nó có thể cho biết đối tượng đang được mô tả là bài viết, sản phẩm hay doanh nghiệp. Công cụ này sử dụng các loại và thuộc tính thuộc Schema.org. Điểm dễ nhầm là chữ “schema” cũng xuất hiện trong nhiều lĩnh vực khác; schema markup cho nội dung website không đồng nghĩa với sơ đồ cơ sở dữ liệu hoặc JSON Schema để kiểm tra dữ liệu.
JSON-LD
JSON-LD là cách biểu diễn dữ liệu liên kết bằng JSON, với ngữ cảnh giúp diễn giải các thuộc tính và loại đối tượng. Trong công cụ, đây là định dạng đầu ra, còn Article hay Product là loại nội dung được mô tả. Có thể hình dung Schema.org cung cấp từ vựng, còn JSON-LD cung cấp cách viết phần mô tả đó. Một đoạn JSON-LD đọc được về mặt cú pháp vẫn có thể thiếu thông tin quan trọng hoặc chứa dữ liệu sai thực tế.
Rich results
Rich results là kết quả tìm kiếm có thành phần trình bày bổ sung ngoài liên kết văn bản thông thường, tùy loại nội dung và điều kiện của công cụ tìm kiếm. Đây là kiến thức nền để hiểu mục đích sử dụng dữ liệu có cấu trúc, không phải sản phẩm trực tiếp mà công cụ tạo ra. Công cụ xuất văn bản JSON-LD, không xuất giao diện kết quả tìm kiếm. Có mã phù hợp chỉ là một phần của quá trình; không thể suy ra chắc chắn sẽ được hiển thị nổi bật.
Offer
Offer là đối tượng mô tả một chào bán, có thể chứa giá, tiền tệ và tình trạng sẵn có. Nó khác với Product: sản phẩm là thứ được bán, còn chào bán mô tả điều kiện bán. Trong công cụ, Offer được tạo khi giá nhập hợp lệ. Tình trạng hàng chỉ được ghi khi bạn chọn Còn hàng, Hết hàng hoặc Đặt trước; mặc định Không ghi thì kết quả không có availability, và công cụ không kết nối hệ thống kho. Vì thế, thấy Offer trong kết quả không có nghĩa công cụ đã xác nhận sản phẩm đang thực sự có hàng.
AggregateRating
AggregateRating là đánh giá tổng hợp, thường biểu diễn một điểm chung cùng số lượng đánh giá, khác với nội dung của một nhận xét riêng lẻ. Công cụ tạo phần này khi cả điểm đánh giá và số lượt đánh giá đều có nội dung. Nó không thu thập nhận xét hay tính điểm trung bình từ các đánh giá thành phần. Ví dụ, nhập điểm 4.8 và 25 lượt chỉ khai báo hai thông tin đó; tính xác thực và cách tổng hợp vẫn phải có căn cứ riêng.

Cần nhập những gì và kết quả JSON-LD có ý nghĩa gì?
Thông tin bài viết
Biểu mẫu Article nhận tiêu đề, URL bài viết, URL ảnh đại diện, tên tác giả, tên đơn vị xuất bản, URL logo đơn vị xuất bản (không bắt buộc), mô tả và ngày xuất bản. Các thông tin này mô tả danh tính và nguồn xuất bản của bài. Ảnh đại diện bài viết không phải logo đơn vị xuất bản. Hai thông tin có vai trò khác nhau; việc nhập ảnh bài viết không làm công cụ dùng ảnh đó làm logo. Ngày và đường dẫn cần phản ánh bài thực tế. Nếu URL bài viết còn dài và khó đọc, bạn có thể tạo slug gọn gàng trước khi đưa vào biểu mẫu Article.
Thông tin sản phẩm và chào bán
Product nhận tên, thương hiệu, URL ảnh, mô tả ngắn, giá, mã tiền tệ, điểm đánh giá, số lượt đánh giá và lựa chọn tình trạng hàng. Giá phải được hiểu theo tiền tệ đi kèm, không chỉ theo con số. Mã tiền tệ ban đầu là VND. Dòng diễn giải dưới ô giá dùng từ “đồng” và đọc số bằng chữ khi giá là số nguyên VND; với tiền tệ khác, dòng này hiển thị số kèm mã tiền tệ (ví dụ “19,99 USD”), nên đơn vị của chào bán vẫn là mã tiền tệ đã chọn.
Các cặp hỏi đáp
Đầu vào FAQ là từng cặp câu hỏi và câu trả lời do người dùng cung cấp. Đầu ra FAQPage chứa danh sách các cặp đủ nội dung, với câu trả lời được đặt trong đối tượng trả lời tương ứng. Có thể thêm nhiều cặp và xóa bất kỳ cặp nào, kể cả cặp đầu tiên. Công cụ không tự soạn câu hỏi, tìm thông tin hay bổ sung câu trả lời đang thiếu.
Thông tin doanh nghiệp địa phương
LocalBusiness nhận tên doanh nghiệp, URL website, điện thoại, URL hình ảnh và các thành phần địa chỉ. Địa chỉ đường mô tả vị trí cụ thể; thành phố hoặc tỉnh mô tả địa phương; mã quốc gia mặc định là VN. Điện thoại được lấy dưới dạng văn bản, không phải phép tính số. Không có bước được xác nhận để đối chiếu số điện thoại hoặc địa chỉ với doanh nghiệp thực tế.
Cách đọc đoạn kết quả
Kết quả là JSON-LD có lớp bao thẻ script dành cho dữ liệu có cấu trúc, được thụt lề để dễ đọc. Mỗi lần chỉ xuất loại đang chọn, không ghép cả bốn mẫu. Sao chép mới đưa văn bản vào clipboard, chưa cài lên website. Các ô URL, ngày và số hỗ trợ nhập liệu theo trình duyệt, nhưng không thay thế việc xác minh đường dẫn truy cập được, ngày đúng hay dữ liệu đầy đủ.

Công cụ chọn, bỏ và ghép dữ liệu theo quy tắc nào?
Trường rỗng và cấu trúc tối thiểu
Phần lớn nội dung văn bản được bỏ khoảng trắng ở đầu và cuối trước khi đưa vào kết quả. Trường không còn nội dung sau bước này thường bị bỏ qua. Tuy nhiên, công cụ vẫn tạo ngữ cảnh và tên loại khi chưa nhập thông tin, thay vì yêu cầu hoàn tất toàn bộ biểu mẫu. Có kết quả không đồng nghĩa đã có một bản mô tả đầy đủ.
Với Article, tác giả được mô hình hóa là Person, còn đơn vị xuất bản là Organization. Khi có tên đơn vị xuất bản, công cụ chỉ thêm logo nếu bạn nhập URL logo vào ô riêng; để trống thì không có logo trong kết quả. Logo không được tra cứu từ tên tổ chức và cũng không được lấy từ ảnh bài viết.
Điều kiện tạo giá và đánh giá
Giá được phân tích giữ nguyên phần thập phân: dấu chấm thập phân (19.99), dấu phẩy thập phân kiểu Việt Nam (19,99) và dấu phân tách hàng nghìn (25.000.000) đều cho đúng giá trị số; giá là số JSON, không phải chuỗi chữ số. Giá âm hoặc chứa ký tự lạ bị bỏ khỏi kết quả và được báo trong dòng cảnh báo. Offer được tạo khi giá nhập hợp lệ, kể cả giá 0; giá bỏ trống thì không tạo Offer.
Khi có chào bán, tiền tệ trống được thay bằng VND; tình trạng hàng chỉ được ghi khi bạn chọn Còn hàng, Hết hàng hoặc Đặt trước. Không có phép đổi tiền hay kiểm tra kho. Đánh giá tổng hợp chỉ xuất hiện khi đồng thời có điểm trong khoảng 1–5 và số lượt là số nguyên từ 1 trở lên; hai giá trị được ghi dạng số, công cụ không tính điểm trung bình và không kiểm chứng nguồn đánh giá.
Cách lọc hỏi đáp và tạo địa chỉ
FAQ chỉ giữ cặp có cả câu hỏi lẫn câu trả lời sau khi bỏ khoảng trắng đầu cuối. Những cặp hợp lệ giữ thứ tự trên biểu mẫu. Thêm một cặp trống không làm tăng số câu hỏi trong kết quả; cặp thiếu một nửa cũng không được tự hoàn thiện và được báo trong dòng cảnh báo trên khối kết quả.
Địa chỉ doanh nghiệp được tạo nếu ít nhất một trong ba thành phần đường, địa phương hoặc quốc gia có nội dung, và mỗi thành phần chỉ được ghi khi đã nhập, thành phần để trống không xuất hiện dưới dạng chuỗi rỗng. Quốc gia mặc định là VN; nếu bạn xóa ô này thì kết quả không ghi quốc gia. Nếu cả ba đều trống, địa chỉ không được tạo.

Ví dụ đọc kết quả và nhận diện dữ liệu dễ sai
Sản phẩm có giá nguyên và đánh giá
Giả sử sản phẩm là “Đèn bàn mẫu”, giá nhập 1250000, tiền tệ VND, điểm 4.8 và số lượt đánh giá 25. Ô giá giữ nguyên 1250000, còn dòng diễn giải là “1 triệu 250 nghìn đồng”. Chào bán ghi giá dưới dạng số 1250000 và tiền tệ VND.
Do giá nhập hợp lệ, Offer xuất hiện; tình trạng hàng chỉ xuất hiện nếu bạn chọn một trong các mức Còn hàng, Hết hàng hoặc Đặt trước. Hai ô đánh giá đều hợp lệ nên AggregateRating cũng xuất hiện, với điểm và số lượt ghi dạng số. Cách hiểu đúng là công cụ ghi lại điểm 4.8 và 25 lượt đã nhập, không tính ra điểm đó từ 25 nhận xét.
Giá thập phân bằng ngoại tệ
Giả sử bạn nhập 19.99 và chọn USD. Dấu chấm thập phân được giữ nguyên, nên chào bán ghi giá 19.99 (dạng số) với tiền tệ USD. Dòng diễn giải tương ứng là “19,99 USD”. Nhập kiểu Việt Nam 19,99 cũng cho cùng giá trị; nhập 25.000.000 với VND cho giá trị 25000000.
Không có phép quy đổi USD sang VND ở đây; giá trị số được giữ đúng như đã nhập, chỉ khác cách hiển thị theo quy ước Việt Nam.
Hỏi đáp thiếu câu trả lời
Giả sử cặp đầu là “Có giao hàng không?” và “Có, trong khu vực phục vụ.” Cặp thứ hai chỉ có câu hỏi “Thời gian giao hàng là bao lâu?” Khi tạo kết quả, FAQPage có đúng một câu hỏi thuộc cặp đầu, vì chỉ cặp đó đủ hai nội dung.
Cặp thứ hai không được đưa vào danh sách, dù câu hỏi vẫn nhìn thấy trên biểu mẫu. Điều này không phải dấu hiệu công cụ đã trả lời ngầm; nó chỉ áp dụng điều kiện lọc. Muốn đưa cặp đó vào kết quả, cần cung cấp câu trả lời có căn cứ.
Địa chỉ chưa đầy đủ và trường logo để trống
Giả sử LocalBusiness có tên “Cửa hàng Mẫu”, quốc gia VN, nhưng chưa nhập đường và thành phố. Kết quả có PostalAddress chỉ với quốc gia VN; hai thành phần để trống không xuất hiện. Đối tượng địa chỉ xuất hiện không chứng minh địa điểm đã được mô tả đầy đủ.
Trong tình huống khác, Article có tiêu đề “Hướng dẫn chăm sóc cây trong nhà” và đơn vị xuất bản “Tạp chí Mẫu”, nhưng không có tác giả hay ảnh. Kết quả bỏ tác giả và ảnh, và không ghi logo vì ô logo để trống. Nếu nhập URL logo thì logo đó được ghi đúng đường dẫn đã nhập, không phải logo mẫu.

Ứng dụng phù hợp trong quản trị nội dung website
Chọn mẫu theo nội dung thực tế
Article phù hợp để mô tả trang bài viết có thông tin xuất bản và tác giả. Product phù hợp với trang sản phẩm có thông tin chào bán. Khi dùng Product, cần đối chiếu tình trạng còn hàng và chỉ khai báo đánh giá tổng hợp nếu có dữ liệu thật, không dùng con số minh họa như thông tin kinh doanh. Khi bài viết đã có dữ liệu Article, bạn có thể chấm điểm toàn diện bài viết bằng công cụ hỗ trợ viết bài chuẩn SEO trước khi đăng.
FAQPage nên mô tả nội dung hỏi đáp thực sự xuất hiện trên trang, không phải một tập câu hỏi chỉ được thêm vào mã để kỳ vọng hiển thị trên tìm kiếm. LocalBusiness phù hợp với trang giới thiệu doanh nghiệp hoặc điểm kinh doanh có thông tin liên hệ tương ứng. Mẫu chung này không chứng minh công cụ hỗ trợ mọi phân loại doanh nghiệp chuyên biệt.
Đưa kết quả vào quy trình xuất bản
Một quy trình biên tập hợp lý bắt đầu từ việc chuẩn bị dữ liệu đúng, chọn loại phù hợp với nội dung chính, rồi đọc lại kết quả. Sau đó cần kiểm tra riêng đoạn dữ liệu và phối hợp với người phụ trách website để triển khai. Đây là các công việc khác nhau; nút sao chép không thực hiện thay toàn bộ quy trình. Trong quy trình đó, bạn cũng nên kiểm tra mật độ từ khóa của bài để tránh lặp một từ khóa quá mức.
Trước khi bổ sung, nên kiểm tra CMS hoặc tiện ích hiện có đã tạo dữ liệu có cấu trúc hay chưa. Một trang có thể đã mô tả cùng sản phẩm hoặc bài viết bằng đoạn mã khác. Nếu hai bản ghi dùng giá, tác giả hay địa chỉ khác nhau, việc thêm mẫu mới có thể tạo thông tin mâu thuẫn. Công cụ không có chức năng được xác nhận để tự phát hiện hoặc hợp nhất những dữ liệu sẵn có đó.

Tạo JSON-LD khác gì viết thủ công và xác thực dữ liệu?
Biểu mẫu so với viết thủ công
Biểu mẫu giúp ghép nhanh các thuộc tính đã được hỗ trợ và giảm việc tự sắp xếp cấu trúc lồng nhau. Đổi lại, người dùng bị giới hạn trong bốn mẫu và các trường có sẵn. Viết thủ công có thể mô tả thêm thuộc tính hoặc loại khác, nhưng đòi hỏi hiểu cấu trúc và chịu trách nhiệm kiểm tra. Không phương pháp nào tự bảo đảm thông tin phản ánh đúng nội dung trang.
Tạo mã so với xác thực
Tạo đoạn mã, kiểm tra cú pháp JSON, kiểm tra ý nghĩa schema và đánh giá điều kiện rich results là những việc riêng biệt. Cú pháp đọc được chỉ cho thấy cách viết phù hợp với JSON; chưa chứng minh loại và thuộc tính được dùng đúng hoặc đủ. Công cụ có logic tạo mã, không có quy trình xác thực toàn diện. Thụt lề đẹp hay rút gọn JSON cũng chỉ thay đổi cách trình bày, không sửa giá sai hoặc logo mẫu. Sau khi triển khai đoạn mã lên trang, bạn có thể theo dõi vị trí của trang bằng công cụ kiểm tra thứ hạng từ khóa.
JSON-LD so với JSON Schema
JSON-LD được dùng ở đây để mô tả nội dung website bằng dữ liệu liên kết. JSON Schema có mục đích khác: mô tả và kiểm tra cấu trúc dữ liệu JSON, chẳng hạn yêu cầu một trường phải là số. Không nên coi hai khái niệm là một chỉ vì cùng chứa chữ “schema”. Tương tự, tên “schema generator” không chứng minh khả năng dùng AI, nhận JSON có sẵn, tạo SQL hay Python. Những khả năng đó phải có bằng chứng chức năng riêng.

Giới hạn và những điểm cần rà soát trước khi triển khai
Thông tin mặc định phải kiểm tra
Ưu tiên rà soát logo đơn vị xuất bản (chỉ ghi khi bạn nhập URL logo), tình trạng hàng đã chọn và các thành phần địa chỉ đã nhập. Những giá trị này phải phản ánh thực tế, không chỉ trông hợp lý trong đoạn mã. Giá, mã tiền tệ, đánh giá và thông tin doanh nghiệp phải khớp với nội dung đang hiển thị trên trang, không chỉ trông hợp lý trong đoạn mã. Sau khi rà soát xong các trường, bạn có thể kiểm tra lập chỉ mục để xác nhận trang đã được ghi nhận cùng dữ liệu mới.
Độ hợp lệ không được bảo đảm
Điểm đánh giá ngoài khoảng 1–5 hoặc số lượt không phải số nguyên từ 1 trở lên sẽ bị bỏ khỏi kết quả kèm cảnh báo; vẫn cần kiểm tra riêng giá trị rất lớn và tính xác thực của đánh giá, vì không có bảo đảm chính xác cho mọi kích thước số. Công cụ cũng không xác minh đường dẫn tồn tại hay nội dung đáp ứng yêu cầu hiện hành của công cụ tìm kiếm.
Môi trường trình duyệt và phạm vi chưa xác minh
Sao chép phụ thuộc khả năng và quyền clipboard của trình duyệt. Với nội dung có ký tự đặc biệt, nhất là chuỗi trông giống thực thể HTML, nên đối chiếu văn bản sau khi sao chép vì bước hiển thị không xử lý đầy đủ mọi trường hợp. Đây là điểm cần rà soát, không phải kết luận rằng mọi ký tự đặc biệt đều hỏng.
Công cụ chưa đủ để xác nhận hoạt động thực tế của toàn trang, chính sách rich results mới nhất hay cách website lưu và truyền dữ liệu. Không nên tuyên bố công cụ tuyệt đối bảo mật hoặc không lưu thông tin. Các nhận định về chức năng ở đây mô tả đúng cách công cụ vận hành.

Câu hỏi thường gặp
Tạo xong JSON-LD có chắc được Google hiển thị kết quả nâng cao không?
Không. Tạo được JSON-LD chỉ có nghĩa bạn đã có một đoạn mô tả dữ liệu theo mẫu, chưa chứng minh đủ điều kiện hiển thị nâng cao. Việc hiển thị còn phụ thuộc loại nội dung, chất lượng dữ liệu, sự phù hợp với trang và chính sách của công cụ tìm kiếm. Công cụ này không kiểm tra các điều kiện đó. Đặc biệt, không nên mặc định rằng mọi website dùng FAQPage đều được hiển thị phần hỏi đáp trên kết quả tìm kiếm. Để mở rộng thêm các cụm từ cùng chủ đề cho bài viết thay vì lặp một từ duy nhất, bạn có thể đào từ khóa liên quan từ gợi ý tìm kiếm.
Vì sao một câu hỏi đã nhập không xuất hiện trong FAQPage?
Nguyên nhân theo quy tắc tạo mã là cặp đó chưa có đủ cả câu hỏi và câu trả lời. Công cụ kiểm tra nội dung sau khi loại khoảng trắng đầu cuối, nên câu trả lời chỉ chứa khoảng trắng vẫn được coi là trống. Bạn nên rà soát cả hai ô của cặp tương ứng thay vì chỉ nhìn câu hỏi. Các cặp đủ nội dung giữ thứ tự trên biểu mẫu; công cụ không tự bổ sung lời giải cho cặp còn thiếu.
Có thể nhập giá 19.99 USD mà giữ nguyên phần thập phân không?
Có. Giá 19.99 được giữ nguyên phần thập phân và ghi dạng số 19.99 với tiền tệ USD; nhập kiểu Việt Nam 19,99 cũng cho cùng giá trị. Dòng diễn giải khi đó là “19,99 USD”.
Bài viết có logo trong kết quả khi nào?
Không. Mẫu Article chỉ ghi logo khi bạn nhập URL logo vào ô riêng; để trống thì kết quả không có logo. Logo không được tìm từ tên đơn vị và không lấy từ ô ảnh đại diện bài viết. Bạn cần nhận diện chi tiết này khi đọc kết quả và bảo đảm bản triển khai sử dụng thông tin thật. Việc có logo trong cấu trúc không cho thấy công cụ đã xác nhận danh tính, thương hiệu hoặc hình ảnh của tổ chức.
Tình trạng hàng trong kết quả được xác định thế nào?
Vì ô “Tình trạng hàng (Availability)” đang chọn Còn hàng, hoặc vì một phiên bản cũ đã gán sẵn InStock. Ở bản hiện tại, mặc định là Không ghi (không có availability) và chỉ khi bạn chọn Còn hàng, Hết hàng hoặc Đặt trước thì trạng thái mới xuất hiện; công cụ không kết nối hệ thống hàng hóa để kiểm tra. Do đó, cần đối chiếu trạng thái này trước khi triển khai, nhất là với sản phẩm hết hàng hoặc đặt trước. Đừng hiểu giá đã nhập là bằng chứng sản phẩm đang sẵn sàng để giao.
Nên làm gì khi nút sao chép không hoạt động?
Bạn nên kiểm tra quyền truy cập clipboard và môi trường trình duyệt trước. Thao tác sao chép của công cụ dựa trên Clipboard API, nên khả năng thành công không chỉ phụ thuộc nội dung JSON-LD. Nếu không dùng được nút, có thể dùng nút “Tải .txt” để lưu mã thành file, hoặc chọn văn bản trong vùng kết quả để sao chép thủ công nếu trình duyệt cho phép. Sau đó nên đối chiếu văn bản đã lấy với kết quả hiển thị, đặc biệt khi có ký tự đặc biệt; không mặc định rằng thao tác đã hoàn tất chỉ vì đã bấm nút.
Công cụ có dùng AI, đọc website hoặc nhận JSON có sẵn để tạo schema không?
Không có chức năng nào trong ba khả năng đó được xác nhận từ mã cung cấp. Công cụ lấy dữ liệu từ các ô nhập rồi ghép thành một trong bốn mẫu JSON-LD. Ô URL dùng để khai báo địa chỉ trong kết quả, không phải yêu cầu công cụ truy cập và phân tích website. Tên gọi hoặc từ khóa liên quan đến AI và JSON cũng không chứng minh có tính năng tương ứng. Bạn vẫn cần tự chuẩn bị thông tin và kiểm tra bản mô tả được tạo. Mọi thao tác trên đều chạy miễn phí ngay trên congcuviet.com, không cần cài đặt thêm.
Tài liệu tham khảo
- Schema.org – “Getting Started”: https://schema.org/docs/gs.html
- Google Search Central – “Introduction to structured data markup in Google Search”: https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data
- Wikipedia – “JSON-LD”: https://en.wikipedia.org/wiki/JSON-LD
- JSON Schema – “Creating your first schema”: https://json-schema.org/learn/getting-started-step-by-step
