Panduan Sitecore SEO

cara membuat sebuah Sitecore situs peringkat — dua platforms itu perubahan semuanya (XP vs XM Cloud), apa SXA memberikan Anda out dari box dan apa ini tidak, dan platform-spesifik traps itu catch enterprise tim: default robots.txt itu blocks setiap crawler, aliases itu buat duplicate konten di HTTP 200, dan metadata itu silently fails untuk inherit karena blank tidak NULL.

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

Sitecore adalah sebuah enterprise DXP itu ships dengan hampir Tidak SEO functionality out dari box — dan dua product lines behave very differently. Sitecore XP adalah tradisional server-dirender.NET; XM Cloud (renamed SitecoreAI di Sitecore's saat ini docs) adalah headless SaaS di mana sebuah Berikutnya.js front end (melalui JSS, now published sebagai konten SDK) controls HTML dan Anda manage SEO dengan Berikutnya.js metadata APIs. SXA menambahkan basics (sitemap, robots.txt management, metadata fields) tetapi semuanya masih perlu configuration. Three Sitecore-spesifik traps catch tim: default robots.txt blocks setiap crawler jika robots field adalah left blank (empty ≠ permissive); item aliases sajikan HTTP 200 pada keduanya URLs, membuat benar duplicate konten itu canonical tidak perbaiki secara otomatis; dan blank metadata fields jangan fall back untuk Standard nilai unless 'Reset Blank' adalah enabled, karena blank tidak NULL. pada enterprise scale Sitecore lives di, governance — sebuah base SEO template, validation aturan, environment control — penting sebagai banyak sebagai apa pun single setting.

TL;DR — Sitecore ships dengan hampir Tidak SEO functionality; SXA menambahkan basics tetapi perlu configuration. dua platforms diverge completely: XP adalah server-dirender.NET (crawler see finished HTML, personalization renders server-side); XM Cloud adalah headless, di mana sebuah Berikutnya.js front end controls HTML dan Anda manage SEO dengan Berikutnya.js metadata APIs (generateMetadata, MetadataRoute) — dengan SSG/ISR recommended rendering modes. platform-spesifik traps: default robots.txt blocks semua crawler ketika field adalah blank; item aliases kembalikan HTTP 200 pada keduanya URLs (benar duplicate konten, Tidak canonical perbaiki oleh default); dan blank metadata fields jangan 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 di bawah adalah unchanged.)

Bukti untuk klaim ini The article's described sitecore-seo capabilities must be evaluated against the platform's current documentation rather than assumed to be search-engine behavior. Cakupan: Platform-specific capability documentation. Tingkat keyakinan: tinggi · Diverifikasi: Sitecore: SEO Bukti untuk klaim ini Regardless of platform, Google needs crawlable URLs, accessible rendered content, descriptive metadata, and valid search directives. Cakupan: Google requirements independent of platform. Tingkat keyakinan: tinggi · Diverifikasi: Google Search Central: SEO Starter Guide

Dua platforms, dua completely berbeda SEO models

single sebagian besar penting hal untuk establish sebelum touching apa pun: yang Sitecore adalah Anda pada? product name adalah yang sama; SEO mechanics adalah tidak.

  • Sitecore XP (Experience Platform). Tradisional.NET, server-dirender melalui Razor/MVC, deployed pada-premise atau di managed cloud. Googlebot umumnya menerima finished HTML. SEO adalah managed di dalam 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 — hampir selalu Berikutnya.js dibangun dengan Sitecore JSS (JavaScript Services) — renders HTML. SEO lives di Berikutnya.js application layer. Sitecore holds konten; Berikutnya.js controls output.

«A naming note if you’re checking Sitecore’s own docs while reading this: as of mid-2026, Sitecore’s documentation site has renamed the composable SaaS product from “XM Cloud” to SitecoreAI — the old doc.sitecore.com/xmc/... and developers.sitecore.com/learn/accelerate/xm-cloud/... URL paths now redirect to .../sai/.../sitecoreai/... paths, and the platform’s own landing page describes it as “a cloud-native, SaaS, hybrid headless digital experience platform.” The architecture this article describes is unchanged — Experience Edge, GraphQL, a decoupled Next.js front end — but the front-end SDK is now published as Content SDK (open source, Next.js-first) rather than under the JSS name, and you’ll see “SitecoreAI” rather than “XM Cloud” in current screenshots and menu labels. I’ve kept “XM Cloud” in this article because that’s still the term most practitioners search for and most existing implementations run on, but don’t be thrown if your Sitecore rep or the Cloud Portal now says SitecoreAI — same platform, same SEO mechanics below. » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian dua puluh satu, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)

di keduanya cases practical baseline adalah yang sama. sebagai Fishtank’s Marcel put ini back di 2018, “Sitecore ships dengan virtually Tidak SEO functionality (dengan itu exception dari SXA yang includes some basics).” (terjemahan) “Sitecore ships dengan virtually Tidak SEO functionality (dengan exception dari SXA yang mencakup beberapa basics).” itu’s masih right mental model. SXA (Sitecore Experience Accelerator) adalah layer itu memberikan Anda sebuah sitemap module, robots.txt management di konten tree, dan standardized metadata fields. Tanpa 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 ditulis tentang enterprise situs umumnya — “itu lebih kemungkinan besar Anda adalah untuk jalankan menjadi multiple tech stacks,” (terjemahan) “ lebih mungkin Anda adalah untuk jalankan ke multiple tech stacks,” legacy sistem, dan split kepemilikan di seluruh bagian. pertahankan itu di mind: pada Sitecore, perbaiki untuk sebuah SEO masalah adalah sering sebuah template perubahan atau sebuah pipeline override owned oleh sebuah developer, tidak sebuah setting Anda flip yourself.

Metadata — dan blank-vs-NULL trap

SEO fields (halaman judul, deskripsi meta, Open Graph tags) langsung di Anda halaman data templates. bersih pattern adalah sebuah base SEO template itu setiap halaman template inherits dari, so fields exist di mana-mana. Ken Gray dari Konabos notes default kesenjangan secara langsung: “out-dari-itu-box, Sitecore’s data templates mungkin tidak include some dari itu Meta Data fields.” (terjemahan) “out-dari—box, Sitecore’s data templates mungkin tidak 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 di sini’s Sitecore-spesifik trap itu produces missing metadata di scale. Sitecore’s own docs adalah jelas: “Jika itu value dari a field adalah NULL, itu item contains itu standard value untuk itu field sebagai didefinisikan di itu data template untuk itu item.” (terjemahan) “jika nilai dari sebuah field adalah NULL, item berisi standard nilai untuk itu field sebagai didefinisikan di data template untuk itu item.” catch adalah itu sebuah blank field adalah tidak NULL. Ketika sebuah konten author clears sebuah deskripsi meta, ini becomes blank — dan sebuah blank field melakukan tidak 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 tidak seorang pun yang dimaksud.

perbaiki adalah twofold: enable “Reset Blank” (terjemahan) “Reset Blank” pada metadata fields di mana 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; bersih 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 tidak SEO-neutral. sebagai Dheer Rajpoot terdokumentasi, “Tidak redirect (Tidak 301 atau 302 HTTP status code) happens ketika Anda adalah menggunakan aliases di Sitecore,” (terjemahan) “Tidak redirect (Tidak 301 atau 302 HTTP kode status) happens ketika Anda adalah menggunakan aliases di Sitecore,” yang berarti “multiple URLs akan menjadi dibuat untuk a single halaman URL.” (terjemahan) “multiple URLs akan menjadi dibuat untuk sebuah single halaman URL.” Keduanya canonical URL dan alias kembalikan HTTP 200 dengan identical konten — genuine duplicate konten, dan Sitecore melakukan tidak auto-emit sebuah tag canonical untuk resolve ini.

Anda memiliki dua governance-grade memperbaiki:

  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 secara langsung.

My recommendation adalah kedua: treat aliases sebagai redirects, tidak alternate access URLs. Ken Gray’s advice applies broadly di sini — “gunakan Sitecore’s canonical link management untuk specify itu preferred version dari a URL” (terjemahan) “gunakan Sitecore’s canonical tautan management untuk specify preferred versi dari sebuah URL” — tetapi pada aliases secara khusus, sebuah 301 adalah cleaner daripada relying pada canonical hints.

Sitemaps

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

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

Robots.txt — default itu blocks semuanya

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 Tidak aturan adalah ditambahkan, sistem menulis: ‘pengguna-agent: * Disallow: /’” — yang blocks setiap crawler. sebuah empty robots field adalah tidak 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 semuanya.” (terjemahan) “crawl semuanya.” pada Sitecore ini dapat berarti opposite, so verifying production robots.txt adalah sebuah non-negotiable launch langkah. pada XM Cloud + Berikutnya.js, gunakan MetadataRoute.Robots untuk sebuah code-driven, jenis-safe robots.txt. Secara terpisah, CM (konten Management) instances dan QA/staging environments seharusnya selalu disallow semua — hanya CD (konten Pengiriman) production instance seharusnya menjadi dapat di-crawl.

Multilingual, hreflang, dan multisite

Sitecore stores language versi sebagai terpisah versi dari yang sama item, tidak terpisah items. itu, combined dengan language fallback (item-tingkat atau lebih 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 sinyal hubungan. dan hreflang adalah tidak automatic di standard Sitecore; ini memiliki untuk menjadi ditambahkan untuk templates (SXA dapat generate ini ketika configured), dengan penuh absolute URLs, bidirectional references, dan sebuah x-default. sebagai John Mueller put ini (cited oleh Jakub Koba), “TBH hreflang adalah satu dari itu paling complex aspects dari SEO (jika tidak itu paling complex satu).” (terjemahan) “TBH hreflang adalah satu dari paling kompleks aspects dari SEO (jika tidak paling kompleks satu).” jangan underestimate ini.

Sitecore juga natively mendukung multisite — banyak situs di satu 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 persis jenis dari split-kepemilikan, shared-infrastructure complexity I flagged di enterprise SEO teknis: “Sometimes berbeda orang adalah responsible untuk berbeda sections dari itu website atau even berbeda halaman, yang dapat membuat internal linking time-consuming.” (terjemahan) “Sometimes berbeda orang adalah responsible untuk berbeda bagian dari situs web atau bahkan berbeda halaman, yang dapat membuat internal linking time-consuming.”

«## Headless rendering strategy (XM Cloud) » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian empat puluh empat, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)

Satu layer-kepemilikan poin worth menjadi jelas tentang, since ini trips orang up: XM Cloud environments memiliki keduanya sebuah editing host dan sebuah rendering host, dan mereka adalah tidak yang sama hal. Sitecore’s own docs draw line dengan jelas — editing host ada hanya untuk power WYSIWYG editing experience di dalam halaman Builder/Design Studio, “adalah tidak set up atau scaled untuk serving langsung traffic,” (terjemahan) “adalah tidak siapkan atau scaled untuk serving langsung traffic,” dan sees internal (author-hanya) traffic. rendering host adalah publik-facing Berikutnya.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 tidak representative dari apa Googlebot sees dan tidak sesuatu mesin pencari seharusnya menjadi able untuk reach di semua.

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

StrategySEO impact
SSG (static)Best — “SSG pre-renders HTML di build time… Penelusuran engines dapat easily crawl itu pre-dirender HTML.” (terjemahan) “SSG pre-renders HTML di bangun time… mesin pencari dapat easily crawl pre-dirender 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 dirender HTML adalah ready untuk mesin pencari untuk indeks.”
CSR (client-side render)Worst — “Penelusuran engines mungkin struggle dengan indexing JavaScript-dirender konten.” (terjemahan) “mesin pencari dapat struggle dengan pengindeksan JavaScript-dirender konten.”

recommendation: SSG atau ISR untuk SEO-critical konten; reserve CSR untuk interactive UI hanya. Metadata adalah set melalui generateMetadata (App Router). David Austin (Fishtank) notes sebuah performa nicety: “All fetch calls dalam generateMetadata adalah memoized, meaning identical URLs adalah hanya fetched setelah across itu application, preventing redundant requests.” (terjemahan) “semua fetch panggilan di dalam tidak terdefinisi adalah memoized, meaning identical URLs adalah hanya fetched setelah di seluruh application, preventing redundant permintaan.” dan sebagai Sebastián Aliaga puts ini, “Itu dynamic approach adalah itu better method untuk Sitecore Headless sebagai Anda’ll menjadi able untuk take apa part dari itu halaman’s layout data dan incorporate it.” (terjemahan) “ dynamic approach adalah better metode untuk Sitecore Headless sebagai Anda’ll menjadi able untuk take apa bagian dari halaman’s layout data dan incorporate ini.”

Personalization — jangan 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 menyelesaikan dan SEO-dioptimalkan, tidak thin. pada XM Cloud, client-side personalization (JSS) dapat hide konten dari crawler itu jangan jalankan JavaScript; pre-render default dengan SSR, atau personalize di edge.

hard aturan di seluruh keduanya: tidak pernah sajikan berbeda konten untuk crawler daripada untuk pengguna — itu’s cloaking, dan ini adalah sebuah guidelines violation. tidak pernah personalize utama 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 melalui pipeline; pada XM Cloud, model schema fields di templates, retrieve di atas GraphQL, dan render di Berikutnya.js component. Prioritize FAQPage, HowTo, Product, Article, dan BreadcrumbList. Anda dapat deploy melalui sebuah tag manager — Martha van Berkel (Schema App) notes tim “typically gunakan JavaScript untuk deploy Schema Markup untuk Sitecore… keduanya efficient dan scalable” (terjemahan) “typically gunakan JavaScript untuk deploy Schema Markup untuk Sitecore… keduanya efficient dan scalable” — tetapi menjadi aware client-side injection berarti AI crawler dapat miss ini, so prefer server-dirender JSON-LD untuk maximum coverage. Peter Lambrou (Codehouse) frames payoff sekadar: “Add schema markup untuk itu halaman HTML untuk membuat Anda penelusuran hasil muncul lebih attractive.” (terjemahan) “tambahkan schema markup untuk halaman HTML untuk membuat Anda hasil pencarian muncul lebih attractive.”

Enterprise governance — di mana nyata berfungsi adalah

Single settings aside, SEO outcome pada sebuah big Sitecore install adalah decided oleh governance. I’ve mengatakan sebelum itu enterprise situs adalah di mana SEO teknis shines precisely karena “enterprise sites dapat memiliki complex infrastructures dan a lot dari legacy sistem di 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 ada 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 diizinkan 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.)

Tambahkan catatan pakar

Sematkan kutipan pakar

Orang baru? Buat profilnya yang belum diklaim di /admin/experts/ → Sematkan kutipan pakar terlebih dahulu.