Checklist SEO teknis untuk toko online Shopify dan WooCommerce

Checklist SEO teknis toko Shopify dan WooCommerce: noindex, robots.txt, sitemap, title, H1, canonical, data terstruktur Product, Open Graph, alt text.

Tim Redaksi FixReports12 menit baca

Checklist SEO teknis untuk toko online memastikan tiga hal: mesin pencari bisa meng-crawl dan mengindeks halaman yang ingin Anda tampilkan, bisa memahami isi setiap halaman, dan bisa menampilkannya dengan baik di hasil pencarian. Dalam praktiknya: tidak ada aturan noindex yang tidak disengaja, robots.txt tidak memblokir halaman penting, sitemap hanya berisi URL canonical, setiap halaman punya title dan meta description yang unik, ada satu H1 yang jelas, tag canonical menyatukan duplikat dari varian dan koleksi, data terstruktur Product valid, tag Open Graph tersedia, alt text deskriptif, dan tidak ada link internal yang rusak. Pemeriksaan ini menghilangkan hambatan teknis; pemeriksaan ini tidak menjamin peringkat atau traffic.

Poin penting

  • robots.txt mengatur crawling, bukan pengindeksan. Untuk mencegah halaman muncul di Google, gunakan noindex, dan jangan blokir halaman itu di robots.txt, karena jika diblokir Google tidak akan pernah melihat aturan tersebut (Google Search Central (terbuka di tab baru)).
  • Satu file sitemap bisa memuat hingga 50.000 URL atau 50 MB dalam kondisi tidak terkompresi, dan Google mengabaikan <priority> dan <changefreq> (Google Search Central (terbuka di tab baru)).
  • Google menyatakan tidak ada jumlah heading yang ideal, tetapi satu H1 yang menyebutkan nama produk adalah judul utama yang paling jelas bagi pembeli dan pembaca layar (screen reader).
  • Listingan merchant (merchant listings) mewajibkan nama produk, gambar, dan Offer bertingkat (bukan AggregateOffer) dengan harga di atas nol dan mata uang (Google Search Central (terbuka di tab baru)).

Apa saja yang sudah ditangani Shopify dan WooCommerce secara default?

Shopify menangani sebagian besar dasar SEO teknis di platform dan temanya, sedangkan toko WooCommerce mengandalkan inti WordPress (WordPress core) ditambah plugin SEO untuk beberapa di antaranya.

ItemShopifyWooCommerce (WordPress)
Sitemap XML/sitemap.xml, otomatis/wp-sitemap.xml sejak WordPress 5.5, atau sitemap dari plugin SEO
robots.txtOtomatis; diedit dengan robots.txt.liquidFile virtual dari WordPress yang mencantumkan sitemap bawaan
Tag canonicalDitambahkan otomatisWordPress core hanya menambahkannya di halaman tunggal (single)
Meta descriptionKolom di bagian search engine listing setiap produkPlugin SEO atau tema
Data terstruktur ProductTema, melalui filter structured_dataJSON-LD bawaan WooCommerce di halaman produk
Tag Open GraphTema (Dawn: meta-tags.liquid)Plugin SEO atau tema
Keranjang dan checkoutDiblokir (disallow) di robots.txtDitandai noindex oleh WooCommerce

Rincian dan sumber untuk setiap baris dijelaskan di bawah ini (per Oktober 2026).

Bagaimana memastikan halaman toko bisa diindeks?

Sebuah halaman bisa diindeks jika mengembalikan status 200, tidak diblokir oleh robots.txt, dan tidak memuat aturan noindex.

Aturan noindex bisa ditempatkan di tag meta atau header HTTP, dan Google tidak mendukungnya di dalam robots.txt (Google (terbuka di tab baru)):

<meta name="robots" content="noindex">
X-Robots-Tag: noindex

File robots.txt mengatur lalu lintas crawler; URL yang diblokir tetap bisa muncul di hasil pencarian, tanpa deskripsi, jika ada halaman lain yang menautkannya (Google (terbuka di tab baru)). Laporan Pengindeksan halaman (terbuka di tab baru) (Page indexing) di Search Console mencantumkan setiap URL yang tidak diindeks beserta alasannya, misalnya "URL marked 'noindex'". Tidak semua URL harus diindeks, tetapi halaman produk dan koleksi Anda harus diindeks.

Shopify

robots.txt default Shopify memblokir path admin, keranjang, checkout, akun, dan pesanan, serta URL koleksi yang difilter (/collections/*+*) dan diurutkan (sort_by) yang menduplikasi halaman koleksi. Anda bisa mengeditnya dengan template robots.txt.liquid, tetapi Shopify menyebut ini sebagai kustomisasi yang tidak didukung dan memperingatkan bahwa kesalahan bisa membuat toko kehilangan seluruh traffic-nya (Shopify Help Center (terbuka di tab baru)).

Untuk menyembunyikan halaman, postingan blog, atau produk, atur metafield integer seo.hidden ke 1, yang akan menyembunyikannya dari sitemap, mesin pencari, dan pencarian di toko; status produk Tidak tercantum (Unlisted) juga menyembunyikan produk dari koleksi dan rekomendasi (Shopify Help Center (terbuka di tab baru)). Selama toko dilindungi kata sandi, mesin pencari tidak bisa membaca sitemap-nya.

WooCommerce

Periksa Pengaturan > Membaca > Visibilitas Mesin Pencari (Settings > Reading > Search engine visibility). Jika opsi "Discourage search engines from indexing this site" dicentang, WordPress (sejak versi 5.3) menambahkan tag meta robots noindex, nofollow ke halaman Anda (WordPress.org (terbuka di tab baru)) dan menonaktifkan sitemap bawaan. Jika toko dibangun di situs staging, pastikan centang itu sudah dihapus saat peluncuran. WooCommerce sendiri menandai halaman keranjang, checkout, dan My account dengan noindex dan mengirim X-Robots-Tag: noindex pada endpoint seperti halaman pesanan diterima (order received) (kode sumber WooCommerce (terbuka di tab baru)); ini memang perilaku yang diharapkan.

Apa saja yang harus ada di sitemap XML toko online?

Sitemap sebaiknya hanya mencantumkan URL canonical yang bisa diindeks dan memang ingin Anda tampilkan di pencarian: produk, koleksi atau kategori, halaman konten, dan postingan blog.

Aturan Google: maksimal 50.000 URL atau 50 MB per file, indeks sitemap untuk kumpulan yang lebih besar, URL absolut, hanya URL yang ingin ditampilkan di hasil pencarian, dan <lastmod> hanya jika nilainya akurat (Google (terbuka di tab baru)). Kirim sitemap melalui laporan Sitemap di Search Console atau cantumkan di robots.txt:

Sitemap: https://example.com/sitemap.xml

Di Shopify, setiap domain memiliki sitemap.xml otomatis yang menautkan ke sitemap turunan untuk produk, koleksi, blog, dan halaman, dan diperbarui setiap kali Anda menambahkannya; setiap domain internasional mendapatkan sitemap sendiri (Shopify Help Center (terbuka di tab baru)).

Di WooCommerce, WordPress 5.5 dan versi yang lebih baru menyediakan indeks sitemap bawaan di /wp-sitemap.xml, yang dicantumkan di robots.txt WordPress, dengan maksimal 2.000 entri per sitemap secara default. Plugin SEO seperti Yoast SEO menggantinya dengan sitemap mereka sendiri (Make WordPress Core (terbuka di tab baru)). Periksa sitemap mana yang benar-benar aktif sebelum Anda mengirimkannya.

Bagaimana cara menulis title produk dan meta description?

Berikan setiap halaman title yang unik dan deskriptif serta meta description yang merangkum isinya, dengan kata-kata penting di awal, karena Google memotong keduanya agar muat di layar.

Panduan title dari Google: buat title yang deskriptif dan ringkas, hindari keyword stuffing dan teks template yang berulang, serta letakkan nama situs di awal atau akhir dengan pemisah. Tidak ada batas panjang, tetapi link judul (title link) dipotong sesuai lebar perangkat (Google (terbuka di tab baru)). Google juga bisa menyusun link judul dari teks lain, seperti H1 atau og:title.

Untuk cuplikan (snippet), Google umumnya memakai konten halaman, dan memakai meta description jika deskripsi itu menggambarkan halaman dengan lebih akurat. Google menyarankan untuk mencantumkan fakta produk seperti harga atau produsen, dan menyatakan bahwa deskripsi yang dibuat otomatis tidak masalah selama mudah dibaca dan bervariasi (Google (terbuka di tab baru)).

<title>Linen shirt, natural, relaxed fit | Example Store</title>
<meta name="description" content="Relaxed-fit shirt in European linen. Sizes XS to XXL, $68, free returns within 30 days.">
  • Shopify: edit Judul halaman (Page title), Deskripsi meta (Meta description), dan Handle URL (URL handle) di bagian search engine listing setiap produk (Shopify Help Center (terbuka di tab baru)). Shopify menerima hingga 70 karakter untuk title, menyarankan sekitar 60, dan merekomendasikan 160 karakter untuk deskripsi (Shopify Help Center (terbuka di tab baru)).
  • WooCommerce: WordPress core tidak menampilkan meta description (diperiksa pada kode sumber versi 7.1.3), jadi gunakan plugin SEO atau tema Anda.

Apakah setiap halaman harus memiliki tepat satu H1?

Google tidak mewajibkan jumlah tertentu, tetapi satu H1 yang menyebutkan nama halaman adalah judul utama yang paling jelas bagi pembeli, pembaca layar, dan mesin pencari.

Panduan memulai SEO (SEO starter guide) dari Google menyatakan bahwa tidak ada jumlah heading yang ideal dan urutan heading tidak berpengaruh untuk Google Penelusuran, meskipun urutan yang semantis membantu pembaca layar (Google (terbuka di tab baru)). Panduan link judulnya menyarankan agar judul utama menjadi teks yang paling menonjol, misalnya sebagai <h1> pertama yang terlihat. Tutorial W3C menambahkan bahwa heading menyampaikan struktur halaman dan sebaiknya tidak ada tingkat heading yang dilompati (W3C WAI (terbuka di tab baru)).

Kesalahan yang sering ditemukan di toko online: logo dalam H1 di setiap halaman, nama produk dalam <div> atau H2, H1 kedua yang ditambahkan oleh aplikasi, dan halaman koleksi tanpa H1.

Bagaimana URL canonical menangani duplikat dari varian dan koleksi?

Tag canonical memberi tahu Google URL mana yang harus diindeks di antara beberapa URL dengan konten yang sama, jadi URL dengan parameter varian dan URL dengan path koleksi sebaiknya mengarah ke satu URL produk pilihan.

Google memperlakukan redirect dan rel="canonical" sebagai sinyal kuat, sedangkan pencantuman di sitemap sebagai sinyal lemah. Gunakan URL absolut, dan jangan gunakan robots.txt atau noindex untuk memilih canonical (Google (terbuka di tab baru)). Untuk varian yang memakai parameter kueri opsional seperti ?color=green, Google menyarankan URL tanpa parameter sebagai canonical. Google mengabaikan fragmen #, jadi varian membutuhkan path atau parameter, dan Google merekomendasikan canonical yang merujuk ke dirinya sendiri (self-referencing) di halaman yang bisa diindeks serta URL yang konsisten di link, sitemap, dan tag canonical (Google (terbuka di tab baru)).

<link rel="canonical" href="https://example.com/products/linen-shirt">

Jika Google mengabaikan pilihan Anda, laporan Pengindeksan halaman menampilkan "Duplicate, Google chose different canonical than user", yang biasanya menandakan adanya sinyal yang saling bertentangan.

  • Shopify: tag canonical dibuat secara otomatis (Shopify Help Center (terbuka di tab baru)); tema Dawn menampilkan <link rel="canonical" href="{{ canonical_url }}">. Tema yang memakai filter within membuat URL produk yang mengikuti koleksi (/collections/summer/products/linen-shirt), dan Shopify mencatat bahwa URL ini menduplikasi halaman produk standar (Shopify (terbuka di tab baru)). Pastikan canonical-nya mengarah ke /products/linen-shirt.
  • WooCommerce: WordPress core hanya menampilkan tag canonical pada tampilan tunggal seperti produk dan halaman (referensi developer WordPress (terbuka di tab baru)), jadi arsip toko dan kategori bergantung pada plugin SEO atau tema Anda. Mengubah struktur permalink produk akan mengubah setiap URL produk, dan link lama akan menghasilkan error 404 kecuali Anda menambahkan redirect (WooCommerce (terbuka di tab baru)).

Bagaimana cara memasang data terstruktur Product untuk listingan merchant?

Tambahkan markup Product dengan Offer bertingkat yang sesuai dengan harga dan ketersediaan di halaman, lalu uji di Rich Results Test (Uji Hasil Kaya) dari Google.

Google menggunakan cuplikan produk (product snippets) untuk halaman produk yang tidak memungkinkan pembelian langsung dan listingan merchant untuk halaman yang memungkinkannya (Google (terbuka di tab baru)). Google umumnya merekomendasikan JSON-LD (Google (terbuka di tab baru)). Listingan merchant mewajibkan name, image, dan offers sebagai Offer, dengan price di atas nol dan priceCurrency dalam format ISO 4217. Properti yang direkomendasikan meliputi availability, gtin, brand, aggregateRating, shippingDetails, dan hasMerchantReturnPolicy (Google (terbuka di tab baru)). Untuk varian, Google mendukung ProductGroup dengan hasVariant, variesBy, dan productGroupID (Google (terbuka di tab baru)).

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Linen shirt, natural",
  "image": ["https://example.com/images/linen-shirt-1x1.jpg"],
  "sku": "LS-NAT-M",
  "brand": { "@type": "Brand", "name": "Example Store" },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/products/linen-shirt",
    "price": "68.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  }
}
</script>

Hanya beri markup pada informasi yang bisa dilihat pembeli; Google tidak menjamin bahwa data terstruktur akan muncul di hasil pencarian (Google (terbuka di tab baru)).

  • Shopify: {{ product | structured_data }} menghasilkan Product untuk produk tanpa varian dan ProductGroup untuk produk dengan varian (Shopify (terbuka di tab baru)); Dawn menyertakannya di bagian produknya. Jika aplikasi ulasan atau aplikasi SEO menambahkan markup sendiri, periksa apakah ada duplikat.
  • WooCommerce: WooCommerce core menampilkan JSON-LD Product di halaman produk, dengan SKU, penawaran (offers), rating jika ada ulasan, dan GTIN jika kolom GTIN, UPC, EAN, atau ISBN (ditambahkan di WooCommerce 9.2 (terbuka di tab baru)) diisi. Produk variabel dengan harga variasi yang berbeda mendapatkan rentang harga AggregateOffer, kecuali URL-nya memilih satu variasi (kode sumber WooCommerce (terbuka di tab baru)), jadi ujilah produk tersebut, karena listingan merchant membutuhkan Offer.

Untuk pengembalian barang, Google juga menerima kebijakan pengembalian tingkat organisasi dalam markup, tetapi pengaturan di Merchant Center atau Search Console lebih diutamakan (Google (terbuka di tab baru)).

Tag Open Graph apa saja yang harus ada di halaman produk?

Halaman produk sebaiknya memiliki og:title, og:type, og:image, dan og:url, ditambah og:description dan og:image:alt, agar link yang dibagikan menampilkan judul dan foto yang tepat.

Protokol Open Graph mencantumkan keempat tag pertama itu sebagai wajib, mendefinisikan og:url sebagai URL canonical, dan menyatakan bahwa og:image:alt sebaiknya menyertai setiap og:image (ogp.me (terbuka di tab baru)).

<meta property="og:type" content="product">
<meta property="og:title" content="Linen shirt, natural">
<meta property="og:url" content="https://example.com/products/linen-shirt">
<meta property="og:image" content="https://example.com/images/linen-shirt-1200x630.jpg">
<meta property="og:image:alt" content="Natural linen shirt on a hanger">
<meta property="og:description" content="Relaxed-fit shirt in European linen.">
  • Shopify: snippets/meta-tags.liquid milik Dawn menghasilkan tag ini dari judul halaman, URL canonical, dan gambar produk (Shopify Dawn di GitHub (terbuka di tab baru)). Atur gambar cadangan di Toko Online > Preferensi (Online Store > Preferences) (Shopify Help Center (terbuka di tab baru)).
  • WooCommerce: baik WordPress core (7.1.3) maupun WooCommerce (11.2.1) tidak menampilkan tag Open Graph, jadi tambahkan dengan plugin SEO atau tema.

Mengapa alt text penting untuk gambar produk?

Alt text memberi tahu mesin pencari dan pengguna pembaca layar apa yang ditampilkan gambar produk, dan Google menggunakannya bersama computer vision dan konten halaman.

Panduan gambar dari Google meminta alt text yang berguna dan spesifik tanpa keyword stuffing; contoh terbaiknya adalah "Dalmatian puppy playing fetch" (anak anjing dalmatian bermain lempar tangkap). Google tidak mengindeks gambar latar CSS, jadi foto produk sebaiknya ditempatkan di elemen <img> (Google (terbuka di tab baru)). Untuk toko online, artinya alt text seperti "Kemeja linen warna natural, tampak belakang", bukan "kemeja kemeja linen beli".

Crawl toko Anda, buat daftar link internal yang menghasilkan error 4xx, lalu perbarui setiap link atau buat redirect 301 dari URL lama ke halaman aktif yang paling relevan.

Google meng-crawl link yang dibuat sebagai elemen <a> dengan href dan merekomendasikan agar setiap halaman penting ditautkan dari setidaknya satu halaman lain (Google (terbuka di tab baru)). URL yang mengembalikan kode 4xx tidak diindeks, dan URL yang sudah terindeks akan dihapus; 301 adalah sinyal redirect yang kuat, sedangkan 302 sinyal yang lemah (Google (terbuka di tab baru)). Link di toko online rusak ketika produk dihapus atau diganti namanya, handle berubah, atau koleksi tidak dipakai lagi, sementara link lama masih tertinggal di menu, deskripsi, dan postingan blog.

  • Shopify: buka Konten > Menu > Lihat pengalihan URL > Buat pengalihan URL (Content > Menus > View URL redirects > Create URL redirect). Shopify hanya mengalihkan URL yang benar-benar rusak (Shopify Help Center (terbuka di tab baru)).
  • WooCommerce: tambahkan aturan server atau plugin redirect setiap kali Anda mengubah slug atau pengaturan permalink.

Pemindaian gratis menandai banyak masalah ini dalam waktu sekitar satu menit. Laporan Perbaikan SEO memeriksa title, meta description, H1, canonical, noindex, robots.txt, sitemap, data terstruktur Product, Open Graph, alt text, dan link internal yang rusak di hingga 25 halaman, lengkap dengan perbaikan untuk platform Anda.

Pertanyaan yang sering diajukan

Apakah memperbaiki SEO teknis menjamin peringkat yang lebih baik?

Tidak. Perbaikan ini menghilangkan alasan sebuah halaman tidak bisa di-crawl, diindeks, atau dipahami; peringkat tetap bergantung pada relevansi dan banyak faktor lain.

Apakah setiap varian produk harus memiliki URL terindeks sendiri?

Tergantung cara variannya dibuat. Jika varian berbagi satu halaman dan hanya dibedakan oleh parameter kueri opsional, Google menyarankan URL tanpa parameter sebagai canonical; jika setiap varian memiliki halaman sendiri, panduan varian dari Google memperlakukan setiap halaman secara terpisah.

Mengapa produk saya tidak menampilkan hasil kaya (rich results) padahal markup-nya valid?

Google tidak menjamin hasil kaya untuk data terstruktur yang valid. Pastikan markup sesuai dengan konten yang terlihat, menggunakan Offer dengan harga di atas nol, dan lolos Rich Results Test.

Haruskah saya memblokir halaman koleksi yang difilter di robots.txt?

Di Shopify, robots.txt default sudah memblokir URL koleksi yang difilter dan diurutkan karena URL tersebut menduplikasi halaman koleksi. Jika Anda mengedit robots.txt.liquid, pertahankan aturan tersebut kecuali Anda punya alasan khusus untuk mengubahnya.

Sumber