2015-09-18 40 views
7

Niedawno utworzyłem stronę internetową przy użyciu Angularjs i obecnie próbuję ją zaindeksować przez Google za pomocą pushstate.Indeksowanie aplikacji angularjs - Googlebot-symulacja vs witryna: domena

Zrobiłem całkiem sporo badań i odkryłem, że mogę użyć Googlebot-simulater w Google Webmaster tools, aby symulować wizytę Google w mojej witrynie i zobaczyć, jak boty widzą moją stronę internetową, a co widzą użytkownicy.

Oto rezultat wygląda dobrze, Google widzi dokładnie te same rzeczy jak moje użytkowników, a wszystkie strony/podstrony uzyskać status obu partially lub fully.

Innym sposobem, o którym dowiedziałem się dziś rano, aby zobaczyć, co widzi Google na mojej stronie internetowej, jest skorzystanie z usług Google site:domainname. Tutaj znajduje się lista wszystkich stron/podstron: Google ma cached i klikając na różne linki, otrzymujesz widok, w którym wyświetlana jest dana strona.

Oto gdybym trochę zaniepokojony, że coś mi umknęło, bo niezależnie od statusu partially/fully moje strony dostać się z Goolgebot-simulation, kiedy patrzę na moich stronach (za pomocą drugiej metody), strony są puste .

Po raz pierwszy indeksuję strony internetowe i próbowałem od wielu dni, ale bez powodzenia. Czy jest ktoś, kto może powiedzieć, co robię źle/pominąć, lub przynajmniej wskazać właściwy kierunek? A może powinienem być trochę bardziej cierpliwy?

+0

Dodałem nagrodę w tej samej sytuacji. –

+0

Hej, mam do czynienia z tym samym problemem, więc staram się stworzyć narzędzie, które pomoże rozwiązać problem - https://github.com/jjbskir/angular-prerender - wstępnie przygotowuje twoją stronę, aby była bardziej przyjazna dla SEO i nie wymaga usługi zaplecza. – jjbskir

Odpowiedz

1

Odpowiedź od Johannes Ferner nie jest poprawna. Kiedyś było, a Google bardzo powoli aktualizowało swoje dokumenty, ale oficjalnie ogłosiły, że obsługują strony AJAX bez potrzeby tworzenia migawek HTML, o ile używasz pseudonimów. Bing podąża za pakietem, a także obsługuje pushstates.

Jako przykład tego, wyszukaj stronę: yoamoseguros.com i sprawdź tam wyniki z pamięci podręcznej. Strona jest zbudowana w Angular i jest ładowana całkowicie za pomocą AJAX i pststates, i pokazuje i indeksuje dobrze.

I zignorować uszkodzone strony, zrobiłem nieudane wdrożenie kilka dni temu z całkowicie zepsutym przekierowaniem, które pomieszało wszystko, a Google miał czas na indeksowanie uszkodzonych stron, zanim miałem szansę je usunąć. Raz one indeksowane moje rzeczy szybko ...:/


Więc jeśli używasz pushstates (html5mode on) i strony nie są wyświetlane poprawnie przez Google to nie jest coś innego się dzieje. Sprawdź plik robots.txt, czy blokujesz Google odczytywanie statycznych treści, takich jak pliki js lub obrazy? Potrzebuje dostępu do takich plików, aby móc poprawnie indeksować stronę.

Upewnij się również, że twoje fragmenty są po prostu "#", a nie "#!". W tym drugim przypadku Google założy, że chcesz użyć migawek HTML i spróbuje je znaleźć, a może się nie powieść. Więc jeśli chcesz użyć prostszej wersji Pushstate, upewnij się, że nie używasz "#!".


W końcowej nocie, Facebook czy NOT pushstates wsparcia. W związku z tym Facebook nadal będzie potrzebował migawek (lub po prostu zakodowanych znaczników OG w pliku index.html w zależności od rodzaju posiadanej zawartości).

1

Niektóre informacje:

pushstate nie ma nic wspólnego z indeksowania strony; Po prostu manipuluje historią przeglądarki, symulując zmiany URI, podczas gdy w rzeczywistości SPA (Single Page Application, czyli Twoja Angular App) jest wewnętrznie routowana bez ponownego ładowania strony. (Kątowa nazywa to również HTML5Mode)

Javascript oraz Googlebot:

Choć google-bot (lub jakakolwiek inna wyszukiwarka-crawler) jest w zasadzie tylko bezgłowy przeglądarka bez funkcjonalności wyświetlanie stron kodu JavaScript nie zobaczy dynamicznie generowanej treści.

Aby zindeksować SPA i dostarczyć dynamiczną treść do robotów indeksujących, należy dostarczyć statyczny HTML Migawkę dynamicznie generowanej strony do botów.

Jeśli nie użyłby statyczny HTML migawkę jedyną rzeczą bot google widzi coś takiego jak

<html> 
<body> 

<div ui-view="mainContent"></div> 

</body> 

Więcej informacji: https://support.google.com/webmasters/answer/174992?hl=en

W celu wygenerowania tych migawek można użyć jednego z kilka usług indeksowania SPA, takich jak https://prerender.io/ (za darmo, jeśli hostujesz go samodzielnie lub płatna wersja hostowana). To, co robią, to uruchomienie przeglądarki z JS-Support (phantomjs), która następnie otwiera wszystkie dostarczone adresy URL (poprzez statyczną listę, indeksowanie, sitemap.xml ...), uruchamiając cały kod JavaScript na stronie, czekając na strona do zakończenia (albo przez timeout lub określone wydarzenie, które musisz uruchomić), a następnie zapisanie wersji statycznej (= migawki) strony.

Aby upewnić się, że boty znajdują te migawki, które musisz obsłużyć i dostarczyć escaped_fragment, które byłyby domyślnie # lub zastąpiłeś je <meta name="fragment" content="!">, jeśli # jest już używane w twojej aplikacji.

Jeśli używasz middleware dostarczonego przez prerender.io (nie mam nic wspólnego z projektem, po prostu używając go) wiele trudnych rzeczy jest już obsługiwane.

więcej informacji tutaj: https://developers.google.com/webmasters/ajax-crawling/docs/specification?hl=en

+0

Hej Johannes, możesz rzucić okiem na moje następne pytanie Używam prerender: http://stackoverflow.com/questions/32696549/prerender-io-subpages-redirect-to-index –

+0

pushstate ma _something_ zrobić z indeksowaniem strony . w przeciwieństwie do stanu hasha, pushstate potrzebuje prawdziwych adresów URL, aby strona mogła zostać dodana do zakładek i ponownie załadowana. chodzi o to, aby odtworzyć te same ekrany, co na twardym dysku, ale bez ponownego ładowania. jeśli nie masz faktycznych adresów URL za ścieżką adresów SPA, powinieneś użyć fragmentów. jeśli zarówno SPA, jak i "REST" są zgodne, Google nie będzie miał problemów z indeksowaniem Twojej witryny, a Twoi użytkownicy będą otrzymywać szybkie aktualizacje strony. – dandavis

+0

To już nie jest poprawne. Podczas gdy Google powoli aktualizowało swoją dokumentację, poprawnie indeksują witryny za pomocą narzędzia pushstate bez potrzeby tworzenia migawek HTML. –