Google indeksering

Tags:    html google css json

<< < 12 > >>
Hejsa

Vi ved jo at Google crawler din side og læser din HTML og css for at se hvad der er synligt og ikke synligt.
Fx så læser den jo fx en tekst der har samme farve som baggrunden men ignorerer i forhold til indeksering fordi den er "usynlig".

Men fx en shop hvor man gerne vil have at google skal kende alle ens produkter, men kun vise en mængde fra start (de første 30), men man fylder siden med 50 med display:none.

Vil Google indeksere disse fordi de ligger i HTML'en, men ligger klar til senere visning?

Og hvad hvis der ikke ligger noget "skjult" HTML endnu som bare skal vises, så kan Google ikke indeksere det. Hvad gør man så?
Tænker på hvis man bruger JSON til at loade flere værdier og data hvad så?

Når man bruger AJAX er det vel anderledes end når man bruger normalt input submit med en knap, og kan ikke lade være med at tænke på om der er forskel i hvordan Google håndterer det og hvad den forventer og hvad den rent faktisk gør?

Håber i kan hjælpe mig med at forstå det lidt bedre :)



16 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
...og derfor skal du, som allerede skrevet, udskrive almindelige paging links, til ære for Google og folk uden JavaScript. Så får du det bedste fra begge verdener :)

Mvh.

Kasper (TSW)



Idéen er som Kasper (TSW) skriver at lave en side som virker 100% uden JavaScript. Herefter bygger du JavaScripten ovenpå - således at folk der har JavaScript slået til kan få en bedre oplevelse på din side. Om du skjuler de originale links, eller blot attacher click handlers på dem er fuldstændig ligegyldigt - sålænge din side virker med både JavaScript slået til og fra - så vil siden blive indekseret pænt i Google (samt du får en masse andre pænge egenskaber, så som at man kan linke direkte til en bestemt side osv).



Idéen er som Kasper (TSW) skriver at lave en side som virker 100% uden JavaScript. Herefter bygger du JavaScripten ovenpå - således at folk der har JavaScript slået til kan få en bedre oplevelse på din side. Om du skjuler de originale links, eller blot attacher click handlers på dem er fuldstændig ligegyldigt - sålænge din side virker med både JavaScript slået til og fra - så vil siden blive indekseret pænt i Google (samt du får en masse andre pænge egenskaber, så som at man kan linke direkte til en bestemt side osv).
Tak, det hjalp lidt, men ikke det hele jeg forstod tror jeg.

Hvis jeg laver en side der hedder
detbedsteiverden.dk/produkter/
og på denne viser jeg 30 elementer, og et link til næste side (detbedsteiverden.dk/produkter/2/).
Oveni laver jeg at når man når til enden af siden så vil javascript (hvis det er slået til) loade flere resultater og ændre linket til næste side igen (detbedsteiverden.dk/produkter/3/), og vise et link til forrige side også.

Jeg forstår så godt at Google vil kunne klikke på mit første link og fortsætte indtil der ikke er flere og dermed indeksere disse sider.
Men så længe brugeren har javascript aktiveret vil jeg jo ikke ændre URL'en når den henter flere resultater og vil stadig være:
detbedsteiverden.dk/produkter/



Altså problemet med den løsning er jo netop at du nu skaber en helt ny side som i realiteten er BÅDE side 1 og 2. At lave en URL til denne slags ting vil i praksis være en skidt ting (da man så også kunne lave en URL for side 1-100 - hvilket bør være et mareridt for enhver server at generere på én gang).

Så - med denne form for løsning, nej - du bør ikke lave en URL der passer til sidens indhold.

Men til dit egentlige spørgsmål (sådan som jeg læser det): Hvordan pokker ændrer man URL'en gennem javascript og samtidig får frem og tilbage knappen til at virke?

Dette findes der utallige javascript frameworks til - en masse af dem der plugger direkte ind i jQuery. Hvis du søger efter JavaScript og history på Google burde der komme adskillige frem - jeg må her erkende at jeg ikke har alt for meget erfaring med det - men der findes glimrende plugins som kan ordne det for dig, således at det virker i langt de fleste browsere, selv dem der ikke understøtter de nye fancy APIer (hvor der bliver brugt ældre og knap så optimale måder at gøre det på).

Jeg håber det gav lidt afklaring.



Altså problemet med den løsning er jo netop at du nu skaber en helt ny side som i realiteten er BÅDE side 1 og 2. At lave en URL til denne slags ting vil i praksis være en skidt ting (da man så også kunne lave en URL for side 1-100 - hvilket bør være et mareridt for enhver server at generere på én gang).

Så - med denne form for løsning, nej - du bør ikke lave en URL der passer til sidens indhold.

Men til dit egentlige spørgsmål (sådan som jeg læser det): Hvordan pokker ændrer man URL'en gennem javascript og samtidig får frem og tilbage knappen til at virke?

Dette findes der utallige javascript frameworks til - en masse af dem der plugger direkte ind i jQuery. Hvis du søger efter JavaScript og history på Google burde der komme adskillige frem - jeg må her erkende at jeg ikke har alt for meget erfaring med det - men der findes glimrende plugins som kan ordne det for dig, således at det virker i langt de fleste browsere, selv dem der ikke understøtter de nye fancy APIer (hvor der bliver brugt ældre og knap så optimale måder at gøre det på).

Jeg håber det gav lidt afklaring.
Tak Kaare
Det gav lidt afklaring tror jeg :D men fik så også lidt flere spørgsmål nu jeg tænkte det igennem igen :(

Det du foreslog var at lave en side der fungerer uden javascript, og som så kunne få javascript ovenpå for at gøre det lækkert. Den del synes jeg faktisk var ret god og kunne jeg godt lide.

Så planen kan være:
Step 1:
Lav en side i MVC der tager controller, action og input med så du kan få leveret sider og indhold til der ikke er mere og den fungerer uden javascript. Så er der links for Google den kan crawle og få alt mit indhold indekseret.

Step 2:
Putte JavaScript ovenpå der gør at når man når 90% ned på siden så vil den begynde at loade næste sides indhold ind på siden så man blot kan blive ved med at scrolle. Her skal jeg så bruge dit omtalte javascript bibliotek til at generere checkpoints som browseren kan gå tilbage og frem til. Og jeg skal samtidigt have URL'en til at ændre sig fordi indholdet ændrer sig og den dermed er unik og passer til det indhold der leveret på siden nu.

MEN men men
Nu melder der sig nogle flere spørgsmål :(

1) Google indekserer min side. Den trykker på videre og får produkter 20-40 (side 2) som hedder produkter/side/2 (Lavet i MVC).
Dette er uden javascript og serveren har leveret siden tilbage med kun 20 produkter.
Når brugeren så klikker på linket i browseren på Google (produkter/side/2)
og HAR javascript så er situationen jo en anden.
Jeg vil gerne have at brugeren får loadet alle produkter ind til sin side således at han får 0-20 (side1) og 20-40 (side2) fordi han har javascript aktiveret.

2) Næsten samme situation.
En bruger har været inde og finde min side 2 og synes den passer skidegodt til hans ven og sender ham et link. Her er indloadet produkter 0-20 (side1), og 20-40 (side2).
Men hvordan kan jeg vide forskel på om brugeren kommer ind første gang med produkter/side/2 og han så skal have 40 resultater loadet ind på siden, eller om han kun skal have de sidste 20 fordi han er på siden og har fået de første 20 loadet allerede?

Umiddelbart kan jeg ikke lade være med at tænke på at det er to forskellige scenarier og brugsmønstre som skal være seperate, men alligevel skal google kunne finde mine data og give en nogenlunde ensartet oplevelse om brugeren kommer til side 2-3-4 direkte fra Google eller om de starter fra side 1 på min side.
Så de ikke kommer ind på side 2 fra Google og får 20 resultater som er produkt 20-40, men hvis de selv går ind på side 1 fra min hovedside (root-domæne) så vil opleve at når de får den samme URL (produkter/side/2) så er der pludseligt 40 produkter vist på siden.

Beklager hvis det er mig der er dum og ikke helt forstår hvordan man bør lave og løse disse ting på nettet endnu, men skriver fordi jeg gerne vil forstå det.



Man kan også genkende Googles crawler...mener dens user-agent indeholder 'Googlebot'.

Hvis den er der, så leverer du en side, hvor alt er synligt.



<< < 12 > >>
t