暫定日本語訳:Hexo SEO

暫定日本語訳:どのように へ do SEO on Hexo サイト — Node.js static サイト generator. Hexo outputs pure HTML so コンテンツ is crawlable on 最初 fetch, ただし sitemaps, robots.txt, meta 説明, canonicals, structured データ, と stable permalinks all depend on plugins と config.

初回公開:2026年6月26日 · 最終更新:2026年8月4日 · Advanced
言語

暫定日本語訳:Hexo is Node.js static サイト generator: hexo generate compiles Markdown へ pure static HTML, so Googlebot reads あなた full コンテンツ on 最初 fetch とともに no JavaScript rendering queue. その's crawlability floor — ただし it's ない finished SEO. 大半の デフォルト themes ship no sitemap, no robots.txt, no per-post meta 説明, no canonical, と no structured データ; あなた 追加 それらの とともに _config.yml 設定, front matter fields, theme edits, と plugins (hexo-generator-sitemap, hexo-generator-robotstxt, hexo-generator-フィード, hexo-abbrlink). big traps are 誤った url: in _config.yml, date-based デフォルト permalink その breaks links on rename, と auto-generated category/tag archives その 作成 thin duplicate コンテンツ. 向けに Baidu-facing サイト, static output removes real クロール obstacle — though その's ない guarantee of Baidu インデックス登録 または ランキング.

暫定日本語案: TL;DR — Hexo (hexo generate) emits pure static HTML, so あなた コンテンツ is in 暫定日本語案: 最初 byte of レスポンス — no Web Rendering Service, no Wave 2 delay. その’s 暫定日本語案: crawlability floor, ない finished SEO. デフォルト themes ship no sitemap, no 暫定日本語案: robots.txt, no per-post meta 説明, no canonical, と no structured データ; あなた 暫定日本語案: 追加 them via _config.yml, front matter, theme template edits, と plugins 暫定日本語案: (hexo-generator-sitemap, hexo-generator-robotstxt, hexo-generator-feed, 暫定日本語案: hexo-abbrlink, hexo-indexnow). three traps その actually bite: 誤った 暫定日本語案: url: in _config.yml breaks canonicals/sitemap/フィード; date-based デフォルト 暫定日本語案: permalink ties URLs へ filenames so rename breaks links; と auto-generated 暫定日本語案: category/tag archives 作成 thin duplicate コンテンツ. 向けに Baidu-facing サイト 暫定日本語案: static output is real advantage.

Hexo’s static output is クロール advantage

暫定日本語案: hexo generate runs あなた Markdown と theme templates 通じて 構築 手順 と writes 暫定日本語案: folder of finished HTML, CSS, と assets. SEO-relevant fact is いつ HTML 暫定日本語案: exists: at 構築 time, once, 向けに everyone — ない per リクエスト, と ない in ブラウザー. Evidence for this claim The Hexo generate command builds static files into the configured public directory. Scope: Hexo generate command. Confidence: high · Verified: Hexo: Commands

暫定日本語案: Google describes two-phase プロセス 向けに JavaScript ページ: Wave 1 fetches raw HTML 暫定日本語案: と indexes static コンテンツ immediately; Wave 2 is deferred headless-Chromium 暫定日本語案: rendering queue その できる take seconds へ days. Hexo output skips Wave 2 entirely — 暫定日本語案: すべての ページ is raw HTML on 最初 fetch. Google’s own guidance is blunt その この is 暫定日本語案: recommended path: dynamic rendering was “a workaround and not a long-term solution… use server-side rendering, static rendering, or hydration as a solution,” 暫定日本語案: と Hexo produces static rendering, one of three explicitly recommended 暫定日本語案: approaches.

暫定日本語案: Two more wins fall out of この:

  • 暫定日本語案: Crawlable links by デフォルト. Hexo templates emit plain <a href> anchors in 暫定日本語案: static HTML, so それら satisfy Google’s requirement その links be real, crawlable 暫定日本語案: URLs — no JavaScript-generated navigation へ design around.
  • 暫定日本語案: Cheap へ クロール. Static files served から CDN have effectively zero 暫定日本語案: サーバー-processing cost per リクエスト, so Googlebot できる クロール at its 許可 rate 暫定日本語案: なしで tripping クロール-rate throttling. As Gary Illyes put it, “if you are making expensive database calls, that’s going to cost the server a lot” — Hexo 作る none.

暫定日本語案: caveat: zero render-blocking 向けに crawlers is ない 同じ as zero 暫定日本語案: render-blocking 向けに ユーザー. Theme JS/CSS still affects Core Web Vitals (more below).

設定 _config.yml 最初 — url: is big one

暫定日本語案: 設定 これらの global keys 前に あなた 最初 deploy:

url: https://yourdomain.com       # must match your live domain, with https://
permalink: :title/                # or :year/:month/:day/:title/ (the default)
title: Site Title
description: Global meta description fallback
author: Your Name
language: en
meta_generator: false             # removes the <meta name="generator" content="Hexo"> tag
  • 暫定日本語案: url: is single 大半の consequential 設定. It’s サイト’s 設定 暫定日本語案: base URL, which themes と generators できる 使用 向けに canonical tags, フィード, 暫定日本語案: sitemaps, と pagination. 誤った value できる propagate へ それらの outputs. Evidence for this claim Hexo's url configuration supplies the website URL used by themes and generators. Scope: Exact downstream fields depend on the installed theme and plugins. Confidence: high · Verified: Hexo: Configuration
  • 暫定日本語案: permalink: — デフォルト :year/:month/:day/:title/ produces date-based URLs 暫定日本語案: その look stale 超えて time と tie slug へ filename. Cleaner options are 暫定日本語案: /:title/ または /:category/:title/.
  • 暫定日本語案: meta_generator: false strips Hexo’s generator fingerprint から <head>.
  • 暫定日本語案: Deploying へ subdirectory? url: alone isn’t enough — 設定 root: へ 暫定日本語案: subdirectory path too (e.g. root: /blog/). Hexo’s url_for helper 構築 暫定日本語案: root-relative links, while full_url_for prepends full url: value; get 暫定日本語案: root: 誤った on subdirectory deploy と internal links, フィード, と sitemap 暫定日本語案: entries end up pointing at domain root instead of actual path.
  • 暫定日本語案: Config precedence: サイト’s _config.yml sets base url/root/permalink 暫定日本語案: values; theme’s own config (its bundled _config.yml, または _config.<theme>.yml 暫定日本語案: at project root) layers on top 向けに display と template 設定, ただし doesn’t 暫定日本語案: override サイト-level URL structure — theme できる’t fix 誤った url:.
  • 暫定日本語案: テスト in safe mode? hexo server --safe (または hexo --safe) disables すべての 暫定日本語案: plugin と script, so output あなた’re viewing is 不足している あなた sitemap, robots.txt, 暫定日本語案: と any SEO plugin’s tags. Don’t 使用 safe-mode preview へ 確認 SEO output — 暫定日本語案: run normal hexo generate 最初.

Front matter SEO controls (と 何’s 不足している)

暫定日本語案: Native Hexo front matter あなた できる rely on:

---
title: "Article Title for the <title> tag"
date: 2024-01-15
updated: 2024-06-01
tags: [tag1, tag2]
categories: [Category]
permalink: /custom-url/           # overrides the global pattern for this post
published: true
sitemap: false                    # exclude this post from sitemap.xml
---

暫定日本語案: 何 is ない in native front matter と needs theme support または template edit:

  • 暫定日本語案: description ( meta 説明) — 大半の themes don’t print it なしで patch.
  • 暫定日本語案: keywords (per-post keyword meta) — と largely pointless anyway; Google has 暫定日本語案: ignored <meta name="keywords"> since 2009. Treat keywords as organizational 暫定日本語案: aid, ない ランキング lever.
  • 暫定日本語案: canonical (override canonical URL) — theme-dependent.

暫定日本語案: 保つ updated: field 現在の いつ あなた revise post — sitemap freshness depends 暫定日本語案: on it (next section).

Essential plugins

暫定日本語案: Sitemap — hexo-generator-sitemap (公式):

npm install hexo-generator-sitemap --save
sitemap:
  path:
    - sitemap.xml
  tags: true
  categories: true

暫定日本語案: It reads lastmod から 各 post’s updated field (falling back へ date) — which 暫定日本語案: matters because Bing warns その lastmod “should reflect the true last modification time of the page content, not the sitemap file itself.” 後に hexo generate, submit 暫定日本語案: resulting sitemap.xml in Google 検索 Console と Bing Webmaster ツール. と 暫定日本語案: heed Bing’s other warning: “Do not submit a static sitemap and forget it. New pages won’t get picked up” — 向けに Hexo その means re-deploying と re-submitting (または using 暫定日本語案: IndexNow) 後に すべての 新しい post.

暫定日本語案: robots.txt — hexo-generator-robotstxt:

npm install hexo-generator-robotstxt --save
robotstxt:
  useragent: "*"
  allow:
    - /
  disallow:
    - /private/
  sitemap: https://yourdomain.com/sitemap.xml

暫定日本語案: なしで it, Hexo produces no robots.txt at all — no sitemap pointer 向けに crawlers.

暫定日本語案: RSS — hexo-generator-feed: relevant 向けに aggregators と Google News 適格性; 暫定日本語案: John Mueller 含む RSS フィード on his own static サイト.

暫定日本語案: IndexNow — hexo-indexnow: Bing recommends pairing sitemaps とともに IndexNow 向けに 暫定日本語案: real-time, URL-level submission. Drop generated key file へ source/ so it 暫定日本語案: deploys as yourdomain.com/<key>.txt. Note この is 向けに Bing, Yandex, と others — 暫定日本語案: ない Google, which doesn’t 使用 IndexNow 向けに general ページ.

暫定日本語案: デフォルト permalink has two SEO 問題: renaming Markdown file changes URL 暫定日本語案: (because slug comes から filename), と non-Latin タイトル (Chinese, emoji) 暫定日本語案: produce garbled URLs. hexo-abbrlink decouples URL から filename by writing 暫定日本語案: stable hash back へ front matter:

npm install hexo-abbrlink --save
permalink: posts/:abbrlink/
abbrlink:
  alg: crc32    # crc16 or crc32
  rep: hex      # dec or hex

暫定日本語案: あなた get something like /posts/3a9c2b1d/ その survives file renames, category 暫定日本語案: changes, と date edits. underlying rule stands either way: once URL is 暫定日本語案: published, don’t change it なしで 301 リダイレクト — rename なしで one destroys 暫定日本語案: link equity と any accumulated ランキング signals.

暫定日本語案: Two more permalink pitfalls worth knowing 前に あなた pick pattern:

  • 暫定日本語案: Don’t 使用 :id token. Hexo documents post IDs as ない persistent 全体で 暫定日本語案: database cache reset — if あなた permalink pattern 含む :id, cache rebuild できる 暫定日本語案: silently change すべての post’s URL. Stick へ :title, :abbrlink, または another stable 暫定日本語案: token.
  • 暫定日本語案: trailing_indextrailing_html are separate controls, ない one 設定. 暫定日本語案: Hexo’s pretty_urls config toggles them independently — one governs whether 暫定日本語案: trailing index.html is stripped から generated links, other whether trailing 暫定日本語案: slash is 追加. If これらの don’t match どのように あなた host actually resolves URLs (some 暫定日本語案: hosts リダイレクト /post/post/, others don’t), あなた できる end up とともに internal 暫定日本語案: links, canonicals, と sitemap entries disagreeing とともに URL サーバー actually 暫定日本語案: serves.

NexT theme SEO configuration

暫定日本語案: NexT is 大半の-使用 Hexo theme, 設定 in _config.next.yml:

canonical: true                 # builds canonical from url: + page path

webmaster_tools:
  google: VERIFICATION_STRING
  bing: VERIFICATION_STRING
  baidu: VERIFICATION_STRING

open_graph:
  enable: true
  twitter_card: summary_large_image

暫定日本語案: ** NexT meta-説明 gap:** NexT does ない 自動 inject per-post 暫定日本語案: <meta name="description"> から front matter description:. あなた patch theme’s 暫定日本語案: head template へ fall back から page.description へ サイト 説明. この is 暫定日本語案: single 大半の 一般的な NexT SEO miss. (NexT does support canonical: true と built-in 暫定日本語案: Open Graph / Twitter Cards, so それらの at least 機能 once enabled.)

暫定日本語案: 向けに non-NexT themes, あなた usually 作成 または edit head partial へ emit og:title, 暫定日本語案: og:description, og:image, og:url, と twitter:card — support varies widely by 暫定日本語案: theme.

暫定日本語案: Who owns 各 tag いつ theme と plugin both emit it. theme’s built-in 暫定日本語案: Open Graph/canonical support と all-in-one plugin like hexo-seo (which 暫定日本語案: generates its own breadcrumb, Webサイト, と 記事 schema) できる both try へ write 暫定日本語案: 同じ tag. Turning both on produces duplicate または conflicting <meta> tags, canonicals, 暫定日本語案: または JSON-LD blocks in 同じ <head>. Pick one layer as owner 向けに 各 tag 暫定日本語案: category — theme または plugin, ない both — と disable corresponding feature on 暫定日本語案: other 前に あなた ship.

Category と tag ページ: duplicate-コンテンツ trap

暫定日本語案: Hexo auto-generates archive ページ 向けに すべての category と すべての tag, 各 filled とともに 暫定日本語案: post excerpts その また 表示される on posts themselves. At scale その’s hundreds of 暫定日本語案: thin ページ competing 向けに 同じ クエリ と diluting クロール attention. あなた options:

  1. 暫定日本語案: sitemap: false per archive (impractical at scale).
  2. 暫定日本語案: Theme-level noindex on category/tag archive templates.
  3. 暫定日本語案: 保つ them インデックス登録 だけ if category is genuine, curated topic hub とともに real 暫定日本語案: value.
  4. 暫定日本語案: Self-referencing canonical on 各 paginated archive ページ (ページ 2 canonicalizes へ 暫定日本語案: itself, ない ページ 1).

暫定日本語案: One caveat on option 2: long-term noindex eventually 作る Google stop following 暫定日本語案: links on その ページ, so noindexing tag ページ できる reduce クロール of posts その are だけ 暫定日本語案: linked から それらの tags. 作る sure such posts are reachable some other way.

暫定日本語案: あなた route inventory is bigger than source/. Category, tag, archive, と 暫定日本語案: pagination ページ don’t come から Markdown files — Hexo’s generator API is 何 暫定日本語案: actually creates them, と themes または plugins できる register their own generators too. 暫定日本語案: その means crawlable URL surface できる silently expand beyond 何 あなた’d expect 暫定日本語案: から browsing あなた source/ folder. 後に installing または updating theme または plugin, 暫定日本語案: run hexo generate と diff route list in public/ rather than assuming あなた 暫定日本語案: know すべての URL Hexo is producing.

Structured データ / JSON-LD

暫定日本語案: Hexo injects no structured データ by デフォルト. Either 追加 BlogPosting JSON-LD block へ 暫定日本語案: あなた theme’s post template (headline, datePublished, dateModified, author, 暫定日本語案: publisher, url) または 使用 all-in-one plugin like hexo-seo その generates 暫定日本語案: breadcrumb, Webサイト, と 記事 schema 向けに あなた.

Core Web Vitals

暫定日本語案: Static output is fast, ただし themes できる undo その. NexT と many themes bundle large 暫定日本語案: JS/CSS と icon-font libraries (Font Awesome is frequent LCP/render-blocking 暫定日本語案: culprit). Audit とともに Lighthouse, then reach 向けに hexo-all-minifier (HTML/CSS/JS 暫定日本語案: compression at 構築 time), hexo-lazyload-image, と defer/async on third-party 暫定日本語案: scripts like analytics と ads.

Targeting Baidu (Chinese-audience サイト)

暫定日本語案: Baidu’s crawler handles JavaScript poorly, so Hexo’s static HTML removes one obstacle 暫定日本語案: へ Baidu discovery. 追加 baidu_site_verification in NexT, generate Baidu-format 暫定日本語案: sitemap とともに hexo-generator-baidu-sitemap, と push URLs actively とともに 暫定日本語案: hexo-submit-urls-to-search-engine. One hosting note: GitHub ページ is blocked in 暫定日本語案: mainland China — 使用 Gitee ページ, Cloudflare, または Chinese CDN 向けに Baidu トラフィック.

暫定日本語案: Treat その as crawlability advantage, ない guarantee. Static HTML doesn’t by itself 暫定日本語案: prove Baidu is discovering, インデックス登録, または ランキング あなた ページ — confirm actual クロール 暫定日本語案: activity と インデックス登録 status directly in Baidu Ziyuan (Baidu’s webmaster ツール) rather 暫定日本語案: than assuming static output alone secures visibility.

Deploying へ GitHub ページ — SEO gotchas

  • 暫定日本語案: 設定 url: へ あなた live address (カスタム domain とともに https://) 前に 最初 暫定日本語案: deploy.
  • 暫定日本語案: Put CNAME file in source/ 向けに カスタム domains so it isn’t reset on すべての 暫定日本語案: hexo deploy.
  • 暫定日本語案: Enforce HTTPS in repo 設定 → ページ 後に DNS propagates.
  • 暫定日本語案: Prefer GitHub Actions workflow 超えて hexo-deployer-git へ 避ける CNAME-reset 暫定日本語案: 問題.

Hexo vs. Hugo vs. Jekyll vs. Astro, 向けに SEO

暫定日本語案: All four ship pure static HTML, so indexability floor is identical — there’s no 暫定日本語案: framework-level SEO disadvantage in Hexo. differences are operational: Hugo (Go) 暫定日本語案: 構築 far faster at large scale と has built-in sitemap; Jekyll is GitHub ページ 暫定日本語案: デフォルト; Astro ships zero JS by デフォルト via islands. Hexo’s edge is rich npm plugin 暫定日本語案: ecosystem と large Chinese-言語 community. コンテンツ quality, ない generator, 暫定日本語案: decides rankings — as Mueller said of switching generators, “Will your site’s SEO suddenly explode? No. Also No.”

暫定日本語案: 向けに cluster overview と other generators, see Static サイト 暫定日本語案: Generators; 向けに broader 暫定日本語案: rendering picture, see JavaScript SEO.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.