Cách sửa URL «Discovered / Crawled – Currently Not Indexed» bằng Hermes Agent

Quy trình lập chỉ mục Search Console mà bạn có thể giao cho Hermes Agent: lấy danh sách URL chưa được lập chỉ mục, kiểm tra từng trang, xác định nguyên nhân thực sự, duyệt hàng đợi sửa lỗi, và gửi chỉ những trang đã sửa qua Google Indexing API

«Discovered – currently not indexed» và «Crawled – currently not indexed» là hai dòng phổ biến nhất trong báo cáo lập chỉ mục trang của Search Console, đồng thời cũng là hai dòng bị hiểu sai nhiều nhất. Chúng trông như lỗi kỹ thuật, nhưng thực ra đây thường là quyết định về mức ưu tiên và chất lượng mà Google đưa ra với trang của bạn. Gửi lại mạnh tay hơn sẽ không thay đổi điều đó. Sửa nguyên nhân — mới thay đổi được.

Hướng dẫn này là một vòng lặp hoàn chỉnh bạn có thể giao cho Hermes Agent: lấy danh sách URL, kiểm tra từng trang, xác định nguyên nhân thực sự, duyệt hàng đợi sửa lỗi, và gửi chỉ những trang đáng được lập chỉ mục qua Google Indexing API. Kết thúc, bạn có một pipeline hàng tuần lặp lại được, thay vì một buổi bấm nút một lần.

Bạn sẽ đạt được gì

  • Kho URL đã phân loại: URL nào kẹt ở discovered, URL nào ở crawled-but-not-indexed, và URL nào không bao giờ nên gửi
  • Danh sách gửi đã duyệt đến Indexing API, kèm danh sách bỏ qua với lý do
  • Vòng xác minh cho thấy việc gửi của bạn có thực sự tạo khác biệt hay không

Bạn cần: Hermes Agent đã cài và chạy được (hermes chat mở phiên; xem hướng dẫn cài đặt mới nhất tại tài liệu chính thức hermes-agent.nousresearch.com/docs), quyền owner trên property Search Console, và hai bộ thông tin xác thực Google (một để đọc GSC, một cho Indexing API). Dự trù 60–90 phút cho lần thiết lập đầu, sau đó khoảng 15 phút mỗi vòng hàng tuần. «Xong» nghĩa là URL bạn gửi cho thấy sự thay đổi trạng thái thực tế trong Inspection API sau vài tuần, hoặc bạn có bằng chứng rõ ràng vì sao nó không thay đổi.

Hai trạng thái, đọc cho đúng

Google không bị kẹt trên trang của bạn. Nó đưa ra quyết định, và trạng thái cho bạn biết đó là quyết định gì.

Trạng thái

Ý nghĩa thực sự

Nguyên nhân phổ biến

Khi nào gửi

Discovered – currently not indexed

Google biết URL tồn tại (từ sitemap hoặc từ liên kết) nhưng chưa thu thập

Mức ưu tiên thu thập thấp, liên kết nội bộ yếu hoặc không có, áp lực ngân sách thu thập trên trang lớn, trang web mới, JavaScript render chậm hoặc nặng, sitemap thay đổi liên tục

Sau khi bạn sửa tín hiệu ưu tiên (chủ yếu là liên kết nội bộ), rồi gửi một lần

Crawled – currently not indexed

Google đã lấy URL và chọn không đưa vào chỉ mục

Nội dung trùng lặp hoặc gần trùng lặp, nội dung mỏng, canonical trỏ đến URL khác, noindex lúc thu thập, soft 404, giá trị cảm nhận thấp

Chỉ sau khi bạn đã thay đổi điều gì đó: nội dung, canonical hoặc noindex

Indexed

Đã nằm trong chỉ mục

Không bao giờ

Excluded

Được thu thập và cố ý bỏ qua (noindex, canonical, bản trùng đã chọn, bị chặn)

Không bao giờ; kiểm tra xem việc loại trừ có chủ đích không

Quy tắc trong một câu: chỉ gửi URL mà bạn thực sự đã thay đổi hoặc xứng đáng được nhìn lại lần hai. Indexing API là kênh thông báo, không phải công cụ ép thứ hạng. Gửi trang mỏng qua nó 10 lần sẽ cho cùng một kết quả 10 lần.

Vì sao nên chạy việc này trên agent

Nút «Request indexing» trong GSC không có API công khai, nên không có cách chính thức nào để bấm nó bằng script. Tự động hóa gần nhất là Google Indexing API, nơi nhận thông báo URL trực tiếp. Agent đáng được đặt ở đây vì ba lý do:

  1. Vòng lặp cơ học và dài: inventory → inspect → classify → fix → submit → verify. Lặp lại mỗi tuần.
  2. Cần dấu vết kiểm toán: bạn muốn một file ghi lại URL nào đã gửi, khi nào, và vì sao.
  3. Cần cổng duyệt: phần ghi dữ liệu vào Google phải được con người rà soát. Hermes được xây dựng quanh sự phân chia đó, với skills, thư mục dự án, và quy tắc phê duyệt.

Trước khi bắt đầu: bạn cần gì

  1. Hermes Agent đã cài. Xác nhận bằng hermes chat trước khi tiếp tục.
  2. Property GSC bạn sở hữu, dạng sc-domain:example.com (không phải URL đầy đủ).
  3. Quyền đọc: OAuth client của Google Cloud cho Search Console API (client ID + secret). Script của GSC skill dùng nó để liệt kê sitemap, chạy search analytics, và kiểm tra URL.
  4. Quyền ghi: dự án Google Cloud với Indexing API đã bậtfile JSON service account. Thêm email service account làm Owner trong GSC → Cài đặt → Người dùng và quyền. Nếu việc gửi trả về 403 — đây là bước bị thiếu.
  5. Python 3 với pip install google-auth google-api-python-client.
  6. Thư mục dự án, ví dụ /hermes-seo-project, với context/, data/, qa/, và approval-rules.md ghi rõ bước gửi luôn cần chữ ký của con người.

Bước 1: Xây kho URL

Sao chép hai skill GSC vào thư mục skills của Hermes (~/.hermes/skills): skill đọc (sitemaps, search analytics, kiểm tra URL) và skill lập chỉ mục (script gửi). Hermes cũng có thể tải chúng qua skill_view nếu harness đã lập danh mục.

Sau đó yêu cầu Hermes, trong phiên trò chuyện từ thư mục dự án:

Liệt kê tất cả sitemap cho sc-domain:example.com, lấy từng URL kèm ngày lastmod, và ghi kết quả vào data/url-inventory.csv. Đánh dấu sitemap nào lấy không thành công.

Hermes chạy lệnh sitemap qua công cụ terminal và ghi CSV. Đầu ra tốt trông như thế nào: CSV không trùng lặp với URL, lastmod, và sitemap nguồn. Kiểm tra chất lượng: xem năm dòng ngẫu nhiên và đối chiếu tổng số với báo cáo sitemap trong GSC. Nếu danh sách trống hoặc xác thực thất bại, chạy lại luồng xác thực GSC; script đọc cần token OAuth mới.

Bước 2: Kiểm tra và phân loại

Bây giờ agent kiểm tra kho theo từng nhóm qua URL Inspection API, nơi trả về trạng thái phạm vi mới nhất của từng trang. Yêu cầu giai đoạn tiếp theo:

Kiểm tra từng URL trong data/url-inventory.csv. Chia thành ba file: data/to-submit.txt (chưa được lập chỉ mục, đáng yêu cầu), data/skip.txt (kèm lý do một dòng mỗi URL), và data/needs-fix.txt (chưa được lập chỉ mục và bị chặn bởi điều chúng ta có thể sửa).

Inspection API giới hạn tốc độ theo property (kiểm tra hạn mức hiện tại của bạn trong Google Cloud Console; hàng nghìn yêu cầu mỗi ngày nhưng không phải vô hạn). Với trang lớn, giới hạn vòng này ở các URL có ngày lastmod gần nhất — những trang bạn thực sự thay đổi trong quý này. Kiểm tra chất lượng: lấy mẫu danh sách bỏ qua. Phần lớn phải là noindex, canonical trỏ nơi khác, và bản trùng, không phải các trang bạn quan tâm. Nếu agent sinh danh sách needs-fix rỗng trên trang có hàng nghìn URL, khả năng bước kho đã bỏ sót trang. Mở rộng đầu vào.

Bước 3: Sàng lọc trước khi gửi

Đây là bước mọi người bỏ qua. Gán từng URL kẹt cho nguyên nhân và cách sửa, theo thứ tự này:

Nguyên nhân

Cách sửa

Gửi sau khi sửa?

Không có liên kết nội bộ trỏ đến trang

Thêm liên kết ngữ cảnh từ các trang liên quan đã được lập chỉ mục

Trang web hoặc trang hoàn toàn mới

Không có gì để sửa; gửi một lần và chờ 1–2 tuần

Có, một lần

Bị chặn bởi robots.txt

Mở chặn đường dẫn đó

Đã thu thập nhưng trùng hoặc mỏng

Viết lại, gộp, hoặc xóa trang

Chỉ sau khi thay đổi nội dung thực sự

Canonical trỏ đến URL khác

Sửa canonical nếu sai; nếu cố ý, ngừng gửi URL này

Chỉ khi bạn đã sửa

Có noindex lúc thu thập

Gỡ noindex và để Google thu thập lại

Có, sau khi gỡ

soft 404 hoặc pagination/archive không giá trị

Sửa trang hoặc xóa

Không — bỏ qua vĩnh viễn

Yêu cầu Hermes lập hàng đợi sửa lỗi thành bảng: URL, nguyên nhân nghi ngờ, bằng chứng (kết quả kiểm tra hoặc xem nội dung), hành động đề xuất, mức rủi ro. Duyệt từng dòng trong phiên trò chuyện. approval-rules.md của bạn phải bắt buộc điều này: agent chuẩn bị, bạn duyệt, và không gì trên mức rủi ro thấp được gửi mà không có chữ ký.

Sơ đồ quy trình thể hiện pipeline lập chỉ mục năm giai đoạn với cổng phê duyệt của con người trước khi gửi

Cổng phê duyệt tách phần chuẩn bị của agent khỏi bước ghi dữ liệu.

Việc sửa lỗi bản thân nó là công việc SEO thông thường: viết lại nội dung, dọn canonical, liên kết nội bộ. Pipeline này bao phủ nửa phần gửi; các bài audit và refresh trong loạt bài Hermes bao phủ nửa phần sửa.

Ma trận quyết định cho thấy URL chưa được lập chỉ mục nào được gửi sau khi sửa so với URL nào không bao giờ gửi

Danh sách gửi là giao điểm của «sửa được» và «đáng lập chỉ mục».

Bước 4: Gửi qua Indexing API

Khi hàng đợi đã duyệt, đặt URL vào data/approved-urls.txt và để Hermes chạy indexing skill:

bash
python3 ~/.hermes/skills/gsc-indexing/scripts/index_submit.py check-auth
python3 ~/.hermes/skills/gsc-indexing/scripts/index_submit.py submit --urls-file data/approved-urls.txt

Loại thông báo mặc định là URL_UPDATED, thứ bạn cần cho trang mới hoặc đã thay đổi. Ba con số cần nhớ: hạn mức mặc định 200 URL mỗi ngày và 600 yêu cầu mỗi phút; và 403 nghĩa là service account không phải Owner của property. Nếu danh sách đã duyệt vượt 200, chia ra nhiều ngày; Hermes có thể lên lịch phần còn lại.

Không bao giờ gửi trang đã được lập chỉ mục, và không bao giờ gửi danh sách bỏ qua. Thông báo lãng phí chỉ đốt hạn mức và tạo nhiễu.

Bước 5: Xác minh, rồi chờ

Ngay sau khi gửi, status chỉ cho bạn biết Google có metadata cho thông báo hay không, không phải trang đã được lập chỉ mục chưa. Kiểm tra thực sự đến nhiều ngày sau.

Yêu cầu Hermes, 3–7 ngày sau mỗi đợt:

Kiểm tra lại các URL trong data/approved-urls.txt và báo cáo thay đổi trạng thái so với lần chạy trước.

Di chuyển lành mạnh là discovered → crawled → indexed. Đây là hình ảnh của nó sau vài tuần: danh sách chưa lập chỉ mục thu hẹp dần, và những sửa lỗi bạn thực sự làm (liên kết nội bộ mới, nội dung viết lại) xuất hiện trong chỉ mục. Nhớ rằng dữ liệu GSC trễ vài ngày, và Google thu thập lại theo lịch trình riêng của nó. URL vẫn kẹt ở «Crawled – currently not indexed» sau 10–14 ngày kể từ khi sửa lỗi thực sự là tín hiệu chất lượng, không phải vấn đề gửi. Quay lại với việc cải thiện nội dung.

Giữ vòng lặp chạy

Biến pipeline thành thói quen hàng tuần: URL mới và đã thay đổi từ lần chạy trước → kiểm tra → phân loại → sàng lọc → duyệt → gửi → ghi log. Hermes có thể chạy phần chỉ-đọc (inventory, inspection, classification) không cần giám sát theo lịch trình và trình hàng đợi cho bạn mỗi thứ Hai. Giữ bước gửi sau cổng phê duyệt của bạn, và giữ nhật ký chạy trong qa/indexing-log.md: ngày gửi, URL, loại thông báo, kết quả. Sáu tháng nhật ký đó là cách trung thực duy nhất để đo pipeline có hoạt động không.

Giới hạn thẳng thắn

  • Google tài liệu hóa Indexing API cho trang có dữ liệu có cấu trúc JobPosting hoặc BroadcastEvent. Dùng cho trang thường là thực hành SEO phổ biến, nhưng Google không đảm bảo lập chỉ mục hoặc hỗ trợ cho mọi loại trang.
  • Không có API công khai cho nút «Request Indexing». Indexing API là tự động hóa gần nhất, không phải cùng một nút.
  • Gửi không tạo ra mức ưu tiên. Nếu trang vẫn chưa được lập chỉ mục sau khi bạn sửa, gửi, và chờ, câu trả lời tiếp theo là chất lượng nội dung, không phải một thông báo khác.

FAQ

Indexing API có hoạt động với trang thường không? Nó nhận bất kỳ URL nào bạn gửi. Tài liệu chính thức của Google giới hạn ở trang JobPosting và BroadcastEvent, nên hãy coi việc gửi trang thường là nỗ lực tối đa: hữu ích, phổ biến, và không bao giờ được đảm bảo.

Vì sao URL của tôi vẫn ở «Discovered – currently not indexed» sau khi tôi gửi? Trạng thái đó thường có nghĩa là mức ưu tiên thu thập, không phải thất bại. Kiểm tra liên kết nội bộ trỏ đến trang, xem robots.txt có chặn đường dẫn không, và trang phụ thuộc JavaScript nặng đến đâu. Rồi chờ: trên trang web mới, discovery đến crawl có thể mất một đến hai tuần.

200 URL mỗi ngày có đủ không? Với hầu hết trang web, là đủ, vì bạn chỉ nên gửi URL thực sự được thay đổi. Nếu bạn thường xuyên có nhiều hơn, hãy ưu tiên theo giá trị kinh doanh và yêu cầu tăng hạn mức trong Google Cloud Console.

Indexing API có làm trang xếp hạng nhanh hơn không? Không. Nó báo cho Google rằng URL đã thay đổi. Quyết định xếp hạng là việc riêng, và do hệ thống của Google tạo ra, không phải bởi khối lượng thông báo của bạn.

Khác gì so với bấm «Request indexing» trong Search Console? Ý định giống nhau, cơ chế khác nhau. Nút đó chỉ là giao diện không có API công khai; Indexing API là kênh có thể script hóa. Không cái nào ghi đè đánh giá của Google về việc trang có xứng đáng vào chỉ mục hay không.

Tác giả: Julian Mercer, Chuyên gia Technical SEO 14 năm tại Auspia. Julian viết về crawlability, lập chỉ mục, schema, và các nền tảng kỹ thuật giúp Google và hệ thống AI đọc trang web đúng cách.

Khám phá chủ đề này

Tiếp tục theo cùng mạch tăng trưởng