15/12/15

Case #2: Một URL lại hiển thị 2 lần trong Google Analytics?

Sự thực là, mình mất tận 10 phút để đặt tên cho bài viết này. Đây là một case nhỏ nhỏ xinh xinh thôi, và là một trường hợp đặc biệt của case số 1.
Mình muốn đề cập tới trong hẳn một bài viết mới vì nó là một trải nghiệm khá thú vị trong cách giải quyết vấn đề của mình. Biết đâu, về sau bạn sẽ gặp tình huống tương tự thì sao.

Theo lẽ thường, khi một bài viết được tạo ra, nó sẽ chỉ có 1 URL. Nhưng website của công ty mình bị thiếu sót một phần nhỏ bên phần kĩ thuật, nên mỗi một post/page được tạo ra đều có thể truy cập được dưới 2 đường link:
http://www.domain.com/post-1.html
http://www.domain.com/post-1.html/
Sự khác nhau duy nhất nằm ở dấu gạch chéo cuối đường link (tiếng anh là slash). Và vì website vẫn hiển thị dưới dạng cả 2 URL nên báo cáo Google Analytics sẽ nhân đôi số link lên, nhìn rất bực mình:


Một link xuất hiện 2 lần
2 URL khác nhau mỗi dấu gạch chéo cuối cùng

Các bạn cứ tưởng tượng, một website lớn sẽ xuất hiện hàng ngàn URL lặp lại như trên. Và cái nào cũng có số liệu, thành ra nghiên cứu rất khó. Không biết nên lấy theo số của URL 1 hay URL 2.
Chưa kể đến tác hại với SEO. Google khi index sẽ nhận diện đây là 2 post giống hệt nhau, trùng lặp nội dung, trùng lặp title, meta description,..dẫn đến giảm thứ hạng của website đó.
Để sửa toàn diện thì có nhiều cách.
Một là viết thêm 1 lệnh vào file .htaccess, đặt rule là tất cả các link nào kết thúc với slash thì chuyển thành không có slash (hoặc ngược lại, tùy bạn).
Hai là dùng thẻ canonical để giúp Google phân biệt được đâu là trang chính, đâu là trang phụ.
Ba là dùng filter để làm sạch sẽ report Google Analytics.
Đây là chuyên mục Google Analytics nên mình sẽ nói về cách thứ 3.
Như tại case #1, mình có đề cập về cách sử dụng filter. Tại case #2 này, mình dùng chính xác cách đó.
Với tư duy là mình sẽ dùng bộ lọc để thay thế tất cả các đường link kết thúc bởi .html/ thành .html, mình áp dụng bộ lọc Search and Replace với:
Nhưng mà khi áp dụng bộ lọc này sau 1 ngày thì không thấy có kết quả gì, ngay lập tức mình phải xem lại filter (!!)
Rõ ràng về mặt ý nghĩa của cấu trúc của RegEx mình viết ra là đúng. Bộ lọc này ý của nó là tìm tất cả các đường link kết thúc bởi html + có gạch chéo và thay thế nó bằng URL kết thúc bởi html không có gạch. Nhưng kết quả trả về thì vẫn không đúng. Không có gì thay đổi cả.
Không biết thì phải hỏi thôi. Hỏi ai bây giờ nhỉ. Mình mới lên trang chuyên hỏi đáp Stack Overflow và đặt câu hỏi.
Các bạn có thể xem câu hỏi và toàn bộ câu trả lời ở đây: Click here, (tên tiếng Anh của mình là Charles)
Và chỉ sau 1 ngày, mình đã nhận được câu trả lời hoàn hảo nhất.
Nhận câu trả lời từ Stack Overflow
Như các bạn thấy thì sau khi sử dụng cách của bác Bohemian này thì filter hoạt động, nhưng mình vẫn không hiểu vì sao đoạn
của mình không hoạt động, có gì sai sót mà lại phải đổi thành
nên mình mới để lại comment ở dưới, hỏi về vấn đề đó.
Và từ câu trả lời của Bohemian, mình biết thêm được một kiến thức mới. Đó là phần Replace string của filter chỉ là plain text thôi, không được là Regular Expression. Điều này giúp ích cho mình rất nhiều ở các case study sau. Mình sẽ chia sẻ trong các post khác.
Vấn đề được giải quyết rồi. Mình chỉ cần tạo một filter như thế này:
Bộ lọc nâng cao Google AnalyticsBây giờ các report không còn bị tình trạng như trên nữa, nhìn báo cáo rất gọn gàng và dễ chịu.
Mình vừa chia sẻ về cách dùng Search and Replace filter để gộp 2 link giống nhau làm một, cũng như chia sẻ thêm một diễn đàn là Stack Overflow để các bạn có thể hỏi khi gặp khó khăn. Hi vọng rằng bài viết này giúp ích cho những bạn gặp tình cảnh tương tự.
Cao Minh

0 nhận xét: