Title link của Google được dựng từ đâu: kiểm tra thẻ title, H1 và og:title bằng code
Một ticket quen thuộc: "Title trên Google hiện sai, sửa giúp". Developer mở template, thấy thẻ title đúng như yêu cầu, và không hiểu vì sao Google vẫn hiện chữ khác. Câu trả lời là dòng chữ trên Google không phải thẻ title, mà là title link, và Google dựng nó từ nhiều nguồn. Bài này đi qua các nguồ

Posted on Oct 29 • Originally published at onic.vn
Một ticket quen thuộc: "Title trên Google hiện sai, sửa giúp". Developer mở template, thấy thẻ title đúng như yêu cầu, và không hiểu vì sao Google vẫn hiện chữ khác. Câu trả lời là dòng chữ trên Google không phải thẻ title, mà là title link, và Google dựng nó từ nhiều nguồn. Bài này đi qua các nguồn đó từ góc nhìn kỹ thuật, cách viết một script kiểm tra độ khớp giữa chúng, và cách xử lý trên WordPress.
Theo tài liệu của Google Search Central, Google tạo title link tự động. Thẻ <title> là nguồn chính, ngoài ra còn có:
Mô hình hữu ích cho developer: Google có nhiều ứng viên và chọn ứng viên mô tả trang tốt nhất. Thẻ title càng khớp với các nguồn còn lại thì càng ít bị đổi. Vì vậy bug "title sai" thường là bug về độ nhất quán giữa nhiều thẻ, không phải bug ở một thẻ.
Google nêu rõ những trường hợp hay khiến title bị viết lại. Một số trong đó kiểm tra được hoàn toàn bằng code:
Trường hợp 1, 2, 4, 5 và 7 phát hiện được bằng script. Trường hợp 3 và 6 cần người đọc.
import re from bs4 import BeautifulSoup def kiem_tra_title ( html: str, site_name: str, nam_hien_tai: int ) -> list: soup = BeautifulSoup ( html, " html.parser " ) title = soup. title. get_text ( strip = True ) if soup. title else "" h1s = [ h. get_text ( " ", strip = True ) for h in soup. find_all ( " h1 " )] og = soup. find ( " meta ", property = " og:title " ) og_title = og. get ( " content ", "" ) if og else "" canh_bao = [] if not title. replace ( site_name, "" ). strip ( " |- " ): canh_bao. append ( " Title trống nửa: chỉ có tên website " ) if title. count ( site_name ) > 1: canh_bao. append ( " Tên website bị lặp trong title " ) if len ( h1s )!= 1: canh_bao. append ( f " Trang có { len ( h1s ) } thẻ H1 " ) nam = [ int ( y ) for y in re. findall ( r " \b20\d{2}\b ", title )] if nam and max ( nam ) < nam_hien_tai: canh_bao. append ( " Title chứa năm cũ " ) if og_title and og_title!= title: canh_bao. append ( " og:title khác thẻ title " ) return canh_bao Enter fullscreen mode Exit fullscreen mode Kiểm tra trùng title (trường hợp 4) cần chạy trên toàn bộ website: gom title của mọi URL rồi tìm nhóm trùng. Khi phát hiện trùng, đừng chỉ sửa chữ. Trùng title thường là dấu hiệu hai trang đang nhắm cùng một từ khóa, và cách đúng là gộp trang.
SEO title và H1 không cần giống chữ. SEO title kéo người tìm vào trang, H1 xác nhận họ đã vào đúng chỗ. Nhưng hai thứ phải cùng chủ đề; title một đằng, H1 một nẻo là lý do Google hay tự đổi title. Một phép đo thô là tỷ lệ từ chung giữa hai chuỗi:
def do_trung ( a: str, b: str ) -> float: x, y = set ( a. lower (). split ()), set ( b. lower (). split ()) return len ( x & y ) / max ( len ( x ), 1 ) Enter fullscreen mode Exit fullscreen mode Tỷ lệ quá thấp là tín hiệu nên cho người xem lại. Đây là heuristic, không phải quy tắc của Google.
Google không giới hạn độ dài thẻ title, nhưng title link bị cắt cho vừa chiều rộng màn hình. Khoảng 50–60 ký tự tiếng Việt là vừa trên phần lớn thiết bị. Một ca thực tế trên Onic.vn cho thấy giới hạn của việc đếm ký tự: title "Brand Context: Hệ Thống Ngữ Cảnh Để Đồng Bộ Thương Hiệu" dài 55 ký tự, hiện đủ trong Yoast nhưng trên Google máy tính bị cắt thành "…Đồng Bộ Thương...". Google cắt theo độ rộng hiển thị.
Hệ quả thiết kế: đừng viết validator chặn cứng theo số ký tự. Hãy cảnh báo, và quan trọng hơn là kiểm tra từ khóa chính nằm ở đầu chuỗi, vì phần cuối là phần có thể mất.
Với Yoast, ô SEO title nhận các biến như %%currentyear%% (năm hiện tại) và %%currentmonth%% (tháng hiện tại). Ví dụ:
SEO Title Là Gì? 10 Cách Viết Tiêu Đề Chuẩn SEO %%currentyear%% Enter fullscreen mode Exit fullscreen mode Biến giải quyết trường hợp "title lỗi thời" ở tầng hệ thống thay vì mỗi đầu năm sửa tay hàng chục title. Trên các website tôi làm, tôi còn cho H1 hiển thị tháng và năm hiện tại, để title và H1 luôn khớp nhau. Chỉ nên làm vậy với trang mà nội dung thật sự được duy trì cập nhật. Phần viết title cho người đọc, gồm công thức 4 phần và mẫu theo ngành, có trong bài SEO title là gì trên Onic.vn.
Bước cuối quan trọng: đổi title bài đang top có thể làm thứ hạng dao động trong thời gian đầu, nên cần giữ title cũ để có thể quay lại.
Bài gốc: https://onic.vn/kien-thuc/seo-title-la-gi/