Hướng dẫn xây dựng blog với Zola 2026: Từ A đến Z

Hướng dẫn chi tiết xây dựng blog tĩnh với Zola 0.22: cài đặt, cấu hình, theme, deploy GitHub Pages, tối ưu SEO, CI/CD tự động. Phù hợp cho người mới bắt đầu.

Bài này trả lời

Zola là gì? Có gì khác với Hugo hay Jekyll? Zola có hỗ trợ blog tiếng Việt không? Zola có SEO tốt không? Nên deploy Zola ở đâu?
Mục lục

Bạn muốn mở blog riêng nhưng chán WordPress — nặng, chậm, tốn tiền hosting, hay bị hack? Hay bạn thử Hugo/Jekyll nhưng thấy cài đặt rắc rối vì phải cài Ruby, Python, npm?

Zola là giải pháp mình đang dùng cho blog này — một static site generator viết bằng Rust: một binary duy nhất, build 200 bài trong 3 giây, deploy lên GitHub Pages miễn phí.

Tại sao chọn Zola?

Mình đã thử qua 5-6 static site generator trước khi chốt Zola. Đây là lý do:

Tốc độ. Đây là điểm khác biệt lớn nhất. Zola build toàn bộ site trong 3-5 giây — không cache, không incremental build. Hugo cũng nhanh (~10s), nhưng Jekyll mất 60-90 giây cho cùng số lượng bài.

Cài đặt đơn giản. Download một file binary, thế là xong. Không cần gem install, không cần npm install, không cần virtual environment. Trên macOS: brew install zola. Trên Ubuntu: download release từ GitHub.

Template engine Tera. Nếu bạn từng dùng Jinja2 (Python) hay Liquid (Jekyll), Tera sẽ quen ngay. Nó mạnh mẽ hơn nhiều so với Go template của Hugo.

Tính năng built-in. Zola có sẵn: taxonomy (categories/tags), RSS feed, sitemap, search (không cần server), image processing, syntax highlighting, TOC tự động, multilingual. Không cần plugin bên thứ ba.

Bắt đầu với Zola

Cài đặt trên macOS:

brew install zola
zola init my-blog
cd my-blog
zola serve
# Mở http://localhost:1111

Chỉ 4 lệnh là bạn đã có blog chạy local. Cấu trúc thư mục:

my-blog/
├── config.toml       # Cấu hình chính
├── content/          # Bài viết (Markdown)
├── templates/        # HTML templates (Tera)
├── static/           # Ảnh, JS, CSS
├── sass/             # SCSS files
└── themes/           # Themes (nếu dùng)

Cấu hình cơ bản

File config.toml là trái tim của Zola. Đây là cấu hình blog này:

title = "SEOMONEY"
base_url = "https://seomoney.org"
default_language = "vi"

[extra]
author = "Duy Nguyen"
description = "SEO, AI WebOps & Tài chính cá nhân"

[markdown]
highlight_code = true

[taxonomies]
category = { feed = true }
tag = { feed = true }

Viết bài đầu tiên

Bài viết trong Zola là file Markdown với frontmatter TOML (hoặc YAML). Frontmatter chứa metadata và nội dung bài:

+++
title = "Xin chào thế giới"
date = 2026-07-20
description = "Bài viết đầu tiên của tôi"

[taxonomies]
categories = ["Tất cả", "Công nghệ"]
tags = ["hello", "blog"]

[extra]
toc = true
+++

Zola hỗ trợ nhiều template block mạnh mẽ — page, section, taxonomy. Một bài viết đơn giản cần ít nhất một template trong templates/page.html.

Deploy lên GitHub Pages

Sau khi viết xong vài bài, bạn muốn đưa blog lên mạng. Cách nhanh nhất — GitHub Pages:

  1. Tạo repository username.github.io
  2. Thêm GitHub Actions workflow deploy
  3. Push lên main → tự động build và deploy

Workflow mẫu:

name: Deploy Zola to GitHub Pages
on:
  push:
    branches: [main]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Zola
        run: |
          curl -sL https://github.com/getzola/zola/releases/latest/download/zola-x86_64-unknown-linux-gnu.tar.gz | tar xz
          sudo mv zola /usr/local/bin/
      - name: Build
        run: zola build
      - name: Deploy
        uses: peaceiris/actions-gh-pages@v4
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./public

Blog này dùng CI/CD phức tạp hơn — với QA check, auto-merge, deploy guard — nhưng workflow cơ bản trên là đủ cho blog cá nhân.

Tối ưu SEO

Một blog tĩnh Zola có lợi thế SEO lớn: tốc độ load nhanh, HTML sạch, kiểm soát hoàn toàn meta tags. Mình recommend:

Essential SEO:

  • Mỗi bài có title (20-60 ký tự), description (50-160 ký tự)
  • [extra] seo_keyword cho từ khoá chính
  • URL slug ngắn, có từ khoá, không dấu
  • Internal link giữa các bài

Advanced SEO:

  • FAQ schema qua [[extra.faq]] — Zola tự render JSON-LD
  • Article schema và BreadcrumbList — built-in
  • Sitemap.xml và RSS — Zola tự sinh
  • OG tags cho social share
  • Internal link checker script (như check_internal_links.py của blog này)

Kết luận

Zola là lựa chọn tuyệt vời cho blog cá nhân — nhanh, đơn giản, miễn phí. Không cần server, không cần database, không cần bảo trì. Bạn chỉ cần tập trung viết nội dung.

Nếu bạn dùng AI để hỗ trợ viết, xem bài Gemini 3.5 có gì mới để biết thêm về các mô hình AI hỗ trợ viết lách hiện tại.

Còn nếu muốn tìm hiểu cách tối ưu AdSense cho blog tĩnh, blog có bài về Google AdSense AI content policy 2026 giải thích chi tiết.

Liên kết bên ngoài được sử dụng trong bài viết

Liên kết nội bộ liên quan

Bản quyền & Ghi nguồn

Một phần dữ liệu trong bài viết được tham khảo từ GitHub Pages Documentation, Zola Documentation và Zola GitHub Repository. Mọi thương hiệu, tên sản phẩm và tài liệu gốc thuộc quyền sở hữu của chủ sở hữu tương ứng. Bài viết chỉ trích dẫn, tổng hợp và phân tích — không nhằm thay thế tài liệu chính thức.

FAQ - Câu hỏi thường gặp

Zola là gì? Có gì khác với Hugo hay Jekyll?
Zola là static site generator viết bằng Rust. Nhanh hơn Hugo 2-3 lần và Jekyll 10-20 lần. Build toàn bộ blog 200+ bài chỉ mất 3-5 giây. Cài đặt đơn giản — một binary duy nhất, không cần Ruby, Python hay Node.js runtime.
Zola có hỗ trợ blog tiếng Việt không?
Có. Zola dùng Tera template engine (giống Jinja2), hỗ trợ Unicode đầy đủ. Bạn có thể tạo taxonomy bằng tiếng Việt, dùng slug không dấu, và custom permalink theo ý muốn.
Zola có SEO tốt không?
Rất tốt. Bạn kiểm soát hoàn toàn HTML output — có thể custom meta tags, schema JSON-LD, OG tags, canonical URL. Blog tĩnh load nhanh, dễ đạt điểm Lighthouse 95-100. Không có server-side rendering nên pagespeed gần như tối đa.
Nên deploy Zola ở đâu?
GitHub Pages là lựa chọn phổ biến nhất — miễn phí, tích hợp CI/CD dễ dàng. Netlify và Cloudflare Pages cũng là lựa chọn tốt nếu cần nhiều tính năng hơn như phân tích traffic hay A/B testing.
Zola có hỗ trợ nhiều tác giả không?
Zola không có built-in multi-author như WordPress, nhưng bạn có thể custom frontmatter với [extra] để thêm author info, avatar, bio. Blog này dùng pattern author = "Duy Nguyen" trong frontmatter và render qua macro.
Chi phí vận hành blog Zola là bao nhiêu?
Gần như bằng 0. GitHub Pages miễn phí, domain .com ~$10/năm. Zola là open source, không cần server, không cần database, không cần bảo trì runtime. So với WordPress ($10-20/tháng cho hosting), tiết kiệm rất nhiều.

Bình luận

Đang tải bình luận…

    Đăng nhập để tham gia thảo luận.

    Đăng nhập bằng Google để bình luận

    Chỉ dùng để bình luận. Không truy cập trình soạn thảo/CMS.