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.
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 builds sizin blog -e plain HTML files ahead of time, bu nedenle Google sees sizin bençerik moment o fetches bir sayfa — no waiting on JavaScript. şu’s easy part. catch: Hexo yapmaz ekle bir sitemap, bir
robots.txt, meta descriptions, veya canonical tags kendi başına. siz turn şunlar on ile bir few plugins ve config settings.
ne Hexo dır
Hexo dır bir free blogging framework oluşturulmuş on Node.js. siz yaz posts in Markdown,
çalıştır hexo generate, ve Hexo turns everything -e finished HTML files. siz upload
şunlar files -e bir ana makine (GitHub sayfalar, Netlify, Cloudflare sayfalar, ve bu nedenle on). ne zaman
Google veya bir reader istekler bir sayfa, onlar al complete HTML yapğru away — orada’s
nothing left bençin browser -e oluştur. Evidence for this claim Hexo generates static site files from source content. Scope: Hexo static generation. Confidence: high · Verified: Hexo documentation
That’s great for SEO: your text and links are in the page from the first byte, so Google doesn’t have to run any JavaScript to find your content. Hexo sits in the same family as Hugo and Jekyll — all of them pre-build everything (see Static Site Generators).
ne Hexo yapar değil yap bençin siz
burada’s nerede beginners al caught: bir fresh Hexo site ile bir default theme dır missing en çok basic SEO pieces. siz genellikle sahip -e ekle:
- bir XML sitemap — install
hexo-generator-sitemapplugin. Evidence for this claim The official Hexo sitemap generator creates sitemap.xml output. Scope: hexo-generator-sitemap plugin. Confidence: high · Verified: Hexo sitemap generator - bir
robots.txt— installhexo-generator-robotstxt(veya drop bir file in sizin kaynak folder). - Meta descriptions — ekle bir
description:-e her post, ve en çok themes ihtiyaç duy bir küçük template edit -e aslında print o. - Canonical tags — theme-dependent; popular sonraki theme -ebilir yap o once siz ayarla things up.
two settings şu önem taşır en çok önce siz launch
In sizin _config.yml file:
url:-meli olmak ayarla -e sizin gerçek live adres ilehttps://(örneğinhttps://yourdomain.com). al bu yanlış ve sizin sitemap, canonical, ve feed bağlantılar tümü benşaret et -e yanlış place.permalink:controls sizin URL pattern. default puts date in her URL. çok söyleıda kişiler prefer bir cleaner:title/. Whatever siz seç, yapmayın change bir post’s URL later olmadan bir yönlendirme — o breaks bağlantılar ve loses sıralama sinyalleri.
thing en çok kişiler al yanlış
“It’s static HTML, so SEO is automatic.” No. Static HTML anlamına gelir Google -ebilir tarama sizin bençerik easily — şu’s bir head başla, değil bir finish line. siz hâlâ ihtiyaç duy sitemap, meta descriptions, canonical tags, ve good bençerik. static part sadece anlamına gelir siz won’t sahip JavaScript dizine ekleme problems şu tek-sayfa apps sahip.
iste tam sürüm — her plugin, sonraki theme düzeltmeler, category/tag yinelenen-bençerik trap, structured data, ve Baidu targeting? Switch -e Advanced tab.
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.ymlbreaks 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"> tagurl: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: Configurationpermalink:— 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: falsestrips Hexo’s generator fingerprint -den<head>.- Deploying -e bir subdirectory?
url:alone değildir enough — ayarlaroot:-e subdirectory path de (e.g.root: /blog/). Hexo’surl_forhelper builds root-relative bağlantılar, -ikenfull_url_forprepends fullurl:değer; alroot: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.ymlsets baseurl/root/permalinkvalues; bir theme’s kendi config (onun bundled_config.yml, veya bir_config.<theme>.ymlat 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(veyahexo --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ğbirhexo generateilk.
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 alkeywordsolarak 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 --savesitemap:
path:
- sitemap.xml
tags: true
categories: trueo 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 --saverobotstxt:
useragent: "*"
allow:
- /
disallow:
- /private/
sitemap: https://yourdomain.com/sitemap.xmlolmadan 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.
Permalink stability — abbrlink düzelt
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 --savepermalink: posts/:abbrlink/
abbrlink:
alg: crc32 # crc16 or crc32
rep: hex # dec or hexsiz 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
:idtoken. 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_indexvetrailing_htmldır separate controls, değil bir ayarlama. Hexo’spretty_urlsconfig toggles them independently — bir governs whether bir trailingindex.htmldı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:
sitemap: falseper archive (impractical ölçekte).- Theme-level
noindexon category/tag archive templates. - koru them dizine eklenmiş yalnızca eğer bir category dır bir genuine, curated topic hub ile gerçek değer.
- 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 ilehttps://) önce ilk deploy. - Put bir
CNAMEfile insource/bençin custom domains bu nedenle o değildir reset on herhexo 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.
AI özet
bir condensed take on Advanced sürüm:
- Hexo dır bir Node.js static site generator.
hexo generateoutputs pure static HTML, bu nedenle bençerik dır in ilk byte of response — no Web Rendering Service, no Wave 2 rendering-queue delay. Crawlable<a href>bağlantılar ve cheap—e-tarama CDN files come free. - Static HTML dır 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.
- Configure
_config.ymlilk.url:dır en çok consequential ayarlama — o feeds canonicals, sitemap, RSS, ve sayfalama; bir yanlış değer breaks tümü of them. Subdirectory deploys ayrıca ihtiyaç duyroot:ayarla. seç bir temizpermalink:(kaçın:idtoken — o değildir persistent genelinde bir cache reset) ve ayarlameta_generator: false. bir theme’s kendi config -ebilir’t override site-levelurl/root/permalink, ve bir safe-mode preview (--safe) disables her plugin ve script, bu nedenle yapmayın kontrol et SEO output orada. - Plugins yap heavy lifting:
hexo-generator-sitemap(readslastmod-denupdatedfield),hexo-generator-robotstxt,hexo-generator-feed,hexo-indexnow(Bing/Yandex, değil Google),hexo-abbrlinkbençin stable permalinks. - sonraki theme: supports canonical + Open Graph, ama yapar değil auto-print bir per-post meta description — bir template patch dır en çok yaygın düzelt. eğer bir theme ve bir SEO plugin -ebilir her ikisi emit aynı tags, enable yalnızca bir per tag category -e kaçın duplicates.
- Three traps: yanlış
url:; date-based default permalink şu breaks bağlantılar on rename (never change bir URL olmadan bir 301); ve auto-generated category/tag archives şu oluştur thin yinelenen bençerik (noindex veya canonical’laştır). şunlar archive/tag/ sayfalama routes come -den Hexo’s generator API, değilsource/files — bir theme/plugin update -ebilir silently expand indexable URL surface, bu nedenle diffpublic/sonra changes. - Baidu: static output removes bir gerçek obstacle (Baidu’s crawler handles JS poorly), ama o’s bir crawlability advantage, değil bir guarantee of dizine ekleme veya sıralama — yapğrula in Baidu Ziyuan. GitHub sayfalar dır blocked in China — kullan Gitee/Cloudflare/bir Chinese CDN.
- Vs. Hugo/Jekyll/Astro: aynı indexability floor; Hexo’s edge dır npm plugin ecosystem ve Chinese community. bençerik kalitesi decides sıralamalar, değil generator.
resmî dokümantasyon
birincil-kaynak dokümantasyon — -den Hexo, arama motorları, ve key plugins.
Hexo
- Hexo dokümantasyon — framework overview.
- Configuration —
url,permalink,meta_generator, ve rest of_config.yml. - Permalinks — URL pattern variables ve tradeoffs.
- Front önem taşır — per-post fields Hexo supports natively.
- GitHub sayfalar deployment — resmî deploy rehber.
Plugins
- hexo-generator-sitemap — resmî sitemap plugin.
- hexo-abbrlink — stable hash-based permalinks.
- sonraki theme SEO settings — canonical, webmaster verification, Open Graph.
arama motorları — rendering, bağlantılar, sitemaps
- JavaScript SEO basics — tarama → render → dizin phases bir static oluştur lets siz skip bençin bençerik.
- Dynamic rendering (deprecated) — Google recommending static rendering instead.
- yap sizin bağlantılar crawlable —
<a href>requirement Hexo satisfies tarafından default. - SEO rehberi bençin Web Developers — titles, descriptions, canonicals, sitemaps, structured data.
- Bing — tutma bençerik Discoverable ile Sitemaps — XML preference,
lastmodaccuracy, ve IndexNow.
Quotes -den kaynak
On—record statements -den Google, Bing, ve John Mueller şu bear yapğrudan on bir Hexo (static) site.
Google — static rendering dır recommended path
- “Dynamic rendering was a workaround and not a long-term solution for problems with JavaScript-generated content in search engines… Instead, we recommend that you use server-side rendering, static rendering, or hydration as a solution.” — Hexo produces static rendering. kaynak
- “Server-side or pre-rendering is still a great idea because it makes your website faster for users and crawlers, and not all bots can run JavaScript.” kaynak
Bing — sitemaps ve freshness
- “XML remains the preferred format for sitemaps” — çünkü o supports structured metadata like
lastmodbençin freshness assessment. kaynak - On
lastmod: o “should reflect the true last modification time of the page content, not the sitemap file itself.” — Hexo gotcha şuupdatedfield -meli olmak kept güncel. kaynak - “By combining sitemaps for comprehensive site coverage with IndexNow for fast, URL-level submission, you provide the strongest foundation for keeping your content fresh, discoverable, and visible.” kaynak
Gary Illyes, Google — static siteler dır cheap -e tarama
- “If you are making expensive database calls, that’s going to cost the server a lot.” — static HTML -den bir CDN yapar none. Coverage
John Mueller — switching generators değildir itself bir SEO win
- “Will this change how your site appears in all search engines? Will your site’s SEO suddenly explode? No. Also No.” — bençerik kalitesi, değil generator choice, drives sıralamalar. kaynak
Hexo SEO kontrol listesi
bir geç -e yapğrula bir Hexo site dır arama-friendly — en çok of bunlar dır off tarafından default:
-
url:in_config.ymldır sizin live domain ilehttps://(değil bir placeholder, değilhttp://). Deploying -e bir subdirectory?root:dır ayarla de. - bir permalink pattern dır seçilen ve won’t churn — ideally
:title/veyahexo-abbrlinkbençin stable hashes.:idtoken değildir kullanılan (o değildir persistent genelinde bir database cache reset). - eğer her ikisi bir theme ve bir SEO plugin -ebilir emit canonical/OG/JSON-LD tags, tam olarak bir of them dır enabled her biri bençin tag category — değil her ikisi.
-
meta_generator: falseayarla -e drop Hexo fingerprint (optional ama tidy). -
hexo-generator-sitemapinstalled;sitemap.xmlgenerates ve dır submitted in Google arama Console ve Bing Webmaster araçlar. -
updated:front önem taşır dır kept güncel bu nedenle sitemaplastmoddır accurate. -
hexo-generator-robotstxtinstalled (veya bir manualrobots.txtinsource/) ile sitemap pointer. - her post sahiptir bir
description:, ve theme aslında prints<meta name="description">(patch sonraki eğer gerekli). - Canonical tags dır emitted ve resolve -e live HTTPS URLs (sonraki:
canonical: true). - Open Graph / Twitter Card tags present (sonraki oluşturulmuş-in, veya bir head-partial edit).
-
BlogPostingJSON-LD eklendi (template snippet veyahexo-seoplugin). - Category/tag archives ele alınır — noindexed, canonicalized, veya kept yalnızca olarak gerçek topic hubs (değil left olarak thin duplicates).
- Paginated archive sayfalar self-canonical’laştır (sayfa 2 → sayfa 2, değil sayfa 1).
- Theme JS/CSS audited in Lighthouse; minifier + lazy-load image plugins kabul edilen.
- GitHub sayfalar:
CNAMEinsource/, HTTPS enforced, deploy via Actions -e kaçın CNAME reset. - Baidu siteler: değil on GitHub sayfalar; Baidu verification + Baidu sitemap + URL push configured.
- No URL ever changed olmadan bir 301 yönlendirme in place.
Hexo SEO — kısa başvuru
On tarafından default vs. siz -meli ekle o
| SEO feature | Hexo default | nasıl -e al o |
|---|---|---|
| Static HTML / crawlable bençerik | Yes | hexo generate |
Crawlable <a href> bağlantılar | Yes | theme templates |
| XML sitemap | No | hexo-generator-sitemap |
| robots.txt | No | hexo-generator-robotstxt veya manual file |
| RSS feed | No | hexo-generator-feed |
| Per-post meta description | No (theme-dependent) | description: + theme patch |
| canonical etiketi | No (theme-dependent) | sonraki canonical: true |
| Open Graph / Twitter Card | No (theme-dependent) | sonraki oluşturulmuş-in veya head-partial edit |
| Structured data (JSON-LD) | No | template snippet veya hexo-seo plugin |
| Stable permalinks | No (date/filename based) | hexo-abbrlink |
| IndexNow submission | No | hexo-indexnow (Bing/Yandex, değil Google) |
Key _config.yml settings
| ayarlama | neden önemli olduğu |
|---|---|
url: | Base bençin canonical, sitemap, RSS, sayfalama — yanlış değer breaks tümü of them |
root: | Subdirectory path bençin bir subdirectory deploy — required alongside url: veya root-relative bağlantılar break |
permalink: | Default dır date-based; :title/ dır cleaner; never change sonra publishing; kaçın non-persistent :id token |
meta_generator: false | Removes <meta name="generator" content="Hexo"> tag |
Eklenti kurulum komutları
npm install hexo-generator-sitemap --save
npm install hexo-generator-robotstxt --save
npm install hexo-generator-feed --save
npm install hexo-abbrlink --save
npm install hexo-indexnow --saveKısa bilgiler
- Hexo output skips Google’s Wave 2 rendering queue — bençerik dır in ilk fetch.
lastmodcomes -denupdatedfield (falls back -edate) — koru o güncel.<meta name="keywords">dır ignored tarafından Google (since 2009) — organizational yalnızca.- Category/tag archives dır auto-generated ve thin → noindex veya canonical’laştır.
- Baidu -ebilir’t tarama JS well → static Hexo dır bir advantage, ama GitHub sayfalar dır blocked in China.
oluştur, sun, ve verify bir Hexo site
basic Hexo oluştur loop dır aynı everywhere; shell differs.
macOS / Linux
# install dependencies and the SEO plugins
npm install
npm install hexo-generator-sitemap hexo-generator-robotstxt hexo-generator-feed --save
# clean stale output, then build the static HTML
npx hexo clean && npx hexo generate
# preview locally before deploying
npx hexo server
# confirm the sitemap and robots.txt were actually generated
ls public/sitemap.xml public/robots.txtWindows (PowerShell)
# install dependencies and the SEO plugins
npm install
npm install hexo-generator-sitemap hexo-generator-robotstxt hexo-generator-feed --save
# clean stale output, then build the static HTML
npx hexo clean; npx hexo generate
# preview locally before deploying
npx hexo server
# confirm the sitemap and robots.txt were actually generated
Get-ChildItem public\sitemap.xml, public\robots.txtyapğrula bençerik dır in raw HTML (değil JS-rendered)
whole benşaret et of Hexo dır şu bençerik dır zaten in HTML. Verify o tarafından checking şu sizin post text görünür in raw response, önce herhangi bir JavaScript runs.
macOS / Linux
# fetch the raw HTML and search for a phrase from your post body
curl -s https://yourdomain.com/your-post/ | grep -i "a sentence from your post"
# confirm the canonical tag points at the live HTTPS URL
curl -s https://yourdomain.com/your-post/ | grep -i 'rel="canonical"'Windows (PowerShell)
# fetch the raw HTML and search for a phrase from your post body
(Invoke-WebRequest https://yourdomain.com/your-post/).Content | Select-String "a sentence from your post"
# confirm the canonical tag points at the live HTTPS URL
(Invoke-WebRequest https://yourdomain.com/your-post/).Content | Select-String 'rel="canonical"'eğer phrase shows up in curl/Invoke-WebRequest output, o’s in static HTML
ve Google sees o on Wave 1 — tam olarak ne siz iste.
araçlar bençin Hexo SEO
Hexo plugins ( SEO toolkit)
- hexo-generator-sitemap — resmî XML sitemap generator; reads
lastmod-denupdatedfield. - hexo-generator-robotstxt — generates
robots.txtile bir sitemap pointer. - hexo-generator-feed — RSS/Atom feed bençin aggregators ve Google News eligibility.
- hexo-abbrlink — stable, hash-based permalinks şu survive file renames.
- hexo-indexnow / hexo-submit-urls—e-arama-motor — push changed URLs -e Bing (IndexNow) ve Baidu respectively.
- hexo-tümü-minifier / hexo-lazyload-image — temel Web Vitals helpers.
- hexo-seo — tümü-in-bir option ile structured-data generation.
Testing ve izleme
- Google arama Console — submit sitemap, inspect URLs, watch dizine ekleme.
- Bing Webmaster araçlar — submit sitemap, configure IndexNow, çalıştır site Scan.
- Baidu Webmaster (Ziyuan) — verification ve URL push bençin Chinese-audience siteler.
- Lighthouse / PageSpeed Insights — denetim theme JS/CSS bençin temel Web Vitals regressions.
- View kaynak / curl — yapğrula bençerik, canonical, ve meta description dır in raw HTML (see Scripts tab).
Hexo SEO mistakes -e kaçın
Concrete mistakes kişiler aslında yap ne zaman onlar ayarla up veya migrate bir Hexo site — prevention, değil diagnosis (see Troubleshooting tab bençin şu).
Leaving url: olarak placeholder veya on http://
Publishing ile url: http://yoursite.com hâlâ ayarla -e scaffold default veya
yanlış protokol dır neden o’s yanlış: canonical tags, sitemap, RSS bağlantılar, ve
sayfalama tümü oluştur off bu bir değer, bu nedenle her bir of them silently benşaret eder at
yanlış adres. ne yapılacağı instead: ayarla url: -e sizin gerçek live domain ile https://
önce sizin ilk hexo generate, ve re-kontrol et o herhangi bir time siz move domains.
Renaming bir post file (veya changing onun slug) ile no yönlendirme
default permalink derives URL -den post’s filename ve date, bu nedenle renaming
Markdown file veya editing date changes live URL. neden o’s yanlış: her
inbound bağlantı ve herhangi bir accumulated sıralama sinyal on eski URL dır now pointing at bir
404. ne yapılacağı instead: switch -e hexo-abbrlink bençin bir stable hash-based permalink
önce siz sahip bağlantılar -e lose, ve -erseniz ever -meli change bir published URL, ekle bir 301
yönlendirme at sizin ana makine veya CDN.
Shipping olmadan hexo-generator-sitemap ve hexo-generator-robotstxt
Assuming bir static site generator “just handles” crawler basics dır neden o’s yanlış: bir
default Hexo install produces neither bir sitemap nor bir robots.txt — orada’s no
sitemap pointer bençin crawlers -e bul. ne yapılacağı instead: install her ikisi plugins,
yapğrula public/sitemap.xml ve public/robots.txt var ol sonra hexo generate, ve
submit sitemap in arama Console ve Bing Webmaster araçlar.
Leaving category ve tag archives open -e dizine ekleme ölçekte
Letting Hexo’s auto-generated category/tag sayfalar accumulate olarak post count grows dır neden o’s yanlış: her archive dır filled ile post excerpts şu yinelenen posts themselves, bu nedenle siz end up ile hundreds of thin sayfalar competing bençin aynı sorgular ve diluting tarama attention. ne yapılacağı instead: noindex archive templates, self-canonical’laştır paginated archive sayfalar, veya koru bir category dizine eklenmiş yalnızca ne zaman o’s bir genuine, curated topic hub.
Assuming hexo-indexnow kapsar Google de
Installing IndexNow ve expecting o -e speed up Google dizine ekleme dır neden o’s yanlış: IndexNow dır bir Bing/Yandex/Baidu protokol — Google yapmaz consume o bençin general sayfalar, bu nedenle siz hâlâ ihtiyaç duy bir submitted sitemap bençin Google-side discovery. ne yapılacağı instead: kullan IndexNow bençin Bing/Yandex freshness ve rely on sitemap plus olağbir tarama bençin Google.
Deploying -e GitHub sayfalar olmadan bir durable CNAME
Relying on hexo-deployer-git alone bençin bir custom domain dır neden o’s yanlış: bazı
deploy paths reset veya omit CNAME file, hangi silently drops sizin custom domain
back -e default github.io adres (ve breaks HTTPS enforcement). ne yapılacağı
instead: koru bir CNAME file in source/ bu nedenle o ships ile her oluştur, ve prefer bir
GitHub Actions workflow şu publishes oluşturulmuş public/ folder intact.
yaygın Hexo SEO problems
Symptom-ilk lookup bençin sorunlar siz zaten sahip on bir Hexo site.
Sitemap.xml döndürür bir 404 sonra deploy
Symptom: https://yoursite.com/sitemap.xml 404s, veya arama Console raporlar o
couldn’t fetch sitemap.
muhtemel neden ol: hexo-generator-sitemap değildir installed, değildir listed in
_config.yml, veya public/ oluştur output wasn’t fully deployed (bir partial upload
veya bir deploy adım şu excludes dotfiles/XML).
düzelt + kontrol et: çalıştır npm install hexo-generator-sitemap --save, ekle bir sitemap:
block -e _config.yml, o hâlde çalıştır hexo clean && hexo generate ve yapğrula
public/sitemap.xml vardır locally önce deploying. sonra redeploying, fetch
live URL yapğrudan (curl -I https://yoursite.com/sitemap.xml) ve yapğrula bir 200.
Google arama Console shows sayfalar olarak “Discovered — currently not indexed”
Symptom: Posts dır crawlable ve load fine in bir browser, ama arama Console’s sayfa dizine ekleme rapor leaves them in “Discovered, not indexed” bençin weeks.
muhtemel neden ol: thin category/tag archive sayfalar dır eating bir disproportionate share of tarama attention, veya posts themselves dır thin/duplicative of archives şu excerpt them.
düzelt + kontrol et: noindex veya canonical’laştır auto-generated category/tag archives (see anti-patterns entry above), istek dizine ekleme on bir handful of affected URLs in arama Console, ve re-kontrol et sayfa dizine ekleme rapor sonra bir few days -e bir couple of weeks — bu değildir bir immediate sinyal.
Meta description değildir görünme in arama snippets
Symptom: sizin post sahiptir bir description: field in front önem taşır, ama Google shows bir
auto-generated snippet instead, veya view-source: shows no
<meta name="description"> tag at tümü.
muhtemel neden ol: theme’s head template never prints page.description — bu
tek en çok yaygın sonraki gap, ve o affects diğer themes de.
düzelt + kontrol et: patch theme’s head partial -e output
<meta name="description" content="{{ page.description or config.description }}">
(sonraki-style templating), rebuild, o hâlde curl -s https://yoursite.com/your-post/ | grep -i 'name="description"' -e yapğrula tag dır present in raw HTML önce siz wait
on bir snippet refresh.
canonical etiketi dır missing veya benşaret eder at yanlış URL
Symptom: curling bir post shows no rel="canonical" tag, veya o resolves -e http://
yerine https://, veya -e bir stale domain.
muhtemel neden ol: theme’s canonical feature değildir enabled (sonraki gerektirir
canonical: true in _config.next.yml), veya url: in main _config.yml dır yanlış
— canonical tags oluştur off şu base URL.
düzelt + kontrol et: yapğrula url: dır correct ilk, enable theme’s canonical option,
rebuild, ve kontrol et ile curl -s https://yoursite.com/your-post/ | grep -i 'rel="canonical"' — değer -meli tam olarak match live HTTPS URL.
Custom domain reverts -e username.github.io sonra bir deploy
Symptom: bir working custom domain on GitHub sayfalar stops resolving sonra bir routine
hexo deploy, falling back -e default github.io adres.
muhtemel neden ol: deploy süreç overwrote veya omitted CNAME file şu GitHub
sayfalar reads -e know sizin custom domain.
düzelt + kontrol et: put (veya restore) bir CNAME file containing sadece sizin domain in
source/ bu nedenle o’s copied -e her oluştur, redeploy, ve yapğrula in repo’s
Settings → sayfalar şu custom domain field hâlâ shows sizin domain ile HTTPS
enforced.
Baidu değildir dizine ekleme site at tümü
Symptom: Baidu Ziyuan (Baidu Webmaster) shows little -e no tarama activity hatta gerçben Google indexes site fine.
muhtemel neden ol: site dır hosted on GitHub sayfalar, bu da blocked in mainland China, bu nedenle Baidu’s crawler çoğu zaman -ebilir’t ulaş o consistently.
düzelt + kontrol et: move Baidu-facing hosting -e Gitee sayfalar, Cloudflare, veya bir Chinese
CDN, ekle Baidu site verification ve bir Baidu-format sitemap
(hexo-generator-baidu-sitemap), o hâlde watch Baidu Ziyuan tarama-frequency rapor
üzerinde following weeks bençin renewed activity.
test et yourself: Hexo SEO
Five quick questions on doing SEO ile Hexo static site generator. seç bir yanıt her biri bençin, o hâlde kontrol et.
kaynaklar worth sizin time
benim related yazma
- JavaScript SEO: bir Definitive rehber — rendering, DOM parity, ve neden static/pre-rendered output dır low-risk end of spectrum.
- Beginner’s rehber -e teknik SEO — nerede rendering architecture fits in bigger picture.
benim speaking
- nasıl arama çalışır (SlideShare) — benim walkthrough of tarama, rendering, dizine ekleme, ve sıralama. (benim standing disclaimer uygulanır: “This is my understanding of systems… not going to be 100% complete or accurate.”)
-den yaklaşık industry
- Hexo dokümantasyon — resmî docs bençin config, permalinks, front önem taşır, ve deployment.
- hexo-generator-sitemap — resmî sitemap plugin README.
- sonraki theme SEO settings — canonical, webmaster verification, ve Open Graph bençin en çok-kullanılan theme.
- Google — JavaScript SEO basics — tarama → render → dizin phases bir static oluştur lets siz skip bençin bençerik.
- Bing — tutma bençerik Discoverable ile Sitemaps — XML preference,
lastmodaccuracy, ve IndexNow. - John Mueller — bazı design decisions — nasıl he runs his kendi static blog (sitemap + RSS + Article structured data), ve neden switching generators değildir itself bir SEO win.
Değişiklik günlüğü
8 Ağu 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
18 Tem 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.