Panduan Shopware SEO
How SEO berfungsi pada Shopware 6 — native controls ini ships (Twig-templated SEO URLs, canonical handling, sitemap XML, hreflang via Sales Channel/Domain model, dan, di recent versi, native robots.txt dan JSON-LD), versi gates itu decide what Anda actually get, traps (rebuild indeks setelah sebuah template perubahan, variant duplicate konten, seo_url table growth), dan why headless (Composable Frontends) moves whole SEO checklist ke Nuxt layer.
Bahasa
Shopware 6 ships sebuah unusually besar amount dari native SEO teknis untuk sebuah self-hosted platform — Twig-templated SEO URLs per entity jenis, canonical handling, three-strategy sitemap XML generation, dan hreflang derived dari Sales Channel/Domain model — tetapi what's 'native' depends heavily pada Anda versi: per-domain robots.txt hanya arrived di 6.7.1.0 dan JSON-LD data terstruktur (replacing Microdata) di 6.7.9.0 behind sebuah fitur flag. recurring traps adalah spesifik: Anda harus rebuild SEO indeks (dal:refresh:indeks) setelah changing sebuah URL template, product variants setiap get mereka own URL dan dapat't menjadi canonicalized straight untuk parent without sebuah template override, dan seo_url table grows roughly dengan variants times languages. Going headless dengan Composable Frontends (Vue + Nuxt) moves entire SEO checklist — sitemap, canonical, meta tags, data terstruktur — ke Nuxt rendering layer, where none dari admin SEO settings apply yang sama cara.
Evidence for this claim Shopware 6 provides configurable SEO URL templates and sitemap settings, with behavior dependent on version and sales-channel configuration. Scope: Shopware 6 administration; plugins and release versions can change output. Confidence: high · Verified: Shopware documentation: SEO Evidence for this claim Shopware release notes document material SEO-related changes across 6.7 releases, so exact native behavior must be checked by installed version. Scope: Shopware 6.7 release line, not all earlier installations. Confidence: high · Verified: Shopware 6.7 release notesTL;DR — Shopware adalah sebuah ecommerce platform (dibangun di Germany) itu comes dengan sebuah lot dari SEO dibangun di: ini dapat bangun Anda product URLs, write Anda sitemap, handle tag canonical, dan siapkan hreflang untuk multiple languages. two things untuk know going di: which fitur Anda get depends pada Anda Shopware versi (beberapa arrived hanya recently), dan sebuah few tasks — like tidying up duplicate variant halaman — masih perlu sebuah plugin atau sebuah developer.
What “Shopware SEO” (terjemahan) “Shopware SEO” berarti
Shopware adalah sebuah open-source-core ecommerce platform. saat ini versi adalah Shopware 6. Unlike Shopify atau BigCommerce — which host everything untuk Anda — Shopware adalah biasanya installed pada Anda own hosting (atau Shopware’s cloud), which berarti Anda get more control dan more responsibility.
“Shopware SEO” (terjemahan) “Shopware SEO” adalah hanya normal berfungsi dari getting Anda products dan category halaman ditemukan, di-crawl, terindeks, dan diperingkatkan — applied untuk sebuah store itu runs pada Shopware. ini adalah worth -nya own guide because Shopware membuat sebuah lot dari SEO choices untuk Anda out dari box, dan Anda perlu know which boxes ini sudah ticks, which ini leaves empty, dan which ones hanya appear jika Anda’re pada sebuah recent-enough versi.
What Shopware melakukan untuk Anda
- Clean URLs. Shopware membangun “SEO URLs” (terjemahan) “SEO URLs” untuk Anda products dan categories menggunakan templates Anda dapat edit di admin. Anda control format.
- Sitemap. Shopware generates sebuah sitemap XML dari Anda products dan categories dan
mempertahankan ini di
https://yourdomain.com/sitemap.xml. Anda hanya submit ini untuk Google. - tag canonical. untuk categories, Shopware picks right main URL automatically when sebuah product sits di more daripada one category.
- hreflang untuk languages. jika Anda sell di multiple languages, Shopware dapat tambahkan tags itu tell Google which language versi untuk tampilkan — dibangun dari Anda “sales channel” (terjemahan) “sales channel” dan domain setup.
- robots.txt (newer versi hanya). dari Shopware 6.7.1.0 onward Anda dapat edit
Anda
robots.txtright di admin. - data terstruktur (newer versi hanya). dari Shopware 6.7.9.0 onward Shopware dapat output modern JSON-LD “rich result” (terjemahan) “rich hasil” data untuk products.
What Anda masih memiliki untuk melakukan yourself
- Fill di Anda judul dan deskripsi. Shopware gives Anda fields; Anda write copy. There’s no native cara untuk bulk-set them oleh sebuah pattern di seluruh thousands dari products.
- Handle duplicate variant halaman. setiap product variant (setiap size, setiap color) gets -nya own URL, dan mereka deskripsi adalah sering near-identical, so mereka dapat compete dengan setiap lainnya. Shopware doesn’t fully fix ini untuk Anda.
- periksa Anda versi. Because robots.txt dan JSON-LD adalah recent additions, advice Anda read online dapat menjadi out dari date untuk Anda store — atau ahead dari ini.
thing sebagian besar people get wrong
People assume itu because Shopware “has good SEO,” (terjemahan) “memiliki baik SEO,” everything adalah handled. Two catches trip up nearly everyone. pertama, changing sebuah URL template doesn’t update Anda existing URLs until Anda rebuild Shopware’s SEO indeks — sebuah langkah itu’s easy untuk forget. kedua, jika Anda go “headless” (terjemahan) “headless” (sebuah modern Vue/Nuxt storefront), almost none dari admin SEO settings apply yang sama cara — SEO becomes sebuah job untuk Anda developer untuk bangun di baru frontend.
ingin practitioner versi — exact Twig templates, variant-canonical fix, sitemap strategies dan CLI commands, versi gates, dan headless catch? Switch untuk Advanced tab.
Evidence for this claim Shopware 6 provides configurable SEO URL templates and sitemap settings, with behavior dependent on version and sales-channel configuration. Scope: Shopware 6 administration; plugins and release versions can change output. Confidence: high · Verified: Shopware documentation: SEO Evidence for this claim Shopware release notes document material SEO-related changes across 6.7 releases, so exact native behavior must be checked by installed version. Scope: Shopware 6.7 release line, not all earlier installations. Confidence: high · Verified: Shopware 6.7 release notesTL;DR — Shopware 6 ships more native SEO teknis daripada sebagian besar self-hosted platforms — tetapi “native” (terjemahan) “native” adalah heavily versi-gated. SEO URLs adalah Twig templates per entity jenis (product / category / landing halaman), configurable globally atau per sales channel; perubahan sebuah template dan Anda harus rebuild indeks (
dal:refresh:index) atau existing URLs won’t update. Canonical adalah sebuah separate sistem dari URL templates: automatic untuk categories, semi-manual untuk variants (Anda dapat poin one variant di lainnya sebagai canonical, tetapi not straight di parent without sebuah template override). sitemap XML memiliki three refresh strategies (scheduled / live / manual, dengansitemap:generateuntuk manual) dan Shopware explicitly disclaims apa pun pengindeksan guarantee. robots.txt adalah nothing-automatic sebelum 6.7.1.0 (manual file + server rewrite) dan native per-domain admin editing setelah. data terstruktur hanya migrated dari Microdata untuk JSON-LD di 6.7.9.0 behindJSON_LD_DATAflag. hreflang comes dari Sales Channel > Domain model, dengan sebuah cross-sales-channel gap itu spawned paid plugins. dan going headless (Composable Frontends, Vue + Nuxt) moves whole SEO checklist ke Nuxt rendering layer.
frame: native, versi-gated, dan where Anda masih melakukan berfungsi
sebagian besar Shopware SEO konten adalah either sebuah screenshot walkthrough dari admin settings atau sebuah pitch dari sebuah Shopware agency. Neither tells Anda two things itu actually penting: what Shopware ships natively depends pada Anda versi, dan ** remaining gaps adalah spesifik dan predictable.** Sort setiap task ke three buckets — native-dan-saat ini, native-hanya-jika-Anda’re-pada-sebuah-recent-versi, dan masih-Anda-job — dan platform stops menjadi mysterious.
Shopware itself frames native side generously: ini says platform “includes many SEO features out of the box – from country- and language-specific URLs to meta data, hreflang, and performance optimizations, allowing you to build strong SEO without additional plugins.” (terjemahan) “mencakup banyak SEO fitur out dari box – dari country- dan language-spesifik URLs untuk meta data, hreflang, dan performa optimizations, allowing Anda untuk bangun strong SEO without additional plugins.” itu’s largely benar — dengan versi caveats below, dan dengan sebuah pendek list dari things (bulk meta, variant canonicals, cross-channel hreflang, headless rendering) itu masih perlu plugins atau code.
Because Shopware adalah self-hosted dan open-source-core, ini sits differently dari
hosted platforms. Where Shopify forces /products/ dan /collections/ prefixes dan
won’t let Anda natively edit robots.txt, dan BigCommerce hands Anda sebuah editable
robots.txt dan custom struktur URL pada sebuah managed stack, Shopware gives Anda more
control daripada apa pun dari them — Anda dapat override storefront templates directly — di
cost dari owning more dari outcome, including Anda own hosting, pengindeksan rebuilds,
dan (pada headless) Anda own rendering pipeline. ini adalah closer di spirit untuk Magento atau sebuah
self-hosted WooCommerce store daripada untuk Shopify.
struktur URL: SEO URL templates
SEO URLs live di Settings > Shop > SEO, dan mereka’re configurable per sales channel atau globally. ada three separately-templated entity jenis — product detail halaman, category halaman, dan landing halaman — dan templates gunakan Twig syntax. Shopware’s docs put ini plainly: “In the SEO settings you can define the structure for the SEO URLs of the product detail pages and categories. For this purpose you have a variety of variables at your disposal.” (terjemahan) “di SEO settings Anda dapat define structure untuk SEO URLs dari product detail halaman dan categories. untuk ini purpose Anda memiliki sebuah variety dari variables di Anda disposal.”
mechanics worth knowing:
- ** default product template adalah
{{ product.name }}**, dan ada 50+ product variables available (product angka, EAN, manufacturer name, breadcrumb/categories, custom fields, release date, dan more). - Multi-tingkat variables harus menjadi typed oleh hand. Clicking variable picker hanya
inserts incomplete parent token —
{{ product.translated.name }}memiliki untuk menjadi finished manually. - Anda dapat truncate panjang names. untuk sebuah product name longer daripada, say, 50 characters,
Shopware documents
{{ product.translated.name[:50] }}untuk shorten ini di URL. - ** category default menggunakan breadcrumb:**
{% for part in category.seoBreadcrumb %}{{ part }}/{% endfor %}. - Twig filters berfungsi untuk normalization — misalnya
{{ product.translated.name|lower }}/{{ product.productNumber }}— dan Shopware notes “in general you can use the available Twig filters.” (terjemahan) “di umum Anda dapat gunakan available Twig filters.” - Conditional (jika) logic handles missing fields; docs give sebuah variant-aware
contoh menggunakan
{% if product.canonicalProductId is not null %}.
** trap almost everyone hits:** “After you have made changes to the SEO template,
it is necessary to rebuild the index so that the URLs are updated. You can do this from
the console using the command php bin/console dal:refresh:index.” (terjemahan) “setelah Anda memiliki dibuat perubahan untuk SEO template,
ini adalah necessary untuk rebuild indeks so itu URLs adalah updated. Anda dapat melakukan ini dari
console menggunakan command undefined.” Editing sebuah template
hanya affects newly generated URLs — existing products pertahankan mereka old slugs until Anda
rebuild. jika Anda perubahan template dan “nothing happened,” (terjemahan) “nothing happened,” ini adalah why.
di bawah hood, SEO URLs live di sebuah seo_url database table dengan sebuah dual-URL concept:
sebuah technical path_info ( nyata route) dan sebuah human seo_path_info ( slug), plus
sales_channel_id, language_id, is_canonical, dan is_deleted/is_modified
flags. Custom atau dynamic SEO URL routes adalah ditambahkan oleh developers via sebuah
SeoUrlRouteInterface implementation registered dengan shopware.seo_url.route
container tag. Anda tidak perlu ini untuk sebuah normal store, tetapi ini menjelaskan scale
perilaku di pitfalls bagian below.
tag canonical
Canonicalization pada Shopware adalah sebuah separate mechanism dari URL templates — ini adalah single sebagian besar misunderstood bagian dari Shopware SEO. Shopware’s own docs bahkan define concept cara Google melakukan: “A canonical URL is the URL of the page that the search engine assumes is the most representative of several duplicated pages on your site.” (terjemahan) “sebuah canonical URL adalah URL dari halaman itu mesin pencari assumes adalah paling representative dari several duplicated halaman pada Anda situs.”
Three things untuk pertahankan straight:
- Categories adalah canonicalized automatically. When sebuah product adalah reachable melalui multiple categories (dan therefore multiple URLs), Shopware’s marketing describes ini sebagai detecting ini dan “automatically marks the correct URL, automatically preventing technical SEO issues.” (terjemahan) “automatically marks correct URL, automatically preventing SEO teknis issues.” Treat marketing phrasing sebagai sebuah claim untuk confirm pada Anda own store, tetapi automatic-category perilaku adalah nyata.
- Variants adalah hanya semi-manual. setiap variant gets -nya own SEO URL, dan
dibangun-di “Variant for Canonical URL” (terjemahan) “Variant untuk Canonical URL” picker lets Anda nominate one variant sebagai
canonical target. What ini melakukan not melakukan adalah let Anda canonicalize sebuah variant
straight back untuk parent product — sebuah gap practitioners fix oleh overriding
product-detail/meta.html.twig(atau dengan sebuah plugin) so variants canonicalize untuk parent’s SEO URL when one exists. jika Anda variant halaman adalah near-duplicates competing dengan setiap lainnya, ini adalah fix. - There’s sebuah global 301 perilaku toggle. di bawah “Forwarding behavior,” (terjemahan) “Forwarding perilaku,” Shopware dapat
“output an HTTP 301 redirect when URLs are changed” (terjemahan) “output sebuah HTTP 301 redirect when URLs adalah changed” alih-alih leaving old URLs
live setelah sebuah template edit — setting itu pairs dengan
dal:refresh:indexrebuild above.
ini maps directly onto Google’s own stance itu canonicalization adalah sebuah hint dan itu duplicate variant/parameter URLs adalah normal di ecommerce — umum mechanics adalah di canonicalization, which ini artikel adalah Shopware-spesifik companion untuk.
sitemap XML
sitemap lives di Settings > Shop > Sitemap. Shopware “generates a standard sitemap that is compressed and cached in the file system,” (terjemahan) “generates sebuah standard sitemap itu adalah compressed dan cached di file sistem,” dan untuk besar catalogs “the sitemap is divided into several files and can be generated in the background” (terjemahan) “ sitemap adalah divided ke several files dan dapat menjadi generated di background” — multi-file split itu mempertahankan setiap file inside sitemaps.org / Google limits dari 50 000 URLs dan 50 MB uncompressed.
ada three refresh strategies, dan difference penting:
- scheduled — generated automatically pada sebuah scheduled task di sebuah set interval.
- live — dibuat when none exists, dan recreated once refresh time elapses.
- manually — automatic generation adalah off entirely; “the sitemap will only be
created if you call the following command manually:
php bin/console sitemap:generate. In this case, it is necessary to run this command again each time a new URL is added or an old one is removed.” (terjemahan) “ sitemap akan hanya menjadi dibuat jika Anda panggil following command manually: undefined. di ini case, ini adalah necessary untuk run ini command again setiap time sebuah baru URL adalah ditambahkan atau sebuah old one adalah dihapus.”
Two things people miss:
- ** public URL adalah
sitemap.xml, dan there’s no human-facing/sitemaphalaman.** Shopware adalah explicit: “Shopware 6 does not provide a visitor sitemap (suffix/sitemapafter your domain). The index filesitemap.xmlis created for evaluation by Google.” (terjemahan) “Shopware 6 melakukan not menyediakan sebuah pengunjung sitemap (suffix undefined setelah Anda domain). indeks file undefined adalah dibuat untuk evaluation oleh Google.” - sebuah sitemap guarantees nothing. Shopware states outright itu ini “cannot guarantee that every URL will be crawled and indexed. This always depends on the search engine provider.” (terjemahan) “cannot guarantee itu setiap URL akan menjadi di-crawl dan terindeks. ini selalu depends pada mesin pencari provider.” sebuah sitemap adalah sebuah penemuan aid, not sebuah pengindeksan promise — sama sebagai pada setiap lainnya platform.
menambahkan atau excluding custom URLs (beyond products/categories) isn’t sebuah admin toggle —
ini adalah developer berfungsi via custom UrlProvider classes, documented di Shopware’s
developer sitemap guides.
robots.txt — periksa Anda versi pertama
ini adalah paling versi-sensitive bagian dari Shopware SEO, so date-stamp ini sebelum Anda advise anyone.
- sebelum 6.7.1.0 (sebagian besar older installs): nothing adalah generated automatically.
Shopware’s docs say “the robots file is not created automatically in Shopware 6, but
has to be created manually as a text file” (terjemahan) “ robots file adalah not dibuat automatically di Shopware 6, tetapi
memiliki untuk menjadi dibuat manually sebagai sebuah text file” placed di
/public/. untuk multi-domain setups Anda sajikan per-domain file dengan sebuah server rewrite — ApacheRewriteRule ^robots\.txt$ robots/%{HTTP_HOST}.txt [NS]atau NGINX equivalentrewrite ^/robots\.txt$ /robots/$host.txt— pointing di sebuah/public/robots/<domain>.txtstructure. - dari 6.7.1.0 onward (July 2025 release): native per-domain robots.txt management shipped di admin — Anda “can define individual robots.txt rules for each domain in the Admin under Settings > General > Basic information.” (terjemahan) “dapat define individual robots.txt aturan untuk setiap domain di Admin di bawah Settings > umum > Basic informasi.” ini started sebagai sebuah Hacktoberfest 2024 community contribution.
So myth “Shopware doesn’t let you edit robots.txt” (terjemahan) “Shopware doesn’t let Anda edit robots.txt” adalah hanya benar pre-6.7.1.0.
Confirm store’s versi sebelum telling someone untuk “just edit it in the admin” (terjemahan) “hanya edit ini di admin” —
older stores masih perlu manual-file-plus-rewrite approach. admin field (“Rules
for robots.txt” (terjemahan) “aturan
untuk robots.txt” di bawah Settings > umum > Basic informasi) adalah sebuah free-text area
merged straight ke itu domain’s robots.txt, so ini accepts full User-agent: /
Allow: / Disallow: blocks, not hanya flat aturan — confirmed both di Shopware’s
saat ini docs dan di sebuah 6.7.10.0 fix (avoid duplicate robots.txt directives for user-agent blocks) itu specifically reproduces bug menggunakan per-pengguna-agent blocks
di itu field.
data terstruktur: Microdata → JSON-LD migration
Shopware went melalui sebuah nyata architecture shift here di 6.7.9.0: storefront
moved dari scattered inline Microdata untuk JSON-LD emitted sebagai sebuah
<script type="application/ld+json"> block di <head>. ini adalah behind sebuah fitur flag,
JSON_LD_DATA, dan adalah off oleh default — dengan flag pada, JSON-LD adalah injected
dan old Microdata adalah dihapus. Microdata adalah deprecated dan slated untuk removal di
6.8.0.0.
setelah Anda flip flag, JSON-LD output adalah substantially richer daripada old Microdata:
Product— semua product images,VideoObjectuntuk product videos,AggregateRatingdenganratingCount, up untuk 10 sebagian besar recentReviewitems,OfferShippingDetails/ShippingDeliveryTimeuntuk single-price products,DimensionssebagaiQuantitativeValue,itemCondition, typed seller info, dangtin13(EAN) /mpnwhen present.WebSitedenganSearchAction(enables Google’s Sitelinks search box).- Top-tingkat
Organization(shop logo). ItemListpada category / search-hasil halaman, plusBreadcrumbList.
setiap schema jenis lives di -nya own overridable Twig template di bawah
storefront/layout/structured-data/. yang sama 6.7.9.0 release juga ditambahkan per-product
Open Graph fields di admin SEO tab — custom og:title, og:description, dan
og:image, defaulting untuk product’s meta judul/deskripsi/cover image when unset —
so social shares dan beberapa search-hasil previews dapat now diverge intentionally dari
meta tags without sebuah plugin.
practical takeaway: ini adalah sebuah myth-buster. Plenty dari practitioner posts dan paid Store extensions (“JSON-LD Rich Snippets for product pages” (terjemahan) “JSON-LD Rich Snippets untuk product halaman”) predate native fitur. jika Anda’re pada 6.7.9.0+, periksa apakah Anda masih perlu itu plugin sebelum buying ini — dan jika Anda’re pada sebuah older versi, itu’s exactly when sebuah plugin masih earns -nya pertahankan. Google’s Product data terstruktur guidelines adalah spec ini output targets, dan Google memerlukan data terstruktur untuk reflect terlihat halaman konten — so fill fields Anda ingin di markup.
SEO internasional: hreflang via Sales Channel + Domain
Shopware doesn’t memiliki sebuah standalone hreflang editor. hreflang adalah derived dari Sales Channel > Domain model: setiap sales channel dapat memiliki multiple domains, dan setiap domain maps untuk one language, one currency, sebuah snippet set, dan sebuah unit sistem — siapkan dengan -nya “own virtual URL, language, currency, snippet set and its own unit system.” (terjemahan) “own virtual URL, language, currency, snippet set dan -nya own unit sistem.”
Two settings melakukan SEO berfungsi:
- sebuah localization mode dropdown dengan two options: ISO standard, “useful, for
example, if you use different (country-specific) language variants that may use their
own country-specific terms,” (terjemahan) “berguna, untuk
contoh, jika Anda gunakan berbeda (country-spesifik) language variants itu dapat gunakan mereka
own country-spesifik istilah,” which produces full region-language codes like
en-USvsen-GB; dan browser language localization, which adalah language-hanya (plainen). gunakan ISO standard when Anda genuinely memiliki regional variants. - sebuah default domain itu, setelah Anda enable hreflang meta tag, “will serve as a
fallback for all languages” (terjemahan) “akan sajikan sebagai sebuah
fallback untuk semua languages” — Shopware’s versi dari Google’s
x-default.
known weak spot: ini berfungsi di dalam sebuah single sales channel’s domains, tetapi cross-sales-channel hreflang — separate sales channels per country/TLD running near-duplicate catalogs — adalah not natively ditautkan. itu gap adalah exactly what paid “Hreflang Manager” (terjemahan) “Hreflang Manager” store extensions exist untuk solve. I’d treat cross-channel gap sebagai sebuah strong community/marketplace signal alih-alih sebuah documented Shopware limitation, tetapi ini adalah sebuah recurring pain poin pada forums.
One thing Shopware’s own docs don’t spell out itu Google memerlukan: hreflang harus menjadi
bidirectional (kembalikan tags) dan sertakan sebuah x-default. jika Anda’re baru untuk
kembalikan-tag requirement, umum mechanics adalah di
hreflang — Shopware’s default-domain
setting handles x-default side, tetapi Anda masih ingin untuk verify kembalikan tags
resolve.
Headless: Composable Frontends (Shopware Frontends)
Shopware’s headless option adalah “Shopware Frontends” (terjemahan) “Shopware Frontends” (formerly “Composable Frontends” (terjemahan) “Composable Frontends” / “PWA” (terjemahan) “PWA”) — sebuah Vue.js + Nuxt toolkit itu consumes Shopware Store API, distinct dari default Twig/Symfony storefront. ini ships sebuah component library, sebuah API client, reusable “composables,” (terjemahan) “composables,” dan generated TypeScript jenis; reference “Vue Demo Store” (terjemahan) “Vue Demo Store” adalah dibangun pada Nuxt + Tailwind.
Here’s bagian setiap lainnya guide skips: going headless moves essentially semua SEO responsibility ke Nuxt layer, dan none dari admin SEO settings apply yang sama cara. SEO URL templates, canonical settings, sitemap admin toggle, dan baru robots.txt admin panel adalah semua Symfony-storefront (Twig) fitur. sebuah Composable Frontends bangun perlu -nya own:
- rendering mode itu produces dapat di-crawl HTML — Nuxt SSR (atau hybrid / ISR / edge rendering) untuk SEO-relevant halaman. sebuah pure client-side-rendered (SPA) bangun reintroduces classic JavaScript-rendering SEO risk, so headless adalah not automatically better untuk SEO — sebuah badly configured headless storefront dapat menjadi worse daripada default Twig one.
- Sitemap generation, tag canonical, data terstruktur, dan meta-tag injection implemented di Nuxt app (typically via Nuxt’s head/SEO-meta composables), biasanya masih pulling slugs dan product data dari yang sama Shopware SEO URL / Store API data.
So myth “going headless with Shopware fixes/improves SEO” (terjemahan) “going headless dengan Shopware fixes/improves SEO” adalah salah sebagai stated. SEO outcome depends entirely pada how Anda configure rendering di Nuxt. ini adalah yang sama trap sebagai apa pun headless bangun — platform-agnostic versi lives di JavaScript SEO dan CMS headless SEO.
umum pitfalls di scale
practitioner pain poin cluster di three places:
- Default misconfigurations. Practitioner audits flag itu “Remove Category ID from
URL” (terjemahan) “hapus Category ID dari
URL” ships atur ke No oleh default (worth enabling untuk cleaner URLs), itu pagination
signals adalah off oleh default, dan itu blog/archive pagination halaman adalah worth
noindex-ing because mereka “add no value; they only take up crawl budget.” (terjemahan) “tambahkan no nilai; mereka hanya take up anggaran crawling.” One widely repeated claim — itu Shopware auto-menambahkannofollowuntuk semua tautan eksternal — I’d verify terhadap sebuah nyata install sebelum repeating; ini wasn’t confirmed terhadap Shopware’s own docs. - Product-variant duplicate konten. ini adalah single sebagian besar recurring Shopware SEO
complaint. setiap variant gets -nya own URL (
/SW10000.1,/SW10000.2, …) dengan inherited, near-identical deskripsi, so variants compete unless Anda canonicalize them — dan, per canonical bagian above, dibangun-di picker dapat’t poin straight di parent without sebuah template override. seo_urltable growth pada besar multilingual catalogs. Row count roughly mengikuti (parent + active variants) × angka dari languages — sebuah practitioner deep dive puts sebuah 9-variant product di seluruh 17 languages di ~153 rows untuk sebuah single product family. Frequent template edits multiply history rows further. di scale fixes adalah: generate SEO URLs untuk parent products hanya (not setiap variant), prune soft-deleted / non-canonical rows periodically, dan tambahkan composite indeks. ini adalah why sebuah besar Shopware store dapat feel slow dan accumulate odd duplicate SEO URLs.
When native alat adalah enough vs. when Anda perlu sebuah plugin atau dev berfungsi
rough threshold echoed di seluruh practitioner sources: native alat adalah enough untuk kecil, sederhana catalogs (pada order dari sebuah few hundred products), dan plugins atau custom development become necessary di meaningful scale — thousands dari SKUs, deep variant matrices, banyak languages, atau cross-sales-channel international setups. Concretely, reach untuk sebuah plugin atau code when Anda perlu bulk judul/meta patterns, canonical-untuk-parent untuk variants, cross-sales-channel hreflang, custom sitemap entries, atau JSON-LD pada sebuah pre-6.7.9.0 versi. Everything else — SEO URL templates, category canonicals, sitemap, single-channel multi-domain hreflang, dan (pada saat ini versi) robots.txt dan JSON-LD — adalah native.
Shopware vs hosted platforms — honest versi
| Shopware | Shopify | BigCommerce | |
|---|---|---|---|
| Hosting | Self-hosted / Shopware cloud | Hosted SaaS | Hosted SaaS |
| struktur URL | Twig templates, fully custom | Forces /products/, /collections/ | Fully custom, no forced prefixes |
| robots.txt | Native admin dari 6.7.1.0 (manual sebelum) | Not natively editable | Editable di admin |
| dibangun-di schema | Native JSON-LD dari 6.7.9.0 (flagged) | App diperlukan | Yes (Cornerstone) |
| hreflang | Native via Sales Channel/Domain (single-channel) | App / theme berfungsi | Manual |
| Headless option | Composable Frontends (Vue + Nuxt) | Hydrogen | Catalyst (Next.js) |
| indeks rebuild langkah | Yes (dal:refresh:index) | Not exposed | Not exposed |
semua dari them peringkat fine. Shopware’s genuine advantage adalah control — Twig-templated URLs, overridable storefront templates, dan sebuah besar native fitur set itu mempertahankan growing oleh versi. -nya genuine cost adalah itu Anda own more dari pipeline: Anda hosting, Anda indeks rebuilds, Anda versi awareness, dan — jika Anda go headless — Anda entire rendering dan SEO-tag layer. Like Magento dan self-hosted WooCommerce, dan unlike Shopify atau PrestaShop’s simpler defaults, itu trade favors teams dengan development capacity.
AI summary
sebuah condensed take pada Advanced versi:
- Shopware 6 adalah sebuah self-hosted, open-source-core ecommerce platform (Symfony/PHP + Vue.js storefront) dengan sebuah besar native SEO fitur set — more control daripada Shopify atau BigCommerce, tetapi Anda own more dari pipeline.
- “Native” (terjemahan) “Native” adalah versi-gated. Per-domain
robots.txthanya dari 6.7.1.0 ( admin field adalah free text, soUser-agent:blocks berfungsi, not hanya flat aturan); JSON-LD data terstruktur (replacing Microdata) dan per-product Open Graph fields hanya dari 6.7.9.0, behindJSON_LD_DATAflag untuk JSON-LD (Microdata sunsets di 6.8.0.0). selalu periksa store’s versi sebelum advising. - SEO URLs adalah Twig templates per entity jenis (product / category / landing
halaman) di Settings > Shop > SEO. perubahan sebuah template → rebuild indeks
(
php bin/console dal:refresh:index) atau existing URLs won’t update. - Canonical adalah sebuah separate sistem: automatic untuk categories; untuk variants Anda dapat
nominate one variant sebagai canonical tetapi dapat’t poin straight di parent without
overriding
product-detail/meta.html.twig. sebuah global “Forwarding behavior” (terjemahan) “Forwarding perilaku” toggle emits 301s pada URL perubahan. - Sitemap: three strategies (scheduled / live / manual, dengan
php bin/console sitemap:generate); public URLsitemap.xml; no human/sitemaphalaman; Shopware disclaims apa pun pengindeksan guarantee. - hreflang comes dari Sales Channel > Domain model (one domain = one
language/currency), dengan sebuah ISO-standard vs browser-language toggle dan sebuah default
domain sebagai
x-default. Cross-sales-channel hreflang isn’t natively ditautkan — gap paid plugins fill. - Headless (Composable Frontends, Vue + Nuxt) moves entire SEO checklist (sitemap, canonical, meta, data terstruktur) ke Nuxt rendering layer — admin SEO settings don’t apply, dan sebuah poorly configured headless bangun dapat menjadi worse untuk SEO.
- Scale pitfalls: variant duplicate konten,
seo_urltable growth (~variants × languages), dan default misconfigurations (category ID di URL, pagination signals). Native alat suffice untuk kecil catalogs; plugins/dev berfungsi untuk scale.
Official documentation
Primary-source docs dari Shopware dan Google.
Shopware
- SEO settings (SEO URL templates, canonical, forwarding perilaku) — core admin SEO halaman; Twig variables, truncation, filters, dan
dal:refresh:indexrebuild note. - Sitemap settings — three refresh strategies,
sitemap:generate,sitemap.xmlURL, dan no-pengindeksan-guarantee disclaimer. - Sales channel (domains / hreflang) — Sales Channel > Domain model, hreflang localization modes, dan default-domain fallback.
- Creation dari robots.txt (legacy / manual metode) — pre-6.7.1.0 manual file + server-rewrite approach.
- tambahkan Custom SEO URLs (developer) —
seo_urltable,SeoUrlRouteInterface, danshopware.seo_url.routecontainer tag. - Sitemap plugin guide (developer) — custom
UrlProviderclasses untuk menambahkan/menghapus sitemap entries. - Release notes 6.7.1.0 (native robots.txt) — versi itu ditambahkan per-domain robots.txt di admin.
- Release notes 6.7.9.0 (JSON-LD data terstruktur) — Microdata → JSON-LD migration,
JSON_LD_DATAflag, dan schema jenis. - Shopware Frontends (headless docs) dan Nuxt module — Vue + Nuxt Composable Frontends toolkit.
- SEO di Shopware (marketing overview) — Shopware’s own summary dari native SEO fitur.
- Product data terstruktur — diperlukan/recommended Product fields JSON-LD output targets.
- data terstruktur intro — why JSON-LD adalah recommended di atas microdata.
- URL canonicalization — “hint, not a rule” (terjemahan) “hint, not sebuah aturan” framing behind Shopware’s canonical handling.
- Managing multi-regional dan multilingual situs (hreflang) — bidirectional kembalikan-tag dan
x-defaultrequirements Shopware’s default-domain setting maps onto.
Quotes dari source
pada—record statements dari Shopware’s own documentation dan marketing. setiap tautan deep-tautan untuk quoted passage pada source halaman.
Shopware — SEO URL templates (docs)
- “In the SEO settings you can define the structure for the SEO URLs of the product detail pages and categories. For this purpose you have a variety of variables at your disposal.” (terjemahan) “di SEO settings Anda dapat define structure untuk SEO URLs dari product detail halaman dan categories. untuk ini purpose Anda memiliki sebuah variety dari variables di Anda disposal.” Jump untuk quote
- “After you have made changes to the SEO template, it is necessary to rebuild the index so that the URLs are updated. You can do this from the console using the command
php bin/console dal:refresh:index.” (terjemahan) “setelah Anda memiliki dibuat perubahan untuk SEO template, ini adalah necessary untuk rebuild indeks so itu URLs adalah updated. Anda dapat melakukan ini dari console menggunakan command undefined.” Jump untuk quote
Shopware — canonical (docs)
- “A canonical URL is the URL of the page that the search engine assumes is the most representative of several duplicated pages on your site.” (terjemahan) “sebuah canonical URL adalah URL dari halaman itu mesin pencari assumes adalah paling representative dari several duplicated halaman pada Anda situs.” Jump untuk quote
Shopware — sitemap (docs)
- “Shopware 6 does not provide a visitor sitemap (suffix
/sitemapafter your domain). The index filesitemap.xmlis created for evaluation by Google.” (terjemahan) “Shopware 6 melakukan not menyediakan sebuah pengunjung sitemap (suffix undefined setelah Anda domain). indeks file undefined adalah dibuat untuk evaluation oleh Google.” Jump untuk quote - “Shopware cannot guarantee that every URL will be crawled and indexed. This always depends on the search engine provider.” (terjemahan) “Shopware cannot guarantee itu setiap URL akan menjadi di-crawl dan terindeks. ini selalu depends pada mesin pencari provider.” Jump untuk quote
- pada manual mode: “the sitemap will only be created if you call the following command manually:
php bin/console sitemap:generate.” (terjemahan) “ sitemap akan hanya menjadi dibuat jika Anda panggil following command manually: undefined.” Jump untuk quote
Shopware — robots.txt (docs)
- “The robots file is not created automatically in Shopware 6, but has to be created manually as a text file.” (terjemahan) “ robots file adalah not dibuat automatically di Shopware 6, tetapi memiliki untuk menjadi dibuat manually sebagai sebuah text file.” (Legacy / pre-6.7.1.0 metode.) Source
Shopware — native SEO (marketing)
- “Shopware includes many SEO features out of the box – from country- and language-specific URLs to meta data, hreflang, and performance optimizations, allowing you to build strong SEO without additional plugins.” (terjemahan) “Shopware mencakup banyak SEO fitur out dari box – dari country- dan language-spesifik URLs untuk meta data, hreflang, dan performa optimizations, allowing Anda untuk bangun strong SEO without additional plugins.” Source
Shopware-spesifik SEO audit checklist
sebuah pass tuned untuk Shopware’s actual mechanics — not sebuah generic ecommerce list.
versi periksa (melakukan ini pertama)
- Note exact Shopware versi — ini decides what’s native.
- robots.txt: pada 6.7.1.0+ manage ini per-domain di Settings > umum > Basic
informasi; pada older versi confirm sebuah manual
/public/robots.txt(dengan sebuah per-domain server rewrite jika multi-domain). - data terstruktur: pada 6.7.9.0+ decide whether untuk enable
JSON_LD_DATAflag; pada older versi confirm whether sebuah JSON-LD plugin adalah masih needed.
struktur URL
- SEO URL templates set per entity jenis (product / category / landing) di Settings > Shop > SEO; deliberate, not bare default.
- indeks rebuilt setelah apa pun template perubahan (
php bin/console dal:refresh:index) so existing URLs actually update. - “Remove Category ID from URL” (terjemahan) “hapus Category ID dari URL” reviewed (ships atur ke No oleh default).
- “Forwarding behavior” (terjemahan) “Forwarding perilaku” set so URL perubahan emit sebuah 301 alih-alih leaving old URLs live.
Canonical & variants
- Category canonicalization confirmed correct (automatic, tetapi verify).
- Variant duplicate konten handled — either “Variant for Canonical URL” (terjemahan) “Variant untuk Canonical URL” set, atau sebuah
product-detail/meta.html.twigoverride / plugin canonicalizing variants untuk parent.
Sitemap
- Refresh strategy chosen deliberately (scheduled / live / manual); jika manual,
php bin/console sitemap:generateruns whenever URLs perubahan. -
sitemap.xmlsubmitted di Google Search Console dan Bing Webmaster alat.
International (multi-language / multi-domain)
- hreflang enabled dengan right localization mode (ISO standard untuk regional variants; browser-language otherwise).
- Default domain set sebagai
x-defaultfallback. - kembalikan tags verified sebagai bidirectional; cross-sales-channel setups diperiksa untuk native linking gap (plugin jika needed).
Scale & performa
- besar multilingual catalogs: SEO URLs generated untuk parents hanya where mungkin;
soft-deleted / non-canonical
seo_urlrows pruned; composite indeks considered. - Blog/archive pagination halaman
noindexed where mereka tambahkan no nilai.
Headless (Composable Frontends hanya)
- Nuxt rendering mode produces dapat di-crawl HTML (SSR / hybrid / ISR, not pure CSR).
- Sitemap, canonical, meta tags, dan data terstruktur implemented di Nuxt app (admin SEO settings melakukan not carry di atas).
mental models
1. Three buckets, not two — karena versi. Sort setiap Shopware SEO task ke native-dan-saat ini, native-hanya-pada-sebuah-recent-versi (robots.txt ≥ 6.7.1.0, JSON-LD ≥ 6.7.9.0), atau masih-Anda-job (bulk meta, variant→parent canonical, cross-channel hreflang, headless rendering). pada Shopware versi bucket adalah one itu catches people out — selalu periksa versi sebelum Anda trust sebuah tip.
2. Templates generate, indeks publishes.
Editing sebuah SEO URL template perubahan future URLs hanya. Nothing adalah live until Anda rebuild
(dal:refresh:index). Whenever “the template change didn’t work,” (terjemahan) “ template perubahan didn’t berfungsi,” ini adalah pertama thing
untuk periksa.
3. Canonical adalah sebuah separate sistem dari URLs. Don’t alasan tentang Shopware canonicals melalui URL templates — mereka’re unrelated mechanisms. Categories canonicalize automatically; variants adalah semi-manual dan dapat’t reach parent without sebuah template override. pertahankan two sistem separate di Anda head.
4. hreflang lives di domain model.
There’s no hreflang editor — ini adalah sebuah consequence dari how Anda structure Sales Channels dan
Domains. One domain = one language/currency; default domain adalah Anda x-default. jika
hreflang adalah wrong, lihat domain setup, not sebuah hreflang field.
5. Headless resets whole checklist. moment Anda go Composable Frontends, admin SEO settings stop menjadi source dari truth — sitemap, canonical, meta, dan data terstruktur semua move ke Nuxt. Headless isn’t “the same SEO checklist, faster” (terjemahan) “yang sama SEO checklist, faster”; ini adalah sebuah berbeda checklist owned oleh Anda frontend.
Shopware SEO cheat sheet
Where things live di admin
| Setting | Path |
|---|---|
| SEO URL templates | Settings > Shop > SEO |
| Canonical (variant) | Product > Variant untuk Canonical URL |
| Forwarding perilaku (301 pada URL perubahan) | Settings > Shop > SEO |
| Sitemap strategy | Settings > Shop > Sitemap |
| robots.txt (6.7.1.0+) | Settings > umum > Basic informasi |
| hreflang / domains | Settings > Sales Channel > Domains |
versi gates
| fitur | Native dari |
|---|---|
| SEO URL templates, category canonical, sitemap, hreflang | 6.x (core) |
| Per-domain robots.txt di admin | 6.7.1.0 |
JSON-LD data terstruktur (JSON_LD_DATA flag) | 6.7.9.0 |
Per-product Open Graph fields (og:title/description/image) | 6.7.9.0 |
| Microdata dihapus | planned 6.8.0.0 |
CLI commands
| Command | What ini melakukan |
|---|---|
php bin/console dal:refresh:index | Rebuild SEO indeks setelah sebuah template perubahan |
php bin/console sitemap:generate | Manually (re)bangun sitemap (manual strategy) |
Sitemap strategies
| Strategy | perilaku |
|---|---|
| scheduled | Auto-generated pada sebuah scheduled task |
| live | dibuat jika missing; recreated setelah refresh time |
| manually | hanya via sitemap:generate; rerun pada setiap URL perubahan |
Don’ts
- Don’t perubahan sebuah URL template dan expect existing URLs untuk update without sebuah rebuild.
- Don’t assume “Variant for Canonical URL” (terjemahan) “Variant untuk Canonical URL” poin variants di parent — ini doesn’t.
- Don’t advise “edit robots.txt in the admin” (terjemahan) “edit robots.txt di admin” without memeriksa untuk 6.7.1.0+.
- Don’t buy sebuah JSON-LD plugin pada 6.7.9.0+ sebelum memeriksa native flag.
- Don’t assume headless (Composable Frontends) inherits admin SEO settings.
Shopware SEO mistakes untuk hindari
Editing sebuah SEO URL template without rebuilding indeks
Why ini adalah wrong: Existing URLs pertahankan mereka old generated nilai, so admin
perubahan appears untuk memiliki done nothing. melakukan ini instead: run
php bin/console dal:refresh:index, lalu crawl old dan baru product URLs dan confirm
forwarding perilaku.
Assuming Variant untuk Canonical URL poin untuk parent
Why ini adalah wrong: native picker nominates lainnya variant, not parent
product. Near-identical variants dapat therefore remain split di seluruh URLs. melakukan ini
instead: gunakan product-detail/meta.html.twig override atau sebuah suitable plugin when
parent product adalah intended canonical.
Giving versi-blind robots.txt advice
Why ini adalah wrong: Admin-based per-domain robots.txt management starts di 6.7.1.0; older stores memerlukan sebuah file dan server rewrite. melakukan ini instead: record exact Shopware versi sebelum choosing implementation path.
Buying sebuah JSON-LD plugin sebelum memeriksa native fitur
Why ini adalah wrong: Shopware 6.7.9.0 introduced native JSON-LD behind
JSON_LD_DATA flag. sebuah kedua source dapat duplicate atau conflict dengan markup Anda sudah
memiliki. melakukan ini instead: periksa versi dan flag, validate saat ini output,
lalu fill hanya genuine gaps.
Expecting admin SEO settings untuk carry ke sebuah headless storefront
Why ini adalah wrong: Composable Frontends moves rendering, metadata, canonicals, sitemaps, dan data terstruktur ke Nuxt. melakukan ini instead: treat headless sebagai sebuah baru frontend SEO implementation dan verify -nya server respons independently.
Prove sebuah SEO URL template perubahan took effect
Rebuild dan inspect representative URLs
Test untuk run: setelah saving template, run
php bin/console dal:refresh:index, lalu open representative product, category, dan
landing-halaman URLs covered oleh perubahan.
Expected hasil: Existing entities gunakan baru SEO URL pattern alih-alih hanya newly dibuat items receiving ini.
Failure interpretation: indeks rebuild melakukan not complete, wrong sales channel template adalah changed, atau route adalah menggunakan sebuah berbeda entity template.
Monitoring window: Immediate setelah indeks command finishes dan caches adalah refreshed.
Rollback trigger: Restore previous template dan rebuild again jika baru pattern membuat collisions, missing routes, atau malformed paths.
Confirm old URLs pertahankan mereka destination
Test untuk run: permintaan sebuah sample dari previous SEO URLs setelah rebuild dan
inspect HTTP status dan Location header.
Expected hasil: setiap changed old URL mengembalikan configured permanent redirect untuk matching baru canonical URL.
Failure interpretation: Forwarding perilaku adalah disabled, old route adalah not retained, atau two URL aturan conflict.
Monitoring window: Immediate setelah deployment; repeat setelah cache invalidation.
Rollback trigger: Roll back jika penting old URLs kembalikan 404, loop, chain, atau redirect untuk wrong product atau category.
Verify canonical dan sitemap agreement
Test untuk run: Inspect baru halaman’s tag canonical dan locate entity di
sitemap.xml setelah sitemap refresh strategy memiliki run.
Expected hasil: Both signals name yang sama baru SEO URL.
Failure interpretation: Canonical configuration, sitemap generation, dan URL indeks adalah out dari sync.
Monitoring window: Immediate untuk canonical; setelah scheduled, live, atau manual sitemap regeneration untuk sitemap output.
Rollback trigger: Roll back URL release jika canonical halaman poin di old atau missing destinations setelah regeneration.
alat untuk Shopware SEO
- Shopware Console (
bin/console) — two commands itu actually run Shopware SEO:dal:refresh:index(rebuild SEO URLs setelah sebuah template perubahan) dansitemap:generate(manual sitemap membangun). - Google Search Console — sitemap submission, pemeriksaan URL (verify canonical Google chose, dan how variant halaman render), dan International Targeting / hreflang view. Anda ground truth untuk what Google actually melakukan.
- Bing Webmaster alat — kedua sitemap submission, crawl control, dan situs scan.
- Screaming Frog / Ahrefs situs Audit — crawl store untuk catch variant-URL
explosion,
seo_urlduplicates di scale, redirect perilaku setelah template perubahan, dan halaman sitemap misses. ini adalah how Anda temukan Shopware-spesifik gaps. - Rich hasil Test / Schema Markup Validator — confirm 6.7.9.0 JSON-LD output
adalah valid dan matches terlihat konten setelah Anda enable
JSON_LD_DATAflag. - Shopware Store extensions — where native gaps get filled: cross-sales-channel hreflang managers, bulk meta / SEO URL managers, advanced sitemap providers, dan (pada pre-6.7.9.0 stores) JSON-LD rich-snippet plugins.
- Storefront template overrides — untuk variant-canonical fix, override
product-detail/meta.html.twigalih-alih reaching untuk sebuah plugin jika Anda memiliki dev capacity.
Resources worth Anda time
pada-situs, related
- Canonicalization — platform-agnostic mechanics behind Shopware’s category-automatic / variant-manual canonical perilaku.
- hreflang — bidirectional kembalikan-tag dan
x-defaultrequirements Shopware’s Sales Channel / default-domain model maps onto. - JavaScript SEO dan CMS headless SEO — why sebuah Composable Frontends (Nuxt) bangun perlu -nya own SSR/rendering discipline.
Shopware official
- SEO settings, Sitemap settings, dan Sales channel / domains.
- Release notes 6.7.1.0 (robots.txt) dan 6.7.9.0 (JSON-LD).
- Shopware Frontends (headless).
dari sekitar industry
- Conductor Academy — Shopware SEO best practices — practitioner checklist dari default-setting gotchas (category ID di URL, pagination signals, blog pagination noindex).
- BrocksiNet — Deep dive ke Shopware SEO URLs —
seo_urltable internals dan variants × languages growth math. - EXWE — SEO optimization di Shopware 6: canonicals untuk product variants — variant-canonical masalah dan template-override fix.
- elgentos — shopware-seo-canonical-url (GitHub) — sebuah open-source plugin untuk canonicalizing variants back untuk parent.
- Qualimero — Shopware SEO guides — saat ini EU/German-market Shopware SEO dan AI-readiness coverage.
- Kickbyte — Shopware Frontends: headless storefront dengan Nuxt — how Nuxt layer shapes headless SEO.
- Shopware — SEO di Shopware (marketing overview) — vendor’s own summary dari native SEO fitur.
Test yourself: Shopware SEO
Five quick pertanyaan pada how SEO berfungsi pada Shopware 6. Pick sebuah jawaban untuk setiap, lalu periksa.
Log perubahan
Diperbarui 19 Jul 2026.
Ringkasan editorial dan detail perubahan yang tercatat.Detail perubahan
-
Catatan perubahan terperinci saat ini tersedia dalam bahasa Inggris.
-
Catatan perubahan terperinci saat ini tersedia dalam bahasa Inggris.
-
Catatan perubahan terperinci saat ini tersedia dalam bahasa Inggris.
-
Catatan perubahan terperinci saat ini tersedia dalam bahasa Inggris.
-
Catatan perubahan terperinci saat ini tersedia dalam bahasa Inggris.
Perbandingan lengkap tidak tersedia — tidak ada cuplikan sebelumnya yang diarsipkan untuk revisi ini.