Hướng dẫn về Jekyll SEO
Cách optimize Jekyll các trang cho tìm kiếm — vì sao của nó static HTML là crawler-friendly theo mặc định, plus đó jekyll-seo-tag và jekyll-sitemap plugin, permalinks, collections, robots.txt, và đó GitHub Các trang plugin whitelist.
Ngôn ngữ
1 tín hiệu bằng chứng trên trang này
- Dữ liệu nguồn được liên kếtdependency list
Jekyll outputs flat, static HTML — các crawler nhận hoàn tất nội dung on đó đầu tiên fetch, với không JavaScript kết xuất delay. So đó SEO hoạt động không fighting đó framework; đây là configuration. Install jekyll-seo-tag (tiêu đề, mô tả, canonical, Open Graph, Twitter Card, JSON-LD) và jekyll-sitemap (sitemap.xml), và set url: trong _config.yml hoặc cả hai produce hỏng output. Pick sạch permalinks (/:tiêu đề/, không date-based) cho evergreen nội dung. Tạo robots.txt yourself — Jekyll sẽ không. Watch hai GitHub Các trang traps: đó plugin whitelist (chỉ một fixed set chạy không có một GitHub Actions xây dựng) và baseurl misconfiguration on project các trang, mà breaks mỗi canonical URL.
Tóm tắt — Jekyll xây dựng của bạn toàn bộ trang web vào đơn giản HTML files ahead của time, so Google sees của bạn nội dung on đầu tiên visit — không đang chờ cho JavaScript. đó great starting point Đối với SEO. hoạt động là trong setup: install hai plugin (
jekyll-seo-tagcho meta tags,jekyll-sitemapcho của bạn sitemap), đặt của bạn trang web URL trong config, pick sạch các URL, và thêmrobots.txtyourself.
Điều gì Jekyll là
Jekyll là static trang web generator — tool đó turns của bạn nội dung (được viết trong
Markdown) và templates vào finished HTML files trước khi anyone visits. nó
được viết trong Ruby, và nó engine behind GitHub các trang, so nếu bạn’ve bao giờ
pushed project tài liệu hoặc personal blog để github.io address, bạn’ve
probably được sử dụng Jekyll không có thinking về nó. Evidence for this claim Jekyll transforms source content and templates into a static website and is supported by GitHub Pages. Scope: Jekyll and GitHub Pages. Confidence: high · Verified: Jekyll documentation GitHub Pages: Jekyll
quan trọng part Đối với SEO: vì Jekyll produces đơn giản HTML files, tìm kiếm engine nhận của bạn hoàn tất nội dung moment nó fetches trang. có không JavaScript đó có để chạy đầu tiên. đó xóa một đểàn bộ thất bại chế độ từ bảng — nó không bảo đảm lập chỉ mục hoặc thứ hạng by itself, since đó vẫn phụ thuộc vào của bạn nội dung, configuration, và metadata covered dưới.
Điều gì Jekyll làm không làm cho bạn
Ở đây đó catch beginners hit: Jekyll là crawler-friendly, nhưng điều này không “SEO-friendly” (bản dịch) «SEO-friendly» out of đó box. MỘT default Jekyll theme thường ships với không tiêu đề tags, meta các mô tả, hoặc dữ liệu có cấu trúc tại all. Bạn có để thêm những. Đó good news là hai chính thức plugin làm gần như all of điều này:
jekyll-seo-tag— adds của bạn thẻ tiêu đề, mô tả meta, canonical URL, và social-sharing tags tự động.jekyll-sitemap— xây dựng của bạnsitemap.xmltự động. Evidence for this claim The jekyll-seo-tag and jekyll-sitemap plugins generate SEO tags and sitemap files for Jekyll sites. Scope: Named Jekyll plugins. Confidence: high · Verified: Jekyll SEO Tag Jekyll Sitemap
five điều để nhận right
- Install
jekyll-seo-tagvà put{% seo %}trong của bạn layout<head>. - Install
jekyll-sitemapso các công cụ tìm kiếm nhận list của bạn các trang. - đặt
url:trong_config.ymlđể của bạn thực domain — cả hai plugin cần nó, hoặc của bạn canonical các URL và sitemap point tạilocalhostvà break. - sử dụng custom domain, không free
username.github.io/repoaddress, cho bất kỳ trang web nơi xếp hạng matters. - Thêm
robots.txtyourself — Jekyll không tạo một.
GitHub các trang surprise
nếu bạn host on GitHub các trang, bạn có thể’t chỉ install bất kỳ plugin bạn muốn. GitHub
chạy Jekyll trong locked-xuống chế độ đó chỉ cho phép ngắn list của plugin.
Thankfully jekyll-seo-tag và jekyll-sitemap là cả hai on đó list — so
essentials hoạt động. cho bất cứ điều gì fancier bạn’d cần khác xây dựng setup (covered
trong Nâng cao tab).
Muốn đầy đủ version — plugin whitelist, baseurl bug đó breaks
canonical các URL, permalinks, collections, và custom dữ liệu có cấu trúc? Chuyển để
Nâng cao tab.
Tóm tắt — Jekyll emits flat static HTML tại xây dựng time, so nội dung là trong thô phản hồi on đầu tiên crawl — không Web Kết xuất Service, không Wave 2 delay. SEO hoạt động là configuration, không architecture. Install
jekyll-seo-tag(tiêu đề, mô tả, canonical, OG, Twitter Card, JSON-LD) vàjekyll-sitemap(sitemap.xml); cả hai requireurl:trong_config.ymlhoặc họ produce hỏng output. sử dụng sạch permalinks (/:title/) over date-based ones cho evergreen nội dung. Hai GitHub các trang traps dominate: plugin whitelist (GitHub xây dựng với--safe; non-whitelisted plugin cần GitHub Actions xây dựng) và bị thiếubaseurlon project các trang, mà breaks mỗi generated canonical URL. GitHub các trang cũng pins cụ thể plugin versions (3.10.0 cốt lõi, olderjekyll-seo-tag/jekyll-sitemapreleases), không chỉ mà plugin chạy. Collections cầnoutput: truehoặc họ’re không bao giờ được kết xuất. Drafts, tương lai-dated posts, vàpublished: falsedocuments là excluded từ thông thường xây dựng, và--incrementallà experimental — không sử dụng nó cho production deploys. vàrobots.txtkhông phải auto-generated — làm nó yourself.
Vì sao Jekyll static output là good Đối với SEO
Jekyll là static trang web generator: nó chạy của bạn Markdown và Liquid templates qua xây dựng step và emits finished HTML, sau khi, trước khi bất kỳ yêu cầu. đó timing là toàn bộ SEO advantage. Evidence for this claim Jekyll processes text and templates into static files during a build. Scope: Jekyll build architecture. Confidence: high · Verified: Jekyll documentation
Google pipeline là crawl → render → chỉ mục, và kết xuất JavaScript là “a separate step” (bản dịch) «một tách biệt step» đó sits trong một queue — điều gì mọi người loosely call đó “hai-wave” xử lý. Wave 1 fetches thô HTML và indexes text và links immediately; Wave 2 queues đó trang cho đó Web Kết xuất Service để chạy JavaScript, “a few seconds to weeks” (bản dịch) «vài seconds để weeks» sau đó depending on ngân sách crawl. Với Jekyll, Wave 1 đã contains all nội dung của bạn — có không JavaScript bắt buộc để render đó thân phản hồi. Wave 1 = Wave 2. Không kết xuất delay, không kết xuất budget spent. Này là đó giống nhau argument đó làm bất kỳ static site generator đó lowest-risk architecture cho indexability.
downstream benefits follow:
- Nhanh hơn TTFB. Pre-được xây dựng files phân phối từ CDN (GitHub các trang sits behind Fastly; Netlify/Vercel có của họ own edges) có nghĩa là không database các truy vấn và không máy chủ processing — good cho LCP và rest của Core Web Vitals.
- Không bắt buộc JS payload cho nội dung → tốt hơn FCP và LCP hơn hydrating SPA.
- Proper HTTP các mã trạng thái tại CDN layer, không client-side lỗi xử lý.
nhưng none của đó thay đổi fundamentals: static các trang vẫn cần meta tags, sitemaps, canonical các URL, dữ liệu có cấu trúc, và good nội dung. Jekyll output là crawler-friendly; metadata là on bạn.
GitHub các trang và Jekyll SEO
phần lớn phổ biến Jekyll deployment là GitHub các trang — push để branch với các trang enabled và GitHub auto-xây dựng trang web. đó convenience xuất hiện với SEO-relevant constraints.
Project các trang so với. người dùng/org các trang — URL decision
username.github.io/repo-name( project trang web) lives on shared subdomain với thousands của khác unrelated các trang. nó hoạt động fine cho tài liệu, demos, và personal projects nơi URL itself không cần để carry của bạn brand.- ** custom domain** (point
CNAMEtại GitHub các trang) diễn đạt trang web on URL bạn control, với HTTPS auto-provisioned by GitHub. cho trang web nơi domain itself matters — business trang web, blog bạn’re building audience khoảng — custom domain từ bắt đầu tránh domain migration sau đó.
nếu bạn expect để move để custom domain eventually, đặt nó lên sớm. bất kỳ
domain migration có nghĩ là 301 các chuyển hướng (jekyll-redirect-from xử lý điều này) và
period nơi inbound links và bất kỳ accumulated các tín hiệu point tại old URL —
avoidable churn nếu bạn pick cuối domain lên front thay vì switching
sau đó. Đây là migration-planning argument, không claim đó github.io
subdomain là penalized on của nó own.
baseurl — #1 canonical bug on project các trang
Project các trang trực tiếp dưới subfolder (/repo-name/). nếu bạn không đặt
baseurl: /repo-name trong _config.yml, mỗi canonical URL jekyll-seo-tag
generates — và của bạn liên kết nội bộ — sẽ là sai, bị thiếu subfolder. Đây là
single phần lớn phổ biến canonical-URL bug on Jekyll project các trang. (Người dùng/org các trang
phân phối tại domain root không cần baseurl.)
plugin whitelist
GitHub các trang chạy Jekyll với --safe flag và chỉ cho phép fixed đặt của
plugin. Evidence for this claim GitHub Pages builds Jekyll in safe mode and supports a documented set of plugins. Scope: GitHub Pages hosted builds. Confidence: high · Verified: GitHub Pages: Jekyll plugins SEO-relevant whitelisted ones:
jekyll-seo-tag✓jekyll-sitemap✓jekyll-redirect-from✓ (cho 301s Khi bạn thay đổi các URL)jekyll-paginate✓
không whitelisted (và silently sẽ không chạy, hoặc sẽ lỗi):
jekyll-last-modified-at— needed cho chính xác sitemap<lastmod>từ file timestamps- Custom structured-dữ liệu plugin
- Bất cứ điều gì dropped trong
_plugins/folder
nó không chỉ mà plugin — nó mà versions
GitHub các trang không chỉ restrict mà plugin chạy; nó pins chính xác version
của mỗi một, và đó xây dựng environment itself là pinned để older Jekyll.
As của dependency list’s cuối cùng
cập nhật, hosted xây dựng chạy Jekyll 3.10.0 với jekyll-seo-tag 2.8.0,
jekyll-sitemap 1.4.0, và jekyll-feed 0.17.0 — trong khi jekyllrb.com own
tài liệu mô tả hiện tại upstream phát hành, 4.4.1. behavior được ghi lại trong
plugin mới nhất README không phải guaranteed để exist trong version GitHub các trang
thực ra chạy; kiểm tra pages.github.com/versions.json cho pinned version
trước khi relying on cụ thể flag hoặc output. GitHub Actions xây dựng sidesteps
điều này cũng — bạn control Gemfile, so bạn nhận versions bạn pin, không
GitHub.
GitHub Actions workaround
Đó cách sửa cho đó whitelist không “add more gems” (bản dịch) «thêm hơn gems» — đây là để dừng letting GitHub làm
đó xây dựng. Chạy Jekyll yourself trong CI (actions/jekyll-build-pages, hoặc xây dựng
locally và push _site/ để đó deploy branch với peaceiris/actions-gh-pages)
và đó whitelist không lâu hơn áp dụng. Hiện tại bất kỳ plugin chạy, và bạn pick đó
Jekyll và plugin versions thay vì inheriting GitHub pinned set.
jekyll-seo-tag plugin
Đây là chính thức, maintained plugin đó covers phần lớn của cốt lõi metadata
Jekyll không thêm on của nó own. Chính xác Điều gì nó emits phụ thuộc vào mà version
bạn có installed, của bạn _config.yml và front quan trọng, và liệu của bạn
layout thực ra calls {% seo %} — GitHub các trang, chẳng hạn, pins cụ thể
version thay vì luôn shipping mới nhất phát hành (nhiều hơn on đó dưới).
kiểm tra Nâng cao usage hướng dẫn
cho của bạn version chính xác output, và xác nhận Điều gì thực ra landed by grepping
của bạn own được xây dựng HTML thay vì assuming nó hoàn tất.
Install:
# Gemfile
gem 'jekyll-seo-tag'# _config.yml
plugins:
- jekyll-seo-tag<!-- _layouts/default.html, before </head> -->
{% seo %}Điều gì nó generates tự động:
<title>— trang tiêu đề với trang web name appended (Page Title | Site Name)<meta name="description">— từdescription:front quan trọng hoặc trang web mô tả<link rel="canonical">— được xây dựng từsite.url+page.url- Open Graph tags (
og:title,og:description,og:url,og:site_name,og:image) - Twitter Card tags (
twitter:card,twitter:title,twitter:description,twitter:creator,twitter:image) - JSON-LD dữ liệu có cấu trúc (
BlogPostingcho posts,WebSitecho home trang) - Pagination meta (tiếp theo/prev các URL)
Bắt buộc _config.yml settings — không có những điều này plugin produces hỏng
output:
title: Your Site Title
description: Your site description
url: "https://yourdomain.com" # CRITICAL — drives canonical URL generation
author:
name: Patrick Stox
twitter: patrickstox
url: https://patrickstox.com # author disambiguation
twitter:
username: patrickstox
card: summary_large_imageTheo-trang front quan trọng overrides:
---
title: "Jekyll SEO Guide"
description: "How to optimize Jekyll sites for search engines."
image:
path: /assets/jekyll-seo-og.png
width: 1200
height: 630
alt: "Jekyll SEO diagram"
canonical_url: "https://example.com/jekyll-seo/" # override if needed
robots: noindex # per-page noindex
seo:
type: BlogPosting # schema.org type override
date_modified: 2025-01-15 # dateModified override for JSON-LD
---Suppression (Khi của bạn layout đã outputs của nó own):
{% seo title=false %} <!-- suppress the <title> -->
{% seo canonical=false %} <!-- suppress the canonical link -->Một gotcha worth flagging: nhiều minimal themes (including minima) ship không có
jekyll-seo-tag wired trong. Thêm gem để của bạn Gemfile làm không có gì trừ khi
theme layout thực ra calls {% seo %}.
Sitemaps với jekyll-sitemap
giống nhau install pattern (Gemfile + _config.yml). nó generates sitemaps.org-
compliant sitemap.xml tại /sitemap.xml on mỗi xây dựng.
nó requires url: trong _config.yml — không có nó, sitemap entries có không
domain.
Controlling <lastmod>, trong priority order:
last_modified_at:trong front quan trọng (best — rõ ràng control)- Post creation date (fallback — thường sai cho evergreen nội dung đã cập nhật sau đó)
- Filesystem modification date (cần non-whitelisted
jekyll-last-modified-at)
Best practice: thêm last_modified_at: YYYY-MM-DD để mỗi post, và bump nó
Khi bạn cập nhật nội dung — đó freshness tín hiệu recrawl prioritization leans
on.
Excluding các trang:
# Per-page front matter
sitemap: false
# Global pattern (in _config.yml)
defaults:
- scope:
path: "assets/**/*.pdf"
values:
sitemap: falsePermalink configuration
Permalinks là đặt globally trong _config.yml hoặc overridden theo trang trong front quan trọng.
| Style | Pattern | SEO notes |
|---|---|---|
date (default) | /:categories/:year/:month/:day/:title.html | Date-nặng, fragile nếu post date thay đổi |
pretty | /:categories/:year/:month/:day/:title/ | Trailing slash, không .html |
none | /:categories/:title.html | Không date burial |
| Custom | /:title/ hoặc /:categories/:title/ | phần lớn control — được khuyến nghị cho evergreen nội dung |
Được khuyến nghị cho phần lớn các trang:
permalink: /:title/
# or
permalink: /:categories/:title/Vì sao tránh date-based các URL cho evergreen posts:
- Thay đổi post
date:front quan trọng thay đổi của nó URL → inbound links break. - Deep hierarchy (
/2019/03/14/post-title/) buries nội dung cho không reason. - (cho news và journalism, date các URL là fine và dự kiến — Đây là theo-context call, không universal rule.)
Collections cần của họ own permalink config:
collections:
case_studies:
output: true
permalink: /case-studies/:name/** warning on thay đổi patterns:** sau khi các URL là được lập chỉ mục, switching permalink
styles requires 301 các chuyển hướng (sử dụng jekyll-redirect-from). Skip các chuyển hướng và
bạn break giá trị liên kết và generate 404s trong Search Console.
Collections và SEO
Collections là Jekyll custom nội dung types beyond posts và các trang — tài liệu sections, portfolio items, team members, case studies, FAQs. Hai requirements làm hoặc break của họ SEO:
-
output: truephải là đặt. không có nó, collection documents là không bao giờ được kết xuất as riêng lẻ HTML files và làm đó có thể’t là được lập chỉ mục. Đây là silent lập chỉ mục killer — nội dung tồn tại trong của bạn repo nhưng không bao giờ becomes crawlable trang.collections: docs: output: true # REQUIRED for indexable pages permalink: /docs/:name/ -
mỗi document cần front quan trọng — ngay cả rỗng
---block. không có nó, Jekyll xử lý file as binary static file: không Liquid processing, không metadata, khôngjekyll-seo-tagintegration.
Note đó collections không phải được bao gồm trong RSS feeds (chỉ posts là). cho lớn tài liệu các trang, collections là thường right structure anyway.
Xuất bản trạng thái và incremental xây dựng
Jekyll có several independent switches đó control Điều gì thực ra ends lên trong được xây dựng trang web. Mixing them lên produces either các trang đó silently không bao giờ nhận được xây dựng, hoặc draft/tương lai nội dung đó ships để production by accident:
- Drafts (
_drafts/) là excluded từ thông thường xây dựng hoàn toàn. họ chỉ xuất hiện Khi bạn chạybundle exec jekyll serve --drafts(hoặcbuild --drafts) locally — moving post vào_posts/với thực date là Điều gì thực ra publishes nó. - Tương lai-dated posts (
date:sau đó hơn hiện tại time) là excluded by default.future: truetrong_config.yml, hoặc--futureflag, bao gồm them — handy cho local preview, nhưng leaving nó on trong production config có nghĩ là scheduled posts go trực tiếp moment bạn xây dựng, không on của họ dự kiến date. published: falsetrong front quan trọng excludes document từ xây dựng regardless của nó date — tách biệt chuyển từ drafts và tương lai posts, và easy để leave đặt sau khi kiểm thử trang bạn meant để ship.- Incremental regeneration (
--incremental) là được ghi lại by Jekyll as experimental, và nó tracks limited dependency graph — mainly bao gồm và layouts. trang đó iteratessite.postshoặc khác collection dữ liệu ( tag chỉ mục, archive, related-posts logic) có thể go stale dưới--incrementalkhông có Jekyll detecting đó underlying posts changed. không chạy nó as part của production deploy; sử dụng đầy đủbundle exec jekyll buildcho bất cứ điều gì bạn’re pushing trực tiếp.
trước khi trusting bất kỳ của những điều này, xây dựng không có flags bạn sử dụng locally
(--drafts, --future, --incremental) và xác nhận output trong _site/
matches Điều gì bạn intend để publish — safest default cho deploy pipeline
là sạch, đầy đủ, non-incremental xây dựng.
Custom head partials với Liquid
Khi jekyll-seo-tag không phải đủ, bạn xây dựng của bạn own _includes/head.html:
<head>
<meta charset="UTF-8">
<title>
{% if page.title %}{{ page.title }} | {{ site.title }}
{% else %}{{ site.title }}{% endif %}
</title>
<meta name="description" content="
{%- if page.description -%}{{ page.description }}
{%- elsif page.excerpt -%}{{ page.excerpt | strip_html | strip_newlines }}
{%- else -%}{{ site.description }}
{%- endif -%}">
<link rel="canonical" href="{{ page.url | prepend: site.url }}">
{% seo %}
</head>mấu chốt Liquid filters Đối với SEO:
| strip_html— xóa tags từ auto-excerpt (essential cho sạch các mô tả)| strip_newlines— xóa line breaks từ excerpts| truncate: 160— tùy chọn template-side character cap, không Google limit. Ưu tiên authored, trang-cụ thể mô tả và preview được kết xuất snippet; fit varies by query, device, language, và script.| prepend: site.url— xây dựng absolute các URL cho canonical và OG tags| date_to_xmlschema— ISO 8601 dates cho JSON-LDdatePublished/dateModified| default: fallback— fallback Khi variable là nil
Custom JSON-LD beyond Điều gì jekyll-seo-tag emits:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": {{ page.title | jsonify }},
"datePublished": "{{ page.date | date_to_xmlschema }}",
"dateModified": "{{ page.last_modified_at | default: page.date | date_to_xmlschema }}",
"author": {
"@type": "Person",
"name": "{{ page.author.name | default: site.author.name }}",
"url": "{{ page.author.url | default: site.author.url }}"
}
}
</script>robots.txt không phải auto-generated
Jekyll làm không tạo robots.txt. bạn làm nó yourself trong trang web root.
bao gồm rỗng front-quan trọng block so Liquid xử lý file (so {{ site.url }}
resolves):
---
---
User-agent: *
Allow: /
Sitemap: {{ site.url }}/sitemap.xmlkhông có điều này, có không sitemap reference trong robots.txt — và some các crawler sử dụng
đó as phát hiện mechanism. (robots.txt controls crawling, không lập chỉ mục —
cho đầy đủ picture see crawling.)
phổ biến Jekyll SEO myths
“Jekyll handles SEO automatically.” (bản dịch) «Jekyll xử lý SEO tự động.» Đó static output là crawler-friendly, nhưng metadata requires rõ ràng setup. Default themes thường ship với không SEO tags tại all.
“GitHub Pages is fine for SEO — it’s free.” (bản dịch) «GitHub Các trang là fine cho SEO — đây là free.» GitHub Các trang itself là fine — đó
static output là crawler-friendly regardless of host. Đó catches là đó plugin
whitelist (và đó cụ thể versions điều này pins, không chỉ mà plugin) và,
nếu của bạn brand phụ thuộc vào đó URL, deciding on một custom domain trước khi bạn xây dựng
an audience on github.io.
“Static sites don’t need sitemaps.” (bản dịch) «Static các trang không cần sitemaps.» Google có thể tìm các trang qua links, nhưng một
sitemap speeds phát hiện và carries <lastmod> các tín hiệu. jekyll-sitemap làm điều này
trivial.
“Jekyll is dead.” (bản dịch) «Jekyll là dead.» đây là trong mature maintenance chế độ — v4.4.1 shipped trong January 2025. Minimal new features, nhưng maintained và secure, và GitHub Các trang sẽ hỗ trợ điều này indefinitely. Cho đơn giản blogs và tài liệu, đây là một solid, boring lựa chọn.
“I can use any plugin on GitHub Pages.” (bản dịch) «I có thể dùng bất kỳ plugin on GitHub Các trang.» Không — --safe plus một fixed whitelist.
Đó cách sửa là GitHub Actions, không hơn gems.
nơi điều này fits
Jekyll là một của six generators trong static trang web generators cluster — GitHub các trang default và một phần lớn nhà phát triển đáp ứng đầu tiên. cho rộng hơn context on Cách Google renders JavaScript và Khi bạn thực ra cần nó, see JavaScript SEO hub. xây dựng-freshness discipline đó áp dụng để mỗi SSG — static trang web là chỉ as hiện tại as của nó cuối cùng xây dựng — áp dụng để Jekyll cũng: edits không reach các công cụ tìm kiếm cho đến khi bạn rebuild và redeploy.
AI summary
condensed take on Nâng cao version:
- Jekyll là Ruby static trang web generator và engine behind GitHub các trang. nó emits flat HTML tại xây dựng time, so nội dung là trong thô phản hồi on đầu tiên crawl — không JavaScript kết xuất step, không Wave 2 delay. đó cốt lõi SEO advantage, shared by all static trang web generators.
- ** SEO hoạt động là configuration, không architecture.** Default themes thường có không SEO metadata tại all.
jekyll-seo-tag(chính thức plugin) auto-generates tiêu đề, mô tả, canonical, Open Graph, Twitter Card, và JSON-LD (BlogPosting/WebSite). Thêm{% seo %}để của bạn layout<head>. Overridable theo trang trong front quan trọng.jekyll-sitemapauto-generatessitemap.xml. Cả hai plugin requireurl:trong_config.ymlhoặc output là hỏng (canonical/sitemap point tại localhost).- Permalinks: ưu tiên
/:title/hoặc/:categories/:title/over date-based các URL cho evergreen nội dung (date các URL break nếu post date thay đổi). - Collections cần
output: true(hoặc họ’re không bao giờ được kết xuất as các trang) và front quan trọng on mỗi document (hoặc không metadata processing). - Xuất bản trạng thái: drafts (
_drafts/), tương lai-dated posts, vàpublished: falsedocuments là all excluded từ thông thường xây dựng trừ khi bạn explicitly opt trong (--drafts,--future).--incrementallà experimental và có thể miss các trang đó phụ thuộc onsite.posts— không sử dụng nó cho production deploy. robots.txtkhông phải auto-generated — tạo nó manually (với rỗng front quan trọng so Liquid resolves{{ site.url }}trongSitemap:line).- Hai GitHub các trang traps: plugin whitelist (
--safexây dựng; chỉjekyll-seo-tag,jekyll-sitemap,jekyll-redirect-from,jekyll-paginateamong SEO plugin — others cần GitHub Actions xây dựng), và bị thiếubaseurlon project các trang, mà breaks mỗi canonical URL. GitHub các trang cũng pins cụ thể plugin versions (e.g. Jekyll 3.10.0 cốt lõi), mà có thể trail mới nhất upstream phát hành. - nếu custom domain matters để của bạn brand, đặt nó lên sớm thay vì on
username.github.io/repo— moving domains sau đó có nghĩ là 301s và period nơi inbound links point tại old URL. GitHub các trang cũng pins cụ thể plugin versions (không chỉ mà plugin), mà có thể trail mới nhất upstream phát hành. - Xây dựng freshness áp dụng as để bất kỳ SSG: thay đổi chỉ reach tìm kiếm sau khi rebuild + redeploy.
Tài liệu chính thức
Chính-nguồn tài liệu — từ Jekyll, của nó plugin, GitHub các trang, và các công cụ tìm kiếm.
Jekyll
- Jekyll tài liệu — tài liệu hub.
- Permalinks — được xây dựng-trong styles và custom patterns.
- Front Quan trọng — YAML block đó drives theo-trang metadata.
- Collections — custom nội dung types và
output: truerequirement. - Plugin — Cách Jekyll plugin hệ thống hoạt động.
- Variables —
site/pagevariables và Liquid filters được sử dụng trong head partials.
Chính thức plugin
- jekyll-seo-tag — metadata plugin, plus của nó Nâng cao usage hướng dẫn.
- jekyll-sitemap — tự động
sitemap.xml. - jekyll-chuyển hướng-từ — 301 các chuyển hướng Khi bạn thay đổi các URL.
GitHub các trang
- về GitHub các trang và Jekyll — Cách auto-xây dựng hoạt động.
- về custom domains và GitHub các trang — custom-domain setup.
- các trang.github.com/versions.json — trực tiếp plugin whitelist và locked dependency versions.
- Jekyll releases và endoflife.date/jekyll — version và maintenance status.
các công cụ tìm kiếm
- JavaScript SEO basics — crawl → render → chỉ mục phases (hai-wave kết xuất) đó static xây dựng lets bạn skip cho nội dung.
- Trong-Depth Hướng dẫn để Cách Google Search Hoạt động — nơi kết xuất sits trong pipeline.
- Core Web Vitals (web.dev) — performance các chỉ số fast static trang web benefits từ structurally.
Quotes từ nguồn
có không on-record quotes từ Google hoặc Bing reps cụ thể về Jekyll. Google không comment on riêng lẻ static trang web generators. SEO case cho Jekyll rests on Google chung kết xuất và static-HTML hướng dẫn, mà áp dụng để bất kỳ static trang web.
Google — kết xuất là tách biệt, queued step ( điều Jekyll static output xóa từ cốt yếu path)
- “During the crawl, Google renders the page and runs any JavaScript it finds using a recent version of Chrome.” (bản dịch) «During đó crawl, Google renders đó trang và chạy bất kỳ JavaScript điều này tìm thấy dùng một gần đây version of Chrome.» — Google Search Central tài liệu. Với Jekyll, có không JavaScript needed để render đó thân phản hồi, so này step costs bạn không có gì. Nhảy đến trích dẫn
- “Rendering is important because websites often rely on JavaScript to bring content to the page, and without rendering Google might not see that content.” (bản dịch) «Kết xuất là quan trọng vì websites thường rely on JavaScript để bring nội dung để đó trang, và không có kết xuất Google có thể không see đó nội dung.» — i.e., nếu nội dung của bạn là đã trong đó static HTML (as điều này là với Jekyll), kết xuất không thể cost bạn visibility. Nhảy đến trích dẫn
Jekyll SEO checklist
scannable truyền để xác nhận của bạn Jekyll trang web là thiết lập để xếp hạng:
-
url:là đặt trong_config.ymlđể của bạn thực production domain (khônglocalhost:4000). - cho GitHub các trang project trang web,
baseurl: /repo-namelà đặt (skip on người dùng/org root các trang). -
jekyll-seo-taglà installed và theme layout thực ra calls{% seo %}trong<head>. -
jekyll-sitemaplà installed và/sitemap.xmllà generating. - Sitemap là được gửi trong Google Search Console và Bing Quản trị viên web Tools.
-
title:,description:, vàauthor:là đặt trong_config.yml. - mỗi post/trang có rõ ràng
description:(không rely on auto-excerpt). -
last_modified_at:là on posts và bumped Khi nội dung thay đổi. - Permalinks sử dụng
/:title/hoặc/:categories/:title/cho evergreen nội dung (không date default). -
robots.txttồn tại (với rỗng front quan trọng) và references sitemap. - mỗi collection đó nên là được lập chỉ mục có
output: true. - mỗi collection document có front quan trọng (ngay cả rỗng
---). - custom domain là configured (HTTPS auto-provisioned), không bare
github.iosubdomain. - URL/permalink thay đổi là paired với
jekyll-redirect-from301s. - Images là compressed trước khi commit (Jekyll không optimize them tại xây dựng).
- Một trailing-slash convention là enforced qua permalink style (không
/page/so với/pageduplicates). - Production xây dựng chạy không có
--draftshoặc--future, và không trang bạn intend để ship vẫn cópublished: false. - Production deploys sử dụng đầy đủ
bundle exec jekyll build, không--incremental(experimental, và có thể misssite.posts-phụ thuộc các trang).
Jekyll SEO — bảng tra nhanh
** hai essential plugin**
| Plugin | Làm | Whitelisted on GitHub các trang? | Cần |
|---|---|---|---|
jekyll-seo-tag | Tiêu đề, mô tả, canonical, OG, Twitter Card, JSON-LD | Có ✓ | url:, {% seo %} trong <head> |
jekyll-sitemap | Auto sitemap.xml | Có ✓ | url: |
jekyll-redirect-from | 301 các chuyển hướng | Có ✓ | redirect_from: trong front quan trọng |
jekyll-last-modified-at | Filesystem <lastmod> | Không ✗ | GitHub Actions xây dựng |
Bắt buộc _config.yml keys (hoặc output breaks)
| mấu chốt | Vì sao |
|---|---|
url: | Canonical các URL + sitemap entries; không có nó → localhost |
baseurl: | Project các trang dưới /repo/ — không có nó → hỏng canonicals |
title: / description: | Defaults cho jekyll-seo-tag |
author: | Tác giả info trong JSON-LD |
Permalink styles
permalink: giá trị | Output | sử dụng cho |
|---|---|---|
date (default) | /cat/2019/03/14/title.html | tránh cho evergreen |
pretty | /cat/2019/03/14/title/ | Date-relevant nội dung |
none | /cat/title.html | Không date burial |
/:title/ | /title/ | phần lớn evergreen các trang |
Fast facts
- Jekyll output là static HTML → không Wave 2 kết xuất delay; nội dung trong đầu tiên fetch.
robots.txtlà không auto-generated — tạo nó (với rỗng front quan trọng).- Collections cần
output: truevà front quan trọng, hoặc họ không chỉ mục. - GitHub các trang xây dựng với
--safe+ plugin whitelist — non-whitelisted plugin cần GitHub Actions xây dựng. - hiện tại upstream Jekyll: v4.4,1 (Jan 2025); GitHub các trang chạy locked
v3.10,0 với của nó own pinned plugin versions (
jekyll-seo-tag2.8.0,jekyll-sitemap1.4.0,jekyll-feed0.17.0) — kiểm tra các trang.github.com/versions.json cho hiện tại list. - nếu custom domain matters để của bạn brand, đặt nó lên trước khi building
audience on
username.github.io/repo— tránh sau đó domain migration.
Xây dựng và kiểm tra của bạn Jekyll trang web locally
trước khi trusting production, xây dựng locally và verify của bạn metadata là thực ra trong HTML.
macOS / Linux
# Install dependencies and serve locally (defaults to http://localhost:4000)
bundle install
bundle exec jekyll serve
# Build the production site into _site/ (override the dev url)
JEKYLL_ENV=production bundle exec jekyll build
# Confirm jekyll-seo-tag actually emitted a canonical + title into a built page
grep -i 'rel="canonical"' _site/index.html
grep -i "<title>" _site/index.html
# Confirm the sitemap was generated and points at your real domain (not localhost)
grep -i "<loc>" _site/sitemap.xml | headWindows (PowerShell)
# Install dependencies and serve locally
bundle install
bundle exec jekyll serve
# Build the production site (set the env var for this command)
$env:JEKYLL_ENV="production"; bundle exec jekyll build
# Confirm canonical + title made it into the built HTML
Select-String -Path _site\index.html -Pattern 'rel="canonical"'
Select-String -Path _site\index.html -Pattern "<title>"
# Confirm the sitemap was generated with your real domain
Select-String -Path _site\sitemap.xml -Pattern "<loc>" | Select-Object -First 10nếu <loc> entries hoặc canonical hiển thị localhost:4000, của bạn url: không phải đặt (hoặc
JEKYLL_ENV=production đã không applied) — khắc phục _config.yml trước khi deploying.
starter robots.txt cho Jekyll
Save điều này as robots.txt trong của bạn trang web root. rỗng front-quan trọng block là Điều gì
làm Liquid xử lý file so {{ site.url }} resolves:
---
---
User-agent: *
Allow: /
Sitemap: {{ site.url }}/sitemap.xml Tools cho Jekyll SEO
jekyll-seo-tag— chính thức metadata plugin (tiêu đề, mô tả, canonical, OG, Twitter Card, JSON-LD). single biggest SEO win cho Jekyll trang web.jekyll-sitemap— chính thức tự độngsitemap.xml.jekyll-redirect-from— generate 301 các chuyển hướng trong front quan trọng Khi bạn thay đổi permalinks.- GitHub Actions (
actions/jekyll-build-pages,peaceiris/actions-gh-pages) — xây dựng Jekyll yourself để escape GitHub các trang plugin whitelist và chạy bất kỳ plugin. - Google Search Console — verify trang web, submit sitemap, và watch lập chỉ mục/coverage. Essential cho new Jekyll trang web.
- Bing Quản trị viên web Tools — submit sitemap (Bạn có thể import credentials từ GSC).
- View Nguồn / URL Inspection — xác nhận của bạn tiêu đề, mô tả meta, và canonical là trong thô HTML (họ nên là, since Jekyll là static).
- PageSpeed Insights / web.dev — kiểm tra Core Web Vitals; static Jekyll trang web nên score well, nhưng unoptimized images là phổ biến drag.
Jekyll SEO mistakes để tránh
Concrete mistakes mọi người thực ra làm setting lên Jekyll Đối với tìm kiếm — prevention, không diagnosis.
Leaving url: unset trong _config.yml
Cả hai jekyll-seo-tag và jekyll-sitemap xây dựng absolute các URL từ site.url.
Skip nó và của bạn canonical tags và sitemap <loc> entries either point tại
localhost:4000 ( dev default) hoặc come out với không domain tại all — đó
canonical các URL và sitemap đó actively mislead các crawler thay vì helping
them. Làm điều này thay vì: đặt url: để của bạn thực production domain trong
_config.yml trước khi đầu tiên deploy, và grep được xây dựng _site/ output cho
localhost để xác nhận nó đã không leak qua.
Skipping baseurl on GitHub các trang project trang web
username.github.io/repo-name các trang trực tiếp dưới /repo-name/ subfolder. nếu
baseurl: /repo-name không phải đặt, mỗi canonical URL jekyll-seo-tag generates —
và của bạn liên kết nội bộ — là bị thiếu đó subfolder, pointing tại URL đó
không exist. Đây là single phần lớn phổ biến canonical-URL bug on Jekyll project
các trang. Làm điều này thay vì: đặt baseurl: on project các trang (người dùng/org các trang tại
domain root không cần nó), và spot-kiểm tra được xây dựng trang canonical so với
của nó thực, trực tiếp URL.
Assuming collection là indexable không có output: true
Collections (tài liệu sections, case studies, team bios) là Jekyll custom nội dung
loại, nhưng không có output: true trong _config.yml, documents là không bao giờ
được kết xuất as riêng lẻ HTML files — nội dung sits trong của bạn repo và đơn giản
không bao giờ becomes crawlable trang. có không lỗi, không warning, chỉ các trang đó
không bao giờ exist. Làm điều này thay vì: đặt output: true on mỗi collection meant
để là công khai, và sau khi xây dựng, xác nhận dự kiến HTML files thực ra landed
trong _site/.
sử dụng date-based permalinks cho evergreen nội dung
Jekyll default permalink style (/:categories/:year/:month/:day/:title.html)
bakes publish date vào URL. Thay đổi post date: front quan trọng sau đó
— mà mọi người làm, thường chỉ để bump nó cho re-publish — và URL thay đổi
với nó, breaking mỗi inbound link và forcing chuyển hướng cleanup bạn đã không
plan cho. Làm điều này thay vì: sử dụng /:title/ hoặc /:categories/:title/ cho
evergreen posts; reserve date-based permalinks cho genuinely date-relevant
nội dung như news, nơi date belongs trong URL.
Trying để install non-whitelisted plugin on GitHub các trang và expecting nó để chạy
GitHub xây dựng Jekyll với --safe flag, mà silently skips hoặc các lỗi on
bất kỳ plugin bên ngoài fixed whitelist — dropping gem như
jekyll-last-modified-at hoặc custom structured-dữ liệu plugin vào _plugins/
và pushing nó không làm nó chạy on default GitHub các trang xây dựng. Làm điều này
thay vì: kiểm tra plugin so với
các trang.github.com/versions.json đầu tiên;
nếu nó không listed, xây dựng với GitHub Actions (actions/jekyll-build-pages hoặc
local xây dựng pushed qua peaceiris/actions-gh-pages) thay vì fighting
whitelist.
Assuming Jekyll ships robots.txt
Jekyll không generate robots.txt — có không plugin toggle, không default
file, không có gì. trang web với không robots.txt tại all không phải hỏng cho lập chỉ mục, nhưng
nó cũng có không Sitemap: reference cho các crawler đó sử dụng robots.txt as
phát hiện mechanism. Làm điều này thay vì: tạo robots.txt yourself trong
trang web root với rỗng front-quan trọng block (--- ---) so Liquid xử lý nó
và {{ site.url }} resolves trong Sitemap: line.
Tự kiểm tra: Jekyll SEO
Five nhanh các câu hỏi on optimizing Jekyll các trang Đối với tìm kiếm. Pick câu trả lời cho mỗi, sau đó kiểm tra.
các tài nguyên worth của bạn time
My writing
- JavaScript SEO: Definitive Hướng dẫn — kết xuất, DOM parity, và Vì sao static/prerendered output (như Jekyll) là thấp-risk end của spectrum.
- Người mới bắt đầu Hướng dẫn để kỹ thuật SEO — nơi kết xuất architecture và sitemaps fit trong bigger picture.
My speaking
- Cách Tìm kiếm Hoạt động (SlideShare) — my walkthrough of crawling, kết xuất, lập chỉ mục, và xếp hạng. (My standing disclaimer áp dụng: “This is my understanding of systems… not going to be 100% complete or accurate.” (bản dịch) «Này là my understanding of các hệ thống… không going để là 100% hoàn tất hoặc chính xác.»)
từ khoảng ngành
- Jekyll tài liệu — tài liệu chính thức, including permalinks và collections.
- jekyll-seo-tag — chính thức metadata plugin và của nó Nâng cao usage hướng dẫn.
- jekyll-sitemap — chính thức sitemap plugin.
- về GitHub các trang và Jekyll — GitHub own tài liệu on xây dựng xử lý và constraints.
- các trang.github.com/versions.json — có thẩm quyền GitHub các trang plugin whitelist và locked versions.
- Google Search Central — JavaScript SEO basics — kết xuất phases static xây dựng lets bạn skip.
- CloudCannon — jekyll-seo-tag showcase — practitioner walkthrough của plugin.
Nhật ký thay đổi
Đã cập nhật 8 thg 8, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.
Đã cập nhật 27 thg 7, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.
Đã cập nhật 18 thg 7, 2026.
Tóm tắt biên tập và chi tiết thay đổi đã ghi nhận.Chi tiết thay đổi
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
-
Ghi chú thay đổi chi tiết hiện chỉ có bằng tiếng Anh.
Không thể so sánh đầy đủ — không có bản lưu trước đó cho lần sửa đổi này.