Panduan Sitecore SEO

cara membuat sebuah Sitecore situs peringkat — two platforms itu perubahan everything (XP vs XM Cloud), what SXA gives Anda out dari box dan what ini doesn't, dan platform-spesifik traps itu catch enterprise teams: default robots.txt itu blocks setiap crawler, aliases itu buat duplicate konten di HTTP 200, dan metadata itu silently fails untuk inherit because blank isn't NULL.

Pertama kali diterbitkan: 27 Jun 2026 · Terakhir diperbarui: 3 Agu 2026 · Advanced
Bahasa

Sitecore adalah sebuah enterprise DXP itu ships dengan almost no SEO functionality out dari box — dan two product lines behave very differently. Sitecore XP adalah traditional server-rendered.NET; XM Cloud (renamed SitecoreAI di Sitecore's saat ini docs) adalah headless SaaS where sebuah Next.js front end (via JSS, now published sebagai konten SDK) controls HTML dan Anda manage SEO dengan Next.js metadata APIs. SXA menambahkan basics (sitemap, robots.txt management, metadata fields) tetapi everything masih perlu configuration. Three Sitecore-spesifik traps catch teams: default robots.txt blocks setiap crawler jika robots field adalah left blank (empty ≠ permissive); item aliases sajikan HTTP 200 pada both URLs, membuat benar duplicate konten itu canonical doesn't fix automatically; dan blank metadata fields don't fall back untuk Standard nilai unless 'Reset Blank' adalah enabled, because blank isn't NULL. pada enterprise scale Sitecore lives di, governance — sebuah base SEO template, validation aturan, environment control — penting sebagai much sebagai apa pun single setting.

TL;DR — Sitecore ships dengan almost no SEO functionality; SXA menambahkan basics tetapi perlu configuration. two platforms diverge completely: XP adalah server-rendered.NET (crawler see finished HTML, personalization renders server-side); XM Cloud adalah headless, where sebuah Next.js front end controls HTML dan Anda manage SEO dengan Next.js metadata APIs (generateMetadata, MetadataRoute) — dengan SSG/ISR recommended rendering modes. platform-spesifik traps: default robots.txt blocks semua crawler when field adalah blank; item aliases kembalikan HTTP 200 pada both URLs (benar duplicate konten, no canonical fix oleh default); dan blank metadata fields don’t inherit Standard nilai unless “Reset Blank” (terjemahan) “Reset Blank” adalah enabled (blank ≠ NULL). di Sitecore’s enterprise scale, governance — sebuah base SEO template, validation aturan, environment control — adalah nyata berfungsi. (Naming note: Sitecore’s docs now panggil XM Cloud product SitecoreAI; architecture below adalah unchanged.)

Evidence for this claim The article's described sitecore-seo capabilities must be evaluated against the platform's current documentation rather than assumed to be search-engine behavior. Scope: Platform-specific capability documentation. Confidence: high · Verified: Sitecore: SEO Evidence for this claim Regardless of platform, Google needs crawlable URLs, accessible rendered content, descriptive metadata, and valid search directives. Scope: Google requirements independent of platform. Confidence: high · Verified: Google Search Central: SEO Starter Guide

Two platforms, two completely berbeda SEO models

single sebagian besar penting thing untuk establish sebelum touching anything: which Sitecore adalah Anda pada? product name adalah yang sama; SEO mechanics adalah not.

  • Sitecore XP (Experience Platform). Traditional.NET, server-rendered via Razor/MVC, deployed pada-premise atau di managed cloud. Googlebot umumnya menerima finished HTML. SEO adalah managed inside Sitecore — di templates, Standard nilai, dan permintaan pipelines.
  • XM Cloud. Headless SaaS. Sitecore stores konten dan exposes ini di atas sebuah GraphQL API (Experience Edge); sebuah decoupled front end — almost selalu Next.js dibangun dengan Sitecore JSS (JavaScript Services) — renders HTML. SEO lives di Next.js application layer. Sitecore holds konten; Next.js controls output.

sebuah naming note jika Anda’re memeriksa Sitecore’s own docs while reading ini: sebagai dari mid-2026, Sitecore’s documentation situs memiliki renamed composable SaaS product dari “XM Cloud” (terjemahan) “XM Cloud” untuk SitecoreAI — old doc.sitecore.com/xmc/... dan developers.sitecore.com/learn/accelerate/xm-cloud/... URL paths now redirect untuk .../sai/.../sitecoreai/... paths, dan platform’s own landing halaman describes ini sebagai “a cloud-native, SaaS, hybrid headless digital experience platform.” (terjemahan) “sebuah cloud-native, SaaS, hybrid headless digital experience platform.” architecture ini artikel describes adalah unchanged — Experience Edge, GraphQL, sebuah decoupled Next.js front end — tetapi front-end SDK adalah now published sebagai konten SDK (open source, Next.js-pertama) alih-alih di bawah JSS name, dan Anda’ll see “SitecoreAI” (terjemahan) “SitecoreAI” alih-alih “XM Cloud” (terjemahan) “XM Cloud” di saat ini screenshots dan menu labels. I’ve dipertahankan “XM Cloud” (terjemahan) “XM Cloud” di ini artikel because itu’s masih istilah sebagian besar practitioners search untuk dan sebagian besar existing implementations run pada, tetapi don’t menjadi thrown jika Anda Sitecore rep atau Cloud Portal now says SitecoreAI — sama platform, sama SEO mechanics below.

di both cases practical baseline adalah yang sama. sebagai Fishtank’s Marcel put ini back di 2018, “Sitecore ships with virtually no SEO functionality (with the exception of SXA which includes some basics).” (terjemahan) “Sitecore ships dengan virtually no SEO functionality (dengan exception dari SXA which mencakup beberapa basics).” itu’s masih right mental model. SXA (Sitecore Experience Accelerator) adalah layer itu gives Anda sebuah sitemap module, robots.txt management di konten tree, dan standardized metadata fields. Without ini, semua dari itu adalah custom development.

ini adalah squarely SEO perusahaan territory. Sitecore implementations involve dedicated developers dan solusi partners, dan — sebagai I’ve written tentang enterprise situs umumnya“the more likely you are to run into multiple tech stacks,” (terjemahan) “ more mungkin Anda adalah untuk run ke multiple tech stacks,” legacy sistem, dan split ownership di seluruh bagian. pertahankan itu di mind: pada Sitecore, fix untuk sebuah SEO masalah adalah sering sebuah template perubahan atau sebuah pipeline override owned oleh sebuah developer, not sebuah setting Anda flip yourself.

Metadata — dan blank-vs-NULL trap

SEO fields (halaman judul, deskripsi meta, Open Graph tags) live di Anda halaman data templates. clean pattern adalah sebuah base SEO template itu setiap halaman template inherits dari, so fields exist everywhere. Ken Gray dari Konabos notes default gap directly: “out-of-the-box, Sitecore’s data templates might not include some of the Meta Data fields.” (terjemahan) “out-dari—box, Sitecore’s data templates mungkin not sertakan beberapa dari Meta data fields.”

Standard nilai let Anda set sensible defaults untuk itu fields (misalnya sebuah $name token sebagai sebuah judul fallback). tetapi here’s Sitecore-spesifik trap itu produces missing metadata di scale. Sitecore’s own docs adalah explicit: “If the value of a field is NULL, the item contains the standard value for that field as defined in the data template for that item.” (terjemahan) “jika nilai dari sebuah field adalah NULL, item berisi standard nilai untuk itu field sebagai defined di data template untuk itu item.” catch adalah itu sebuah blank field adalah not NULL. When sebuah konten author clears sebuah deskripsi meta, ini becomes blank — dan sebuah blank field melakukan not fall back untuk Standard nilai unless “Reset Blank” (terjemahan) “Reset Blank” adalah enabled pada itu field. hasil adalah halaman rendering <meta name="description" content=""> alih-alih inheriting sebuah default. pada sebuah besar situs, itu’s thousands dari empty deskripsi nobody intended.

fix adalah twofold: enable “Reset Blank” (terjemahan) “Reset Blank” pada metadata fields where sebuah fallback adalah desired, dan tambahkan validation aturan itu enforce non-empty judul dan deskripsi (dan character limits) so authors dapat’t silently ship blanks.

URL management dan alias trap

Sitecore generates URLs dari konten-tree path oleh default; clean URLs come dari SXA settings atau custom item resolvers.

trap adalah item aliases — alternate URLs Anda dapat attach untuk apa pun item. mereka look harmless dan mereka adalah not SEO-neutral. sebagai Dheer Rajpoot documented, “no redirect (no 301 or 302 HTTP status code) happens when you are using aliases in Sitecore,” (terjemahan) “no redirect (no 301 atau 302 HTTP kode status) happens when Anda adalah menggunakan aliases di Sitecore,” which berarti “multiple URLs will be created for a single page URL.” (terjemahan) “multiple URLs akan menjadi dibuat untuk sebuah single halaman URL.” Both canonical URL dan alias kembalikan HTTP 200 dengan identical konten — genuine duplicate konten, dan Sitecore melakukan not auto-emit sebuah tag canonical untuk resolve ini.

Anda memiliki two governance-grade fixes:

  1. Override AliasResolver di HttpRequest pipeline untuk inject sebuah tag canonical pointing di nyata URL, atau
  2. Modify alias pipeline untuk issue sebuah 301 redirect alih-alih serving alias directly.

My recommendation adalah kedua: treat aliases sebagai redirects, not alternate access URLs. Ken Gray’s advice applies broadly here — “use Sitecore’s canonical link management to specify the preferred version of a URL” (terjemahan) “gunakan Sitecore’s canonical tautan management untuk specify preferred versi dari sebuah URL” — tetapi pada aliases specifically, sebuah 301 adalah cleaner daripada relying pada canonical hints.

Sitemaps

pada SXA, configure sitemap di situs/Settings → mesin pencari Sitemap → Sitemap Mode. Two relevant modes: Stored di cache ( default — regenerates dynamically; baik untuk frequently updated atau Azure-hosted situs) dan Stored di file (sebuah static file; better untuk besar situs itu perubahan infrequently, avoiding regeneration overhead). SXA automatically appends sitemap URL untuk robots.txt, dan sitemap lives di /sitemap.xml. sebuah umum failure: jika TargetHostName isn’t configured, sitemap mengembalikan sebuah 404.

pada XM Cloud + Next.js, generate sitemap programmatically dengan MetadataRoute.Sitemap, querying Experience Edge di atas GraphQL — which lets Anda exclude non-dapat diindeks URLs di application layer. Sitecore’s own guidance notes itu “Next.js offers built-in sitemap and robots.txt generation.” (terjemahan) “Next.js offers dibangun-di sitemap dan robots.txt generation.”

Robots.txt — default itu blocks everything

ini adalah Sitecore trap dengan highest blast radius. pada SXA, robots.txt adalah configured di konten tree (situs Settings → Robots konten field), dan Anda harus republish situs setelah sebuah perubahan. gotcha, straight dari Sitecore’s docs: “If no rules are added, the system writes: ‘User-agent: * Disallow: /’” (terjemahan) “jika no aturan adalah ditambahkan, sistem writes: ‘pengguna-agent: * Disallow: /’” — which blocks setiap crawler. sebuah empty robots field adalah not sebuah permissive robots.txt; ini adalah sebuah situs-wide block. Anda harus explicitly set:

User-agent: *
Allow: /

pada sebagian besar platforms sebuah missing robots.txt berarti “crawl everything.” (terjemahan) “crawl everything.” pada Sitecore ini dapat berarti opposite, so verifying production robots.txt adalah sebuah non-negotiable launch langkah. pada XM Cloud + Next.js, gunakan MetadataRoute.Robots untuk sebuah code-driven, jenis-safe robots.txt. Separately, CM (konten Management) instances dan QA/staging environments seharusnya selalu disallow semua — hanya CD (konten Delivery) production instance seharusnya menjadi dapat di-crawl.

Multilingual, hreflang, dan multisite

Sitecore stores language versi sebagai separate versi dari yang sama item, not separate items. itu, combined dengan language fallback (item-tingkat atau more granular field-tingkat, e.g. sebuah es-MX → es-ES → en chain), dapat sajikan sama konten di multiple language URLs — sebuah duplicate-konten vector unless hreflang signals relationship. dan hreflang adalah not automatic di standard Sitecore; ini memiliki untuk menjadi ditambahkan untuk templates (SXA dapat generate ini when configured), dengan full absolute URLs, bidirectional references, dan sebuah x-default. sebagai John Mueller put ini (cited oleh Jakub Koba), “TBH hreflang is one of the most complex aspects of SEO (if not the most complex one).” (terjemahan) “TBH hreflang adalah one dari paling kompleks aspects dari SEO (jika not paling kompleks one).” Don’t underestimate ini.

Sitecore juga natively mendukung multisite — banyak situs di one install, sometimes sharing konten. Shared konten di seluruh situs boundaries perlu sebuah deliberate canonical strategy, dan setiap situs perlu -nya own sitemap dan robots.txt. ini adalah exactly jenis dari split-ownership, shared-infrastructure complexity I flagged di enterprise SEO teknis: “Sometimes different people are responsible for different sections of the website or even different pages, which can make internal linking time-consuming.” (terjemahan) “Sometimes berbeda people adalah responsible untuk berbeda bagian dari situs web atau bahkan berbeda halaman, which dapat membuat internal linking time-consuming.”

Headless rendering strategy (XM Cloud)

One layer-ownership poin worth menjadi explicit tentang, since ini trips people up: XM Cloud environments memiliki both sebuah editing host dan sebuah rendering host, dan mereka adalah not yang sama thing. Sitecore’s own docs draw line clearly — editing host exists hanya untuk power WYSIWYG editing experience inside halaman Builder/Design Studio, “is not set up or scaled for serving live traffic,” (terjemahan) “adalah not siapkan atau scaled untuk serving live traffic,” dan sees internal (author-hanya) traffic. rendering host adalah public-facing Next.js app — hosted pada Vercel, Netlify, atau Azure, consuming konten dari Experience Edge, dan scaled untuk sajikan nyata situs pengunjung. crawler hanya ever hit rendering host; editing host’s rendering perilaku (atau sebuah editing-host URL leaking ke sebuah sitemap atau getting ditautkan untuk) adalah not representative dari what Googlebot sees dan isn’t something mesin pencari seharusnya menjadi able untuk reach di semua.

pada XM Cloud rendering mode Anda choose di Next.js adalah SEO decision. Akshay Sura (Konabos) lays out four options cleanly:

StrategySEO impact
SSG (static)Best — “SSG pre-renders HTML at build time… Search engines can easily crawl the pre-rendered HTML.” (terjemahan) “SSG pre-renders HTML di bangun time… mesin pencari dapat easily crawl pre-rendered HTML.”
ISR (incremental static regen)baik — static performa dengan background freshness; recommended untuk konten di scale
SSR (server-side render)baik — “Fully rendered HTML is ready for search engines to index.” (terjemahan) “Fully rendered HTML adalah ready untuk mesin pencari untuk indeks.”
CSR (client-side render)Worst — “Search engines may struggle with indexing JavaScript-rendered content.” (terjemahan) “mesin pencari dapat struggle dengan pengindeksan JavaScript-rendered konten.”

recommendation: SSG atau ISR untuk SEO-critical konten; reserve CSR untuk interactive UI hanya. Metadata adalah set via generateMetadata (App Router). David Austin (Fishtank) notes sebuah performa nicety: “All fetch calls within generateMetadata are memoized, meaning identical URLs are only fetched once across the application, preventing redundant requests.” (terjemahan) “semua fetch panggilan di dalam undefined adalah memoized, meaning identical URLs adalah hanya fetched once di seluruh application, preventing redundant permintaan.” dan sebagai Sebastián Aliaga puts ini, “The dynamic approach is the better method for Sitecore Headless as you’ll be able to take what’s part of the page’s layout data and incorporate it.” (terjemahan) “ dynamic approach adalah better metode untuk Sitecore Headless sebagai Anda’ll menjadi able untuk take what’s bagian dari halaman’s layout data dan incorporate ini.”

Personalization — don’t cloak

Sitecore’s personalization adalah sebuah nyata SEO consideration. pada XP, personalization renders server-side, so Googlebot sees default (un-personalized) experience — pastikan itu default adalah complete dan SEO-dioptimalkan, not thin. pada XM Cloud, client-side personalization (JSS) dapat hide konten dari crawler itu don’t run JavaScript; pre-render default dengan SSR, atau personalize di edge.

hard aturan di seluruh both: tidak pernah sajikan berbeda konten untuk crawler daripada untuk pengguna — itu’s cloaking, dan ini adalah sebuah guidelines violation. tidak pernah personalize primary H1, FAQ konten, atau data terstruktur dengan client-side aturan. Personalization seharusnya tambahkan untuk, tidak pernah replace, canonical konten.

data terstruktur

gunakan JSON-LD di <script type="application/ld+json">. pada XP, render ini dari template fields di Anda Razor view atau via pipeline; pada XM Cloud, model schema fields di templates, retrieve di atas GraphQL, dan render di Next.js component. Prioritize FAQPage, HowTo, Product, Article, dan BreadcrumbList. Anda dapat deploy via sebuah tag manager — Martha van Berkel (Schema App) notes teams “typically use JavaScript to deploy Schema Markup to Sitecore… both efficient and scalable” (terjemahan) “typically gunakan JavaScript untuk deploy Schema Markup untuk Sitecore… both efficient dan scalable” — tetapi menjadi aware client-side injection berarti AI crawler dapat miss ini, so prefer server-rendered JSON-LD untuk maximum coverage. Peter Lambrou (Codehouse) frames payoff simply: “Add schema markup to the page HTML to make your search results appear more attractive.” (terjemahan) “tambahkan schema markup untuk halaman HTML untuk membuat Anda hasil pencarian appear more attractive.”

Enterprise governance — where nyata berfungsi adalah

Single settings aside, SEO outcome pada sebuah big Sitecore install adalah decided oleh governance. I’ve said sebelum itu enterprise situs adalah where SEO teknis shines precisely because “enterprise sites can have complex infrastructures and a lot of legacy systems in place” (terjemahan) “enterprise situs dapat memiliki kompleks infrastructures dan sebuah lot dari legacy sistem di place” — dan “I doubt there’s a major website that is technically perfect.” (terjemahan) “I doubt there’s sebuah major situs web itu adalah technically perfect.” recurring Sitecore-spesifik governance items:

  • Template sprawl. Multiple templates untuk yang sama purpose, setiap dengan berbeda (atau missing) SEO fields. Audit them; enforce sebuah base SEO template itu setiap halaman template inherits.
  • Metadata validation. “Reset Blank” (terjemahan) “Reset Blank” plus field-tingkat validation so authors dapat’t ship empty atau di atas-length judul dan deskripsi.
  • Alias governance. sebuah policy itu aliases adalah hanya dibuat dengan sebuah canonical override atau sebagai 301s.
  • Environment control. CM/QA/staging disallowed; production explicitly allowed dan verified.
  • anggaran crawling di scale. Faceted navigation, language versi, dan parameter URLs dapat blow up URL space; curate sitemaps dan govern robots/noindex tightly. (See anggaran crawling.)

Add an expert note

Pin an expert quote

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