Join our community of websites already using SEOJuice to automate the boring SEO work.
See what our customers say and learn about sustainable SEO that drives long-term growth.
Explore the blog →TL;DR: De grootste SEO-winst in theme.liquid komt meestal van het weghalen van globale code, niet van het toevoegen van nóg een snippet. Houd universele SEO-signalen in de layout, verplaats pagina-specifiek werk naar templates of secties en zorg dat de HTML die Google ontvangt snel, duidelijk en minder afhankelijk van app-scripts is.
theme.liquid behandelen alsof het een SEO-plug-in isIk zocht vroeger altijd eerst naar het ontbrekende tag. Slechte gewoonte. Bij mindnow bleken Shopify-winkels met de lelijkste SEO-problemen zelden nóg een snippet in theme.liquid nodig te hebben; er moesten juist vijf oude snippets uit voordat Google en klanten er op elke pagina de rekening voor kregen.
Bij één shop kreeg het thema de schuld van “slechte Shopify-SEO”. De echte oorzaak: zes app-snippets, twee dubbele schema-blokken en een product-offer-feed in de layout. Hetzelfde patroon op vadimkravcenko.com en seojuice.io: de head moet de pagina uitleggen—niet het bedrijf runnen.
“Liquid is een open-source templating-taal, ontwikkeld door Shopify en geschreven in Ruby. Het vormt de ruggengraat van Shopify-thema’s en laadt dynamische content op storefronts.”
Die Shopify-definitie is belangrijk omdat ze de schuld op de juiste plek legt. Liquid is niet de boosdoener. Onzorgvuldig globaal themawerk wel.
theme.liquid meestal aanstuurttheme.liquid is de hoofd-layout-wrapper voor de meeste Shopify-pagina’s (de schil rond templates en secties). Het bestand bevat vaak de <head>, content_for_header, CSS-verwijzingen, app-embeds, tracking-tags, schema-snippets, preload-hints en de opening van de layout-markup.
Precies daarom moet dit bestand saai blijven. Zit de fout in een productsectie, dan raakt die alleen productpagina’s. Zit hij in theme.liquid, dan gaat hij overal mee.
De topposities in zoekresultaten raken dit deels goed. De performance-docs van Shopify geven het sterkste technische fundament. Shopify’s brede SEO-gids legt structuur, metadata en structured data uit. Speed Boostr zit dichter op de praktische snelheidswinst die merchants ervaren.
Wat je daar meestal níét krijgt, is governance: wat hoort in de layout, wat hoort in templates en wat had nooit globaal geïnstalleerd mogen worden.
Dat is de regel voor de rest van dit artikel. Site-wide items mogen in theme.liquid. Logica voor product, collectie, artikel, FAQ en breadcrumb hoort meestal dichter bij het template dat het bezit.
theme.liquid thuishoortHet antwoord is niet “haal alles weg”. Shopify heeft globaal head-output nodig. Je shop heeft site-wide assets nodig. Analytics vraagt mogelijk om consent-afhankelijke loading door de hele storefront. De taak is een eerlijke layout houden.
Hoort in theme.liquid |
Hoort daar meestal niet |
|---|---|
Basale <html>-language-output |
Productspecifieke schema hardcoded globaal |
content_for_header |
Collectie-specifieke tekst of metadata |
| Globale CSS en critical resource-hints | Elke app-script op elk template |
| Site-wide Organization- of WebSite-JSON-LD | Dubbele review-, offer- en breadcrumb-JSON-LD |
| Consent-afhankelijke tracking | Template-logica die dure loops draait |
De layout kan veilig signalen bevatten die het hele bedrijf beschrijven: taal, viewport, verplichte Shopify-head-output, consent-framework, core CSS, misschien Organization-schema en eventueel WebSite-schema met SearchAction als je zoek-URL stabiel is.
Daar horen ook enkele resource-hints. Eén font-preload of kritieke CSS-verwijzing kan globaal logisch zijn. Vijf concurrerende preloads voor afbeeldingen die slechts op één template voorkomen niet.
Product-schema hoort bij productdata. Article-schema hoort bij artikelen. FAQPage-schema alleen op pagina’s waar de FAQ-tekst zichtbaar is voor gebruikers. Breadcrumb-schema in een breadcrumb-snippet of template-bewuste sectie.
Hier slaat structured data voor e-commerce vaak de plank mis. Een merchant vraagt “schema in Shopify”, iemand plakt JSON-LD in theme.liquid en vervolgens doen alle collecties, artikelen en landingspagina’s alsof ze een product zijn.
content_for_header is niet optioneel. Shopify gebruikt dit tag om platform-scripts, app-gedrag, analytics en storefront-features te koppelen. Verwijder het niet omdat een waterfall-rapport rommelig oogt.
Audit wél wat er via dit tag binnenkomt. App-embeds, theme-app-extensions en oude app-code kunnen nog steeds ballast toevoegen. De oplossing is eigenaarschap, niet paniek.
Wijzig de live-theme niet tijdens een traffic-piek. Basisadvies, maar wel de zin die het meeste geld bespaart.
layout/theme.liquid.
Kopieer de layout naar een werkdocument en annoteer hem als een crime-scene. Een shop kwam bij ons omdat collecties traag voelden en Google’s rich-results-test constant productwaarschuwingen gaf. De fix kostte minder dan twee uur: product-Offer-schema op collectie-pagina’s, twee verlaten A/B-testing-bibliotheken en een review-app-snippet die maanden eerder was verwijderd.
Het thema kreeg de schuld (zoals meestal). Het layout-bestand droeg alleen maar spoken mee.
| Bevinding | Waarom het SEO schaadt | Veiligere oplossing |
|---|---|---|
| Product-JSON-LD verschijnt op collectie-pagina’s | Verwarrt structured-data-parsers | Verplaats naar het product-template |
| Drie review-apps genereren schema | Maakt dubbele of conflicterende product-markup | Kies één bron |
| Chat-widget laadt overal | Voegt JS toe vóór koopintentie bestaat | Laad na interactie of op geselecteerde templates |
| Hero-afbeelding is lazy-loaded | Kan LCP vertragen | Laad above-the-fold media eager |
| Sorteren gebeurt in Liquid-loops | Verspilt render-werk | Sorteer vóór de loop |
Onbekend betekent niet slecht. Het betekent on-eigendom. Als niemand kan uitleggen waarom een snippet in theme.liquid staat, schakel hem dan uit in een duplicaat-thema en test alle flows: menu, search, productformulier, cart, checkout-handover, reviews, tracking en consent.
Hier wint een échte technische SEO-audit van een checklist. Het risico is zelden één slechte regel. Het zijn vijf prima tools die allemaal denken recht te hebben op globale prioriteit.
“JavaScript zou niet vereist moeten zijn voor de basale functionaliteit van je thema, zoals het vinden of kopen van producten.”
Die regel van Shopify is de maatstaf. Als menu, productformulier, variantselectie, search of cart-drawer afhankelijk is van een blokkerend script dat stil faalt, heb je niet alleen een SEO-probleem maar een storefront-probleem.
“Liquid-storefronts zijn erg snel”
Sia Karamalegos schreef dat op Shopify’s performance-blog, en de implicatie is ongemakkelijk. Trage Shopify-shops zijn vaak traag omdat merchants globaal werk toevoegen aan iedere route. Apps laten na uninstall vaak code achter—soms jaren later—en het layout-bestand blijft het serveren.
Review-widgets, chat-tools, A/B-testing-scripts, heatmaps, loyalty-apps, bundle-apps, personalisatie-tools en pop-ups voelen zich thuis in de layout. Sommigen hebben globale toegang nodig. Veel niet.
Begin met app-embeds in de theme-editor, inspecteer daarna content_for_header en zoek in het thema naar includes die oude app-namen bevatten. Als een app alleen productpagina’s beïnvloedt, mag de code niet draaien op artikelen en collecties.
Scripts uitstellen kan helpen. Het kan ook variantselectie, consent-tracking, analytics-attributie, currency-selectors en review-rendering breken. Test in preview vóór publicatie.
Een veilig patroon is saai: verwijder dode code eerst, stel marketing-widgets uit tot interactie, defer niet-kritieke scripts pas na testen en houd productontdekking werkend zonder JavaScript waar mogelijk (in 2026 is dit niet langer optioneel).
JavaScript kan de ervaring verbeteren, maar mag niet de enige weg naar omzet zijn. Productlinks moeten crawlbaar zijn. Zoekpagina’s moeten resultaten tonen. Add-to-cart moet veilig degraderen. Variant-URL’s en geselecteerde opties mogen niet onzichtbaar worden voor crawlers of klanten.
Als je strijdt met hydration-kosten of client-rendered productcontent, lees dan eerst een JavaScript-SEO-gids voordat je Liquid de schuld geeft. Het render-probleem kan in de app-laag zitten, niet in de templating-taal.
“PageSpeed is GEEN goede manier om de snelheid van een shop te meten.”
Kurt Elster is hier bot met reden. Een hoge score die tracking, reviews of varianten breekt is geen winst—een lage score die echte LCP-vertraging aanwijst wel. De score is een aanwijzing, niet de KPI.
“We geven momenteel de voorkeur aan JSON-LD-markup. Ik denk dat het meeste nieuwe structured data eerst voor JSON-LD uitkomt. Dus dat heeft onze voorkeur.”
Het punt van John Mueller beslecht het format-debat voor de meeste Shopify-shops: gebruik JSON-LD. De lastigere vraag is eigenaarschap.
Veel Shopify-SEO-posts roepen “voeg schema toe”. Dat is onvolledig advies. Als je thema, review-app, productfeed-app en SEO-app allemaal Product-schema uitsturen, is het format niet langer het probleem.
Kies één eigenaar per schema-type. Verwijder of deactiveer de rest.
| Schema-type | Beste plek |
|---|---|
| Organization | theme.liquid of een globale snippet |
| WebSite met SearchAction | theme.liquid als search stabiel is |
| Product | Product-template of product-sectie |
| BreadcrumbList | Template of breadcrumb-snippet |
| Article | Blog-artikel-template |
| CollectionPage | Collectie-template |
| FAQPage | Alleen pagina’s met zichtbare FAQ-content |
Product-schema heeft de titel, afbeelding, beschrijving, SKU, prijs, beschikbaarheid, varianten, brand, offers en soms reviewdata van het huidige product nodig. Die context bestaat niet op elke pagina.
Review-apps verdienen extra argwaan. Ze injecteren vaak Product-, AggregateRating-, Offer- en Review-markup. Als het thema die velden ook uitstuurt, kunnen rich-result-tools conflicten tonen terwijl de pagina er prima uitziet.
Gebruik Rich Results Test om te zien of je in aanmerking komt voor Google-features. Gebruik Schema Markup Validator om bredere structured-data-geldigheid te checken. Test de gerenderde pagina, niet een gekopieerd fragment uit je thema-bestand.
“Als je producten in een collectie op prijs wilt sorteren, doe dat dan vóór je door de collectie loopt en niet in de loop zelf.”
Deze Shopify-richtlijn klinkt klein maar is dat niet. Liquid-performance-problemen zitten vaak verstopt in snippets die door theme.liquid worden aangeroepen: header, mega-menu, announcement-bar, localisatie-selector, recommendation-strip of een globale collectie-carousel.
Je layout-bestand kan schoon lijken terwijl ingesloten snippets het zware werk doen. Een mega-menu kan op elke pagina door collecties lopen. Een header kan productdata ophalen die niemand ziet. Een localisatie-selector kan logica herhalen die één keer had moeten worden toegewezen.
Let op all_products, grote menu’s, herhaalde metafield-lookups en geneste loops. Het probleem is zelden één loop, maar herhaling op elke route.
Sorteer vóór de loop. Filter vóór de loop. Ken herhaalde waarden één keer toe waar het de duidelijkheid vergroot. Beperk loops als je maar vier items nodig hebt.
Het slechte patroon is conceptueel: doorloop elk product en beslis binnen de loop welke producten ertoe doen. Het betere patroon: bereid eerst de relevante set voor en loop daarna door de kleine set.
Mega-menu’s zijn een veelvoorkomende SEO-performancetaks. Ze zien eruit als navigatie, maar gedragen zich als een site-wide data-query.
Houd header-logica voorspelbaar. Als het menu rijke promotionele kaarten nodig heeft, maak die instelbaar in plaats van dynamische product-lookups over de hele catalogus.
“Alles wat above the fold verschijnt, moet je niet lazy-loaden.”
Dat Shopify-advies zou veel slechte beeld-adviezen moeten beëindigen. Alles lazy-loaden lijkt slim totdat de hero-afbeelding, productmedia of collectie-banner de LCP-kandidaat wordt en te lang wacht.
Lazy-load de vermoedelijke LCP-afbeelding niet. Geef Shopify genoeg breedte- en hoogte-info om layout-shift te voorkomen. Gebruik responsieve afbeelding-output via Shopify-image-filters en image-tags in plaats van één te grote asset.
Preload alleen de écht prioritaire afbeelding, niet vijf concurrerende assets. Preload is een belofte aan de browser. Breek die belofte te vaak en je creëert een ander knelpunt.
Veel image-apps passen één regel overal toe. De juiste load-beslissing hangt af van template en positie. Een productgallery-thumbnail onder de vouw kan wachten. De eerste productafbeelding meestal niet.
Koppel dit terug aan theme.liquid: globale resource-hints en lazy-loading-scripts staan er vaak, maar de juiste keuze hoort dichter bij de sectie die de afbeelding rendert.
Klassieke SEO-tags blijven belangrijk, maar worden riskant wanneer een layout-bestand elke template wil sturen met één lange keten aan conditionals.
Gebruik waar mogelijk Shopify’s ingebouwde canonical-output. Hardcode niet één patroon voor alle templates. Collectie-sorting, paginering, filters en product-URL’s vragen om template-specifieke afhandeling.
Robots-directieven moeten zeldzaam en duidelijk zijn. Een dubbele canonical-tag—het soort dat ongemerkt botst met Shopify’s eigen output—kan maanden onopgemerkt blijven. Een verdwaalde noindex-conditional kan in één publish meer schade doen dan een trage app-script.
Ik heb zelf zo’n lange conditional-boom verscheept (en ontward na een app-update). Enkele conditions zijn prima. Een layout-bestand dat zich als CMS gedraagt, is een rode vlag.
Vertrouw niet alleen op view-source. Inspecteer gerenderde HTML (de huidige URL na browser-uitvoering) en controleer title, description, canonical, robots, hreflang indien gebruikt, en structured data.
Als een app tags herschrijft na load, kan Google ze nog steeds renderen, maar je maakt zo een simpel signaal afhankelijk van client-side timing. Vermijd dat tenzij er geen schonere optie is.
theme.liquid-aanpassingen SEO verbeterdenTesten moet dezelfde templates vóór en ná vergelijken. Winst op de homepage bewijst niets voor productpagina’s. Winst op productpagina’s bewijst niet dat artikel-templates schoon bleven.
| Test | Wat het laat zien |
|---|---|
| View rendered HTML | Of Google de uiteindelijke tags en content ziet |
| Google URL Inspection | Of Google indexeert wat jij denkt dat het indexeert |
| Rich Results Test | Of structured data geldig is voor rich results |
| WebPageTest | Waterfalls, LCP-kandidaat en render-blokkerende files |
| Chrome Performance-paneel | Lange taken en script-kosten |
| Search Console Core Web Vitals | Field-data-trend |
| Shopify theme preview | Veilige vergelijking vóór publicatie |
Test home, product, collectie, page, article en search. Leg gerenderde HTML, LCP-kandidaat, CLS, lange taken, canonical, robots en schema-output vast.
Op seojuice.io geef ik minder om een perfecte lab-score en meer om schone HTML, een stabiele canonical en een pagina die Google niet laat wachten op client-side code om haar te begrijpen.
“Een goede en snelle site kan geen kwaad. Een trage site helpt niet. Het is niet het alfa en omega dat men ervan maakt.”
Kurt Elster’s benadering is de gezonde. Snelheid ondersteunt SEO. Het vervangt geen content, links, vraag of merchandising.
Na publicatie let je op indexatie, enhancements, merchant listings, product-snippets en Core Web Vitals voor e-commerce-trends. Verwacht vertraging in field-data. Lab-tools reageren vandaag; Search Console heeft tijd nodig.
theme.liquid SEO-checklistcontent_for_header.theme.liquid.Het doel is geen slimme theme.liquid. Het doel is een saaie layout die elk template zijn eigen werk laat doen.
theme.liquid Shopify-SEO?Ja. Het kan invloed hebben op crawl-duidelijkheid, structured data, render-kosten, Core Web Vitals, canonicals, robots-tags en script-gewicht. Eén fout in de layout raakt namelijk de meeste storefront-pagina’s.
theme.liquid toevoegen?Alleen als de code echt site-wide is. Organization-schema, WebSite-schema, language-output en verplichte Shopify-head-output horen daar. Logic voor product, artikel, FAQ, breadcrumb en collectie meestal niet.
content_for_header verwijderen voor snelheid?Nee. Laat het staan. Audit welke apps en embeds er via dit tag binnenkomen, maar verwijder Shopify’s verplichte head-output niet.
De gebruikelijke oorzaak is meerdere eigenaren. Je thema, review-app, SEO-app of feed-app kan allemaal Product-, Offer-, Review- of AggregateRating-markup uitsturen. Kies één bron en schakel de rest uit waar mogelijk.
Nee. Gebruik het als één diagnostische input (niet alleen de score). Test ook gerenderde HTML, URL Inspection, Rich Results Test, WebPageTest, Chrome Performance en Search Console-field-data.
SEOJuice kan helpen bij het auditen van je Shopify-SEO-Liquid-setup, aangeven wat globaal moet blijven, wat naar templates kan en wat veilig kan worden verwijderd. Als het theme.liquid van je winkel een app-kerkhof is geworden, begin dan met de layout voordat je nóg een SEO-snippet toevoegt.
no credit card required
No related articles found.