Türkçe çeviri: Hexo SEO

nasıl -e yap SEO on bir Hexo site — Node.js static site generator. Hexo outputs pure HTML bu nedenle bençerik dır crawlable on ilk fetch, ama sitemaps, robots.txt, meta descriptions, canonicals, structured data, ve stable permalinks tümü depend on plugins ve config.

İlk yayın tarihi: 26 Haz 2026 · Son güncelleme: 8 Ağu 2026 · Advanced
Diller

Hexo dır bir Node.js static site generator: hexo generate compiles Markdown -e pure static HTML, bu nedenle Googlebot reads sizin full bençerik on ilk fetch ile no JavaScript rendering queue. şu's crawlability floor — ama o's değil finished SEO. en çok default themes ship no sitemap, no robots.txt, no per-post meta description, no canonical, ve no structured data; siz ekle şunlar ile _config.yml settings, front önem taşır fields, theme edits, ve plugins (hexo-generator-sitemap, hexo-generator-robotstxt, hexo-generator-feed, hexo-abbrlink). big traps dır bir yanlış URL: in _config.yml, date-based default permalink şu breaks bağlantılar on rename, ve auto-generated category/tag archives şu oluştur thin yinelenen bençerik. bençin Baidu-facing siteler, static output removes bir gerçek tarama obstacle — gerçben şu's değil bir guarantee of Baidu dizine ekleme veya sıralama.

TL;DR — Hexo (hexo generate) emits pure static HTML, bu nedenle sizin bençerik dır in ilk byte of response — no Web Rendering Service, no Wave 2 delay. şu’s crawlability floor, değil finished SEO. Default themes ship no sitemap, no robots.txt, no per-post meta description, no canonical, ve no structured data; siz ekle them via _config.yml, front önem taşır, theme template edits, ve plugins (hexo-generator-sitemap, hexo-generator-robotstxt, hexo-generator-feed, hexo-abbrlink, hexo-indexnow). three traps şu aslında bite: bir yanlış url: in _config.yml breaks canonicals/sitemap/feed; date-based default permalink ties URLs -e filenames bu nedenle bir rename breaks bağlantılar; ve auto-generated category/tag archives oluştur thin yinelenen bençerik. bençin Baidu-facing siteler static output dır bir gerçek advantage.

Hexo’s static output dır tarama advantage

hexo generate runs sizin Markdown ve theme templates aracılığıyla bir oluştur adım ve writes bir folder of finished HTML, CSS, ve assets. SEO-relevant fact dır ne zaman HTML vardır: at oluştur time, once, bençin everyone — değil per istek, ve değil in browser. 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 bir two-phase süreç bençin JavaScript sayfalar: Wave 1 fetches raw HTML ve indexes static bençerik immediately; Wave 2 dır bir deferred headless-Chromium rendering queue şu -ebilir take seconds -e days. Hexo output skips Wave 2 entirely — her sayfa dır raw HTML on ilk fetch. Google’ın kendi rehberlik dır blunt şu bu recommended path: dynamic rendering idi “bir workaround ve değil bir uzun-term çözüm… kullan server-side rendering, static rendering, veya hydration olarak bir çözüm,” ve Hexo produces static rendering, bir of three explicitly recommended approaches.

Two daha wins fall out of bu:

  • Crawlable bağlantılar tarafından default. Hexo templates emit plain <a href> anchors in static HTML, bu nedenle onlar satisfy Google’s requirement şu bağlantılar olmak gerçek, crawlable URLs — no JavaScript-generated navigation -e design yaklaşık.
  • Cheap -e tarama. Static files sunulan -den bir CDN sahip effectively zero server-processing maliyet per istek, bu nedenle Googlebot -ebilir tarama at onun allowed rate olmadan tripping tarama-rate throttling. olarak Gary Illyes put o, “-erseniz dır making expensive database çbirğrılar, şu’s going -e maliyet server bir lot” — Hexo yapar none.

caveat: zero render-blocking bençin crawlers değildir aynı olarak zero render-blocking bençin kullanıcılar. Theme JS/CSS hâlâ affects temel Web Vitals (daha below).

Configure _config.yml ilk — url: dır big bir

ayarla bunlar global keys önce sizin ilk 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: dır tek en çok consequential ayarlama. o’s site’s configured base URL, hangi themes ve generators -ebilir kullan bençin canonical tags, feeds, sitemaps, ve sayfalama. bir yanlış değer -ebilir propagate -e şunlar 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: — default :year/:month/:day/:title/ produces date-based URLs şu bak stale üzerinde time ve tie slug -e filename. Cleaner options dır /:title/ veya /:category/:title/.
  • meta_generator: false strips Hexo’s generator fingerprint -den <head>.
  • Deploying -e bir subdirectory? url: alone değildir enough — ayarla root: -e subdirectory path de (e.g. root: /blog/). Hexo’s url_for helper builds root-relative bağlantılar, -iken full_url_for prepends full url: değer; al root: yanlış on bir subdirectory deploy ve benç bağlantılar, feeds, ve sitemap entries end up pointing at domain root yerine gerçek path.
  • Config precedence: site’s _config.yml sets base url/root/permalink values; bir theme’s kendi config (onun bundled _config.yml, veya bir _config.<theme>.yml at project root) layers on top bençin display ve template settings, ama yapmaz override site-level URL structure — bir theme -ebilir’t düzelt bir yanlış url:.
  • Testing in safe mode? hexo server --safe (veya hexo --safe) disables her plugin ve script, bu nedenle output siz’re viewing dır missing sizin sitemap, robots.txt, ve herhangi bir SEO plugin’s tags. yapmayın kullan bir safe-mode preview -e kontrol et SEO output — çalıştır bir olağbir hexo generate ilk.

Front önem taşır SEO controls (ve ne’s missing)

Native Hexo front önem taşır -ebilirsiniz 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
---

ne dır değil in native front önem taşır ve gerektirir theme support veya bir template edit:

  • description ( meta description) — en çok themes yapmayın print o olmadan bir patch.
  • keywords (per-post keyword meta) — ve largely pointless anyway; Google sahiptir ignored <meta name="keywords"> since 2009. ele al keywords olarak bir organizational aid, değil bir sıralama lever.
  • canonical (override canonical URL) — theme-dependent.

koru updated: field güncel -dığınızda revise bir post — sitemap freshness depends on o (sonraki section).

Temel eklentiler

Sitemap — hexo-generator-sitemap (resmî):

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

o reads lastmod -den her post’s updated field (falling back -e date) — hangi önem taşır çünkü Bing warns şu lastmod “-meli reflect true son modification time of sayfa bençerik, değil sitemap file itself.” sonra hexo generate, submit resulting sitemap.xml in Google arama Console ve Bing Webmaster araçlar. ve heed Bing’s diğer warning: “yapmayın submit bir static sitemap ve forget o. yeni sayfalar won’t al seçilen up” — bençin Hexo şu anlamına gelir re-deploying ve re-submitting (veya kullanarak IndexNow) sonra her yeni post.

robots.txt — hexo-generator-robotstxt:

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

olmadan o, Hexo produces no robots.txt at tümü — no sitemap pointer bençin crawlers.

RSS — hexo-generator-feed: relevant bençin aggregators ve Google News eligibility; John Mueller bençerir bir RSS feed on his kendi static site.

IndexNow — hexo-indexnow: Bing recommends pairing sitemaps ile IndexNow bençin gerçek-time, URL-level submission. Drop generated key file -e source/ bu nedenle o deploys olarak yourdomain.com/<key>.txt. Note bu bençin Bing, Yandex, ve others — değil Google, hangi yapmaz kullan IndexNow bençin general sayfalar.

default permalink sahiptir two SEO problems: renaming Markdown file changes URL (çünkü slug comes -den filename), ve non-Latin titles (Chinese, emoji) produce garbled URLs. hexo-abbrlink decouples URL -den filename tarafından yazma bir stable hash back -e front önem taşır:

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

siz al something like /posts/3a9c2b1d/ şu survives file renames, category changes, ve date edits. underlying kural stands either way: once bir URL dır published, yapmayın change o olmadan bir 301 yönlendirme — bir rename olmadan bir destroys bağlantı değeri ve herhangi bir accumulated sıralama sinyalleri.

Two daha permalink pitfalls worth knowing önce siz seç bir pattern:

  • yapmayın kullan :id token. Hexo belgeler post IDs olarak değil persistent genelinde bir database cache reset — eğer sizin permalink pattern bençerir :id, bir cache rebuild -ebilir silently change her post’s URL. Stick -e :title, :abbrlink, veya başka bir stable token.
  • trailing_index ve trailing_html dır separate controls, değil bir ayarlama. Hexo’s pretty_urls config toggles them independently — bir governs whether bir trailing index.html dır stripped -den generated bağlantılar, diğer whether bir trailing slash dır eklendi. eğer bunlar yapmayın match nasıl sizin ana makine aslında resolves URLs (bazı hosts yönlendirme /post -e /post/, others yapmayın), -ebilirsiniz end up ile internal bağlantılar, canonicals, ve sitemap entries disagreeing ile URL server aslında serves.

sonraki theme SEO configuration

sonraki dır en çok-kullanılan Hexo theme, configured 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

** sonraki meta-description gap:** sonraki yapar otomatik olarak değil inject bir per-post <meta name="description"> -den front önem taşır description:. siz patch theme’s head template -e fall back -den page.description -e site description. bu tek en çok yaygın sonraki SEO miss. (sonraki yapar support canonical: true ve oluşturulmuş-in Open Graph / Twitter Cards, bu nedenle şunlar at least çalışır once enabled.)

bençin non-sonraki themes, siz genellikle oluştur veya edit bir head partial -e emit og:title, og:description, og:image, og:url, ve twitter:card — support varies widely tarafından theme.

kim owns her tag ne zaman bir theme ve bir plugin her ikisi emit o. bir theme’s oluşturulmuş-in Open Graph/canonical support ve bir tümü-in-bir plugin like hexo-seo (hangi generates onun kendi breadcrumb, web sitesi, ve article schema) -ebilir her ikisi try -e yaz aynı tag. Turning her ikisi on produces yinelenen veya conflicting <meta> tags, canonicals, veya JSON-LD blocks in aynı <head>. seç bir layer olarak owner her biri bençin tag category — theme veya plugin, değil her ikisi — ve disable corresponding feature on diğer önce siz ship.

Category ve tag sayfalar: yinelenen-bençerik trap

Hexo auto-generates bir archive sayfa bençin her category ve her tag, her filled ile post excerpts şu ayrıca görün on posts themselves. ölçekte şu’s hundreds of thin sayfalar competing bençin aynı sorgular ve diluting tarama attention. sizin options:

  1. sitemap: false per archive (impractical ölçekte).
  2. Theme-level noindex on category/tag archive templates.
  3. koru them dizine eklenmiş yalnızca eğer bir category dır bir genuine, curated topic hub ile gerçek değer.
  4. Self-referencing canonical on her paginated archive sayfa (sayfa 2 canonicalizes -e itself, değil sayfa 1).

bir caveat on option 2: uzun-term noindex eventually yapar Google durdur following bağlantılar on şu sayfa, bu nedenle noindexing tag sayfalar -ebilir reduce tarama of posts şu dır yalnızca linked -den şunlar tags. emin olun such posts dır reachable bazı diğer way.

sizin route inventory dır bigger -den source/. Category, tag, archive, ve sayfalama sayfalar yapmayın come -den Markdown files — Hexo’s generator API dır ne aslında creates them, ve themes veya plugins -ebilir register onların kendi generators de. şu anlamına gelir crawlable URL surface -ebilir silently expand beyond ne siz’d expect -den browsing sizin source/ folder. sonra installing veya updating bir theme veya plugin, çalıştır hexo generate ve diff route liste in public/ yerine assuming siz know her URL Hexo dır producing.

Yapılandırılmış veri / JSON-LD

Hexo injects no structured data tarafından default. Either ekle bir BlogPosting JSON-LD block -e sizin theme’s post template (headline, datePublished, dateModified, author, publisher, url) veya kullan bir tümü-in-bir plugin like hexo-seo şu generates breadcrumb, web sitesi, ve article schema bençin siz.

temel Web Vitals

Static output dır fast, ama themes -ebilir undo şu. sonraki ve çok söyleıda themes bundle büyük JS/CSS ve icon-font libraries (Font Awesome dır bir frequent LCP/render-blocking culprit). denetim ile Lighthouse, o hâlde ulaş bençin hexo-all-minifier (HTML/CSS/JS compression at oluştur time), hexo-lazyload-image, ve defer/async on üçüncü-party scripts like analytics ve ads.

Targeting Baidu (Chinese-audience siteler)

Baidu’s crawler handles JavaScript poorly, bu nedenle Hexo’s static HTML removes bir obstacle -e Baidu discovery. ekle baidu_site_verification in sonraki, generate bir Baidu-format sitemap ile hexo-generator-baidu-sitemap, ve push URLs actively ile hexo-submit-urls-to-search-engine. bir hosting note: GitHub sayfalar dır blocked in mainland China — kullan Gitee sayfalar, Cloudflare, veya bir Chinese CDN bençin Baidu trafik.

ele al şu olarak bir crawlability advantage, değil bir guarantee. Static HTML yapmaz tarafından itself prove Baidu dır discovering, dizine ekleme, veya sıralama sizin sayfalar — yapğrula gerçek tarama activity ve dizine ekleme status yapğrudan in Baidu Ziyuan (Baidu’s webmaster araçlar) rather -den assuming static output alone secures görünürlük.

Deploying -e GitHub sayfalar — SEO gotchas

  • ayarla url: -e sizin live adres (custom domain ile https://) önce ilk deploy.
  • Put bir CNAME file in source/ bençin custom domains bu nedenle o değildir reset on her hexo deploy.
  • Enforce HTTPS in repo Settings → sayfalar sonra DNS propagates.
  • Prefer bir GitHub Actions workflow üzerinde hexo-deployer-git -e kaçın CNAME-reset sorunlar.

Hexo vs. Hugo vs. Jekyll vs. Astro, bençin SEO

tümü four ship pure static HTML, bu nedenle indexability floor dır identical — orada’s no framework-level SEO disadvantage in Hexo. differences dır operational: Hugo (Go) builds far faster at büyük scale ve sahiptir bir oluşturulmuş-in sitemap; Jekyll dır GitHub sayfalar default; Astro ships zero JS tarafından default via islands. Hexo’s edge dır bir rich npm plugin ecosystem ve bir büyük Chinese-language community. bençerik kalitesi, değil generator, decides sıralamalar — olarak Mueller said of switching generators, “-ecek sizin site’s SEO suddenly explode? No. ayrıca No.”

For the cluster overview and the other generators, see Static Site Generators; for the 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.