Panduan Product Variant SEO

Ketika untuk memberikan setiap product variant -nya own URL vs. canonical untuk base, ProductGroup + hasVariant schema (Feb 2024), dan bagaimana Shopify, WooCommerce, BigCommerce, dan Magento differ.

Pertama kali diterbitkan: 26 Jun 2026 · Terakhir diperbarui: 3 Agu 2026 · Lanjutan
1 sinyal bukti di halaman ini

sebuah product sold di banyak options (size, color, storage) generates near-duplicate URLs. Consolidate ones dengan Tidak standalone penelusuran demand untuk sebuah base URL dengan sebuah canonical, dan memberikan sebuah dapat diindeks URL hanya untuk variants itu memiliki mereka own demand dan dapat carry unique konten. Google's default adalah sebuah terpisah URL per variant canonicaling untuk parameter-free base — tetapi SearchPilot ditemukan sebuah 22% uplift dari melakukan reverse (base canonicals untuk best variant), so context wins. Mark hubungan up dengan ProductGroup + hasVariant (Feb 2024). Platforms differ: Shopify auto-canonicals setiap?variant=ID untuk base, BigCommerce memiliki paling bersih dibangun-di menangani, WooCommerce/Magento bergantung pada plugins atau config. Schema mendeskripsikan hubungan; ini tidak membuat sebuah variant peringkat.

TL;DR — Variants buat near-duplicate URLs; job adalah sorting yang deserve independent peringkat dan yang untuk consolidate. Google’s default: sebuah terpisah URL per variant (path segment atau kueri parameter) dengan parameter-free base sebagai canonical. Reverse ini — base canonicaling untuk sebuah tinggi-demand variant — ketika sebuah spesifik variant memiliki penelusuran demand dan unique konten untuk earn ini (SearchPilot diukur sebuah 22% organic uplift melakukan persis ini). Mark hubungan up dengan ProductGroup + hasVariant (Feb 2024); single-halaman situs perlu satu canonical URL untuk group, multi-halaman situs perlu penuh self-berisi markup per halaman, dan variesBy harus gunakan penuh schema.org URLs. pertahankan canonical, tautan internal, dan sitemap consistent — rel=canonical adalah sebuah hint, tidak sebuah directive. Platform defaults differ dan semua perlu auditing.

tension, stated plainly

setiap variant adalah sebuah fork di road. Memberikan ini -nya own dapat di-crawl URL dan Anda’ve dibuat sebuah near-duplicate itu splits tautan equity dan eats anggaran crawling. Select ini hanya melalui JavaScript dengan Tidak URL perubahan dan itu spesifik variant state memiliki Tidak address dari -nya own — ini dapat’t menjadi di-crawl, terindeks, atau diperingkatkan sebagai sebuah distinct entity, terpisah dari pertanyaan dari apakah Google renders halaman’s JavaScript di semua. right jawaban tidak sebuah blanket aturan — ini adalah sebuah per-variant judgment panggil driven oleh dua inputs: melakukan ini variant memiliki -nya own penelusuran demand, dan dapat Anda memberikan ini genuinely unique konten. Semuanya di bawah adalah di service dari membuat itu panggil correctly dan lalu implementing ini cleanly. ini adalah variant-spesifik deep dive itu sits alongside product halaman SEO; itu guide covers seluruh PDP, ini satu zooms di pada variant decision.

Apa Google sebenarnya recommends

Google’s ecommerce struktur URL guidance adalah jelas itu variants seharusnya mendapatkan dapat di-crawl URLs, tidak JS-hanya state perubahan.

Bukti untuk klaim ini Google recommends crawlable URLs for product variants that it should discover. Cakupan: Use links with href values and stable URL structures; JavaScript state alone may not expose each variant. Tingkat keyakinan: tinggi · Diverifikasi: Google: Ecommerce URL structure

-nya recommended structures: “A path segment, such sebagai /t-shirt/green” (terjemahan) “sebuah path segment, such sebagai tidak terdefinisi” atau “A query parameter, such sebagai /t-shirt?color=green.” (terjemahan) “sebuah kueri parameter, such sebagai tidak terdefinisi.” Keduanya adalah fine — pick satu dan menjadi consistent.

«For the canonical, the default is to consolidate to the clean base: “Use the URL with the query parameter omitted as the canonical URL. This can help Google better understand the relationship between product variants.” And for path-based variants: “For products with unique URLs per variant, include the canonical product URL on all variant pages using a <link rel="canonical"> tag.” » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian dua puluh tujuh, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)

seluruh poin adalah reducing redundant retrievals. Google: “Minimize itu number dari alternative URLs itu return itu sama konten” (terjemahan) “Minimize angka dari alternative URLs itu mengembalikan sama konten” — karena “itu sama konten mungkin menjadi retrieved multiple times oleh itu crawler jika Google thinks dua URLs adalah berbeda tetapi hasil di itu sama halaman menjadi returned.” (terjemahan) “yang sama konten dapat menjadi retrieved multiple times oleh crawler jika Google thinks dua URLs adalah berbeda tetapi hasil di yang sama halaman menjadi dikembalikan.” itu’s crawl-budget cost dari variant sprawl di satu kalimat.

Ketika sebuah variant earns -nya own dapat diindeks halaman

sebuah variant perlu keduanya demand dan differentiation untuk earn sebuah independently dapat diindeks URL. Sumber: Google Search Central

pertama tanyakan apakah variant memiliki measurable standalone penelusuran demand. jika tidak, consolidate ini untuk preferred product URL. jika demand ada, tanyakan apakah halaman dapat menyediakan meaningfully distinct copy, media, specifications, dan offer data. jika tidak, consolidate. jika keduanya conditions adalah met, gunakan distinct, self-canonical variant URL dan align canonical, tautan internal, dan sitemap dengan itu pilihan.

© Patrick Stox LLC · CC BY 4.0 ·

default (“canonical everything to the base” (terjemahan) “canonical semuanya untuk base”) adalah correct untuk overwhelming majority dari variants. Tidak seorang pun searches “size medium” (terjemahan) “size medium” atau “the third blue” (terjemahan) “ ketiga blue” di isolation, so itu seharusnya consolidate. tetapi beberapa variants adalah nyata, standalone kueri — “512GB iPhone 15 Pro,” (terjemahan) “512GB iPhone 15 Pro,” “navy blue trench coat,” (terjemahan) “navy blue trench coat,” “extra-wide running shoes.” (terjemahan) “extra-wide berjalan shoes.” untuk itu, dua conditions keduanya memiliki untuk hold sebelum Anda split them out:

  1. ada measurable penelusuran demand untuk itu variant. Pull volume untuk “[product] + [variant]” (terjemahan) “[product] + [variant]” di sebuah keyword alat. Zero volume → consolidate.
  2. Anda dapat memberikan halaman genuinely unique konten — -nya own copy, images, specs, reviews. jika Anda dapat’t differentiate ini, sebuah terindeks-tetapi-thin variant halaman adalah worse daripada consolidation.

«This is the hybrid approach: one master product page, plus dedicated variant URLs only for high-demand queries you can actually differentiate. Worth being clear about what this is: Google’s docs tell you variants need addressable URLs and a canonical strategy, but the demand-plus-unique-content gate itself is practitioner decision-making (the same approach Yoast recommends), not a Google eligibility requirement or a guarantee that a qualifying variant will rank. Spin up a separate indexable URL without unique content and you’ve recreated the duplicate-content problem you were trying to avoid. » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian tiga puluh tiga, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)

counterintuitive bagian: canonical direction tidak fixed

Di sini’s di mana conventional advice cracks. SearchPilot ran sebuah controlled split test itu melakukan opposite dari default — mereka changed main product halaman’s canonical dari self-referential untuk poin at sebuah spesifik variation page. hasil: “the best estimate being a 22% uplift to organic traffic to those pages.” (terjemahan) “ best estimate menjadi sebuah 22% uplift untuk trafik organik untuk itu halaman.”

context itu dibuat ini berfungsi: situs memiliki sudah dibuat variants dapat diindeks dengan self-referential canonicals, tetapi itu variant halaman “were not getting indexed consistently, and were not receiving as much organic traffic as had been hoped.” (terjemahan) “adalah tidak getting terindeks consistently, dan adalah tidak receiving sebagai banyak trafik organik sebagai memiliki telah hoped.” Pointing main halaman’s canonical di best-known variant concentrated sinyal di mana demand sebenarnya adalah.

lesson tidak “always reverse your canonicals.” (terjemahan) “selalu reverse Anda canonicals.” SearchPilot adalah careful di sini: “Every ecommerce website’s setup will be different depending on a lot of factors, including the number of variations per product, the internal linking structure, and the lifetime of products on the website. This approach may not work for everyone.” (terjemahan) “setiap ecommerce situs web’s setup akan menjadi berbeda depending pada sebuah lot dari factors, including angka dari variations per product, internal linking structure, dan lifetime dari products pada situs web. ini approach dapat tidak berfungsi untuk everyone.” lesson adalah itu canonical direction adalah sebuah decision, tidak sebuah default — poin ini di whichever URL memiliki demand dan konten untuk deserve pengindeksan. untuk how Google picks sebuah canonical ketika Anda sinyal disagree, see canonicalization — ada roughly 40 sinyal di play, dan rel=canonical tag adalah sebuah strong satu tetapi tidak satu-satunya satu.

pertahankan sinyal consistent

sebuah tag canonical adalah sebuah hint, tidak sebuah command. Google dapat dan akan pick sebuah berbeda canonical daripada satu Anda declared jika Anda lainnya sinyal contradict ini — yang adalah persis apa “Duplicate, Google chose a different canonical” (terjemahan) “Duplicate, Google chose sebuah berbeda canonical” di Search Console berarti. perbaiki adalah consistency: URL Anda canonicalize untuk seharusnya menjadi yang sama URL Anda tautan untuk internally dan yang sama URL Anda list di Anda sitemap. Ketika tag canonical poin satu cara dan Anda tautan internal poin lainnya, Anda’ve handed Google sebuah alasan untuk override Anda. (ini adalah yang sama consistency discipline itu governs faceted navigation, di mana filter URLs buat yang sama near-duplicate sprawl.)

product variant dan dipilih-offer contract

untuk setiap dapat di-crawl atau feed-submitted variant URL, sistem di bawah harus identify yang sama sellable selection. Bukti untuk klaim ini Google recommends crawlable URLs for product variants that it should discover. Cakupan: Use links with href values and stable URL structures; JavaScript state alone may not expose each variant. Tingkat keyakinan: tinggi · Diverifikasi: Google: Ecommerce URL structure

LayerContract
Requested URLEncodes yang dimaksud product dan variant state di sebuah stable, shareable form.
terlihat PDPmemuat yang dimaksud product identity, dipilih attributes, SKU, price, currency, dan availability; sebuah fresh navigation reproduces state.
Canonical/indexabilitymengikuti declared parent-product atau dapat diindeks-variant strategy.
data terstrukturmenggunakan matching product/group identity, SKU/GTIN, attributes, Offer.url, price, currency, dan availability.
Merchant atau agent feedmengirim yang sama item ID, group ID, offer facts, dan sebuah landing URL itu recreates submitted variant.
Cart dan checkoutmenambahkan itu tepat SKU dan revalidates represented price, currency, dan availability tanpa silently substituting lainnya variant.

dengan kata lain, terlihat PDP, dirender Product JSON-LD, feed item, dipilih variant, cart, dan checkout seharusnya agree pada product identity, SKU, group ID, dipilih attributes, price, currency, dan availability. Checkout dapat legitimately revalidate fast-mengubah stock, pengiriman, tax, atau price. Ketika state perubahan, ini seharusnya jelaskan perubahan alih-alih completing sebuah berbeda offer di bawah yang sama selection. Postcode-dependent fulfillment dapat refine umum availability ditampilkan sebelum location adalah known, tetapi published offer seharusnya tidak claim sebuah state backend sudah knows adalah salah.

sebuah parent-product strategy dapat expose selectable variants sementara consolidating mereka URLs untuk parent. sebuah dapat diindeks-variant strategy memerlukan setiap qualified variant untuk reconstruct itself, self-canonicalize, menerima dapat di-crawl tautan internal, dan carry variant-spesifik halaman dan offer data. Mixing dua strategies—such sebagai self-canonical variant URLs milik siapa tautan internal dan sitemap masih poin hanya untuk parent—membuat contradictory evidence.

Bukti untuk klaim ini Google recommends crawlable URLs for product variants that it should discover. Cakupan: Use links with href values and stable URL structures; JavaScript state alone may not expose each variant. Tingkat keyakinan: tinggi · Diverifikasi: Google: Ecommerce URL structure

jangan gunakan sebuah fragment such sebagai #blue-large ketika sebuah feed, server, crawler, atau external agent harus permintaan sebuah spesifik variant. browser melakukan tidak kirim fragment di HTTP permintaan, so origin cannot select sebuah berbeda respons dari ini dan feed validators cannot rely pada ini sebagai sebuah distinct landing-halaman state. gunakan path atau kueri parameter ketika selection harus menjadi addressable di luar sudah-berjalan browser halaman. Google’s JavaScript SEO guidance menjelaskan mengapa fragment-based konten status adalah unreliable untuk penelusuran.

ProductGroup data terstruktur ( Feb 2024 perbarui)

di February 2024 Google ditambahkan structured-data mendukung untuk product variants melalui baru ProductGroup jenis. ini adalah didukung cara untuk tell Google “this blue size-M shirt and this red size-L shirt are the same product in different options.” (terjemahan) “ini blue size-M shirt dan ini red size-L shirt adalah yang sama product di berbeda options.” ini tidak membuat variants peringkat — data terstruktur aids understanding dan rich-hasil eligibility, tidak rankings — tetapi ini adalah bagaimana Anda membuat parent-child hubungan machine-readable. Bukti untuk klaim ini Google supports ProductGroup structured data to describe product variants and their varying properties. Cakupan: Valid markup aids understanding and eligibility but does not guarantee ranking or display. Tingkat keyakinan: tinggi · Diverifikasi: Google: Product variants structured data

pieces:

  • ProductGroup — parent jenis. Google’s saat ini documentation lists hanya name sebagai required di ProductGroup tingkat; productGroupID ( parent SKU/ID) dan variesBy adalah recommended, tidak diperlukan — though skipping them defeats poin dari markup, since Google perlu variesBy untuk know yang attribute sebenarnya distinguishes variants. Bukti untuk klaim ini Google supports ProductGroup structured data to describe product variants and their varying properties. Cakupan: Valid markup aids understanding and eligibility but does not guarantee ranking or display. Tingkat keyakinan: tinggi · Diverifikasi: Google: Product variants structured data
  • hasVariant — nests setiap Product variant di bawah parent group (Approach 1, lebih compact dan recommended satu).
  • isVariantOf — inverse: ditambahkan untuk setiap Product untuk tautan ini back untuk -nya parent group (Approach 2, yang dapat suit beberapa CMS setups better).
  • variesBy — lists variant-defining properties, dan ini adalah paling umum pitfall: ini harus gunakan penuh schema.org URLs like https://schema.org/color dan https://schema.org/size, tidak pendek strings "color" / "size".

«Single-page vs. multi-page matters. Google: “For single-page sites, there must be only one distinct canonical URL for the overall ProductGroup that all variants belong to.” But “for multi-page sites… each page must have full and self-contained markup for the entities defined on that page.” So if every variant has its own URL, every variant page carries its own complete markup — you don’t share one block across them. » (Terjemahan) (Ringkasan bahasa Indonesia untuk bagian lima puluh, bagian kecil satu: teks sumber dipertahankan agar dapat diperiksa dalam tinjauan penutur asli.)

setiap variant Product perlu sebuah unique @id, sebuah unique sku atau gtin, -nya own variant attributes (color, size), sebuah isVariantOf pointer untuk parent, dan sebuah Offer milik siapa url matches saat ini halaman. biasa failures adalah missing unique variant IDs, sebuah inconsistent productGroupID antara parent dan variants, dan variesBy-harus-menjadi-sebuah-penuh-URL trap di atas. Validate dengan Rich hasil Test, lalu pemeriksaan URL, lalu sitemap submission.

Yang variants belong di markup?

Markup seharusnya deskripsikan catalog shoppers dapat sebenarnya select, tidak setiap combination sebuah configurator dapat theoretically produce. sertakan sebuah variant ketika ini memiliki sebuah stable identity such sebagai sebuah SKU atau GTIN, mewakili sebuah nyata attribute combination, adalah reachable melalui saat ini product experience, belongs untuk sama product group, dan memiliki sebuah offer state situs dapat pertahankan saat ini. terlihat selector, variant URL strategy, dan ProductGroup graph seharusnya deskripsikan yang sama set. Bukti untuk klaim ini Google supports ProductGroup structured data to describe product variants and their varying properties. Cakupan: Valid markup aids understanding and eligibility but does not guarantee ranking or display. Tingkat keyakinan: tinggi · Diverifikasi: Google: Product variants structured data

melakukan tidak generate Cartesian product dari setiap color, size, material, accessory, dan service option ketika banyak combinations melakukan tidak exist atau cannot menjadi purchased. itu membuat sebuah enormous, misleading entity graph dengan dibuat-buat products dan stale offers. sebuah satu-halaman selector dapat nest -nya nyata variants; variant-spesifik halaman perlu menyelesaikan markup untuk entities pada setiap halaman. sebuah configurable atau dibuat-untuk-order product seharusnya mark up genuine purchasable product dan saat ini offer—tidak manufacture thousands dari hypothetical SKUs solely untuk schema.

anggaran crawling: scale masalah

Variant URL proliferation adalah sebuah umum crawl-budget drain pada besar ecommerce situs, though bagaimana banyak ini sebenarnya costs Anda bergantung pada Anda catalog’s scale dan Google’s existing crawl demand untuk Anda domain — ini tidak sebuah fixed universal cost. 200-products-×-20-variants = 4 000-near-duplicate-URLs math adalah sebuah worked contoh untuk tampilkan shape dari masalah, tidak sebuah diukur average untuk setiap situs. anggaran crawling adalah sebuah efficiency concern, tidak sebuah peringkat factor — tetapi pada sebuah besar catalog, crawl wasted pada redundant variant URLs adalah crawl tidak spent pada Anda baru dan diperbarui halaman. jangan estimate Anda sebenarnya exposure dari arithmetic alone: pull Penelusuran Console’s Statistik Crawling report (Settings → Statistik Crawling) untuk see bagaimana banyak dari Googlebot’s activity pada Anda situs adalah hitting variant URLs, atau periksa server logs secara langsung untuk ?variant=/path-segment variant hits versus total crawl permintaan. Consolidating rendah-nilai variants untuk sebuah canonical base, di atas time, reduces crawl pressure itu redundant URLs buat.

Bukti untuk klaim ini Google recommends consistent canonical URLs for ecommerce variant URL patterns. Cakupan: Canonicalization is a hint; independently useful variants may warrant separate canonical URLs. Tingkat keyakinan: tinggi · Diverifikasi: Google: Ecommerce URL structure

Platform-oleh-platform perilaku

defaults differ, dan semua dari them perlu auditing:

  • Shopify appends ?variant=ID secara otomatis dan canonicals setiap satu dari itu parameter URLs back untuk base /products/<slug>. itu’s right panggil untuk vast majority dari stores — ini consolidates semuanya cleanly. catch: ini consolidates everything, so jika Anda sebenarnya ingin sebuah tinggi-demand variant untuk peringkat independently, Shopify’s automatic canonicalization berfungsi terhadap Anda, dan ketiga-party apps dan custom themes sometimes break canonical entirely.
  • WooCommerce memberikan Anda penuh URL control, yang berarti canonical menangani rides pada Anda SEO plugin (Yoast, peringkat Math). extra wrinkle adalah attribute archive halaman, yang dapat generate mereka own duplicate URLs pada top dari variants.
  • BigCommerce adalah widely regarded oleh practitioners sebagai memiliki strongest out-dari—box canonical menangani dari four — variant URLs adalah natively canonicalized. Treat itu sebagai sebuah practitioner assessment alih-alih sesuatu Google atau BigCommerce documents sebagai sebuah formal jaminan, dan konfirmasi saat ini perilaku terhadap Anda own platform versi sebelum relying pada ini.
  • Magento umumnya memerlukan manual configuration atau extensions, dan karena layered navigation dan product variants keduanya produce duplicate URLs, dua masalah compound jika Anda tidak address keduanya.

pada Bing secara khusus, Bing Webmaster alat offers URL Normalization — sebuah code-free cara untuk consolidate parameter variants tanpa menambahkan sebuah tag canonical untuk setiap halaman, yang Microsoft itself memiliki called “better than canonical” (terjemahan) “better daripada canonical” untuk ini gunakan.

Myths worth killing

  • “Variants cause a duplicate-content penalty.” (terjemahan) “Variants penyebab sebuah duplicate-konten penalty.” tidak ada duplicate-konten penalty. cost adalah sinyal dilution dan crawl waste, tidak sebuah punitive tindakan — tetapi outcome (weaker rankings) dapat feel yang sama, so ini masih penting.
  • “Always canonical every variant to the base.” (terjemahan) “selalu canonical setiap variant untuk base.” SearchPilot’s 22% hasil menampilkan reverse dapat win. Direction adalah contextual.
  • “?color=green parameters adalah bad untuk SEO.” (terjemahan) “tidak terdefinisi parameters adalah buruk untuk SEO.” Google explicitly recommends kueri parameters or path segments. Parameters adalah fine dengan right canonical.
  • “ProductGroup schema makes variants rank better.” (terjemahan) “ProductGroup schema membuat variants peringkat better.” ini aids understanding dan rich-hasil eligibility; ini adalah tidak sebuah sinyal peringkat.
  • “Shopify handles all variant SEO so I’m done.” (terjemahan) “Shopify menangani semua variant SEO so I’m selesai.” -nya default consolidation adalah correct untuk sebagian besar products tetapi actively mencegah tinggi-nilai variants dari peringkat independently, dan apps break ini.
  • “JS-hanya variant selection (Tidak URL ubah) adalah best.” (terjemahan) “JS-hanya variant selection (Tidak URL perubahan) adalah best.” Google melakukan crawl default halaman state. sebuah variant reachable hanya melalui JavaScript dengan Tidak URL perubahan memiliki Tidak terpisah address, so ini dapat’t menjadi di-crawl, terindeks, atau diperingkatkan sebagai -nya own entity — itu’s sebuah addressability masalah, tidak proof itu Google dapat’t render JavaScript di semua (Google melakukan render JS, tetapi warns itu dynamically-generated Product markup dapat menjadi di-crawl lebih sedikit frequently dan reliably).

Di mana ini sits di cluster

ini adalah variant-spesifik companion untuk product halaman SEO, yang covers penuh product detail halaman. canonical mechanics langsung di canonicalization; closely related filter-URL versi dari yang sama near-duplicate masalah lives di faceted navigation. untuk bigger picture, see Ecommerce SEO.

Tambahkan catatan pakar

Sematkan kutipan pakar

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