ai newsFr., 30. Okt.
EilmeldungCursor Marketplace vs. Official Claude Code: What Version 2.1.313 Reveals

Generating meta descriptions at scale: kiểm tra trùng, độ dài và data-nosnippet bằng code

Website thương mại điện tử có vài nghìn sản phẩm, theme để mọi trang dùng chung một thẻ meta name="description" . Trên Google, hàng chục kết quả hiện cùng một dòng mô tả. Ticket được giao cho developer: "làm mô tả riêng cho từng trang". Bài này đi qua cách làm việc đó bằng code, dựa trên những gì t

dev.toFreitag 12:10 · 30.10.4 Min. Lesezeit
Bild: dev.to

Posted on Oct 30 • Originally published at onic.vn

Website thương mại điện tử có vài nghìn sản phẩm, theme để mọi trang dùng chung một thẻ meta name="description". Trên Google, hàng chục kết quả hiện cùng một dòng mô tả. Ticket được giao cho developer: "làm mô tả riêng cho từng trang". Bài này đi qua cách làm việc đó bằng code, dựa trên những gì tài liệu Google Search Central nói về snippet.

Snippet trên trang kết quả chủ yếu được tạo từ nội dung trang. Google chỉ dùng thẻ mô tả khi nó mô tả trang chính xác hơn chữ lấy trực tiếp từ trang, và snippet thay đổi theo từng câu tìm kiếm. Thẻ mô tả cũng không được dùng để xếp hạng, điều Google đã nói từ năm 2009.

Với developer, điều này có nghĩa: mục tiêu không phải "có thẻ meta", mà là "mỗi trang có một mô tả riêng, đọc được, khớp nội dung". Google khuyến khích website lớn tạo mô tả tự động từ dữ liệu riêng của từng trang, miễn là kết quả khác nhau và đọc được như câu văn.

Một mô tả tốt có ba phần: câu chính có từ khóa, chi tiết cụ thể, lời mời ngắn. Với trang sản phẩm, dữ liệu có sẵn đã đủ cho cả ba:

def mo_ta_san_pham ( p: dict ) -> str: phan = [ f " { p [ ' ten ' ] } { p [ ' quy_cach ' ] } ". strip ()] if p. get ( " chat_lieu " ): phan. append ( f " chất liệu { p [ ' chat_lieu ' ] } " ) if p. get ( " gia " ): phan. append ( f " giá { p [ ' gia ' ]:, } đ ". replace ( ", ", ". " )) cau = ", ". join ( phan ) + ". " if p. get ( " chinh_sach " ): cau += f " { p [ ' chinh_sach ' ] }. " cau += " Xem chi tiết và đặt hàng. " return cau Enter fullscreen mode Exit fullscreen mode Kết quả là câu văn có nghĩa, không phải chuỗi từ khóa, và mỗi sản phẩm khác nhau vì dữ liệu khác nhau.

Google không giới hạn độ dài thẻ mô tả nhưng cắt cho vừa màn hình. Khoảng 120–155 ký tự là vừa trên phần lớn thiết bị, và ý chính nên nằm trong 120 ký tự đầu vì điện thoại hiển thị ngắn hơn. Một ca thật trên Onic.vn: mô tả 157 ký tự bị Google cắt ở "không bỏ sót khách...".

def kiem_tra_do_dai ( mo_ta: str ) -> list: canh_bao = [] n = len ( mo_ta ) if n < 70: canh_bao. append ( f " Quá ngắn ( { n } ký tự) " ) if n > 155: canh_bao. append ( f " Có thể bị cắt ( { n } ký tự), phần sau ký tự 155: { mo_ta [ 155: ]!r} " ) return canh_bao Enter fullscreen mode Exit fullscreen mode Ngưỡng ở đây là heuristic. Google cắt theo độ rộng hiển thị chứ không theo số ký tự, nên dùng nó để cảnh báo, không dùng để chặn deploy.

Google nói mô tả giống hệt hoặc gần giống trên mọi trang không giúp ích gì. Gom mô tả của mọi URL rồi nhóm lại:

from collections import defaultdict def nhom_trung ( trang: dict ) -> dict: """ trang: {url: mo_ta} """ nhom = defaultdict ( list ) for url, mo_ta in trang. items (): khoa = " ". join ( mo_ta. lower (). split ()) nhom [ khoa ]. append ( url ) return { k: v for k, v in nhom. items () if len ( v ) > 1 } Enter fullscreen mode Exit fullscreen mode Nếu các trang trùng cả title lẫn mô tả, có thể vấn đề không nằm ở thẻ meta mà ở việc nhiều trang đang nhắm cùng một từ khóa. Khi đó cách đúng là gộp trang, không phải viết lại chữ.

<div data-nosnippet > Giảm 20% cho đơn đầu tiên, nhập mã CHAO20. </div> Enter fullscreen mode Exit fullscreen mode Thuộc tính này dùng được trên span, div và section.

Meta description không đổi thứ hạng. Thứ cần đo là lượt nhấp và CTR theo trang trong Search Console, so sánh vài tuần trước và sau khi deploy. Phần viết mô tả cho người đọc, gồm 8 cách và mẫu cho 6 ngành, có trong bài Meta description là gì trên Onic.vn.

Bài gốc: https://onic.vn/kien-thuc/meta-description-la-gi/

Quelle: dev.to (dev.to). Original öffnen