Tối ưu hóa tốc độ tải trang web là một yếu tố then chốt để thu hút và duy trì khách hàng. Trong bài viết này, ItsmeIT sẽ chia sẻ cách tối ưu tốc độ tải trang web Magento 2 dành cho DEV. Giúp bạn có thêm kiến thức và vận hành trang web của bạn đạt hiệu quả hơn,
Cách tối ưu tốc độ tải trang web Magento 2 dành cho Developer
Magento 2 nó là một Framework rất đồ sộ và tích hợp rất nhiều các thư viện. Vì vậy để tối ưu hóa tốc độ tải trang thì cần phải có kiến thức về lập trình cũng như kinh nghiệm kỹ thuật trải nghiệm thực tế. Chúng ta sẽ đi sâu vào các phương pháp tiên tiến để cải thiện tốc độ load của trang web Magento 2, từ tối ưu hóa hình ảnh và mã nguồn, đến cách tối ưu hóa cơ sở dữ liệu và sử dụng các công cụ hiệu suất mạnh mẽ.
1. Yêu cầu cấu hình máy chủ
Đầu tiên là máy chủ (server), là yếu tố quan trọng nhất ảnh hưởng đến tốc độ tải trang web. Việc lựa chọn một máy chủ tốt sẽ dựa trên các tiêu chí: chi phí, tài nguyên, bảo mật, yêu cầu hệ thống… Bạn nên cân nhắc kỹ để chọn được nhà cung cấp tốt giúp cho việc tối ưu tốc độ tải trang web Magento 2.
Truy cập https://devdocs.magento.com/guides/v2.4/install-gde/system-requirements.html để xem yêu cầu hệ thống của Magento 2 mới nhất.
2. Nén file HTML, JS và CSS để tăng tốc Magento 2
Các tệp tin HTML, JS và CSS lớn có thể ảnh hưởng đến tốc độ tải trang trong Magento. Các nhà phát triển Magento đã nhận thấy điều này và họ đã xây dựng một chức năng để hợp nhất các tệp Javascript và CSS thành một. Nó sẽ giảm số lượng yêu cầu HTTP và giúp tăng tốc độ tải trang web Magento 2 của bạn.
Để hợp nhất (merge) các file HTML, JS và CSS bạn cần chuyển trang web của bạn sang chế độ developer. Bằng cách mở file env.php và thay đổi ‘MAGE_MODE’ => ‘developer’.
Hoặc bạn cũng có thể chạy lệnh trên terminal từ thư mục magento như sau:
php bin/magento deploy:mode:set developer

Sau đó, trong trang Admin, mở “Store -> Configuration -> ADVANCED -> Developer” và cấu hình các chức năng sau:
- Template Settings: Minify Html ->Yes.
- JavaScript Settings: Merge + Minify CSS Files -> Yes. (Lưu ý tùy chọn Enable JavaScript Bundling cần phải test kỹ khi bạn bật nó)
- CSS Settings: Merge CSS Files, Minify CSS Files -> Yes.

3. Bật Flat Category và Product để tăng tốc truy vấn
Flat Category và Flat Product trong Magento 2 là hai tùy chọn giúp cải thiện tốc độ truy vấn dữ liệu danh mục và sản phẩm. Khi bạn kích hoạt chúng, Magento 2 sẽ sử dụng các bảng cơ sở “flat_” để lưu trữ thông tin, giúp tăng tốc magento 2. Tuy nhiên, nếu bật 2 chức năng này thì khi cập nhật thông tin danh mục và sản phẩm trong backend có thể chậm hơn một chút.

Có một số nhà phát triển cho rằng khi bật Flat Category và Flat Product sẽ làm phức tạp hơn quá trình query SQL nên nó sẽ chậm hơn. Mặc dù vậy nhưng khi tối ưu tốc độ tải trang web Magento 2 sẽ phụ thuộc vào cấu trúc cơ sở dữ liệu trang web của bạn. Vậy khi bạn bật hoặc tắt chức năng thì bạn có thể kiểm tra kỹ hiệu suất và so sánh khi bật hoặc tắt.
4. Sử dụng Redis cache hoặc Varnish Cache
Redis Cache và Varnish Cache là hai công cụ được sử dụng để tối ưu hóa hiệu suất và tăng tốc độ trang web Magento 2 bằng cách cải thiện việc lưu trữ và truy xuất dữ liệu. Dưới đây là vai trò của cả Redis Cache và Varnish Cache trong Magento 2:
- Redis Cache:
- In-Memory Caching: Redis là một hệ thống lưu trữ dữ liệu trên bộ nhớ, cho phép Magento 2 lưu trữ các dữ liệu cache (như phiên, dữ liệu sản phẩm, và danh mục) trong bộ nhớ RAM thay vì truy cập cơ sở dữ liệu mỗi lần. Điều này cải thiện đáng kể tốc độ truy xuất dữ liệu và giảm tải cho cơ sở dữ liệu.
- Session Storage: Redis cũng được sử dụng để tối ưu tốc độ tải trang web Magento 2 bằng cách lưu trữ phiên (sessions) của người dùng. Điều này giúp duy trì trạng thái phiên qua các yêu cầu và đảm bảo tính nhất quán cho các phiên làm việc của người dùng trên trang web Magento.
- Varnish Cache:
- HTTP Reverse Proxy Cache: Varnish là một reverse proxy cache, nó đứng giữa người dùng và máy chủ Magento 2. Khi người dùng sử dụng trang web, Varnish lưu trữ bản sao của trang web đó. Khi các yêu cầu tương tự đến, Varnish sẽ trả lại bản sao này thay vì gửi yêu cầu đến Magento 2, giúp giảm tải cho máy chủ và tăng tốc độ tải trang.
- Page Caching: Varnish có thể lưu trữ bản sao của toàn bộ trang web, kết quả là trang web được tải rất nhanh khi người dùng truy cập trang đã được cache. Tuy nhiên, điều này có nghĩa là nếu có sự thay đổi trên trang, bạn cần xóa bộ nhớ cache của Varnish để cập nhật trang web với dữ liệu mới.
Note: Cá nhân mình thấy rằng Varnish và Redis cũng không quá cần thiết, bởi vì khi magento được chuyển thành chế độ production thì các tính năng nén, cache đã được tối ưu tốc độ tải trang web Magento 2. Ngoài ra bạn cũng có thể sử dụng kèm cache Cloudflare cũng rất hiệu quả.
5. Kích hoạt chế độ ghi nhật ký (dev:profiler)
Đây là một trong những lệnh hữu ích để kích hoạt chế độ ghi nhật ký (profiling) trong Magento 2.
php bin/magento dev:profiler:enable

Khi bạn chạy lệnh này, Magento sẽ bắt đầu ghi lại thông tin về hiệu suất và thời gian thực thi của các thành phần và khối mã trong trang web của bạn.

Như bạn thấy trong ảnh chụp màn hình của ItsmeIT, khi bật dev:profiler, trên giao diện frontend sẽ hiển thị chi tiết thời gian tải trang của từng block và template cũng như layout. Qua đó bạn sẽ biết được những thứ gì đang tải chậm và từ đó đưa ra hướng xử lý như tối ưu code, tối ưu SQL query hay tối ưu các layout để cải thiện tăng tốc magento 2.
6. Chuyển Magento 2 sang chế độ production
Chế độ production trong Magento 2 là một trong ba chế độ môi trường chính mà Magento hỗ trợ, bên cạnh “default” và “developer.” Chế độ production được sử dụng khi trang web đã được triển khai và đi vào hoạt động trên internet. Chế độ này sẽ được thực hiện cuối cùng trong tất cả các bước tối ưu (optimization) trang web magento 2 của bạn.
php bin/magento deploy:mode:set production

Dưới đây là một số điểm quan trọng về chế độ production trong Magento 2:
- Tối ưu hóa Hiệu suất: Chế độ production được thiết kế để tối ưu hóa hiệu suất của trang web. Magento 2 sẽ sử dụng các tệp đã được biên dịch và tối ưu hóa, cải thiện tốc độ tải trang và thời gian đáp ứng.
- Không Hiển thị Lỗi Chi tiết: Trong chế độ production, Magento 2 sẽ ẩn thông báo lỗi chi tiết để bảo mật thông tin nhạy cảm và không hiển thị cho người dùng.
- Cache Mạnh mẽ: Cache trong chế độ production được kích hoạt mạnh mẽ để giảm tải cho máy chủ và tăng tốc độ truy cập trang web.
- Sử dụng Tệp Tối ưu hóa: Trong chế độ này, Magento 2 sử dụng các tệp đã được tối ưu hóa và biên dịch trước để cải thiện hiệu suất mã nguồn.
- Không Có Chế Độ Gỡ lỗi (Developer Mode): Trong chế độ production, chế độ gỡ lỗi không hoạt động, và bạn không nên sử dụng nó để phát triển hoặc kiểm tra mã nguồn.
Khi triển khai trang web Magento 2 vào môi trường sản xuất, bạn nên đảm bảo rằng chế độ production được kích hoạt để đảm bảo hiệu suất cao và tính ổn định của trang web cũng như tối ưu tốc độ tải trang web Magento 2.
– Advertising –