Tài trợ bài viết này và giới thiệu dịch vụ, sản phẩm, thương hiệu, nhu cầu tuyển dụng của doanh nghiệp đến với cộng đồng.
La Kiến Vinh Bài viết hướng dẫn bạn hiểu và tối ưu đường dẫn các bài viết hay danh mục sản phẩm trong website bạn theo hướng tiếp cận thủ công, áp dụng được cho tất cả nền tảng bao gồm PHP, ASP.NET, JSP Servlet. Kỹ thuật cũng có thể hỗ trợ lớn cho mục đích quảng bá, trong vấn đề tạo ra một website tốt có rất nhiều khía cạnh để quan tâm như bề ngoài, xử lý tốt, dữ liệu lưu trữ tốt, tốc độ lướt web nhanh. Đó là hướng sản phẩm, ở hướng bán hàng hay marketing, ta sẽ tập trung chú trọng bề ngoài và trải nghiệm người dùng.
Nội dung bài viết

Giới thiệu

Đối với website cơ bản, nói về kỹ thuật, có thể nó sẽ không quá khó với việc phát triển với công nghệ hiện tại. Ở một thế giới khác của kỹ thuật, người ta còn đòi hỏi phải tăng được khả năng quảng bá nhiều nhất có thể cho những gì họ làm ra như định hướng, quảng bá, thương hiệu, trải nghiệm người dùng.

Ta thử xét 2 đường dẫn sau:

  • http://www.stdio.vn/articles/282
  • http://www.stdio.vn/articles/dien-tu-co-ban-voi-arduino-led-7-doan-282

Với trải nghiệm của bạn, bạn có thể có nhiều thông tin hơn với đường dẫn thứ 2. Trong bài viết này chủ yếu đề cập đến vấn đề tối ưu hóa đường dẫn nhằm tối ưu trải nghiệm người dùng với website bạn.

Bài này không đề cập đến kỹ thuật tạo ra nó mà chỉ nêu giải, bạn có thể dùng bất kỳ cách gì để hiện thực.

Tối ưu hóa đường dẫn web là gì và tầm quan trọng?

Trải nghiệm người dùng

  1. http://www.stdio.vn/articles/282
  2. http://www.stdio.vn/articles/dien-tu-co-ban-voi-arduino-led-7-doan-282

Ta nhận xét thấy đường dẫn thứ nhất không chứa nhiều thông tin như đường dẫn thứ 2. Trường hợp người sử dụng cuối đang tìm kiếm một giải pháp, sản phẩm mà ta đang có và họ lại tiếp cận đường dẫn thứ nhất mà ta chia sẻ trên một trang web khác, họ sẽ không nắm được thông tin và đường dẫn đó có trải nghiệm người dùng không tốt. Với đường dẫn số 2 lại mang được trải nghiệm tốt hơn cho người sử dụng, giả sử như người dùng cuối đang quan tâm đến Arduino và hiện thực Led 7 đoạn thì đây đúng là điều mà họ cần, tăng tỷ lệ truy cập.

Tối ưu hóa cho bộ máy tìm kiếm

Các bộ máy tìm kiếm hiện tại có khả năng phân tích ngữ nghĩa rất tốt, kể cả đường dẫn mà bạn chia sẻ lên trang web khác. Nếu nó mang được thông tin trong đường dẫn, các bộ máy tìm kiếm cũng sẽ lưu ý đến những ngữ nghĩa mà nó phân tích được, điều này quan trọng đến việc giúp cho bộ máy tìm kiếm hiểu được web của bạn nhiều hơn (khi mà người ta hiểu bạn hơn, thì họ sẽ có lòng tin vào bạn cao hơn) tương ứng với việc thứ hạng của bạn sẽ cao hơn trong bộ máy tìm kiếm (thuật ngữ gọi là SEO - Search Engine Optimization).

Cách hiện thực

Nên đặt thông tin gì lên đường dẫn?

Trong các bài viết, thông thường điều làm cho nó có ý nghĩa nhất chính là tiêu đề bài viết. Đối với tôi, tôi cũng sử dụng tiêu đề bài viết cho việc lưu trữ trong đường dẫn, ví dụ

  • Với tiêu đề: Giới Thiệu Skype4COM - Lập Trình Tương Tác Với Skype Trên Windows - C#.NET, ta có đường dẫn là: www.stdio.vn/articles/gioi-thieu-skype4com-lap-trinh-tuong-tac-voi-skype-cnet-309
  • Với tiêu đề: DirectX – Lịch Sử Phát Triển Và Những Thăng Trầm, ta có đường dẫn là: www.stdio.vn/articles/directx-lich-su-phat-trien-va-nhung-thang-tram-300

Trong một số trường hợp, có thể đường dẫn ta sẽ khác, chẳng hạn trang thông tin cá nhân các thành viên STDIO thì nó có dạng sau

  • Với tên là La Kiến Vinh thì đường dẫn sẽ có dạng www.stdio.vn/users/la-kien-vinh-1

Như vậy, khi chia sẻ đường dẫn, ta sẽ chia sẻ các đường dẫn có dạng thêm thông tin này, mặc dù khi tìm kiếm dữ liệu trong cơ sở dữ liệu bài viết ta chỉ cần con số 309, 300, 1, ... (là chỉ mục bài viết trong cơ sở dữ liệu) để truy vấn.

Ý tưởng hiện thực

Ở toàn bộ các trang có liên kết đến bài viết, sản phẩm ta sẽ tạo ra các liên kết thay vì chỉ có chỉ mục, ta sẽ gắn thêm nội dung của tiêu đề bài viết vào. Độc giả hoặc người dùng cuối muốn chia sẻ bài viết của web sẽ dùng đường dẫn này, đó chính là mục tiêu của ta.

Khi gửi về Server để tính toán, ta chỉ quan tâm đến chỉ mục để tìm kiếm dữ liệu và có thể không cần quan tâm đến phần mô tả phía sau. Giả sử ta có www.stdio.vn/users/la-kien-vinh-1 ta chỉ cần quan tâm đến chỉ mục 1 để tìm kiếm thông tin của user này và không cần quan tâm đến la-kien-vinh.

OntimeCompute

Vào thời điểm truy vấn bài viết, ta sẽ có cả thông tin về tiêu đề bài viết, lúc này, dựa vào tiêu đề bài viết ta sẽ tạo ra đường dẫn. Điều này rất tiện lợi và ta không cần lưu trữ thêm vào cơ sở dữ liệu đường dẫn này. Tuy nhiên, nó có 1 vấn đề nảy sinh. Giả sử ta có nhiều người sử dụng cuối đã chia sẻ đường dẫn này lên mạng xã hội hay các trang web khác.

Giả sử ta có "Giới Thiệu Skype4COM" và ta sẽ có đường dẫn thân thiện là "gioi-thieu-skype4com". Và có 1 lượng người dùng đã chia sẻ đường dẫn của ta lên các trang web khác www.stdio.vn/ ... /309/gioi-thieu-skype4com. Sau đó, ta có nhu cầu đổi tiêu đề thành "Giới Thiệu Skype4COM - Lập Trình Tương Tác Với Skype Trên Windows - C#.NET" thì đường dẫn trên trang web ta sẽ là "www.stdio.vn/ ... /309/gioi-thieu-skype4com-lap-trinh-tuong-tac-voi-skype-cnet" và lúc này đường dẫn thật sự và đường dẫn mà người sử dụng đã chia sẻ là khác nhau, mặc dù về kỹ thuật nó vẫn đáp ứng tốt việc truy vấn bài viết.

Do các bộ máy tìm kiếm sẽ đánh chỉ mục, thứ hạng từng đường dẫn 1 nên chắc chắn đường dẫn mới này sẽ phải xây dựng thứ hạng lại từ đầu.

Đặt giả thiết, nếu ta xây dựng đường dẫn lần đầu, và sau này có đổi tiêu đề thì không ảnh hưởng đường dẫn đó, thì mọi thứ sẽ khác, ta tham khảo giải pháp thứ 2 - PreCompute.

PreCompute

Khi người đăng bài đăng bài của họ lên, tiêu đề sẽ được phân tích thành đường dẫn thân thiện và lưu vào cơ sở dữ liệu.

_id _title _friendly_url _content
1 Template Đăng Bài Trên Stdio template-dang-bai-tren-stdio ...
2 Một Cách Hiểu Về Khái Niệm Server Và Client mot-cach-hieu-ve-khai-niem-server-va-client ...
3 Virtual Table Và Hiện Thực Hóa Polymorphism virtual-table-va-hien-thuc-hoa-polymorphism ...
4 Design Pattern - Adapter Pattern design-pattern-adapter-pattern ...
... ... ... ...

Như vậy, ta chỉ cần tạo đường dẫn thân thiện ngay thời điểm đầu tiên đăng bài, những lần sau cập nhật bài viết, tiêu đề ta sẽ không cập nhật đường dẫn này. Và khi truy vấn bài, ta chỉ cần lấy thông tin này (_friendly_url) là được.

Nhược điểm của phương pháp này có thể làm xảy ra sự sơ sót trong tiêu đề và không cập nhật lại được đường dẫn thân thiện. Tuy nhiên, ta có thể thêm tính năng sửa đổi _friendly_url một cách chủ động, và hiện tại STDIO đang dùng phương pháp này.

THẢO LUẬN
ĐÓNG