Categories CDN

Làm thế nào để CDN kết hợp tốt với SEO

cải thiện SEO với CDN

Là những người làm marketing, chúng ta đều muốn có thứ hạng tốt hơn trên máy tìm kiếm. Thậm chí ngay cả khi Google vừa mới đây đã thay đổi các vị trí đặt quảng cáo để áp đảo SEO, vẫn có rất nhiều doanh nghiệp và blogger dựa phần lớn vào lưu lượng tìm kiếm tự nhiên, và đây là điều còn lâu mới thay đổi- bởi nếu thay đổi thì Google không còn là Google nữa rồi.

Bên cạnh việc tạo nội dung chất lượng cao, xây dựng backlink, và tạo ra các tín hiệu mạng xã hội; cải thiện tốc độ trang web của bạn là cách rất hay để giúp Google nói riêng và các máy tìm kiếm khác nói chung lập chỉ mục và xếp hạng trang web nhanh hơn. Triển khai CDN (mạng phân tán nội dung) có thể là cách dễ dàng để có tốc độ tốt hơn và thực sự giúp cải thiện SEO website của bạn.


CDN là gì vậy?

CDN là viết tắt của cụm từ tiếng Anh Content Delivery Network, nghĩa đen dịch ra tiếng Việt là Mạng lưới Phân tán Nội dung.

Trước hết, một số người có thể không biết CDN thực sự là gì. Về cơ bản, nó là một tập hợp các máy chủ ở gần người dùng (còn có tên gọi là PoP) đặt tại những vị trí chiến lược khắp thế giới. Mục tiêu của nó là lưu trữ và sao lưu các thành phần tĩnh trên website của bạn (ví dụ như hình ảnh, JS, CSS và đôi khi là HTML).

Khi người dùng truy cập website của bạn, các thành phần này sẽ được phục vụ bởi các PoP đặt tại vị trí gần họ nhất.

Sự khác biệt giữa có CDN và không có CDN

Lấy ví dụ, chẳng hạn bạn sử dụng hosting cho website của bạn với một công ty ở Hoa Kỳ (ví dụ Dreamhost, Namecheap shared hosting, Siteground, vv). Khi ai đó ở Việt Nam ghé thăm trang của bạn, họ sẽ phải gửi yêu cầu và tải toàn bộ website từ host ở Hoa Kỳ về. Điều này dẫn đến hệ quả là có độ trễ (letancy) về mặt dữ liệu với quãng đường xa cần phải đi. Với CDN, một yêu cầu nào đó sẽ chỉ lấy dữ liệu ở Hoa Kỳ cho tài liệu HTML ban đầu (cái thường có dung lượng rất nhỏ so với các thành phần khác trên web – ND), còn JS, CSS, ảnh, font cục bộ, vân vân được phục vụ bởi các PoP gần nhất, trong trường hợp này có thể là PoP ở Hà Nội hoặc Sài Gòn.

CDN có thể giúp giảm đáng kể độ trễ và tối thiểu hóa việc mất mát các gói dữ liệu, đây chính là cái giúp tăng tốc độ phân phối nội dung của bạn.

PS: hiện nay với sự phát triển của CDN đa ứng dụng, chẳng hạn như CloudflareQUIC cloud, bạn thậm chí có thể đẩy lên PoP cả HTML tĩnh và font của Google. Khi đó hầu như toàn bộ nội dung website được phục vụ qua CDN, nhờ đó tốc độ web được cải thiện hơn, ngoài ra uptime cũng tốt hơn, vì uptime của CDN thì thường cao hơn đáng kể uptime của hosting mà bạn đang thuê.


CDN giúp đỡ cho SEO như thế nào?

Có nhiều quan niệm sai lầm khi đề cập đến việc sử dụng CDN và cách nó thực sự ảnh hưởng đến SEO của bạn. Chúng ta sẽ giải quyết những vấn đề đó trong bài viết này. Nhưng trước hết, cần xem lại một vài khía cạnh mà qua đó CDN thực sự giúp cải thiện SEO của bạn.

1. Tốc độ là yếu tố xếp hạng trên máy tìm kiếm

Tăng tốc website là điều vô cùng quan trọng. Trang web nhanh hơn nghĩa là các khách hàng hài lòng hơn. Tốc độ trang trở thành yếu tố xếp hạng đáng kể

– theo Matt Cutt, cựu trưởng nhóm chống web spam của Google.

Tốc độ tải trang web của bạn là điều rất quan trọng, ảnh hưởng đến mọi thứ, từ tỷ lệ thoát trang (bounce rate) cho tới thời gian ở trên website trước khi quay trở lại máy tìm kiếm (dwell time), tỷ lệ chuyển đổi (conversion rate), và trải nghiệm người dùng nói chung.

Google tuyên bố vào năm 2010 là tốc độ trang web là một trong các yếu tố dùng để quyết định thứ hạng. Không ai biết mức độ quan trọng của yếu tố này đến đâu trong công thức xếp hạng, nhưng bạn có thể khá chắc chắn là nó không nhỏ vì tốc độ ảnh hưởng đáng kể đến trải nghiệm người dùng, và mức độ quan trọng sẽ ngày càng tăng theo thời gian mà thôi. Đặc biệt là khi lưu lượng truy cập web thông qua thiết bị di động thỉnh thoảng đã vượt 50% tổng lưu lượng của một website.

Chú ý! Các đoạn mã chặn hiển thị (render-blocking)

Trong khi CDN có thể cải thiện đáng kể tốc độ của website, điều quan trọng cần phải nhớ là CDN không phải cây đũa thần. Nó sẽ phân phối các thành phần trên website của bạn chính xác như cách chúng được thiết lập trên trang. Điều đó có nghĩa là nếu bạn có nhiều nguồn chặn kết xuất trang/chặn hiển thị (render-blocking), bạn vẫn có thể gặp tình trạng trễ (bạn có thể thấy vấn đề này khi kiểm tra bằng Google PageSpeed Insights).

Những nguồn render (kết xuất) liên quan đến các thành phần như là JS và CSS chặn các DOM và/hoặc giữ trang web không được render cho đến khi chúng được tải và xử lý bởi trình duyệt. Hệ thống CDN sẽ không sửa được những điều này cho bạn đâu. Chúng phải được giải quyết trước trên máy chủ gốc của bạn (thường thông qua việc tối ưu plugin, theme và sử dụng tính năng sẵn có trong plugin cache).

Dưới đây là một số lời khuyên về cách khắc phục các đoạn mã JS chặn hiển thị trang:

  1. Nếu các đoạn mã JS chỉ ngắn thôi thì bạn có thể inline (nội tuyến) nó;
  2. Tải các đoạn mã không đồng bộ (asynchronously) bằng cách sử dụng thuộc tính HTML là async;
  3. Trì hoãn (defer) các đoạn mã JS;
  4. Chuyển các đoạn mã JS xuống footer (tuy nhiên lựa chọn này không phải lúc nào cũng là giải pháp tốt nhất);
  5. Các phương pháp thay thế khác để trì hoãn tải JS (chẳng hạn dựa vào tương tác của người dùng hoặc chờ sau khoảng thời gian nhất định như cách plugin Flying Scripts đang làm).

Trong WordPress, bạn có thể dùng plugin AutoptimizeAsync JavaScript để tối ưu hóa JS.

Dưới đây là một số lời khuyên về cách sửa CSS chặn hiển thị:

  1. Gọi các file CSS một cách chính xác;
  2. Sử dụng media queries để đánh dấu một số nguồn CSS không phải chặn hiển thị;
  3. Giảm số lượng tệp CSS xuống (nối các file CSS của bạn thành một, lưu ý là điều này có thể không quan trọng nếu bạn đang sử dụng HTTP/2);
  4. Nén file CSS (loại bỏ khoảng trống, các ký tự và comment thừa, vân vân);
  5. Về mặt tổng thể cần sử dụng ít CSS hơn.

Bạn có thể tham khảo thêm bài viết này để biết thêm thông tin về chặn hiển thị là gì và cách khắc phục nó: https://kiencang.net/tang-toc-web-pagespeed-insights/

Và cả bài viết này nữa về critical CSS trong WordPress.

2. HTTPS là yếu tố xếp hạng

Bạn có thể tải các thành phần trên website thông qua HTTPS với CDN trong khi trang web chính của bạn KHÔNG phải là kết nối HTTPS. Nhưng bạn không thể làm điều ngược lại được, vì sẽ xuất hiện cảnh báo nội dung hỗn hợp/mixed-content warnings (điều này có nghĩa là nếu trang chính của bạn triển khai HTTPS thì các nội dung CDN cũng bắt buộc phải được phục vụ qua giao thức bảo mật – ND). Mỗi một máy chủ web và một CDN yêu cầu chứng chỉ SSL của riêng nó, đó là những quá trình hoàn toàn riêng biệt.

Với sự ra đời của HTTP/2 đã đem lại rất nhiều lợi ích về mặt hiệu suất khi sử dụng HTTPS. Chúng bao gồm ghép kênh (multiplexing), nén HPACK, và server push. Điều này có nghĩa là HTTPS không còn chậm như trước đây khi bạn so sánh nó với SPDY.

Nhóm HttpWatch đã quan sát thấy tốc độ tăng 20% khi so sánh HTTPS với SPDY/3.1 và HTTP/2.

Vậy làm thế nào để liên kết nó với CDN? Vâng, rất nhiều nhà cung cấp CDN hiện đã tích hợp “Let’s Encrypt”.

Let’s Encrypt cho phép bạn bật tính năng HTTPS trên CDN của bạn hoàn toàn miễn phí. Và miễn là nhà cung cấp dịch vụ CDN của bạn hỗ trợ HTTP/2, thì bạn có thể dễ dàng phục vụ tất cả các nội dung nhanh hơn thông qua HTTP/2. Điều này sẽ giúp tăng tốc phân phối nội dung của bạn và ảnh hưởng trực tiếp đến tốc độ tải trang. Tất nhiên bạn lúc nào cũng có thể tải lên chứng chỉ của riêng mình để bật HTTPS trên nhà cung cấp CDN nào đó (tuy nhiên cách làm này sẽ làm bạn mất thời gian vào cập nhật).

Và nhớ điều này nữa, nếu bạn hiện vẫn chưa sử dụng HTTPS, bạn có thể làm điều này qua hai bước. Đôi khi sẽ dễ hơn khi chuyển CDN của bạn sang HTTPS trước, và sau đó thì tiến hành chuyển server của bạn sang HTTPS sau.

3. Tốc độ lập chỉ mục ảnh nhanh hơn trong SERP

Nói một cách đơn giản thì, CDN có thể giúp bạn lập chỉ mục ảnh nhanh hơn trên trang kết quả của máy tìm kiếm. Công cụ tìm kiếm hình ảnh của Google là một chủ đề hiếm khi được thảo luận trong thế giới SEO và CDN, tuy nhiên đây là một tính năng rất quan trọng trên trang kết quả tìm kiếm, đem lại rất nhiều lưu lượng truy cập.

Theo một nghiên cứu của Brafton Marketing, 63% click tìm kiếm hình ảnh được chuyển thành lưu lượng truy cập vào trang web. Rõ ràng, thành công tương tự sẽ thay đổi từ thị trường ngách này sang thị trường ngách khác.

Bằng cách lưu trữ hình ảnh của bạn trên CDN, bạn có thể đảm bảo rằng các ảnh này được lập chỉ mục nhanh nhất có thể và Google sẽ crawl chúng thường xuyên hơn. Bạn sẽ thấy một mối tương quan trực tiếp với thứ hạng của bức ảnh trong công cụ tìm kiếm hình ảnh của Google.

Một mẹo khác là sử dụng CNAME cho địa chỉ CDN của bạn. Thông thường, dịch vụ CDN cung cấp cho khách hàng hai lựa chọn cho địa chỉ CDN:

  1. Địa chỉ CDN dùng chung, được tạo tự động, sử dụng tên miền của nhà cung cấp dịch vụ;
  2. Địa chỉ CDN tùy chỉnh, sử dụng subdomain của bạn.

Thiết lập địa chỉ CDN tùy chỉnh với CNAME cho phép bạn trỏ các tài nguyên về một subdomain trên tên miền của bạn, ví dụ như cdn.ten-mien-cua-ban.com

Dưới đây là một vài lý do để bạn cân nhắc sử dụng địa chỉ CDN tùy chỉnh (custom CDN URL):

  1. Nếu bạn sử dụng địa chỉ CDN tùy chỉnh, bạn có thể sử dụng sitemap để xem dữ liệu các ảnh đã được lập chỉ mục trên Google Search Console. Nếu bạn sử dụng địa chỉ mặc định của nhà cung cấp, bạn sẽ không có khả năng xem dữ liệu này. Tuy vậy bạn vẫn có thể sử dụng toán tử tìm kiếm URL;
  2. Bạn có toàn quyền với địa chỉ CDN tùy chỉnh và có thể chuyển sang nhà cung cấp dịch vụ CDN khác dễ dàng hơn trong khi vẫn giữ nguyên được các địa chỉ URL (của CDN);
  3. Địa chỉ CDN tùy chỉnh có thể đem lại hiệu ứng thương hiệu tốt hơn khi mọi người thấy địa chỉ ảnh của bạn. Cũng vậy, với Google, đôi khi sẽ tốt hơn khi bạn liên kết đến tên miền trên cùng địa chỉ gốc của trang.

P/S: về vấn đề có nên thiết lập tên miền tùy chỉnh hay không, bạn có thể tham khảo bài viết này: https://kiencang.net/thiet-lap-ten-mien-tuy-chinh-cdn/

Chú ý! Vấn đề với lập chỉ mục ảnh cho Yoast

Nếu bạn sử dụng WordPress và các ảnh CDN của bạn bắt đầu được lập-chỉ-mục-lại (de-indexed) từ tài khoản Google Search Console, điều này có thể gây ra vấn đề về cấu trúc sitemap với Yoast SEO.

vấn đề với Yoast SEO

Bạn có thể cần bổ sung một đoạn mã nhỏ vào vị trí đầu của file functions.php để lập chỉ mục ảnh của bạn từ tên miền CDN.

Sử dụng đoạn mã sau, bạn cần nhớ cập nhật địa chỉ CDN của bạn chính xác.

function wpseo_cdn_filter( $uri ) { return str_replace( 'https://www.ten-mien-cua-ban.com', 'https://cdn.ten-mien-cua-ban.com', $uri ); } add_filter( 'wpseo_xml_sitemap_img_src', 'wpseo_cdn_filter' );

Phả bỏ các hiểu lầm về CDN

Như đã đề cập trước đây, có rất nhiều hiểu nhầm trong thế giới internet khi đề cập đến CDN. Hãy xem một vài ý kiến phổ biến cho rằng sử dụng CDN sẽ không tốt.

1. CDN là nguyên nhân gây ra vấn đề trùng lặp nội dung (duplicate content)

SAI!

Đừng hiểu lầm tôi, CDN chắc chắn có thể là nguyên nhân gây ra vấn đề trùng lặp nội dung tuy nhiên điều đó chỉ xảy ra khi bạn thiết lập không chính xác. Dưới đây có hai điều cần để ý:

  • Canonical header: Bạn cần phải đảm bảo rằng Canonical header được thiết lập. Đây là một header HTTP mở rộng được bổ sung vào CDN của bạn để nói với crawler (bọ tìm kiếm) của Google rằng nội dung trên CDN chỉ là bản copy. Một khi bạn đã thêm HTTP header này, ảnh của bạn được lập chỉ mục như bình thường, cũng như crawler sẽ biết rằng chúng chỉ là bản copy và bạn sẽ không bị vấn đề trùng lặp nội dung. Hầu hết các nhà cung cấp CDN có tùy chọn bật tính năng này với chỉ một thao tác click. Nếu không có, bạn có thể thông qua chỉnh sửa file .htaccess để thiết lập điều này
  • File robots.txt: Các máy tìm kiếm có thể quét nội dung gốc của website và tìm kiếm file robots.txt. Nếu bọ tìm kiếm tìm thấy file, chúng sẽ đi theo hướng dẫn; nhưng nếu không có file nào cả, chúng sẽ quét mọi thứ. Mặc định, hầu hết các nhà cung cấp CDN không kích hoạt tính năng này, nghĩa là mọi thứ sẽ được lập chỉ mục. Canonical header thường đã giúp bạn hoàn thành nhiệm vụ. Tuy vậy, nếu nó được bật, bạn sẽ muốn đảm bảo rằng nó cho phép mọi thứ được lập chỉ mục (chứ không phải chặn bọ tìm kiếm).

Dưới đây là ví dụ về file robots.txt trên CDN cho phép quét (crawl) mọi thứ:

User-agent: * 
Disallow:

Lưu ý! Giữ nguyên cấu trúc file

Một điều cũng quan trọng phải để ý là bạn cần giữ nguyên cấu trúc khi chuyển sang dùng CDN. Nếu không, điều này có thể gây rắc rối cho ảnh của bạn và cả chỉ mục trên Google nữa.

Lấy ví dụ đây là cấu trúc của bạn trước khi sử dụng CDN.

www.ten-mien-cua-ban.com/wp-content/uploads/2019/01/image1.png

Thì dưới đây là cấu trúc phải có khi dùng CDN cho nó.

cdn.ten-mien-cua-ban.com/wp-content/uploads/2019/01/image1.png

Điều đó đảm bảo rằng Google, cùng với canonical header được thiết lập đúng, sẽ lập chỉ mục các ảnh của bạn một cách chính xác và bạn sẽ giữ lại được tất cả lưu lượng từ Google tìm kiếm hình ảnh.

2. Dịch vụ CDN đắt đỏ

SAI!

Một số nhà cung cấp dịch vụ CDN có giá 0,04$/GB và hệ thống dùng đến đâu thì trả tiền đến đấy (pay-as-you-go), trong khi các nhà cung cấp khác có phí cố định hàng tháng. Không thành vấn đề là bạn chọn cách thức nào, CDN giờ đây có chi phí phải chăng hơn rất nhiều so với trước đây.

Để đưa ra ví dụ về giá cả phải chăng của dịch vụ, tôi có một trang web có hơn 60 ngàn người ghé thăm mỗi tháng và tôi chỉ phải trả 3,45$ mỗi tháng cho dịch vụ CDN. Điều này sẽ phụ thuộc vào băng thông bạn sử dụng, nhưng nếu phần lớn trang của bạn có traffic thông thường, thì cuối tháng số tiền phải trả sẽ chỉ bằng vài tách cà phê sáng ở Hà Nội mà thôi.

PS: nếu bạn quan tâm đến dịch vụ CDN giá rẻ có chất lượng tốt, hãy tham khảo dịch vụ của BunnyCDN.

3. CDN rất khó để cài đặt

SAI!

CDN có thể hơi phức tạp một chút khi bạn mới làm quen với nó. Nhưng có rất nhiều thông tin hữu ích trên mạng có thể giúp bạn triển khai CDN. Một số nhà cung cấp CDN thậm chí còn tạo ra plugin WordPress của riêng họ (khiến cho việc triển khai còn dễ dàng hơn nữa) và với hầu hết các nền tảng khác hiện có, như Magento, Joomla, Drupal, Laravel và Ruby.

Khi còn lăn tăn hãy hỏi người trợ giúp.

Bạn trả tiền để sử dụng dịch vụ CDN, vì thế đừng ngại khi hỏi nhà cung cấp dịch vụ để nhận được sự hỗ trợ.

P/S: Đọc thêm bài Các rắc rối khi lần đầu sử dụng CDN để biết những vấn đề thường gặp và cách khắc phục nhé.


Tóm tắt

Hy vọng là giờ bạn đã hiểu rõ hơn về cách mà CDN làm việc và mối liên hệ giữa nó với SEO và kết quả tìm kiếm. Nếu được thiết lập chính xác, CDN có thể là cách dễ dàng và hiệu quả về mặt chi phí để cải thiện tốc độ website và giúp cho nội dung và ảnh của bạn được lập chỉ mục nhanh hơn.

(Dịch từ bài viết How to Get CDNs to Play Nice with SEO của tác giả Brian Jackson, đăng trên website của MOZ)

Brian Jackson là trưởng phòng marketing của Kinsta, và bài viết này được KeyCDN thuê tác giả viết. Ngoài lề thêm thì Kinsta là nhà cung cấp hosting WordPress cho đối tượng khách hàng cao cấp, với chi phí đắt đỏ. Còn KeyCDN là nhà cung cấp dịch vụ CDN có chất lượng được đánh giá tốt. Hiện Kinsta đang hợp tác với KeyCDN để tích hợp CDN vào các gói hosting của họ.

Comments are closed.

Back to Top