4.5.1. Đặt bài toán
Như chúng ta đã biết với một website sẽ có rất nhiều trang, làm cách nào đó để quét tất cả các liên kết trong trang và lưu lại thành file có tên sitemap.xml, sitemap là một danh sách các trang hoặc các liên kết của trang web để người đọc dễ dàng truy cập hoặc để cho các con bọ của các công cụ tìm kiếm dễ dàng thu thập thông tin.
4.5.2. Phƣơng pháp giải quyết
Đối với mỗi trang web thì sẽ có hàng trăm, hàng ngàn liên kết. Mỗi liên kết một loại thuộc tính là follow hoặc nofollow, với follow có nghĩa là cho phép theo liên kết đó, còn nofollow thì không cho phép theo.
Bắt đầu từ một trang trong website, tiến hành lấy toàn bộ thông tin về liên kết của trang đó, với thông tin này ta quan tâm tới liên kết trong trang hay liên kết ngoài trang và thuộc tính rel là follow hoặc nofollow. Sau đó chúng ta tiếp tục xác định trang để quét kế tiếp, và phải đảm bảo rằng các liên kết phải trong một site, có thuộc tính là follow và chưa quét lần nào.
Để tạo được một sitemap hoàn chỉnh đa phần code xử lý nằm ở file sitemappage.php.
require_once (PATH_BASE.'library/handle/sitemaper.php'); $sitemap = new handle_sitemaper();
Gọi file sitemaper.php theo đường dẫn 'library/handle/sitemaper.php' để khởi tạo biến mới có tên là $sitemap.
//setting rules to ignore URLs which contains these substrings
$sitemap->set_ignore(array("javascript:","#", ".css", ".mp3", ".js", ".ico", ".jpg", ".png", ".jpeg", ".swf", ".gif"));
Nếu những liên có trong biến $sitemap có những đuôi giống ở trên thì ta loại bỏ, vì những đuôi trên không phải là liên kết <A>, mà đa phần là file hình, file nhạc, file flash.
//parsing other page and gathering links $sitemap->get_links($_wesite); $file = 'sitemap.xml';
header("Content-type: text/xml;charset=utf-8;");
header('Content-Disposition: attachment; filename='.basename($file)); //generating sitemap
echo $map = $sitemap->generate_sitemap($_wesite);
Lấy hết liên kết được lưu ở biến $sitemap bỏ vào file có tên là sitemap.xml, nội dung header của sitemap là nội dung giống ở dòng 4,5.
4.5.3. Kết quả
Mặc dù là liệt kê những liên kết trong site, có thuộc tính rel là follow và lưu vào file thật sự rất khó khăn, khó khăn hơn nữa là đã lưu liên kết vào rồi nhưng phải kiểm tra xem đã có chưa, điều này đã ngốn nhiều thời gian và tài nguyên của máy tính.
Bên cạnh đó nếu một số website mà có phần mềm bảo vệ hay tường lửa cũng là lý do để quét chậm. Công cụ vẫn tạo ra được sitemap.xml, theo cấu trúc của trang web, tần suất cập nhật nội dung của trang và trang nào được ưu tiên hơn trong kết quả tìm kiếm.
Tổng kết
Công cụ hỗ trợ cho các webmaster có những thông tin cần thiết để tối ưu hóa website của mình thân thiện với các công cụ tìm kiếm. Tác giả đặt tên công cụ này là “Seogby”, Seogby đã đáp ứng được mục tiêu đề tài luận văn đề ra và sau đây là nhận xét tổng quát về công cụ:
Ƣu điểm:
Hiện tại công cụ được chạy trên localhost, chạy ổn định.
Giao diện thân thiện vì có nét giống với công cụ tìm kiếm Google, dễ sử dụng. Thời gian xử lý nhanh chóng, hiện thị kết quả chính xác đúng yêu cầu.
Sử dụng những kỹ thuật mới như CS3, HTML5, Jquery.
Công cụ cho kết quả chi tiết để webmaster có đầy đủ thông tin.
Trong công cụ thông tin chung có đưa ra những hướng dẫn để hướng người dùng tối ưu hóa trong các thẻ, và bên cạnh đó cũng đưa ra những lỗi dựa vào kinh nghiệm thực tế để người dùng hạn chế ít sai nhất có thể.
Trong công cụ phân tích SEO Onpage đưa ra một kết quả tính toán khá chính xác, thông tin được tập hợp theo từng nhóm để người dùng dễ quan sát, và mỗi thành phần trong nhóm được thể hiện khá đầy đủ.
Trong công cụ phân tích SEO Offpage, thông tin thu được từ những trang web uy tín cho một kết quả nhanh chóng, rõ ràng.
Trong công cụ tạo sitemap, đã tạo ra được file sitemap.xml, theo cấu trúc của trang web, tần suất cập nhật nội dung của trang và trang nào được ưu tiên hơn trong kết quả tìm kiếm.
Khuyết điểm:
Đối với những website có nhiều liên kết, những liên kết đó có lúc dùng liên kết tuyệt đối (domain.com/abc.php), có lúc dùng liên kết tương đối (/abc.php), tuy rằng hai liên kết đó điều hướng đến 1 trang nhưng vẫn phát hiện là hai.
Với những website có nhiều liên kết, khi chúng ta tạo sitemap.xml thì thời gian xử lý rất chậm vì phải quét một số lượng lớn url, do vậy tài nguyên của hệ thống (RAM, CPU).