Crawling là gì? Quá trình Crawling diễn ra như thế nào?

crawling là gì
Mục lục nội dung

3 người thầy dạy ta mọi kiến thức trong cuộc sống:

  • Người thầy bục giảng: người trực tiếp khai sáng trí tuệ và nuôi dưỡng tâm hồn chúng ta.
  • Người thầy sách vở: sách không chỉ là người thầy mà còn là người bạn tri kỷ, luôn tử tế nhẫn nại, chờ đợi và chịu đựng chúng ta.
  • Người thầy Google: dạy chúng ta tất cả mọi thứ trên đời.

Có bao giờ bạn thắc mắc, thông tin của Google đến từ đâu? và quá trình này diễn ra như thế nào?

Trong hướng dẫn này cùng tìm hiểu khái niệm crawling là gì? quá trình crawling diễn ra như thế nào?

Crawling (thu thập dữ liệu) là quá trình các công cụ tìm kiếm khám phá những nội dung mới trên internet thông qua các trình thu thập dữ liệu (Web Crawler).

Với hàng ngàn webpage được xuất bản mỗi ngày, crawling là quá trình diễn ra liên tục lặp đi lặp lại và không có điểm kết thúc.

Crawling website
Crawling website

Crawling là quá trình làm việc đầu tiên của Google hay các search engine. Vì vậy, bạn cần phải chắc chắn rằng, các crawler có thể tìm thấy nội dung trang web trước khi nghĩ tới thứ hạng từ khóa.

Web Crawler là gì?

Web crawler hay Crawler là phần mềm thực hiện việc tìm kiếm, thu thập thông tin trên internet. Crawler sẽ tiến hành thu thập dữ liệu trên nhiều nguồn khác nhau bao gồm:

  • Thông qua các website.
  • Thông qua các sitemap mà chủ trang web gửi trong Google search console.
  • Các dữ liệu công khai trên internet.
  • Nội dung trên ebook, hình ảnh, video, audio.
  • và các nguồn thông tin tham khảo khác.
Crawler là gì
Crawler là gì

Crawler sẽ truy cập website dưới dạng người dùng ẩn danh (không lưu thông tin và mật khẩu) do đó có 1 số nội dung khiến chúng không thể tiếp cận.

Nội dung bị ẩn khỏi các search engine

Các dạng nội dung bị ẩn khỏi công cụ tìm kiếm:

  • Biểu mẫu đăng nhập: Các công cụ tìm kiếm sẽ không nhìn thấy được những trang yêu cầu người dùng phải đăng nhập hay điền vào form khảo sát để đọc nội dung.
  • Thanh tìm kiếm trên website: Crawler không thể sử dụng các thanh tìm kiếm trên website để tìm kiếm thông tin. Các công cụ tìm kiếm chỉ có thể thấy thông tin mà khách truy cập tìm kiếm.
  • Các crawler gặp khó khăn trong việc hiểu nội dung các tệp về hình ảnh, video, audio… hãy sử dụng thẻ metadata (siêu dữ liệu) như các thẻ alt, tiêu đề, mô tả…để chú thích rõ hơn cho các tài liệu.

Các trình thu thập thông tin thường gặp

Các search engine khác nhau sẽ sử dụng trình thu thập thông tin (crawler) khác nhau. Với Google là googlebot. Có 2 loại trình thu thập thông tin:

  • Trình thu thập thông tin chính (primary crawl)
  • Trình thu thập thông tin thứ cấp (secondary crawl)

Đối với website mới, google ưu tiên sử dụng trình thu thập dữ liệu trên thiết bị di động làm trình thu thập dữ liệu chính.

Google sẽ sử dụng trình thu thập dữ liệu thứ cấp (trên thiết bị di động hoặc máy tính) để kiểm tra độ tương thích của website trên các thiết bị khác nhau.

Các trang sẽ được thu thập thông tin định kỳ, nếu các Crawler phát hiện sự thay đổi về nội dung, cấu trúc so với những lần thu thập trước thì bot sẽ tiến hành cập nhật những chỉ mục ứng với những thay thông tin vừa thay đổi.

Quá trình thu thập thông tin (Crawling) diễn ra khi crawler tìm thấy 1 website. Trước tiên, chúng sẽ đọc file Robots.txt- nơi chứa các quy tắc, chỉ dẫn cho crawler biết nơi nào nên hay không nên thu thập thông tin. 

Sau khi đọc file Robots.txt, crawler sẽ lần theo các liên kết, quét tất cả tệp nội dung văn bản, hình ảnh, HTML, Css, Javascript… chuyển thông tin đến 1 kho lưu trữ để tiến hành quy trình lập chỉ mục (indexing).

Quá trình crawling diễn ra như thế nào
Quá trình crawling diễn ra như thế nào

Giải thích một cách đơn giản thì mỗi người trong số chúng ta đều có 1 người bạn “Google”, vạn sự thông cái gì cũng biết. Trong trường hợp của tôi là “cô Lan Google” bán nước đầu ngõ. Vì cô Lan bán nước ở đầu ngõ nên có nhiều người quanh các ngõ lân cận hay ghé qua quán cô. Những tin đồn, mẩu chuyện ở bên các xóm ngoài cô Lan hầu như biết trước tiên. Không những thế, cô còn làm trong tổ dân phố, có công chuyện sẽ đi từng ngõ, gõ từng nhà, rà từng đối tượng để phổ biến thông tin.

Chính vì thế, trong xóm tôi, cô Lan không gì không biết, đã biết là biết chi tiết. Nếu như có bất kỳ em gái xinh xắn nào quanh đây đi ngang qua, chỉ 3s, cô Lan sẽ cho bạn biết toàn bộ thông tin về trường lớp, ngành nghề đang học hay đang làm, có người yêu chưa, thậm chí là cả số đo 3 vòng. Những thông tin này đều là do cô tổng hợp từ nhiều nguồn đã qua quy trình kiểm định đánh giá nghiêm ngặt của riêng cô.

Cách google hay các công cụ tìm kiếm khác hoạt động cũng mô phỏng “gần giống như cô Lan”. Google không nghĩ ra câu trả lời của 1 vấn đề, Google đi tổng hợp lại những câu trả lời của mọi người trên internet. Qua các thuật toán đánh giá của riêng mình, Google sẽ trả về câu trả lời tốt nhất, liên quan nhất khi người dùng tìm kiếm thông tin.

Quá trình google thu thập thông tin về các câu trả lời trên internet chính là Crawling.

Các crawler sử dụng 1 quy trình dựa trên các thuật toán đã lập trình sẵn để xác định tần suất cũng như số trang cần thu thập dữ liệu trên mỗi website. Tần suất thu thập thông tin được xác định bởi Crawl budget

Crawl budget

Crawl budget xác định số lượng các trang được Crawler thu thập thông tin và tần suất các trang đó được thu thập lại thông tin.

Crawl budget
Crawl budget

Crawl budget bao gồm 2 yếu tố chính:

  • Crawl rate limit (giới hạn thu thập thông tin): số lượng tối đa các trang được thu thập thông tin mà không làm cho máy chủ bị quá tải.
  • Crawl demand (số lượng thu thập thông tin): số lượng các trang đã được crawler thu thập thông tin.

Crawl budget rất quan trọng với các site lớn từ hàng chục nghìn URL trở nên như các trang thương mại điện tử, báo, tin tức lớn… 

Tối ưu số lượng trang được thu thập thông tin sẽ đảm bảo rằng các crawler sẽ không lãng phí thời gian đi thu thập những trang không quan trọng mà bỏ qua các trang chứa nội dung chính của website.

Một trong những cách đơn giản để hướng Crawler rời khỏi các trang không quan trọng là sử dụng file Robots.txt.

Robots.txt

Robots.txt nằm trong thư mục gốc của Website (seo69.net/robots.txt) có tác dụng chỉ dẫn cho các crawler biết nơi nào nên và không nên thu thập thông tin.

Robots.txt
Robots.txt

Robots.txt chủ yếu được sử dụng nhằm quản lý lưu lượng thu thập dữ liệu của các crawler. Tránh cho máy chủ không bị quá tải, hạn chế việc thu thập thông tin trên các trang không quan trọng hay các trang tương tự nhau.

Không nên sử dụng file Robots.txt để chặn các trang web khỏi Crawler. Các công cụ tìm kiếm vẫn có thể lập chỉ mục (indexing) trang mà bạn đã chặn trong file Robots.txt nếu như có các liên kết từ nơi khác trỏ về trang đó. 

Nếu muốn ẩn 1 trang khỏi kết quả tìm kiếm hãy tham khảo lệnh noindex.

Sitemap

SItemap giúp các trình thu thập dữ liệu sắp xếp mức độ ưu tiên khi thu thập dữ liệu các trang trên website.

Sitemap
Sitemap

Đặt Sitemap trong Robots.txt giúp các crawler tìm kiếm được nội dung sâu bên trong website (các URL không có liên kết chỉ tới), xác định tần suất cập nhật, các trang quan trọng cần thu thập thông tin.

Các chủ website có thể xác định Crawler đã ghé qua trang web của mình hay chưa nhờ chuỗi tác nhân người dùng (User agent).

Cách nhận biết được các công cụ tìm kiếm

Các trình thu thập thông tin của các search engine được xác định dựa trên chuỗi tác nhân người dùng (User agent).

Khi người dùng truy cập vào một website, trình duyệt web sẽ gửi lên máy chủ 1 chuỗi thông tin định danh trong đó có User-agent.

Nói một cách đơn giản, khi ai đó truy cập vào website của bạn, người nọ gõ cửa: “cốc cốc cốc, xin chào, mình là thỏ và mình có tai”. User-agent chính là lời giới thiệu đó.

Khi Google hay các công cụ tìm kiếm truy cập vào website của bạn, nó cũng gửi lên một đoạn thông tin tôi là…, tôi dùng hệ điều hành…

Chuỗi tác nhân người dùng
Chuỗi tác nhân người dùng

Dưới đây là 1 số ví dụ về chuỗi tác nhân người dùng của Google, Firefox:

  • Googlebot – Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
  • Microsoft Edge bot – Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063
  • Mozilla Firefox bot – Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0

Các trình thu thập dữ liệu có thể gặp khó khăn khi quét qua các tệp không phải text như Audio, video, hình ảnh…

Các tệp dữ liệu được lập chỉ mục bởi Google

Các trình thu thập dữ liệu sẽ cố gắng quét và lập chỉ mục tất các URL mà chúng gặp phải. Tuy nhiên với các URL không phải là văn bản như hình ảnh, video, audio… các trình thu thập dữ liệu sẽ không thể hiểu hết được nội dung của tệp thay vào đó chúng sẽ đọc thông tin về dữ liệu meta (metadata) như tên tệp, thẻ alt, tác giả, thẻ tag để hiểu hơn nội dung của tệp.

Tuy chỉ chích xuất được 1 ít thông tin về các tệp không phải là dạng text, các trình thu thập dữ liệu vẫn sẽ crawl và lập chỉ mục và xếp hạng trong các kết quả tìm kiếm.

Tham khảo thêm danh sách các tệp được lập chỉ mục bởi Google.

Crawling là quá trình đầu tiên trong quy trình xếp hạng từ khóa của Google. Bạn cần phải chắc chắn rằng các trình thu thập thông tin thấy được trang web, nội dung của bạn trước khi nghĩ tới thứ hạng từ khóa.

tăng hiệu suất quá trình crawling
tăng hiệu suất quá trình crawling

Tham khảo các cách dưới đây để làm tăng hiệu quả của quá trình thu thập dữ liệu:

  • Kiểm tra file Robots.txt: Sử dụng hợp lý Robots.txt nhằm hướng các Crawler đến những trang quan trọng mà bạn muốn thu thập thông tin chứ không phải chặn nội dung khỏi các công cụ tìm kiếm.
  • Liên kết Nofollow: Sử dụng thuộc tính nofollow khi bạn chỉ muốn dẫn chứng các liên kết.
  • URL: Sử dụng các đường dẫn không dấu, đơn giản, dễ đọc. Sửa các lỗi hiển thị URL do đánh máy.
  • Cải thiện tốc độ tải của Website: Các Crawler có thời gian cố định để thu thập thông tin trên website, cải thiện tốc độ tải website giúp tăng tỉ lệ crawl dữ liệu của các trình thu thập thông tin.
  • HTML frames: Các khung html đã trở nên lỗi thời, hãy cân nhắc thay thế chúng bằng các giải pháp mới hơn.
  • Nội dung Flash: 1 số tệp Flash không được hỗ trợ trên thiết bị di động, nội dung trong Flash rất khó được index vì vậy không nên sử dụng chúng trên website của bạn.
  • Submit Sitemap: Gửi sơ đồ trang web trong. Google search console.
  • Request Index: Nếu bạn mới tạo hay cập nhật 1 trang hãy gửi yêu cầu crawl URL trong Google search console.
  • Tham số URL: Với các trang thương mại điện tử, các thông số URL có thể gây ra tình trạng trùng lặp nội dung, hãy sử dụng công cụ URL parameter.
  • Nếu bạn phát triển website trên các quốc gia khác nhau hãy sử dụng thẻ hreflang.
  • Giúp Google xác định rõ trang chính tắc, trang thay thế, các trang có nội dung quan trọng.
  • Vòng lặp chuyển hướng: chuyển hướng 2 trang cho nhau sẽ khiến cho googlebot bị vướng vào 1 vòng lặp và lãng phí khoảng thời gian thu thập dữ liệu.
  • Thường xuyên theo dõi trạng thái thu thập dữ liệu và lập chỉ mục qua báo cáo phạm vi lập chỉ mục trong google search console.
  • Cấu trúc website: Trang có cấu trúc website tốt sẽ giúp cho người đọc và crawler dễ dàng tìm kiếm thông tin. Trên thực tế, Googlebot sẽ không tiếp tục thu thập dữ liệu với các trang ẩn sâu trong website (độ dài trên 4 liên kết).

Trong 1 số trường hợp các trình thu thập thông tin có thể gặp lỗi khi truy cập vào website. Điều này ảnh hưởng nghiêm trọng đến quá trình thu thập dữ liệu, lập chỉ mục của các crawler.

Các lỗi cơ bản thường gặp khiến crawler không thu thập được dữ liệu bao gồm:

  • Lỗi điều trang website
  • Lỗi máy chủ (server errors)
  • Lỗi không tìm thấy nội dung (not found errors)
Các lỗi thường gặp trong quá trình crawling
Các lỗi thường gặp trong quá trình crawling

Lỗi điều hướng Website

Các Crawler sẽ đi theo các liên kết nội bộ (internal link) để khám phá nội dung trên website của bạn. Nếu một trang trên website không liên kết đến bất kỳ 1 trang nào, sẽ rất khó cho các Crawler truy cập và quét nội dung. 

Nhiều trang web mắc lỗi nghiêm trọng này dẫn đến việc cản trở crawler thu thập dữ liệu.

Những điểm cần chú ý khi xây dựng liên kết nội bộ (internal link):

  • Lỗi điều hướng trên thiết bị di động và trên máy tính hiển thị kết quả khác nhau.
  • Các liên kết điều hướng sử dụng JavaScript có thể gây bối rối cho các Crawler trong quá trình thu thập dữ liệu. Sử dụng các đoạn code HTML thay thế để trình thu thập thông tin chắc chắn tìm thấy và lập chỉ mục.
  • Những nội dung quan trọng trên website không được kết nối đến bất kỳ 1 trang nào trên website sẽ khiến khó khăn cho Crawler tìm kiếm và thu thập thông tin.

Lỗi máy khách 4xx: not found errors

Một trong những lỗi 4xx điển hình nhất là 404:”page not found”. Lỗi này xảy ra khi trang bị xóa, lầm lỗi khi đánh máy, chuyển hướng liên kết hỏng.

Khi crawler gặp lỗi 404. chúng không thể truy cập URL để quét nội dung trên trang. Khi người dùng gặp lỗi 404, họ sẽ thoát khỏi website.

Để khắc phục tình trạng này hãy điều hướng các URL bị lỗi 404 đến trang chủ hoặc các trang có nội dung tương tự.

Lỗi máy chủ 5xx: server errors

Lỗi máy chủ 5xx xảy ra khi máy chủ đặt website không thực hiện được yêu cầu truy cập của các Crawler khi truy cập trang. Khi gặp lỗi này, Crawler sẽ từ bỏ yêu cầu truy cập dẫn đến việc không thể thu thập dữ liệu trang.

Đây là lỗi xảy ra bên server, hãy liên lạc đội ngũ hỗ trợ bên server của bạn để có thể nắm bắt tình hình nhanh nhất.

Ghi chú:

Crawling là quá trình để Google tìm kiếm, cập nhật thông tin trên Internet. Đây là việc đầu tiên trong quy trình đánh giá và xếp hạng từ khóa của các search engine.
Bạn cần đảm bảo chắc chắn rằng, Google hay các công cụ tìm kiếm phải thấy được website của bạn trước khi nghĩ tới những thứ khác.

Qua bài viết này bạn cần nắm rõ:

  • Trước khi quét thông tin trên website, Crawler sẽ đọc file Robots.txt.
  • Google vẫn có thể index 1 trang bị chặn trong file robots.txt nếu như có liên kết từ bên ngoài trỏ tới trang đó.
  • File sitemap giúp Crawler hiểu rõ hơn về cấu trúc website, mức độ ưu tiên của các trang.
  • Các crawler có thuật toán riêng để xác định tần suất thu thập thông tin trên các trang. Tần suất thu thập thông tin được xác định bởi Crawl budget.
  • Có thể nhận biết các crawler đã ghé qua website hay chưa thông qua User Agent.
  • Google sẽ truy cập vào website dưới dạng người dùng ẩn danh, vì thế các nội dung có mật khẩu, các biểu mẫu hoặc cần đăng nhập sẽ không được crawler thu thập thông tin.
  • Google gặp khó khăn trong việc quét các tệp không phải dạng text, hãy sử dụng đầy đủ các metadata.
  • Các lỗi khiến crawler không thu thập thông tin bao gồm: lỗi điều hướng, lỗi 4xx, 5xx.

Nguồn tham khảo trong bài viết:

Moz
Ahrefs
SemRush
Blog.google
Search Engine Land
Search Engine Journal
Developers.google.com