Hvordan bli nr 1 i Google på bare 7 dager!

06/04/2017 - - Nettrafikk / 7 minutter lesetid (1819 ord)
Share on LinkedInShare on FacebookShare on Google+Tweet about this on Twitter

Hvordan bli nr 1 i Google på bare 7 dager!

Søkemotoroptimalisering er et komplekst fagfelt, og i stadig utvikling. Vi som jobber med SEO er nødt til å holde oss på tå hev for å bevare en oversikt over hva man bør og ikke bør gjøre for å sikre våre klienters og egne nettsider gode rangeringer på korrekt grunnlag.

I løpet av de siste to årene har strukturerte data hatt en moderat fremvekst. Selv om rundt 20-30% av alle nettsidene i verden har en eller annen form for strukturerte data, er det kun 0,3% av nettsidene som virkelig har tatt disse mulighetene i bruk.

Nettrafikk opplever at fokuset på dette området av SEO vokser, og ikke minst – at det fungerer! I februar utførte vi en test av akkurat hvor effektivt strukturerte data kan være, og vi tøyde litt regler for å teste hvor omfattende effekt strukturerte data kunne gi oss.

Hva vi fant overrasket! Selv for oss som har jobbet med SEO i mange år:

Etter kun 7 dager var vi på toppen av trefflistene i Google for 3 søk!

Aller først – en kort innføring i hvordan Google sorterer informasjon (i grove trekk)

Når man snakker om SEO, så handler dette faktisk i veldig stor grad om å tilrettelegge for at søkemotorer forstår og liker en nettside. At innholdet er godt skrevet, lett å lese og at det gir svar på spørsmål folk stiller i Google er i så måte veldig viktig. Søkemotoroptimalisering skal gi Google en forståelse for at sidene vi jobber på gir større verdi til bruker enn de andre sidene om samme emne.

Vår jobb er derfor i stor grad å tilrettelegge for alle faktorer som kan bidra til å nå dette målet.

Utfordringen vi står ovenfor her, er at det ikke er fysiske personer vi vil overbevise, men programmer og algoritmer.

Google skal forstå veldig mye tekst, og om de kan filtrere dette mot entiteter i Schema markups skjønner de mye mer!

Google skal tolke veldig mye informasjon på nettet, og forståelsen kan ofte la vente på seg. Ved smart bruk av Schema markups (strukturerte data) hjelper man Google til å forstå mer av innholdet!

Google bruker massive datamengder for å forstå informasjon

Samtidig som Google sine algoritmer er ufattelig smarte – er det fortsatt slik at de bruker veldig store datasett for å sette informasjon i system. Når noe googles 20.000 ganger i måneden i USA, så er deres algoritmer tilrettelagt for å følge med på brukeropplevelsen av innhold som vises frem.

De ser på hva slags innhold sidene som gjør det godt har, kontra innhold som ikke gjør det så godt, og dette knytter de sammen i store og komplekse datamodeller slik at de hele tiden blir flinkere til å svare på spørsmålene du og jeg – og alle andre stiller deres søkemotor. Dette gjør at de kan perfeksjonere sine trefflister for søk, slik at du som bruker føler at Google gir de beste svarene.

Men dette er utfordrende for Google i Norge

Googlebot når den ikke forstår ting automatisk.I Norge er 20.000 søk i måneden på ett tema en sjeldenhet. Vi er faktisk for få mennesker, spredt utover et stort geografisk område. Google klarer derfor ikke å sette ting i system på samme måte som i mer befolkningsrike land.

Når vi her snakker om at Google setter ting i system, så kan dette illustreres med at de plasserer informasjon i bokser med etiketter de gjenkjenner, eller, som vi i bransjen kaller det, entiteter.

Disse entitetene hjelper Google til å forstå mer av hva innholdet på en nettside handler om. Jo flere slike entiteter din nettside har på plass, jo flere ganger vil Google kunne finne på å vise frem dine nettsider for søk de finner relevante. Fordi de forstår at de riktige svarene finnes der.

Men når disse entitetene ikke opprettes automatisk for ditt innhold, så finnes det heldigvis en snarvei:

Tilrettelegging av strukturerte data

Strukturerte data er noe man tilrettelegger i kildekodenSearchmetrics undersøkte nettet, og fant at kun 0,3% av alle nettsider har implementert en eller annen form for strukturerte data med koblinger mot entiteter på Schema.org. som ikke er synlig for sluttbruker av en nettside. I essens tilrettelegger man i kildekoden for koblinger av informasjon i innholdet – mot entiteter som Google forstår.

Det finnes mange bibliotek på nett med entiteter Google forstår. Det største av disse bibliotekene finnes på Schema.org. Schema.org er et samarbeidsprosjekt mellom Bing, Google, Yahoo og Yandex i Github, og dette handler om å opprette entiteter Google forstår (og benytter) – når de søker å forstå innhold på nettsider.

Et eksempel på hvordan strukturerte data setter ting i system

Når vi på nettsiden til Nettrafikk ser tallene ”21 39 94 11”, så tenker vi mennesker raskt på et telefonnummer. Men når Google ser dette tenker de først ”tall”. Ved å tilrettelegge kildekoden med oppmerking for bedrift som inkluderer dette “tallet” og en kobling mot siden på Schema.org som heter ”telephone” – setter Google automatisk dette i system. Da vet de at for de som søker etter telefonnummeret til Nettrafikk, så kan de vise frem dette tallet for å gi brukeren best mulig svar.

Telefonnummer er bare en av tusener av entiteter man finner på Schema.org. Man kan markere opp det aller meste av informasjon på en nettside for å hjelpe Google med å forstå mest mulig, men dette vil ta tid. Så man bør prioritere de viktigste tingene først.

Vi testet effekten av strukturerte data

Vi har i Nettrafikk hatt stort fokus på Schema markups (strukturering av data som kobler innhold mot Schema.org entiteter) i snart to år. Dette fokuset har ført til at vi på dette området nå er Norges kanskje mest erfarne selskap på denne typen teknisk SEO.

Derfor holdt vi slutten av februar i år et bedriftskurs for utviklere, om bruk av strukturerte data på nettsider. I kurset fokuserte vi på koblinger mot Schema.org: Hvorfor, hvordan og effekten det gir. Kursdeltakerne var ca 30 engasjerte og faglig sterke utviklere. I forkant av kurset gikk vi derfor gjennom hvilke spørsmål de ville ha svar på, slik at vi kunne stille best mulig forberedt. Et av de viktigste spørsmålene de stilte var:

”Hvor raskt kan vi forvente å se effekten av strukturerte data?”

For å besvare dette – valgte vi å teste det på egne sider.

Slik utførte vi testen:

Vi skrev et innlegg til vår blogg med innhold som minnet om en typisk matoppskrift. For å teste litt grenser løy vi en smule i denne teksten. Blant annet skrev vi at 651 personer hadde gitt oppskriften en tilbakemelding på 5/5 stjerner, og at en porsjon SEO inneholder 250 kalorier. Dette gjorde vi for å sjekke om Google ville gi oss dette i oppføringen etter vi hadde lagt inn strukturert data.

Når artikkelen var lagt ut på bloggen, tilrettela vi strukturerte data i et format kjent som JSON-LD (JavaScript Object Notation for Linked Data), som vi satte inn på siden via Google Tag Manager. Denne teksten markerte vi opp med strukturerte data som ble koblet mot oppskrifts-seksjonen av Schema.org. JSON-LD er Google sitt anbefalte format for strukturering av data, og Google Tag Manager gjør det lett å sette scriptet i kildekoden på riktig(e) sider.

I dette scriptet la vi inn følgende informasjon:
  • » At artikkelen skulle anses som en oppskrift
  • » At oppskriften tok 10 minutter å forberede, og at “koketiden på SEO” tok 12 måneder
  • » Når oppskriften ble publisert på våre nettsider
  • » En beskrivelse av oppskriften
  • » Et bilde tilknyttet oppskrift
  • » Ingrediensene i oppskriften
  • » Navnet på “matretten” (oppskriften)
  • » Instruksene for hvordan man brukte oppskriften
  • » Forfatter av oppskriften
  • » Publisist for oppskriften som inkluderte logo
  • » Tilbakemeldinger vi “hadde fått” på oppskriften
  • » Og hvor mange kalorier oppskriften inneholdt

Etter dette var gjort fortalte vi Google om vår nye side. Dette gjorde vi ved å be de crawle (gjennomsøke) den spesifikke nettadressen gjennom Google Search Console. Og en snau uke senere (6 dager og 17 timer for å være eksakt) var siden indeksert på førsteplass i Google for søk som: ”bake SEO kake”, ”SEO oppskrift” og ”slik baker man inn SEO på nettsiden”.

Og da med en flott oppføring (slike gis på grunn av strukturerte data):

Slik så vår testside ut i Google sin treffliste etter kun 7 dager.

Vår oppføring fikk med bilde, vurderinger, “koketid”, forberedelsestid og kalorier – i tillegg til publiseringsdato, tittel og metabeskrivelse.

Vi ryddet opp etter testen var utført

Etter at kurset var avholdt fjernet vi de delene av innhold og strukturerte data som var basert på falsk informasjon. I Nettrafikk vil vi ikke bevege oss inn i denne delen av SEO eller manipulere oss til synlighet på falske premisser. Den eneste årsaken til at dette var inkludert i første omgang, var tanken om at kunnskap er makt. Jo mer vi vet, desto mer og bedre kan vi hjelpe våre klienter.

Og det er også fokuset for denne artikkelen:

Vi har påbegynt arbeidet med å tilrettelegge et verktøy som kan hjelpe deg med å få på plass strukturerte data på dine nettsider!

Slik kan du tilrettelegge for strukturerte data på din nettside

Nederst i denne artikkelen har vi laget et verktøy som kommer med eksempler for strukturerte data, med de viktigste koblingene mot Schema.org. Vi kommer til å videreutvikle dette verktøyet slik at du kan skrive inn riktig informasjon i scriptet. Dette vil vi – når det er klart – legge ut på siden med søkemotoroptimaliseringstips.

Inntil dette er klart kan du kopiere ut JSON-LD scriptet du vil ha, og tilpasse det med korrekt informasjon – og deretter legge det inn i kildekoden på korrekt side.

Tips! Dersom du har Google Tag Manager installert, så kan man der legge det inn på siden derfra. Velg tagtype: Tilpasset HTML og legg inn scriptet der, og så fastsetter man utløser for korrekt side.

Velg hva slags informasjon du vil markere opp, og kopier ut koden. Når du har tilpasset innholdet til dine nettsider, kan du teste hele koden i Google sitt verktøy for strukturerte data. Vær oppmerksom på at denne måten å strukturere opp data krever korrekte gåseøyne, komma, start og avslutning.

Scriptene slik du kopierer de ut vil validere i verktøyet, og du kan faktisk tilpasse innholdet i scriptene inne i dette verktøyet for å kunne kontrollere jevnlig om man har gjort alt riktig.

Klikk på typen side/informasjon du ønsker å markere opp for å kunne kopiere ut et eksempelscript:

Business
Articles
Products
Courses
Events
Places
Person
Recipes
Jobpostings
Services
<script type="application/ld+json">
  {
    "@context": "http://schema.org",
    "@type": "LocalBusiness",
    "name": "Company name",
    "url": "htts://website.com",
    "sameAs":[
      "Facebook url?",
      "Instagram url?",
      "Twitter url?",
      "LinkedIn url?",
      "Yelp or Tripadvisor urls?",
      "Other profiles?"
    ],
    "logo": "https://website.com/logofile.jpg",
    "priceRange": "Ie. USD 500 - 5000",
    "description": "150-250 letters long description of your company - normally you copy meta description to this field",
    "image": {
      "@type": "ImageObject",
      "url": " https://website.com/employees.jpg (or venue picture?)" 
      },
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "Street adress",
      "addressRegion": "State",
      "addressLocality": "Municipality/place/city",
          "postalCode": "Numeric postal code",
      "addressCountry": "US",
      "telephone": "+prefix + phonenumber",
      "email": "post@website.com"
      },
    "geo":{
      "@type": "GeoCoordinates",
      "latitude": "GPS coordinates Ie. 59.919880",
      "longitude": "GPS coordinates Ie. 10.754260" },
    "openingHours": "Mo, Tu, We 08:00-18:00 Th, Fr 07:00-17:00"
  }
</script>

<script type="application/ld+json">
  {
    "@context": "http://schema.org",
    "@type": "LocalBusiness",
    "name": "Company name",
    "url": "htts://website.com",
    "sameAs":[
      "Facebook url?",
      "Instagram url?",
      "Twitter url?",
      "LinkedIn url?",
      "Yelp or Tripadvisor urls?",
      "Other profiles?"
    ],
    "logo": " https://website.com/logofile.jpg ",
    "priceRange": "Ie. USD 500 - 5000",
    "description": "150-250 letters long description of your company - normally you copy meta description to this field",
    "image": {
      "@type": "ImageObject",
      "url": " https://website.com/employees.jpg (or venue picture?)" 
      },
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "Street adress",
      "addressRegion": "State",
      "addressLocality": "Municipality/place/city",
          "postalCode": "Numeric postal code",
      "addressCountry": "US",
      "telephone": "+prefix + phonenumber",
      "email": "post@website.com"
      },
    "geo":{
      "@type": "GeoCoordinates",
      "latitude": "GPS coordinates Ie. 59.919880",
      "longitude": "GPS coordinates Ie. 10.754260" },
    "openingHours": "Mo, Tu, We 08:00-18:00 Th, Fr 07:00-17:00"
  }
</script>
<script type="application/ld+json">
  {
    "@context": "http://schema.org",
    "@type": "Article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "http://website.com/articleurl"
    },
    "headline": "Article H1",
    "image":{
      "@type": "ImageObject",
      "url": " http://website.com/articleimageurl.jpg ",
      "height": Ie. 1125 (numeric only),
      "width": Ie. 697 (must be more than 697 - numeric only)
    },
    "datePublished": "Ie. 2016-12-24 (date only)",
    "dateModified": "Ie. 2017-02-16 (date only)",
    "author": {
      "@type": "Person",
      "name": "Authors name or company name"
    },
    "publisher": {
      "@type": "Organization",
      "name": "Company name",
      "logo":{
         "@type": "ImageObject",
         "url": " http://website.com/logoimage.jpg ",
         "width": Max 300 (numeric only), 
         "height": Max 60 (numeric only)
      }
    },
    "description": "Usually you copy the articles metadescription to this field."
  }
</script>
<script type="application/ld+json">
  {
    "@context": "http://www.schema.org",
    "@type": "Product",
    "name": "Name of the product",
    "image": " http://website.com/productimage.jpg ",
    "description": "150-190 letter description of the product (ie. meta description)",
    "offers": {
      "@type": "Offer",
      "price": "55.90",
      "priceCurrency": "USD"
    },
    "aggregateRating": {
      "@type": "aggregateRating",
      "ratingValue": "4.8",
      "reviewCount": "35"
    }
  }
</script>
<script type="application/ld+json">
  {
    "@context": "http://schema.org",
    "@type": "Course",
    "name": "The course name",
    "url": "https://website.com/courseurl",
    "description": "150-180 letter long description of the course content.",
    "provider": {
      "@type": "Organization",
      "name": "Company that provides course",
      "sameAs": "https://companyurl.com/"
    },
    "hasCourseInstance": {
      "@type": "CourseInstance",
      "name": "Venue name",
      "courseMode": "Description of venue (ie. within our venues - conference room 3 etc.)",
      "location": "Company name that owns venue",
      "endDate ": "2017-05-27T21:00:00",
      "startDate": "2017-05-28T08:00:00",
      "performer": "Name of person(s) in charge of the course",
      "description": "Here you can input the time",
      "image": " https://website.com/courseimage.jpg ",
      "offers": {
         "@type": "Offer",
         "price": "500",
         "priceCurrency": "USD",
         "availability": "3 (ammount of spots left)",
         "url": "https://website.com/order-course-url",
         "validFrom": "2017-05-01T08:00:00"
      },
      "location": {
         "@type": "Place",
         "name": "Venue name",
         "address": "Streetadress, number, zipcode, place"
        }
    }
  }
</script>
<script type="application/ld+json">
  {
    "@context": "http://schema.org",
    "@type": "Event",
    "name": "Name of the event",
    "url": "https://website.com/eventurl",
    "startDate": "2017-11-24T19:30:00",
    "endDate": "2017-11-24T22:30:00",
    "eventStatus": "EventScheduled",
    "description": "Description of the event (normally you copy metadescription).",
    "performer": "Company, artist, group o.s.",
    "location": {
      "@type": "Place",
      "name": "Name for the venue",
      "address": {
         "@type": "PostalAddress",
         "streetAddress": "Streetadress",
         "addressLocality": "State/municipality",
         "addressRegion": "Place/city",
         "addressCountry": "US"
      }
    },
    "offers": {
      "@type": "Offer",
      "price": "100",
      "priceCurrency": "USD",
      "url": "https://website.com/url-for-buying-tickets",
      "availability": "InStock",
      "availabilityStarts": "2017-10-01T08:00:00",
      "inventoryLevel": "500 tickets",
      "validFrom": "2017-11-24T19:30:00"
    },
    "image":{
      "@type": "ImageObject",
      "url": " https://website.com/eventpicture.jpg "
    }
  }
</script>
<script type="application/ld+json">
  {
    "@context": "http://schema.org",
    "@type": "Place",
    "name": "Name of hotel, motel o.s.",
    "description": "Usually you copy the metadescription used on the page URL",
    "url": "https://website.com/placeurl",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "Streetadress",
      "addressRegion": "State/municipality",
      "addressLocality": "City/place",
      "postalCode": "Postal code",
      "addressCountry": "Country"
    },
    "amenityFeature":[
      {
         "@type": "LocationFeatureSpecification",
         "name": "Ie. Accommodation",
         "value": "True"
      },
      {
         "@type": "LocationFeatureSpecification",
         "name": "Ie. petsAllowed",
         "value": "True"
      },
      {
         "@type":"LocationFeatureSpecification",
         "name": "Ie. Meal",
         "value": "False"
      }
    ],
    "smokingAllowed": "False"
  }
</script>
<script type="application/ld+json">
  {
    "@context": "http://schema.org",
    "@type": "Person",
    "name": "John Doe",
    "jobTitle": "Job title of that person",
    "telephone": "+prefix phonenumber",
    "email": "person@website.com",
    "image": " https://website.com/picture-of-person.jpg ",
    "description": "Description of person (meta description or perhaps job description)",
    "url": "https://website.com/employees/john-doe/",
    "sameAs":[
      "LinkedIn url?",
      "Facebook url?",
      "Twitter url?",
      "Other urls?"
    ]
  }
</script>
<script type="application/ld+json">
  {
    "@context": "http://schema.org",
    "@type": "Recipe",
    "url": "https://website.com/recipeurl",
    "author": {
      "@type": "Person",
      "name": "Name of cook/author/company/website"
    },
    "prepTime": "PT5M",
    "cookTime": "PT1H20M",
    "datePublished": "2017-01-01",
    "publisher": {
      "@type": "Organization",
      "name": "Company/website name",
      "logo": {
         "@type": "ImageObject",
         "url": "https://website.com",
         "width": Max 300 (numeric only),
         "height": Max 60 (numeric only)
      }
    },
    "description": "150-180 letters long description (usually copy meta description for this)",
    "image": " http://website.com/food-image.jpg ",
    "recipeIngredient": [
      "ingredient 100 gram",
      "ingredient 3 tablespoons",
      "ingredient 2 deciliters"
    ],
    "nutrition": {
      "@type": "NutritionInformation",
      "servingSize": "1 portion",
      "calories": "250 cal",
      "fatContent": "12 g"
    },
    "aggregateRating": {
      "@type": "AggregateRating",
      "ratingValue": "4.5",
      "reviewCount": "24"
    },
    "name": "Name of the dish (50-60 letters max)",
    "recipeInstructions": "1. First do this.\n 2. Follow with this step.\n 3. Etc. - Remember to use '\n' if you want each step to start on a new line in case you are lucky enough to get an answerbox.",
    "recipeYield": "4 dinner portions"
  }
</script>
<script type="application/ld+json">
  {
    "@context" : "http://schema.org/",
    "@type" : "JobPosting",
    "title" : "Jobtitle for vacant position",
    "description" : "A description of the vacant positions role. Recommend keeping to a bulletinlist or similar to get to the point fast.",
    "url": "https://website.com/vacant-position-url",
    "identifier": {
      "@type": "PropertyValue",
      "name": "Company name",
      "value": "Unique value ie. jobtitle-vacancy-companyname-2017"
    },
    "datePosted" : "2017-04-01",
    "validThrough" : "2017-06-30",
    "employmentType" : "Fulltime",
    "industry": [
      "Media agency", 
      "Digital agency", 
      "SEO agency"
      ],
    "educationRequirements": "Bachelor or higher",
    "experienceRequirements": "2 years or more within the field",
    "responsibilities": "Ie. SEO performance for 5 of our biggest clients and a few more small clients",
    "workHours": "Ie. 08:00 - 16:00 Monday to friday",
    "qualifications": [
      "Ie. Analytical",
      "Ie. Former experience",
      "Ie. Strategic mindset",
      "Ie. Fluent in english",
      "Ie. Basic JavaScripting"
      ],
    "baseSalary": "USD 80.000 Annually + bonus (or perhaps say it depends on qualifications and experience)",
    "hiringOrganization" : {
      "@type" : "Organization",
      "name" : "Employer company name",
      "sameAs" : "https://website.com/"
    },
    "jobLocation" : {
      "@type" : "Place",
      "address" : {
        "@type" : "PostalAddress",
        "streetAddress" : "Streetadress and streetnumber",
        "addressRegion" : "State/municipality",
        "addressLocality" : "City/place",
        "postalCode" : "Postal number",
        "addressCountry": "Country"
        }
     }
  }
</script>
<script type="application/ld+json">
  {
    "@context":"http://schema.org",
    "@type": "Service",
    "url": "https://website.com/url-to-service",
    "description": "Usually just copy meta description from that page into this bracket",
    "serviceType": [
      "Name of service",
      "Alternate name or synonym?"
      ],
    "provider": {
      "@type": "ProfessionalService (can use LocalBusiness or other variations here)",
      "name": "Company name",
      "priceRange": "Ie. USD 500 - 1500",
      "image": " https://website.com/image-of-service.jpg ",
      "logo": " https://website.com/logoimage.jpg ",
      "address": "Streetadress, streetnumber, postalnumber and place",
      "telephone": "+prefix and phonenumber",
      "email": "post@website.com"
      },
    "areaServed": {
      "@type": "City",
      "name": [
        "New York",
        "Chicago",
        "Boston"
        ]
      }
  }
</script>

Vil du ha hjelp med søkemotoroptimalisering og synlighet i Google

I dag rangerer test-artikkelen fortsatt på toppen for søkene våre, med en litt mindre utfyllende oppføring uten SEO-kalorier eller de flotte “tilbakemeldingene”.

Om du vil få din nettside mer synlig for søk ta kontakt på telefon 21 39 94 11, epost: post@nettrafikk.no eller via vårt kontaktskjema, så kan vi hjelpe med å få dine sider opp i trefflistene når potensielle kunder utfører aktuelle søk mot din bransje, dine produkter eller dine tjenester.

Var denne artikkelen nyttig?
Kontakt oss
Nettrafikk AS
Nedre gate 5, 0551 Oslo
post@nettrafikk.no
Tlf: +47 21 39 94 11
Meld deg på vårt nyhetsbrev!