{"id":768515,"date":"2023-10-27T00:03:08","date_gmt":"2023-10-27T06:03:08","guid":{"rendered":"https:\/\/blogging-techies.com\/sw\/avancerad-seo-for-javascript-webbplatser-snapshot-sidor\/"},"modified":"2023-10-27T00:03:08","modified_gmt":"2023-10-27T06:03:08","slug":"avancerad-seo-for-javascript-webbplatser-snapshot-sidor","status":"publish","type":"post","link":"https:\/\/blogging-techies.com\/sw\/avancerad-seo-for-javascript-webbplatser-snapshot-sidor\/","title":{"rendered":"Avancerad SEO f\u00f6r JavaScript-webbplatser: Snapshot-sidor"},"content":{"rendered":"<p><center><\/center><\/p>\n<p>Allt eftersom JavaScript blir allt mer integrerat med HTML p\u00e5 webben m\u00e5ste SEO:are utveckla en f\u00f6rst\u00e5else f\u00f6r hur man g\u00f6r JavaScript-webbplatser s\u00f6kbara.<\/p>\n<p>Vi t\u00e4ckte n\u00e5gra grundl\u00e4ggande SEO-metoder f\u00f6r JavaScript i ett tidigare inl\u00e4gg.  Ett komplext \u00e4mne f\u00f6rtj\u00e4nar dock en djupg\u00e5ende behandling.  S\u00e5 l\u00e5t oss ta en titt p\u00e5 detaljerna bakom popupen #!  \/snapshot-metod f\u00f6r JavaScript-webbplatser.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Behover_du_ens_gora_detta\"><\/span>Beh\u00f6ver du ens g\u00f6ra detta?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>S\u00f6kmotorer bearbetar mer och mer JavaScript varje dag.  Det betyder dock inte att din AngularJS-webbplats kommer att indexeras och rankas.  Motorerna analyserar nu en del JavaScript, men fullst\u00e4ndig indexering av alla JavaScript-webbapplikationstillst\u00e5nd verkar l\u00e5ngt borta.  Om ditt JavaScript k\u00f6rs i webbl\u00e4saren och h\u00e4mtar inneh\u00e5ll fr\u00e5n databasen, kommer motorerna f\u00f6rmodligen inte att se det.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Forrendering_av_en_ogonblicksbild_av_sidan_och_botspecifik_publicering\"><\/span>F\u00f6rrendering av en \u00f6gonblicksbild av sidan och botspecifik publicering<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Detta \u00e4r kanske den mest popul\u00e4ra metoden f\u00f6r JavaScript SEO-problem p\u00e5 klientsidan.  Grundfl\u00f6det \u00e4r som f\u00f6ljer:<\/p>\n<ol>\n<li>Uppt\u00e4ck s\u00f6kmotorrobotar antingen genom att titta p\u00e5 URL:en om du anv\u00e4nde #!  (&#8220;hashbang&#8221;) eller helt enkelt kontrollera anv\u00e4ndaragenten f\u00f6r beg\u00e4ran.<\/li>\n<li>Om boten uppt\u00e4cks, omdirigera beg\u00e4ran till den renderingsmotor du v\u00e4ljer, till exempel PhantomJS.  Denna motor m\u00e5ste v\u00e4nta tills allt AJAX-inneh\u00e5ll har laddats.<\/li>\n<li>N\u00e4r den har laddats, ta den renderade sidk\u00e4llan och skicka den till boten.<\/li>\n<\/ol>\n<p>Ironiskt nog \u00e4r detta en form av cloaking: att skicka specifikt inneh\u00e5ll till bots, ofta ett nej i SEO.  Denna typ av cloaking anses dock vara &#8220;etisk&#8221; eftersom inneh\u00e5llet \u00e4r praktiskt taget detsamma som anv\u00e4ndarna skulle se.  D\u00e4rf\u00f6r \u00e4r s\u00f6kmotorer okej med det.<\/p>\n<p>Google har en komplett AJAX-krypningsspecifikation som t\u00e4cker de praktiska aspekterna.  Grundtanken \u00e4r att man l\u00e4gger till #!  identifierare f\u00f6r dina webbadresser eller inkludera HTML-koden [meta name=\u201dfragment\u201d content=\u201d!\u201d] tagga till sidhuvudet.  Detta varnar Google om att sidan anv\u00e4nder URL-fragment och f\u00e5r dem att indexera sidan.<\/p>\n<p>Som jag n\u00e4mnde i mitt tidigare inl\u00e4gg \u00e4r History.pushState ett annat alternativ f\u00f6r att skapa indexerbara AJAX-webbadresser.  PushState har problem, bland annat att det inte st\u00f6ds i IE 9, som fortfarande \u00e4r en ganska utbredd webbl\u00e4sare.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Potentiella_problem_med_forrendering\"><\/span>Potentiella problem med f\u00f6rrendering<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Det finns ett par saker att t\u00e4nka p\u00e5 om du best\u00e4mmer dig f\u00f6r f\u00f6rrendering:<\/p>\n<ul>\n<li>Botdetektering.  Se till att du betj\u00e4nar alla bots, inte bara Googlebot (dvs. Bingbot, et al).<\/li>\n<li>Timing f\u00f6r \u00f6gonblicksbilder.  T\u00e4nk p\u00e5 att dina JavaScript-element kan ta ett tag att rendera genom PhantomJS.  Du kan beh\u00f6va skapa en f\u00f6rdr\u00f6jning f\u00f6r att till\u00e5ta allt inneh\u00e5ll att laddas innan sidan cachelagras.  Annars kan din \u00f6gonblicksbildsida vara ofullst\u00e4ndig eller delvis \u00e5tergiven.<\/li>\n<li>Sidans laddningstid.  P\u00e5 liknande s\u00e4tt, om du k\u00f6r processen f\u00f6r \u00f6gonblicksbildsidan vid tidpunkten f\u00f6r botens URL-beg\u00e4ran, kan sidan laddas l\u00e5ngsamt.  Sidans laddningshastighet \u00e4r en allt viktigare SEO-rankningsfaktor, s\u00e5 om din sida ser ut att laddas l\u00e5ngsamt f\u00f6r boten kan du p\u00e5verkas negativt.  Det \u00e4r d\u00e4rf\u00f6r det \u00e4r \u00f6nskv\u00e4rt att cache sidor i f\u00f6rv\u00e4g.  Detta har den extra f\u00f6rdelen att din webbplats ser snabbare ut f\u00f6r motorer \u00e4n f\u00f6r anv\u00e4ndare.<\/li>\n<li>Satsvis bearbetning.  Om du har m\u00e5nga sidor kanske du vill k\u00f6ra \u00f6gonblicksbildsprocessen vid en viss tidpunkt utanf\u00f6r kontorstid eller p\u00e5 din egen server.  Processen kan vara resurskr\u00e4vande.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Kontrollerar_ogonblicksbildsidor\"><\/span>Kontrollerar \u00f6gonblicksbildsidor<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Eftersom du anv\u00e4nder botdetektering \u00e4r det sv\u00e5rare att verifiera att din process faktiskt fungerar.  Ett s\u00e4tt att verifiera ditt arbete \u00e4r att anv\u00e4nda funktionen &#8220;S\u00f6k som Google&#8221; i Googles verktyg f\u00f6r webbansvariga.  Ange webbadressen till en \u00f6gonblicksbildsida (den kan skilja sig fr\u00e5n den live-URL som visas f\u00f6r anv\u00e4ndare) i GWT och kontrollera om Google kan h\u00e4mta den korrekt.  Detta kr\u00e4ver en livesida, s\u00e5 planera d\u00e4refter.<\/p>\n<p>F\u00f6r n\u00e4rvarande st\u00f6der Utforska som Google #!  men inte URL pushState.  Om dina webbadresser ser statiska ut kommer du inte ha n\u00e5gra problem.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Forrepresentationstjanster\"><\/span>F\u00f6rrepresentationstj\u00e4nster<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Att bygga en komplett f\u00f6rrenderingskapacitet kanske inte \u00e4r trivialt.  F\u00f6r en st\u00f6rre webbplats kan det handla om att s\u00e4tta upp en cachningsserver, en databas f\u00f6r inneh\u00e5ll, en tj\u00e4nst f\u00f6r cachning av samtal, en schemal\u00e4ggare och ett administrativt verktyg.  Lyckligtvis har flera f\u00f6retag kommit med l\u00f6sningar f\u00f6r att ta itu med delar av eller hela pre-rendering-metoden.  Flera som jag \u00e4r bekant med inkluderar:<\/p>\n<ul>\n<li>Prerender.io.  Prerender.io k\u00f6r en tj\u00e4nst som drivs av PhantomJS f\u00f6r att vara v\u00e4rd f\u00f6r och servera \u00f6gonblicksbildsidor.  De eliminerar huvudv\u00e4rken med att k\u00f6ra din egen f\u00f6rrenderingsserver.  De \u00e4r rimligt prissatta baserat p\u00e5 antalet sidor som \u00e4r v\u00e4rd och hur ofta \u00f6gonblicksbilder tas.<\/li>\n<li>Brombone.com.  Brombone k\u00f6r en liknande tj\u00e4nst d\u00e4r \u00f6gonblicksbildsidor kan genereras baserat p\u00e5 tidsst\u00e4mpeln f\u00f6r webbadressen i webbplatskartan eller kan anpassas schemalagda.<\/li>\n<li>Ajax \u00f6gonblicksbilder.  AjaxSnapshots erbjuder en f\u00f6rrenderingstj\u00e4nst med n\u00e5gra bra konfigurationsalternativ.  F\u00f6r tillf\u00e4llet listar deras hemsida priset som gratis (\u00e5tminstone f\u00f6r nu), s\u00e5 det finns det.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Betald_sokning_och_malsidor\"><\/span>Betald s\u00f6kning och m\u00e5lsidor<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>JavaScript-sajter har utmaningar med s\u00e5v\u00e4l betald s\u00f6kning som SEO.  Till exempel best\u00e4mmer AdWords kvalitetsresultatet baserat p\u00e5 bland annat inneh\u00e5llet som AdWords-boten ser p\u00e5 sidan.  En metod \u00e4r att visa \u00f6gonblicksbildsidan f\u00f6r Google AdsBot (en fullst\u00e4ndig lista \u00f6ver Googles s\u00f6krobotar och anv\u00e4ndaragenter finns h\u00e4r).<\/p>\n<p>Om dina produkter eller produktinneh\u00e5ll finns i en ensidig app kan det dessutom vara sv\u00e5rt att tvinga fram detta tillst\u00e5nd via destinationsadressen f\u00f6r betald s\u00f6kning.  Skapar #!  Eller statiska webbadresser \u00e4r praktiskt taget ett krav h\u00e4r.<\/p>\n<p>Eftersom betalda s\u00f6kningsm\u00e5lsidor ofta m\u00e5ste vara mycket personliga f\u00f6r att konvertera bra, kan det i det l\u00e5nga loppet vara b\u00e4ttre att skapa dedikerade sidor f\u00f6r dina PPC-kampanjer, vilket \u00f6verl\u00e5ter din grundl\u00e4ggande JavaScript-webbupplevelse till anv\u00e4ndare och SEO.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Slutsats\"><\/span>Slutsats<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>JavaScript-tunga sajter \u00e4r h\u00e4r f\u00f6r att stanna.  \u00c4ven om det kanske inte \u00e4r trivialt att skapa en JavaScript-sajt som fungerar bra inom SEO, \u00e4r det \u00e4nnu mer jobb att f\u00f6rs\u00f6ka fixa en befintlig sajt som skapades utan SEO i \u00e5tanke.  Tills ramverk och verktyg har f\u00f6rb\u00e4ttrats f\u00f6r att g\u00f6ra det enklare att inf\u00f6rliva SEO-krav m\u00e5ste SEO:are arbeta n\u00e4ra utvecklare f\u00f6r att se till att SEO beaktas.  Att f\u00e5 SEO och JavaScript att leva i harmoni kanske inte \u00e4r l\u00e4tt, men det \u00e4r v\u00e4rt det.<\/p>\n<p>Tack till Vladimir Katz, Senior Engineer p\u00e5 Huge, f\u00f6r att du bidragit till det h\u00e4r inl\u00e4gget.<\/p>\n<p>Hemsidesbild via Flickr.<\/p>\n  <div id=\"ez-toc-container\" class=\"ez-toc-v2_0_88 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blogging-techies.com\/sw\/avancerad-seo-for-javascript-webbplatser-snapshot-sidor\/#Behover_du_ens_gora_detta\" >Beh\u00f6ver du ens g\u00f6ra detta?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blogging-techies.com\/sw\/avancerad-seo-for-javascript-webbplatser-snapshot-sidor\/#Forrendering_av_en_ogonblicksbild_av_sidan_och_botspecifik_publicering\" >F\u00f6rrendering av en \u00f6gonblicksbild av sidan och botspecifik publicering<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blogging-techies.com\/sw\/avancerad-seo-for-javascript-webbplatser-snapshot-sidor\/#Potentiella_problem_med_forrendering\" >Potentiella problem med f\u00f6rrendering<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blogging-techies.com\/sw\/avancerad-seo-for-javascript-webbplatser-snapshot-sidor\/#Kontrollerar_ogonblicksbildsidor\" >Kontrollerar \u00f6gonblicksbildsidor<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blogging-techies.com\/sw\/avancerad-seo-for-javascript-webbplatser-snapshot-sidor\/#Forrepresentationstjanster\" >F\u00f6rrepresentationstj\u00e4nster<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blogging-techies.com\/sw\/avancerad-seo-for-javascript-webbplatser-snapshot-sidor\/#Betald_sokning_och_malsidor\" >Betald s\u00f6kning och m\u00e5lsidor<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blogging-techies.com\/sw\/avancerad-seo-for-javascript-webbplatser-snapshot-sidor\/#Slutsats\" >Slutsats<\/a><\/li><\/ul><\/nav><\/div>\n ","protected":false},"excerpt":{"rendered":"<p>Allt eftersom JavaScript blir allt mer integrerat med HTML p\u00e5 webben m\u00e5ste SEO:are utveckla en f\u00f6rst\u00e5else f\u00f6r hur man g\u00f6r JavaScript-webbplatser s\u00f6kbara. Vi t\u00e4ckte n\u00e5gra grundl\u00e4ggande SEO-metoder f\u00f6r JavaScript i ett tidigare inl\u00e4gg. Ett komplext \u00e4mne f\u00f6rtj\u00e4nar dock en djupg\u00e5ende behandling. S\u00e5 l\u00e5t oss ta en titt p\u00e5 detaljerna bakom popupen #! \/snapshot-metod f\u00f6r JavaScript-webbplatser. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":768516,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/blogging-techies.com\/wp-content\/uploads\/2023\/06\/11-1.png","fifu_image_alt":"","footnotes":""},"categories":[5],"tags":[],"class_list":["post-768515","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bloggar"],"_links":{"self":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts\/768515","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/comments?post=768515"}],"version-history":[{"count":0,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts\/768515\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/media\/768516"}],"wp:attachment":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/media?parent=768515"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/categories?post=768515"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/tags?post=768515"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}