0
0
Lập trình
Hưng Nguyễn Xuân 1
Hưng Nguyễn Xuân 1xuanhungptithcm

Tại Sao Tôi Chuyển Từ Google Fonts CDN Sang Tự Lưu Trữ?

Đăng vào 4 ngày trước

• 5 phút đọc

Tại Sao Tôi Chuyển Từ Google Fonts CDN Sang Tự Lưu Trữ?

Google Fonts có vẻ dễ dàng, nhưng chúng âm thầm làm chậm tốc độ trang của bạn. Trong bài viết này, tôi sẽ chia sẻ lý do và cách tôi tự lưu trữ Google Fonts trên trang WordPress của mình. Kết quả thật bất ngờ: điểm số PageSpeed trên di động của tôi đã tăng từ 66 lên 94.

Mục Lục

  1. Tại Sao Nên Tự Lưu Trữ Google Fonts?
  2. Các Bước Kỹ Thuật Để Tự Lưu Trữ
  3. Kết Quả Cuối Cùng: Một Giao Diện WordPress Nhanh Hơn, Sạch Hơn
  4. Mẹo Chuyên Nghiệp
  5. Kết Luận

Tại Sao Nên Tự Lưu Trữ Google Fonts?

Trước khi bạn học cách lưu trữ Google Fonts trên máy chủ của mình, hãy xem qua một số lý do vì sao nên tự lưu trữ:

  • Hiệu suất tốt hơn: Sẽ có ít yêu cầu bên ngoài hơn, tức là thời gian tải nhanh hơn.
  • Kiểm soát hoàn toàn về Font-display: Không có sự thay đổi bố cục không mong muốn. Fonts tải lên một cách dự đoán được.
  • Bảo mật thông tin: Không có cuộc gọi tới máy chủ Google, tuân thủ GDPR.
  • Tính nhất quán trong thiết kế: Luôn có phiên bản chính xác. Không có bản cập nhật âm thầm.

Các Bước Kỹ Thuật Để Tự Lưu Trữ

Bước 1: Tải Font từ Google Fonts

Tôi đã chọn Inter và Mulish, cả hai đều có sẵn dưới dạng file font biến từ fonts.google.com, tùy theo yêu cầu dự án của tôi. Tôi tải về các file .ttf đầy đủ (bao gồm các phiên bản nghiêng).

Bước 2: Chuyển Đổi Sang Định Dạng .woff2

Tôi đã sử dụng một công cụ chuyển đổi miễn phí từ .ttf sang .woff2 để chuyển đổi các file .ttf thành .woff2.

Tại sao tôi chọn định dạng .woff2 cho các font của mình?

  • Đây là định dạng font web hiện đại nhỏ nhất.
  • Nén tốt.
  • Hỗ trợ rộng rãi trên các trình duyệt.

Bước 3: Tạo Thư Mục Font Tùy Chỉnh Trong WordPress

Trong cài đặt WordPress của tôi:

Copy
/wp-content/fonts/

Tôi đã đặt các file sau đây:

  • Inter-VariableFont_opsz,wght.woff2
  • Inter-Italic-VariableFont_opsz,wght.woff2
  • Mulish-VariableFont_wght.woff2
  • Mulish-Italic-VariableFont_wght.woff2

Tôi lưu trữ chúng trực tiếp, vì vậy chúng được phục vụ từ máy chủ miền của tôi, không phải của Google.

Bước 4: Đăng Ký Font Với @font-face Trong CSS

Trong file stylesheet chính của chủ đề (style.css), tôi đã thêm:

Copy
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/wp-content/fonts/Inter-VariableFont_opsz,wght.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url('/wp-content/fonts/Inter-Italic-VariableFont_opsz,wght.woff2') format('woff2');
}
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/wp-content/fonts/Mulish-VariableFont_wght.woff2') format('woff2');
}
@font-face {
  font-family: 'Mulish';
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url('/wp-content/fonts/Mulish-Italic-VariableFont_wght.woff2') format('woff2');
}

Chú ý đến việc sử dụng:

  • font-display: swap để cải thiện hiệu suất.
  • Trọng số biến từ 100 đến 900, một file bao phủ tất cả các kiểu dáng.

Bước 5: Định Nghĩa Biến CSS Để Quản Lý Font

Tại cấp độ root của các kiểu của tôi, tôi đã khai báo:

Copy
:root {
  --font-inter: "Inter", sans-serif;
  --font-mulish: "Mulish", sans-serif;
  --font-weight-extra-light: 200;
  --font-weight-regular: 400;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
}

Điều này giúp dễ dàng thay đổi font hoặc trọng số trên toàn bộ trang web.

Bước 6: Áp Dụng Font Trong CSS Như Một Chuyên Gia

Cài đặt kiểu chữ cơ bản của tôi:

Copy
html {
  font-optical-sizing: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body {
  font-family: var(--font-mulish);
  font-weight: var(--font-weight-regular);
}
h1, h2, h3, h5, h6 {
  font-family: var(--font-inter);
  font-weight: var(--font-weight-bold);
}
a {
  font-family: var(--font-inter);
  text-decoration: none;
}

Sạch sẽ, nhất quán và dễ quản lý.

Kết Quả Cuối Cùng: Một Giao Diện WordPress Nhanh Hơn, Sạch Hơn

Sau khi tự lưu trữ các font của mình:

  • Số yêu cầu font đã giảm từ 4+ xuống 0 yêu cầu bên ngoài.
  • CLS (Cumulative Layout Shift) giảm xuống.
  • Điểm số PageSpeed Insights cao hơn.
  • Kiểu chữ hiện hoàn toàn nằm trong quyền kiểm soát của tôi.

Không cần plugin. Không cần phụ thuộc vào CDN. Chỉ có mã sạch và hiệu suất tốt nhất.

Sau khi thực hiện những thay đổi này, điểm số PageSpeed trên di động của tôi đã tăng từ 66 lên 94, và cho máy tính để bàn, bạn đã biết đó là 100.

Nếu bạn đã thực hiện tối ưu hóa cho di động trước đây, bạn biết rằng đây không phải là một thành tựu nhỏ, đặc biệt là không sử dụng bất kỳ plugin cache/tốc độ nào, đây là một trong những thành tựu lớn. Fonts là một trong những yếu tố lớn nhất gây ra độ trễ trong việc hiển thị, và việc loại bỏ Google CDN ra khỏi phương trình thực sự đã tạo ra sự khác biệt lớn trong hiệu suất.

Mẹo Chuyên Nghiệp

  • Phục vụ các file font với tiêu đề phù hợp (woff2 nên là font/woff2).
  • Preload các font quan trọng để hiển thị nhanh hơn:
Copy
<link rel="preload" href="/wp-content/fonts/Inter-VariableFont_opsz,wght.woff2" as="font" type="font/woff2" crossorigin="anonymous">
  • Tránh quá nhiều trọng số. Các font biến cho phép bạn tải mọi thứ trong một file.
  • Bạn có thể sử dụng cấu hình này gần như với bất kỳ thứ gì, ngay cả khi không phải là WordPress.

Kết Luận

Nếu bạn nghiêm túc về hiệu suất frontend trên WordPress hoặc bất kỳ dự án nào khác, tự lưu trữ Google Fonts thực sự là một điều cần làm.

Đây không chỉ là một mẹo tăng tốc. Đó là về việc sở hữu tài sản của bạn, giảm thiểu phụ thuộc và xây dựng một trải nghiệm người dùng tốt hơn.

Và đúng, điều này rất đơn giản, khi bạn biết mình đang làm gì.

Bạn có muốn thử không? Bỏ qua các plugin. Nắm quyền kiểm soát. Người dùng của bạn (và điểm Core Web Vitals của bạn) sẽ cảm ơn bạn.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào