Mô hình thu thập AJAX của Google và hiệu quả trong SEO _escaped_fragment_

2 năm trước, Google đã đề xuất 1 phương án mới để thu thập dữ liệu cho các trang web có AJAX. Như hầu hết các bạn biết, các công cụ tìm kiếm (Search Engine) đánh chỉ mục rất tốt cho các trang HTML, nhưng lại khó khăn và ít hỗ trợ cho các trang chứa JavaScript và AJAX. Và 2 năm trôi qua, ít các website đã thực hiện lời đề nghị của Google. Hơn nữa, mặc dù thực tế Google đã bắt đầu thu thập dữ liệu, đánh chỉ mục cho các trang AJAX trên SERPs, nhưng các trang công cụ tìm kiếm khác như: BingYahoo thì hoàn toàn chưa hỗ trợ.

 

Mục tư vấn SEO – iDichvuSEO sẽ

  • Giải thích ngắn gọn về AJAX là gì?
  • Thảo luận về vấn đề Crawl nội dung AJAX
  • Thảo luận về những sai lầm phổ biến của các Webmaster trong việc sử dụng các công nghệ không thân thiện (Flash, AJAX) với các bộ máy tìm kiếm.
  • Thảo luận nên hay không nên làm theo lời đề nghị của Google

Mặc dù vấn đề này là nâng cao 1 chút và đòi hỏi có kiến thức cơ bản về lập trình web, nhưng Tư vấn SEO – iDichvuseo sẽ cố gắng nói nhiều hơn về SEO và 1 chút về lập trình:

AJAX là gì?

Ajax (Asynchronous Javascript And Xml): là ngôn ngữ không đồng bộ Javascript và xml. Bạn hiểu là ajax là việc sử dụng javascript, trình duyệt tương tác với người dùng, và gửi các yêu cầu đến máy chủ mà được phản hồi trong XML. AJAX thường được sử dụng để cập nhật thông tin 1 cách tự động trên trang HTML mà không làm chuyển hướng trang.

Vấn đề thu thập dữ liệu Ajax:

Vấn đề chính trong việc thu thập dữ liệu AJAx là nó dựa rất nhiều vào JavaScript. Mà các trình duyệt thì hỗ trợ Javascript 1 cách khác hẳn nhau. Việc xử lý JavaSc đòi hỏi nguồn nhân lực và tăng chi phí, thời gian cho các bộ máy tìm kiếm.

Mặc dù Google thừa nhận, họ đã cải thiện rất nhiều để hiểu tốt hơn Javascript , Flash và các Form HTML, nhưng đã phần các bộ máy tìm kiếm vẫn không thực sự hiệu quả với các trang web chứa Flash.

Dưới đây, các giải pháp đã được đề xuất cho Crawl ajax không dựa vào thực thi javascript (sẽ làm mất thời gian và chi phí cho công cụ tìm kiếm), thay vào đó họ làm cho webmaster thay đổi cấu trúc Website để làm cho nó thân hiện với SEO.

Giải pháp cho Crawl nội dung AJAX:

2 kỹ thuật phổ biến nhất đã được đề xuất trong những năm qua là phương pháp tiếp cận Hijax và Đề án thu thập dữ liệu AJAX của Google.

Kỹ thuật Hijax

Theo kỹ thuật Hijax, khi bạn có một liên kết thực hiện AJAX hay JavaScript, bạn không nên mã nó như thế này:

<a href="/”javascript:someFunction(’somepage.html#parameter=1′)”">Click Me </a>

Cũng không giống như này:

<a href=”#”>Click Me</a>

Cả hai của các phương pháp tiếp cận trên là rất phổ biến cho các nhà phát triển web, nhưng tiếc là họ không cung cấp một URL có ý nghĩa có thể được sử dụng bởi các công cụ tìm kiếm. Bằng cách sử dụng kỹ thuật Hijax liên kết ở trên cần phải được viết lại như sau:

<a href=”somepage.html?parameter=1″ onclick=”someFunction(’somepage.html#parameter=1′); 
return false”>Click Me</a>

Đoạn mã trên sẽ chuyển hướng các công cụ tìm kiếm trang mục tiêu nếu JavaScript được tắt, nhưng đồng thời nó sẽ chạy lên các mã AJAX nếu JavaScript được bật (rõ ràng là các phương pháp someFunction nên xử lý các nhấp chuột và tải các nội dung AJAX cho người sử dụng). Kết quả là cả người dùng và các công cụ tìm kiếm sẽ có thể truy cập nội dung của trang được liên kết.

Tất nhiên, kỹ thuật nói trên có một vài hạn chế vì nó không bao gồm các trường hợp nơi mà các nội dung AJAX được tạo ra tự động dựa trên đầu vào của người sử dụng.

Chương trình thu thập dữ liệu AJAX của Google

 

Chương trình thu thập dữ liệu AJAX của Google đề xuất để đánh dấu các địa chỉ của tất cả các trang tải AJAX nội dung với các ký tự cụ thể. Toàn bộ ý tưởng đằng sau nó là sử dụng các mảnh vỡ đặc biệt thăng (special hash fragments) (#) trong các URL của các trang này để cho biết rằng họ tải AJAX nội dung. Khi Google tìm thấy một liên kết trỏ đến một URL “AJAX”,

Ví dụ như:

“http://example.com/page?query#!state”

Nó sẽ tự động diễn giải thoát nó là

"http://example.com/page?query&_escaped_fragment_=state”

Lập trình viên buộc phải thay đổi kiến trúc Website / để xử lý các yêu cầu trên. Vì vậy, khi Google sẽ gửi một yêu cầu web cho URL thoát, máy chủ phải có khả năng trả về mã HTML giống như là trang đã hiển thị cho người dùng khi chức năng AJAX được gọi lại.

 

Vì vậy, bạn có thể hiểu Google đã đề xuất một cách để làm cho nội dung AJAX thập mà không thực hiện JavaScript (những tiến sĩ thông minh, phải không?). Kỹ thuật này là chung chung hơn so với Hijax vì nó bao gồm nhiều trường hợp, nhưng nó là phức tạp hơn nhiều, nó đòi hỏi mã hóa bổ sung và hiện đang được hỗ trợ chỉ bởi Google.

Những sai lầm Phát triển Web thông thường

Như chúng ta đã thấy ở trên, một trong những sai lầm phổ biến nhất mà các nhà phát triển web làm là họ không cung cấp trong JavaScript liên kết đến một URL có ý nghĩa cho các công cụ tìm kiếm. Một điều mà các nhà phát triển web nhiều người bỏ qua là theo các chi tiết kỹ thuật web và giao thức tất cả các tham số URL có sau khi các biểu tượng “#” (hash mảnh) là không bao giờ được gửi đến máy chủ web. Vì vậy, các URL sau đây tạo ra chính xác các yêu cầu web đến máy chủ:

http://example.com/#state
http://example.com/#param1=1¶m2=2
http://example.com/#/directory/page.html
http://example.com/#/directory/page.html?param=1

Tất cả các liên kết trên sẽ tạo ra một yêu cầu web http://example.com/ URL và tất cả các thông số bổ sung sau khi # hoàn toàn sẽ bị bỏ qua. Đó là lý do tại sao Công cụ tìm kiếm bỏ qua tất cả mọi thứ sau khi # (Chúng ta sẽ nói về “#!” Một chút sau đó, nhưng có nó cũng tạo ra các yêu cầu web trên máy chủ như các URL trước đó).

Căn cứ vào ở trên chúng tôi kết luận rằng hầu hết các kỹ thuật AJAX hoặc Flash mà lời hứa SEO URL thân thiện bằng cách sử dụng các mảnh vỡ băm là không làm việc. Một số người trong số họ thậm chí còn bận tâm để thay đổi tiêu đề và văn bản của trang đang nắm giữ bằng cách sử dụng JavaScript để làm cho các trang web SEO thân thiện. Bạn không mất thời gian của bạn với những kỹ thuật bởi vì họ không làm việc. Nếu bạn dựa vào mã JavaScript để làm SEO trang web của bạn thân thiện, bạn đang đi sai đường! Ngoại lệ duy nhất với các quy định trên là khi #! được sử dụng. Vì vậy, bạn có thể nghĩ rằng nếu bạn sử dụng #! thay vì # bạn sẽ được ok. Thật không may câu trả lời là KHÔNG! Chỉ cần bằng cách sử dụng nó, bạn sẽ đạt được gì cả. Bạn cũng phải viết mã trong PHP, JSP, ASP hoặc ASP.NET để đảm bảo rằng máy chủ của bạn sẽ xử lý các chương trình thu thập dữ liệu của Google AJAX và hiện tại trang tổ chức thích hợp (như chúng tôi đã giải thích ở trên).
Nếu bạn sử dụng đề nghị của Google? Hãy tập trung vào một nghiên cứu trường hợp.

Hiện nay chương trình thu thập dữ liệu AJAX của Google đã được thực hiện bởi một số lượng tương đối nhỏ của các trang web và nhiều người trong số họ đã không thực hiện nó đúng cách. Một trong những trang web nơi mà nó đã được thực hiện một công việc khá tốt là thebullittagency.com

Trước hết chúng ta hãy chạy truy vấn “Fabric Blog Features Luca Bacchetti” trên Google. URL của kết quả đầu tiên là sau đây:

 

Bây giờ chúng ta hãy xem bao nhiêu trang được lập chỉ mục. Nếu chúng ta tìm kiếm trên Google truy vấn “site: thebullittagency.com”, chúng tôi sẽ nhận được hơn 1 ngàn kết quả có nghĩa là trang web thường được lập chỉ mục. Ngoài ra nếu chúng tôi cố gắng truy vấn

“site:http://thebullittagency.com/#!/blog”

chúng tôi sẽ có được tất cả các bài viết đã được viết trên blog của họ. Vì vậy, AJAX chương trình thu thập dữ liệu của Google là an toàn để sử dụng, phải?

Hãy làm các truy vấn “site: thebullittagency.com” trên Bing.

 

Có 2 kết quả, trang chủ và một URL với cá tên rất dài và linh tinh. Vì vậy, Bing không xử lý tại tất cả các URL, họ bỏ qua tất cả mọi thứ sau khi #!.

Nhưng nếu điều này là đúng thì twitter.com lý do tại sao được lập chỉ mục đúng trên Bing? Câu trả lời là Twitter không sử dụng #! trong URL của họ, nhưng khi một yêu cầu tìm kiếm động cơ “http://twitter.com/username” phiên bản của trang họ cung cấp HTML thông thường. Tất nhiên nếu người dùng cố gắng truy cập vào phiên bản này, họ làm một JavaScript lén lút chuyển hướng đến các #! phiên bản bằng cách sử dụng đoạn mã sau: “window.location.replace (‘/#!/ Tên đăng nhập’);”. Tại sao Twitter sử dụng phương pháp này? Bởi vì bằng cách sử dụng AJAX, họ có làm mới trang ít hơn, họ cải thiện thời gian tải của họ và giảm chi phí điều hành của họ (ít hơn các máy chủ, băng thông có sẵn hơn …).

Các kỹ thuật nói trên không phải là một phương pháp chung chung mà sẽ giúp bạn chỉ AJAX nội dung và nó là vô cùng nguy hiểm vì nó vi phạm chính sách của Google liên quan đến chuyển hướng JavaScript. Nó có thể là ok nếu bạn là Twitter, nhưng nó chắc chắn là không ổn nếu bạn là một quản trị trang web đơn giản.

Kết luận

Đối với một lập trình viên các vấn đề thu thập dữ liệu AJAX là tự giải quyết. Google đã đề xuất giải pháp crawl nội dung AJAX, tuy nhiên phương pháp này là phức tạp và thực sự tốn kém cho các nhà phát triển. Đó là lý do tại sao 2 năm sau khi đề nghị của chương trình thu thập dữ liệu AJAX một số lượng rất nhỏ của các trang site đã thực sự thực hiện đúng cách. Hơn nữa, chúng ta nên lưu ý rằng hiện tại chỉ có Google hỗ trợ sơ đồ này và bằng cách sử dụng nó, bạn có nguy cơ mất lưu lượng truy cập mà bạn nhận được từ các công cụ tìm kiếm khác. Khi bạn nên sử dụng nó? Có lẽ bạn có thể sử dụng phương pháp của Google, khi bạn không có lựa chọn nào khác. Cá nhân tôi tin rằng bạn luôn luôn có sự lựa chọn không sử dụng công nghệ AJAX trên các trang web quan trọng đối với công cụ tìm kiếm. Nếu tôi đã phải sử dụng AJAX, tôi sẽ đi cho kỹ thuật Hijax dễ dàng hơn, an toàn hơn và được hỗ trợ bởi tất cả các công cụ tìm kiếm. Nếu bạn cảm thấy bối rối với tất cả những điều này, chúng tôi đề nghị bạn hạn chế sử dụng AJAX và không sử dụng nó trên các trang đích kiếm tiền của bạn.

Dịch vụ SEO