Khi JavaScript ngày càng được tích hợp nhiều hơn với HTML trên web, người làm SEO cần hiểu cách làm cho các trang JavaScript thân thiện với tìm kiếm.
Chúng tôi đã đề cập đến một số cách tiếp cận cơ bản về SEO cho JavaScript trong một bài đăng trước. Tuy nhiên, một chủ đề phức tạp đáng được xử lý chi tiết. Vì vậy, chúng ta hãy xem xét các chi tiết cụ thể đằng sau # mới nổi! / Cách tiếp cận ảnh chụp nhanh đối với các trang web JavaScript.
Bạn thậm chí phải làm điều này?
Các công cụ tìm kiếm xử lý JavaScript ngày càng nhiều hơn mỗi ngày. Tuy nhiên, điều đó không có nghĩa là trang AngularJS của bạn sẽ được lập chỉ mục và xếp hạng. Các công cụ hiện đang phân tích cú pháp một số JavaScript, nhưng việc lập chỉ mục đầy đủ tất cả các trạng thái của ứng dụng web JavaScript dường như vẫn còn lâu mới xảy ra. Nếu JavaScript của bạn đang chạy trong trình duyệt và lấy nội dung từ cơ sở dữ liệu, rất có thể các công cụ sẽ không nhìn thấy nó.
Kết xuất trước các trang ảnh chụp nhanh và triển khai dành riêng cho bot
Đây có lẽ là cách tiếp cận phổ biến nhất đối với các vấn đề SEO JavaScript phía máy khách. Quy trình cơ bản như sau:
- Phát hiện các bot của công cụ tìm kiếm bằng cách xem url nếu bạn có #! (“Hashbang”) hoặc chỉ cần kiểm tra tác nhân người dùng của yêu cầu.
- Khi bot được phát hiện, hãy chuyển hướng yêu cầu đến công cụ kết xuất mà bạn chọn, ví dụ: B. PhantomJS. Công cụ này sẽ đợi tất cả nội dung AJAX tải.
- Sau khi tải, lấy nguồn của trang được kết xuất và trả lại cho bot.
Trớ trêu thay, đây là một hình thức che giấu – gửi một số nội dung nhất định đến bot – thường là một điều không nên làm trong SEO. Tuy nhiên, kiểu ngụy trang này được coi là “đạo đức” vì nội dung giống như những gì người dùng sẽ thấy. Do đó, các công cụ tìm kiếm đồng ý.
Google có thông số kỹ thuật thu thập thông tin AJAX đầy đủ bao gồm tất cả các chi tiết. Ý tưởng cơ bản là bạn có thể sử dụng dấu #! Mã định danh cho các URL của bạn hoặc chứa mã HTML [meta name=”fragment” content=”!”] Gắn thẻ vào đầu trang. Điều này sẽ cảnh báo Google rằng trang đang sử dụng các đoạn URL và sẽ khiến chúng lập chỉ mục trang.
Như đã đề cập trong bài viết trước của tôi, History.pushState là một tùy chọn khác để tạo các URL AJAX có thể lập chỉ mục. PushState gặp vấn đề bao gồm cả việc IE 9 không hỗ trợ nó – vẫn là một trình duyệt được sử dụng khá rộng rãi.
Các sự cố có thể xảy ra với kết xuất trước
Có một số điều cần lưu ý nếu bạn quyết định kết xuất trước:
- Phát hiện bot. Đảm bảo rằng bạn đang phục vụ tất cả các bot, không chỉ Googlebot (tức là Bingbot, v.v.).
- Thời gian chụp nhanh. Lưu ý rằng PhantomJS có thể mất một lúc để xử lý các phần tử JavaScript của bạn. Bạn có thể cần thêm thời gian trễ để cho phép tất cả nội dung tải trước khi trang được lưu vào bộ nhớ đệm. Nếu không, trang ảnh chụp nhanh của bạn có thể không hoàn chỉnh hoặc được hiển thị một phần.
- Thời gian tải trang. Nếu bạn đang chạy quy trình trang ảnh chụp nhanh tại thời điểm bot yêu cầu URL, trang có thể tải chậm. Tốc độ tải trang là một yếu tố xếp hạng SEO ngày càng quan trọng. Vì vậy, nếu trang của bạn dường như tải chậm đối với bot, bạn có thể bị ảnh hưởng tiêu cực. Vì lý do này, bạn nên lưu các trang vào bộ nhớ cache trước. Điều này có thêm lợi ích là làm cho trang web của bạn xuất hiện nhanh hơn với các công cụ tìm kiếm so với người dùng.
- Xử lý hàng loạt. Nếu bạn có nhiều trang, bạn có thể muốn chạy quy trình chụp nhanh tại một số thời điểm ngoài giờ làm việc hoặc trên máy chủ của riêng bạn. Quá trình này có thể tốn nhiều tài nguyên.
Xem lại các trang ảnh chụp nhanh
Vì bạn đang sử dụng tính năng phát hiện bot, nên khó xác minh rằng quy trình của bạn đang thực sự hoạt động. Một cách để đánh giá công việc của bạn là sử dụng tính năng “Với tư cách là Google” trong Công cụ quản trị trang web của Google. Nhập url của một trang ảnh chụp nhanh (nó có thể khác với url trực tiếp mà người dùng nhìn thấy) trong GWT và xem liệu Google có thể lấy nó một cách chính xác hay không. Điều này đòi hỏi một trang web trực tiếp vì vậy hãy lên kế hoạch cho phù hợp.
Truy xuất hiện được hỗ trợ từ Google #! nhưng không có url pushState. Nếu URL của bạn trông tĩnh, bạn sẽ không gặp bất kỳ vấn đề nào.
Dịch vụ kết xuất trước
Việc xây dựng khả năng kết xuất trước đầy đủ không thể là chuyện nhỏ. Đối với một trang web lớn hơn, điều này có thể bao gồm thiết lập máy chủ lưu trong bộ nhớ đệm, cơ sở dữ liệu cho nội dung, dịch vụ cho các cuộc gọi vào bộ nhớ đệm, bộ lập lịch và tiện ích quản trị. May mắn thay, một số công ty đã phát triển các giải pháp để giải quyết một phần hoặc toàn bộ phương pháp kết xuất trước. Một số tôi biết là:
- Prerender.io. Prerender.io chạy một dịch vụ hoạt động với PhantomJS để lưu trữ và phục vụ các trang ảnh chụp nhanh. Chúng giúp bạn bớt đau đầu khi chạy máy chủ kết xuất trước của riêng bạn. Chúng hợp lý dựa trên số lượng trang được lưu trữ và tần suất chụp ảnh nhanh.
- Brombone.com. Brombone vận hành một dịch vụ tương tự trong đó các trang ảnh chụp nhanh có thể được tạo dựa trên dấu thời gian cho URL trong sơ đồ trang web hoặc được lập lịch trên cơ sở tùy chỉnh.
- Ảnh chụp nhanh Ajax. AjaxSnapshots cung cấp dịch vụ kết xuất trước với một số tùy chọn cấu hình đẹp. Hiện tại, trang web của họ liệt kê giá là miễn phí (ít nhất là bây giờ), vậy là xong.
Trang đích và tìm kiếm có trả tiền
Các trang web JavaScript có những thách thức với cả tìm kiếm có trả tiền và SEO. Ví dụ: AdWords xác định điểm chất lượng dựa trên nội dung mà bot AdWords nhìn thấy trên trang, trong số những thứ khác. Một cách tiếp cận là cung cấp trang ảnh chụp nhanh tới Google AdsBot (bạn có thể tìm thấy danh sách đầy đủ các trình thu thập thông tin và tác nhân người dùng của Google tại đây).
Ngoài ra, nếu sản phẩm hoặc nội dung sản phẩm của bạn được tìm thấy trong một ứng dụng trang duy nhất, việc thực thi trạng thái đó thông qua URL đích của tìm kiếm có trả tiền có thể là một thách thức. Tạo ra #! Hoặc các URL trông tĩnh là một yêu cầu khá lớn ở đây.
Vì các trang đích tìm kiếm có trả tiền thường cần được điều chỉnh cao để có được chuyển đổi tốt, về lâu dài, tốt hơn là bạn nên tạo các trang dành riêng cho các chiến dịch PPC của bạn và để lại trải nghiệm web JavaScript cơ bản cho người dùng và SEO.
Tốt nghiệp
Các trang web nặng về JavaScript vẫn ở đây. Mặc dù việc tạo một trang JavaScript hoạt động tốt trong SEO có thể không phải là chuyện nhỏ, nhưng thậm chí còn nhiều công việc hơn nữa khi cố gắng sửa một trang hiện có được tạo mà không có SEO. Cho đến khi các khuôn khổ và công cụ được cải thiện để dễ dàng tích hợp các yêu cầu SEO hơn, người làm SEO cần phải làm việc chặt chẽ với các nhà phát triển để đảm bảo rằng SEO được tính đến. Sống cùng nhau SEO và JavaScript có thể không dễ dàng, nhưng nó đáng giá.
Rất cảm ơn Vladimir Katz, Kỹ sư cao cấp tại Huge, vì những đóng góp của anh ấy cho bài đăng này.
Nguồn: www.searchenginewatch.com