left arrowBack to Seo Hub
Seo Hub
- November 29, 2024

Kuinka kirjoittaa otsikoita, jotka on optimoitu SEO:ta varten

Sisällysluettelo

  1. Mitä ovat SEO-otsikot?

Johdanto

Kuvittele tämä: selaat Google-hakutuloksia, ja katseesi osuu otsikkoon, joka herättää heti kiinnostuksesi. Et ole robotti, etkä vetovoimaisesti kiinnity pelkkään tekstiin. Etsit yhteyttä—lupausta siitä, että tämä otsikko tarjoaa arvokasta sisältöä. SEO-optimoidut otsikot ovat enemmän kuin vain nimikkeitä; ne ovat kriittisiä portteja käyttäjien sitoutumiseen ja verkkosivustosi näkyvyyden parantamiseen hakukoneissa. Mutta kuinka voi laatia otsikon, joka ei vain herätä huomiota, vaan myös sijoittuu hyvin hakukoneissa? Tässä kattavassa oppaassa opit SEO-otsikoiden kirjoittamisen taiteen ja tieteen, jotka eivät vain ole optimoituja, vaan myös tarpeeksi houkuttelevia klikkausten lisäämiseksi.

SEO-ystävällisten otsikoiden merkitystä ei voi vähätellä. Ne vaikuttavat merkittävästi orgaaniseen liikenteeseesi ja voivat olla ratkaisevia sisältömarkkinointistrategiasi menestymisessä. Tässä artikkelissa tarkastelemme strategioita, tekniikoita ja periaatteita, jotka auttavat sinua hallitsemaan otsikoinnin taidetta. Artikkelin lopussa ymmärrät, miten luoda SEO-optimoituja otsikoita ja miten sisällyttää niitä laajempaan sisältöstrategiaasi maksimaalisen vaikuttavuuden saavuttamiseksi.

Oletko valmis sukeltamaan SEO-otsikoihin, jotka yhdistävät luovuuden ja analytiikan? Aloitetaan.

SEO-otsikon ydin

Mitä ovat SEO-otsikot?

SEO-otsikot ovat nimikkeitä, jotka näkyvät hakukoneiden tulossivuilla (SERP) ja ovat ratkaisevia siinä, klikkaako käyttäjä sisältöäsi. Ne ovat taiteen ja analytiikan yhdistelmä, jolla pyritään kiinnittämään huomiota ja tarkasti välittämään sisällön arvo. Tyypillisesti nämä otsikot korreloivat läheisesti HTML

-tagin kanssa, mutta hakukoneet voivat muokata niitä ajoittain relevanssin ja selkeyden vuoksi.</p> <h3>Pourquoi SEO-otsikot ovat tärkeitä</h3> <p>SEO-otsikoilla on useita tarkoituksia:</p> <ol> <li><p><strong>SEO-ranking-tekijä</strong>: Google pitää otsikkotageja ranking-tekijänä, vaikkakin vähäisenä. Merkitsevämpää on, että optimoitu SEO-otsikko voi nostaa sivusi näkyvyyttä hakutuloksissa, mikä lisää klikkausten todennäköisyyttä.</p> </li> <li><p><strong>Klikausnopeuden (CTR) parantaminen</strong>: Otsikot vaikuttavat merkittävästi CTR:ään SERP:istä. Tutkimukset osoittavat, että hyvin laaditut otsikot, joissa on emotionaalisia tai positiivisia sanoja, houkuttelevat enemmän huomiota ja klikkauksia, vaikka muut tekijät pysyisivät muuttumattomina.</p> </li> <li><p><strong>Käyttäjien sitoutuminen</strong>: Viihtyisät, selkeät ja relevantit otsikot houkuttelevat käyttäjiä klikkaamaan ja sitoutumaan sisältöösi, edistäen syvempää kiinnostusta ja vuorovaikutusta brändisi kanssa.</p> </li> </ol> <h2>Otsikoiden laatiminen: vaiheittainen opas</h2> <h3>Vaihe 1: Avainsanojen optimointi</h3> <p>Oikea avainsanojen sijoittelu otsikossasi on olennaista, jotta hakukoneet ja käyttäjät ymmärtävät sisältösi fokuksen. Mahdollisuuksien mukaan sisällytä pääavainsanasi otsikon alkuun maksimoidaksesi näkyvyyden.</p> <h3>Vaihe 2: Hakutarkoituksen analysointi</h3> <p>Käytä työkaluja, kuten Semrush tai Google Keyword Planner, selvittääksesi hakutarkoituksen kohdeavainsanoillesi. Ymmärtäminen siitä, etsikö hakija tietoa, navigaatiota, transaktioita vai vertailuja, voi vaikuttaa siihen, miten kirjoitat otsikkosi, jotta se vastaisi täydellisesti käyttäjien tarpeita.</p> <h3>Vaihe 3: Voimasanat ja tunteet herättävät lauseet</h3> <p>Voimasanojen käyttäminen voi muuttaa perusotsikon joksikin houkuttelevammaksi herättämällä tunteita tai uteliaisuutta. Sanoja kuten "exclusiivinen", "todistettu" tai "lopullinen" voidaan käyttää otsikkosi viehättävyyden lisäämiseen ilman klikkimekaniikan käyttämistä.</p> <h3>Vaihe 4: Selkeys ja yksinkertaisuus</h3> <p>Priorisoi selkeyttä ja yksinkertaisuutta älykkyyden yli. Otsikkosi tulisi viestiä tarkalleen, mitä lukija voi odottaa sisällöstä. Vältä metaforia tai monimutkaisia lauseita, jotka voivat hämmentää mahdollisia lukijoita.</p> <h3>Vaihe 5: Testaus ja hienosäätö</h3> <p>Otsikon laatimisen jälkeen käytä työkaluja, kuten Advanced Marketing Institute Headline Analyzer, arvioimaan sen emotionaalista markkinointiarvoa. Lisäksi, harkitse A/B-testauksen suorittamista alustoilla, jotka mahdollistavat suorituskyvyn variaatioiden mittaamisen selvittääksesi, mitkä otsikot tuottavat parempia tuloksia.</p> <h3>Vaihe 6: Säännölliset päivitykset</h3> <p>Otsikot eivät ole kiveen hakattuja. Käy säännöllisesti läpi ja muokkaa olemassa olevien sisältöjen otsikoita parantaaksesi suorituskykyä ja relevanssia. Käytä analytiikan oivalluksia näiden päivitysten ohjaamiseen varmistaaksesi, että sisältösi pysyy kilpailukykyisenä ajan myötä.</p> <h2>Reaalimaailman esimerkit ja parhaat käytännöt</h2> <h3>HulkApps-tapaustutkimus</h3> <p>FlyRank sovelsi SEO-otsikoiden optimointistrategioita auttaakseen HulkAppsia saavuttamaan 10 kertaista kasvua orgaanisessa liikenteessä. Analysoimalla hakutarkoituksia ja luomalla houkuttelevia, avainsanakeskeisiä otsikoita paransimme merkittävästi heidän näkyvyyttään ja CTR:ään. <a href="https://flyrank.com/blogs/case-studies/hulkapps">Lue lisää</a>.</p> <h3>Serenity-tapaustutkimus</h3> <p>Toisessa menestystarinassa FlyRank auttoi Serenityä laatimaan lokalisoituja SEO-otsikoita saksalaisen markkinan saavuttamiseksi, mikä johti tuhansien näyttöjen ja klikkausten saamiseen pian julkaisun jälkeen. <a href="https://flyrank.com/blogs/case-studies/serenity">Tutustu koko tarinaan</a>.</p> <h2>Yleiset virheet, joita tulisi välttää</h2> <h3>Avainsanojen täyttäminen</h3> <p>Otsikoiden ylikuormittaminen avainsanoilla voi olla haitallista, mikä johtaa roskasivuston ulkoasuun, joka karkottaa sekä käyttäjät että hakukoneet. Pyrkimyksenä on luonnollinen virtaus, joka korostaa pääavainsanaa ilman ylimääräisyyksiä.</p> <h3>Vaaralliset klikkimekaanikat</h3> <p>Varmista, että otsikkosi heijastavat sisältöä tarkasti. Harhaanjohtavat otsikot saattavat houkutella kävijöitä tilapäisesti, mutta ne vahingoittavat lopulta brändisi uskottavuutta ja lisäävät pomppimisprosentteja.</p> <h3>Jättää huomiotta mobiililukemisen</h3> <p>Koska merkittävä osa käyttäjistä selaa mobiililaitteilla, mobiililukemisen optimointi on ratkaisevaa. Pidä otsikot 50-60 merkin sisällä varmistaaksesi täydellinen näkyvyys pienemmillä näytöillä.</p> <h2>Yhteenveto</h2> <p>SEO-optimoitujen otsikoiden laatiminen on tärkeä osa vahvaa sisältöstrategiaa. Yhdistelemällä otsikoita käyttäjien hakutarkoituksen kanssa, sisällyttämällä relevantteja avainsanoja ja hyödyntämällä tunteellisia voimasanoja yritykset voivat parantaa CTR:ää ja vahvistaa yleistä verkkonäkyvyyttään. FlyRankissa kehittynyt sisällöntuottomoottorimme ja dataohjattu lähestymistapamme on suunniteltu auttamaan sinua integroimaan nämä periaatteet markkinointiponnisteluihisi saumattomasti varmistaaksesi, että sisältösi ei vain houkuttele, vaan myös muuttaa.<p> <h3>Usein kysytyt kysymykset</h3> <p><strong>1. Voiko pitkät otsikot olla tehokkaita SEO:ssa?</strong> Pittkä otsikko voi olla tehokas, jos se vangitsee olennaisia avainsanoja ja tarjoaa selkeyttä. SEO-tarkoituksena on kuitenkin usein parasta pitää ne lyhyinä, jotta vältetään katkaiseminen hakutuloksissa.</p> <p><strong>2. Kuinka usein minun tulisi päivittää SEO-otsikoitani?</strong> Otsikkosi tarkastaminen säännöllisesti on hyödyllistä, erityisesti jos päivität sisältöä tai huomaat suorituskyvyn heikkenemistä. Säännöllinen testaaminen voi auttaa ylläpitämään sitoutumista ja relevanssia.</p> <p><strong>3. Onko numeroilla merkitystä otsikoissa?</strong> Kyllä, numerot voivat merkittävästi lisätä otsikoiden houkuttelevuutta, erityisesti listamuotoisissa tai oppaissa. Ne tarjoavat kvantifioidun lupauksen, joka herättää huomiota.</p> <p>Haluaisitko FlyRankin auttavan räätälöimään SEO-otsikkosi täydellisiksi? Tutustu palveluihimme, ja aloitetaan sisällön tavoittavuuden ja tehokkuuden parantaminen <a href="https://flyrank.com/pages/content-engine">tästä</a>.</p> </div> <div class="lg:w-1/3 text-gray mt-16 sticky top-[112px] lg:h-screen"> <div class="bg-white text-center p-5 rounded-lg mb-8"> <img src="https://cdn.shopify.com/s/files/1/0609/8023/2259/files/envelope-icon.svg?v=1732181353" alt="Envelope Icon" class="mx-auto" > <div class="text-dark font-extrabold mb-5 uppercase text-xl">Enjoy content like this?</div> <div class="text-dark text-xl mb-3">Join our newsletter and 20,000 enthusiasts</div> <div class="sidebar-newsletter opacity-0 transition-opacity duration-500 h-[129px]"> <div id="shopify-block-AM2RPMG1tc3VDS1NGU__forms_inline_9wMQFJ" class="shopify-block shopify-app-block"><div id='AM2RPMG1tc3VDS1NGU__forms_inline_9wMQFJ' data-form-root='true' data-forms-id='forms-root-254557' data-forms-text-color='#0f1217' data-forms-button-background-color='#0f1217' data-forms-button-label-color='#ffffff' data-forms-links-color='#1878b9' data-forms-errors-color='#e02229' data-forms-text-alignment='center' data-forms-alignment='center' data-forms-padding-top='5' data-forms-padding-right='0' data-forms-padding-bottom='0' data-forms-padding-left='0' ></div> <script> window['ShopifyForms'] = { ...window['ShopifyForms'], currentPageType: "article" }; </script> </div> </div> </div> <div class="bg-dark-800 text-center p-5 rounded-lg"> <img src="https://cdn.shopify.com/s/files/1/0609/8023/2259/files/download-icon.svg?v=1732109891" alt="Download Icon" class="mx-auto mb-3" > <div class="text-xl mb-8"> <span class="font-bold">DOWNLOAD FREE</span><br> BACKLINK DIRECTORY </div> <a href="/cart/41940050214979:1?checkout&attributes[first_visit]=%2Ffi%2Fblogs%2Fseo-hub%2Fhow-to-write-headlines-that-are-optimized-for-seo" class="btn btn-green w-full" > Download </a> </div> </div> </div> </div> </div> </section><div id="shopify-section-template--16734054088771__demo_promo_K9myJY" class="shopify-section demo"><div class=" px-6 md:px-8 py-12 lg:py-32 bg-green"> <div class="container text-dark text-center"> <div class="w-full md:w-8/12 mx-auto"> <h2 class="mb-8 text-4xl sm:text-5xl">KÄRKESTÄ KESKUSRANGAISTUSTEN KANSSA UUSILLE KORKEUDEILLE</h2> <div class="mb-5"><p>Jos olet valmis pääsemään läpi melusta ja tekemään pysyvän vaikutuksen verkossa, on aika liittoutua FlyRankin kanssa. Ota meihin yhteyttä tänään, ja asetetaan brändisi digitaalisen hallinnan polulle.</p></div> <div class="flex flex-col"> <div> <a class="btn btn-dark text-gray mt-8" href="/fi/pages/yhteys"> Pyydä demoa </a> </div> </div> </div> </div> </div> </div> </main> <footer id="shopify-section-footer" class="shopify-section footer"><div class="footer-container px-6 md:px-8 py-16 md:py-24 overflow-hidden relative"> <img src="https://cdn.shopify.com/s/files/1/0609/8023/2259/files/footer-background.png?v=1730813000" alt="Image Background" class="object-contain absolute w-full z-0 bottom-0 2xl:bottom-auto 2xl:top-1/3" > <div class="container flex flex-col-reverse md:flex-row z-10 relative flex-wrap"> <div class="w-full md:w-1/2 text-gray mt-16 md:mt-0"> <div> <img src="https://cdn.shopify.com/s/files/1/0609/8023/2259/files/flyrank-logo-large.svg?v=1730983842" alt="logo" > </div> <div class="w-full md:w-2/3 my-12"><p>Jos olet valmis rikkomaan melun ja tekemään pysyvän vaikutuksen verkossa, on aika liittoutua FlyRankin kanssa.</p></div> <div class="flex"> <a href="https://x.com/flyrank_ai" target="_blank" class="bg-green w-[50px] h-[50px] inline-block flex justify-center items-center mr-3 rounded-full hover:opacity-[0.8] transition-all" ><img src="https://cdn.shopify.com/s/files/1/0609/8023/2259/files/icon-twitter.svg?v=1729166778" alt="twitter" ></a> <a href="https://www.facebook.com/people/FlyRank/61566930002846/" target="_blank" class="bg-green w-[50px] h-[50px] inline-block flex justify-center items-center mr-3 rounded-full hover:opacity-[0.8] transition-all" ><img src="https://cdn.shopify.com/s/files/1/0609/8023/2259/files/icon-facebook.svg?v=1729166777" alt="facebook" ></a> <a href="https://www.instagram.com/flyrank.ai/" target="_blank" class="bg-green w-[50px] h-[50px] inline-block flex justify-center items-center mr-3 rounded-full hover:opacity-[0.8] transition-all" ><img src="https://cdn.shopify.com/s/files/1/0609/8023/2259/files/icon-instagram.svg?v=1729166777" alt="instagram" ></a> </div> </div> <div class="w-full md:w-1/2 grid gap-4 grid-cols-2 sm:grid-cols-3"> <div class=""> <div class="text-dark-100 mb-5 sm:mb-12 uppercase font-medium">Yritys</div> <ul> <li class="mb-3"> <a href="/fi/pages/tietoa" class="text-gray-50 capitalize"> Meistä </a> </li> <li class="mb-3"> <a href="/fi/pages/meidan-lahestymistapamme" class="text-gray-50 capitalize"> Meidän lähestymistapamme </a> </li> <li class="mb-3"> <a href="/fi/pages/suositukset" class="text-gray-50 capitalize"> Suositukset </a> </li> <li class="mb-3"> <a href="https://www.flyrank.com/pages/contact?utm_source=website&utm_medium=footer" class="text-gray-50 capitalize"> Ota meihin yhteyttä </a> </li> </ul> </div> <div class=""> <div class="text-dark-100 mb-5 sm:mb-12 uppercase font-medium">Tutustu</div> <ul> <li class="mb-3"> <a href="/fi/pages/sisalto" class="text-gray-50 capitalize"> Artikkelit </a> </li> <li class="mb-3"> <a href="/fi/blogs/tapaustutkimukset" class="text-gray-50 capitalize"> Case Studies </a> </li> <li class="mb-3"> <a href="/fi/pages/hinnoittelu" class="text-gray-50 capitalize"> Hinnoittelu </a> </li> <li class="mb-3"> <a href="/fi/pages/usein-kysytyt-kysymykset" class="text-gray-50 capitalize"> Usein kysytyt kysymykset </a> </li> </ul> </div> <div class="mt-5 sm:mt-0"> <div class="text-dark-100 mb-5 sm:mb-12 uppercase font-medium">Oikeudellinen</div> <ul> <li class="mb-3"> <a href="/fi/policies/terms-of-service" class="text-gray-50 capitalize"> Palveluehdot </a> </li> <li class="mb-3"> <a href="/fi/policies/privacy-policy" class="text-gray-50 capitalize"> Tietosuojakäytäntö </a> </li> <li class="mb-3"> <a href="/fi/policies/refund-policy" class="text-gray-50 capitalize"> Rahanpalautustakuu </a> </li> <li class="mb-3"> <a href="https://calendly.com/flyrank/30min?utm_source=website&utm_medium=footer" class="text-gray-50 capitalize"> Pyydä esittely </a> </li> </ul> </div> </div> </div> <div class="container"> <div class="text-gray w-full mt-24 text-sm">© 2025 FlyRank - All Rights Reserved</div> </div> </div> </footer> <div class="minicart-wrapper" x-data x-show="$store.global.isMinicartVisible" x-on:click.outside="$store.global.isMinicartVisible = false" x-transition:enter="transition ease-out duration-300" x-transition:enter-start="off-screen-right" x-transition:enter-end="right-50" x-transition:leave="transition ease-in duration-300" x-transition:leave-start="right-50" x-transition:leave-end="off-screen-right" x-cloak :aria-hidden="$store.global.isMinicartVisible ? 'false' : 'true'" aria-modal="true" role="dialog" > <div id="shopify-section-minicart" class="shopify-section"><div class="minicart" data-ajax-cart-section x-cloak> <div class="title-row"> <h2 id="minicart-label" class="text-cloud-burst-500"> Cart </h2> <button @click="$store.global.isMinicartVisible = false"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"> <path d="M24 20.188l-8.315-8.209 8.2-8.282-3.697-3.697-8.212 8.318-8.31-8.203-3.666 3.666 8.321 8.24-8.206 8.313 3.666 3.666 8.237-8.318 8.285 8.203z"/> </svg> </button> </div> <div class="item-count-message"> You have <span class="count" style="font-weight: 600" x-data>0 </span> <span x-data></span> in your cart! </div> <hr/> <ul class="items-list" data-ajax-cart-section-scroll> </ul> <hr/> <div class="subtotal"> <p class="title">Subtotal </p> <p class="amount">$0.00 </p> </div> <a class="view-cart-details-link" href="/fi/cart"> View Cart Details </a> </div> <style> /* Animation classes */ .transition { transition-property: all; } .duration-300 { transition-duration: 300ms; } .ease-out { transition-timing-function: ease-out; } .ease-in { transition-timing-function: ease-in; } .off-screen-right { right: -100px; transform: translateX(120%); } .right-50 { right: 50px; transform: translateX(0%); } @media(max-width: 576px) { .right-50 { right: 20px; transform: translateX(0%); } } /* Main styles */ .minicart-wrapper { position: fixed; top: 50px; right: 50px; z-index: 100; } @media(max-width: 576px) { .minicart-wrapper { right: 20px; } } .minicart { width: 288px; height: auto; padding: 20px; background: #fff; border-radius: 6px; box-shadow: 0 30px 130px -8px rgba(0, 0, 0, 0.25); } .minicart .view-cart-details-link { display: flex; justify-content: center; align-items: center; margin-top: 20px; width: 100%; height: 43px; font-weight: 600; background: white; border: 2px solid black; outline: none; text-decoration: none; } .minicart .view-cart-details-link:hover { cursor: pointer; color: white; background: black; } .minicart hr { margin-bottom: 20px; } .minicart .title-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; } .minicart .title-row h2 { margin: 0; } .minicart .title-row button { border: none; background: transparent; cursor: pointer; } .minicart .title-row button svg { display: block; height: 16px; } .minicart .items-list { list-style: none; padding-left: 0; max-height: 300px; overflow: auto; } .minicart .item-count-message { margin-bottom: 10px; font-size: 0.8em; } .minicart .item-count-message .minicart--item-count { font-weight: 600; } .minicart .item { display: flex; margin-bottom: 10px; width: 100%; } .minicart .item .product-thumb-wrapper { width: 100px; height: 120px; position: relative; flex: 0 0 100px; } .minicart .item .product-thumb-wrapper img { position: absolute; top: 0; right: 0; left: 0; bottom: 0; height: 100%; width: 100%; object-fit: cover; object-position: center; } .minicart .item .item-details { margin-left: 10px; display: flex; flex-direction: column; justify-content: flex-start; } .minicart .item .item-details p { margin: 0; } .minicart .item .item-details .option-label { font-weight: 600; } .minicart .item .item-details .title { font-size: 0.9em; font-weight: 600; margin-top: 0; margin-bottom: 6px; } .minicart .item .item-details .options { margin-bottom: 2px 0; } .minicart .item .item-details .option { margin: 0 0 2px; font-size: 0.8rem; } .minicart .item .item-details .quantity-row { margin: 2px 0; } .minicart .item .item-details .quantity-row span { margin: 0 0 2px; font-size: 0.8rem; } .minicart .item .item-details .option:last-of-type { margin-bottom: 0; } .minicart .item .item-details .price { margin-top: auto; } .minicart .item .item-details .remove { font-size: 0.6em; margin-top: auto; } .minicart .subtotal { margin: 20px 0; display: flex; align-items: center; justify-content: space-between; } .minicart .subtotal .title { height: 16px; margin: 0; } .minicart .subtotal .amount { font-weight: 600; font-size: 1.2em; margin: 0; } .minicart a { color: black; text-decoration: none; } .minicart a:hover { text-decoration: underline; } </style></div> </div> <div id="shopify-section-predictive-search-main" class="shopify-section site-header w-full shadow-md p-shell fixed top-0 z-30 bg-white"> <script src="//www.flyrank.com/cdn/shop/t/33/assets/predictive-search.js?v=82854867885586265471738944035" defer="defer"></script> <predictive-search x-data x-cloak id="predictive-search" x-show="$store.global.isPredictiveSearchVisible" x-trap.inert="$store.global.isPredictiveSearchVisible" x-transition.opacity aria-modal="true" @keyup.escape="$store.global.isPredictiveSearchVisible = false" > <div id="predictive-search-form-wrapper" class="w-full bg-white fixed inset-x-0 top-0 z-40 pt-8 pb-14 shadow-md" > <h2 class="text-base !font-normal max-w-max mx-auto font-palatino mb-3"> Mitä voimme auttaa sinua löytämään? </h2> <form action="/fi/search" method="get" role="search" class="w-full max-w-[422px] mx-auto" @click.outside="$store.global.isPredictiveSearchVisible = false" > <div class="flex gap-x-3 w-full relative"> <input id="predictive-search-input" class="slayed-input w-full" type="search" name="q" value="" role="combobox" aria-expanded="false" aria-owns="predictive-search-results" aria-controls="predictive-search-results" aria-haspopup="listbox" aria-autocomplete="list" > <label for="predictive-search-input" class="sr-only"> Search </label> <button for="predictive-search-input" class="pill-button" > Search </button> <button type="button" class="absolute -right-[15px] top-1/2 -translate-y-1/2 translate-x-full" @click="$store.global.isPredictiveSearchVisible = false" > <span class="sr-only">Close</span> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"> <path d="M24 20.188l-8.315-8.209 8.2-8.282-3.697-3.697-8.212 8.318-8.31-8.203-3.666 3.666 8.321 8.24-8.206 8.313 3.666 3.666 8.237-8.318 8.285 8.203z"/> </svg> </button> </div> <input name="options[prefix]" type="hidden" value="last"> <div id="predictive-search-target" tabindex="-1"></div> </form> </div> </predictive-search> </div> <div id="shopify-section-modal" class="shopify-section section-modal"> <dialog id="dialog-modal-example" x-data="modal" x-init="init($el)" class="max-w-md rounded-md" @click="close($event)" > <form action="" class="p-12"> <div class="prose"> <h1>Modal Title</h1> <p><p>Modalikuvaus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Itaque totam cum cupiditate officia et quaerat blanditiis culpa? Hic, nesciunt id.</p></p> <button type="button" @click="open = false" class="btn rounded-none"> Close </button> </div> </form> </dialog> <script> document.addEventListener('alpine:init', () => { Alpine.data('modal', () => ({ componentElement: document.querySelector('#dialog-modal-example'), open: false, init(dialog) { if (!dialog) { return } Alpine.effect(() => { if (this.open) { dialog.showModal() document.querySelectorAll('body > *:not(#shopify-section-modal)').forEach((element) => { element.setAttribute('aria-hidden', 'true') element.setAttribute('inert', '') }) document.querySelector('body').classList.add('overflow-hidden') } else { dialog.close() document.querySelectorAll('body > *:not(#shopify-section-modal)').forEach((element) => { element.removeAttribute('aria-hidden') element.removeAttribute('inert') }) document.querySelector('body').classList.remove('overflow-hidden') } }) document.addEventListener('show-modal', () => { this.open = true }) document.addEventListener('close-modal', () => { this.open = false }) }, toggle() { this.open = !this.open }, close(event) { if (event.target === this.componentElement) { if (this.open) { this.open = false } } } })) }) </script> <style> #dialog-modal-example::backdrop { background-color: rgba(0, 0, 0, 0.5); } </style></div> <script type="application/json" data-ajax-cart-initial-state> {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0} </script> <div id="shopify-block-AZFd6aGFnS21FS1hVa__13768625480086291342" class="shopify-block shopify-app-block"><script> window['ShopifyForms'] = { ...window['ShopifyForms'], currentPageType: "article" }; </script> </div><div id="shopify-block-Aajk0TllTV2lJZTdoT__15683396631634586217" class="shopify-block shopify-app-block"><script id="chat-button-container" data-horizontal-position=bottom_right data-vertical-position=lowest data-icon=chat_bubble data-text=no_text data-color=#89608e data-secondary-color=#ffffff data-ternary-color=#6a6a6a data-domain=www.flyrank.com data-shop-domain=www.flyrank.com data-external-identifier=5QqDPyGbw2L4LPYPH2LFgD67SjacIZkJCvvcz866Sws > </script> </div></body> </html>