2016-01-22 35 views
6

Mam aplikację kątową, którą próbuję skonfigurować w środowisku produkcyjnym. Jak czytałem, Google może teraz indeksować strony AJAX. Sprawdzam, jak działałbym w usłudze Fetch jako Google. Mimo że strona główna jest poprawnie renderowana we wszystkich głównych przeglądarkach, funkcja Pobierz jako Google zwraca pustą stronę bez kompilacji żadnej z dyrektyw Angula i bez błędów. Używam trybu HTML5 i ui-router. Pliki są obsługiwane przez serwer aplikacji node.js (próbowałem wysyłać pliki z nginx, a wynik był taki sam), a wszystkie pliki są dozwolone przez robots.txt. Skrypty są połączone i zminimalizowane. W konsoli nie ma błędów.Pobierz jako Google nie wyświetla aplikacji Angular.js

kod zwrócony przez Pobierz jako usługi Google: doctype html>

<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <base href="/"> 
    <title ng-bind="$state2.current.data.pageTitle || 'xxx'"></title> 
    <meta name="description" content="{{$state2.current.data.description}}"> 
    <meta name="keywords" content="{{$state2.current.data.keywords}}"> 
    <meta name="viewport" content="width=device-width"> 
    <!-- Place favicon.ico and apple-touch-icon.png in the root directory --> 
    <link rel="stylesheet" href="app/b91daaea.vendor.css"> 
    <link rel="stylesheet" href="bower_components/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css" /> 
    <link rel="stylesheet" href="app/dbc6e533.app.css"> 
</head> 

<body iact-set-body="{{$state2.current.name}}" ng-cloak ng-controller="IndexCtrl as Index" ng-class="{'register-page' : $state2.current.name === 'register.one'}"> 
    <iact-progress-bar ng-if="$state2.current.name === 'main.post'" class="progress-bar progress-bar--page"></iact-progress-bar> 
    <div class="alert-block" alert-box></div> 


    <loader ng-show="showLoader"></loader> 
    <div class="ui-view-container"> 
    <div ng-cloak ui-view></div> 
    <div ng-cloak ui-view="layer" class="ui-view-layer"></div> 
    </div> 


    <!--[if lt IE 7]> 
    <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade 
     your browser</a> to improve your experience.</p> 
    <![endif]--> 
    <!--[if lt IE 9]> 
    <script src="bower_components/es5-shim/es5-shim.js"></script> 
    <script src="bower_components/json3/lib/json3.min.js"></script> 
    <![endif]--> 
    <script src="https://cdn.socket.io/socket.io-1.3.7.js"></script> 
    <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB5s1GO-SwKumRL-es-SHnGYwom55LpJyM&libraries=places"></script> 
    <script src="app/9b5d1095.vendor.js"></script> 
    <script src="app/b49bc91c.app.js"></script> 
</body> 

</html> 

Czy istnieje coś, co zostało zrobione źle czy mam po prostu iść z wstępnym renderowaniu do roboty?

+0

Mam ten sam problem, dziwne jest to, że po pobraniu i renderowaniu google wyświetlają mi się strony "jak google widzi", co jest mylące, ponieważ kiedy po prostu się pobiera (i przechowuje w pamięci podręcznej btw .. .) bez ładowania szablonu. – FireBrand

+0

Prawdopodobny duplikat narzędzi [Pobierz jako Google Webmaster] (http://stackoverflow.com/questions/29662999/fetch-as-google-webmaster-tools) –

Odpowiedz

-2

Prowadzenia badań niedawno odkryłem, że przeważająca opinia w internecie jest to, że jeśli masz angularjs aplikację i chcesz go i indeksowana przez Google, trzeba coś podobnego prerender lub brombone, generowanie zrzutów HTML, statyczne strony Twojej witryny, aby umożliwić jej indeksowanie przez wyszukiwarki.

Jeśli poważnie myślisz o biznesie optymalizacji SEO, to powinieneś bardzo uważać, aby korzystać z tych narzędzi. Po pierwsze, powiedzieli, że używa specyfikacji od Google, która definiuje indeksowanie Ajax. Ale ta specyfikacja jest przestarzała.

Wstępne renderowanie może spowodować maskowanie. Maskowanie ma miejsce, gdy witryna wyświetla inną treść użytkownikom niż wyszukiwarkom. Przynajmniej Google jest szybki z karami, jeśli się maskujesz. Przetestuj, przetestuj, przetestuj każdą ze swoich stron internetowych pod kątem maskowania, szczególnie jeśli obsługujesz dwie różne wersje!

Google mówi: Podczas oceny witryny, aby sprawdzić, czy zawiera ona ukryty tekst lub linki, poszukaj informacji, których użytkownicy nie będą mogli łatwo zobaczyć.

Nie musisz podawać innej lub wstępnie renderowanej treści do Google. W rzeczywistości, dopóki przestrzegasz zwykłych konwencji SEO w swojej aplikacji, Google może dokładnie indeksować, renderować i indeksować Twoją aplikację AngularJS. Również indeksowanie zajmuje trochę czasu.

Nota prawna: Jest to koncepcja teoretyczna. Testy pokazują, że Google może indeksować, renderować i indeksować czystą stronę AngularJS, gdy jest poprawnie skonfigurowany. Jednak inne wyszukiwarki i roboty indeksujące prawdopodobnie nie będą w stanie poprawnie zaindeksować Twoich treści. W środowisku czysto JS nie będziesz indeksowany przez Bing, Yahoo ani Yandex; a sieci społecznościowe takie jak Facebook, Twitter, Pinterest i wiele innych nie będą miały pojęcia, o czym są Twoje strony. W 2016 r. Nie należy wdrażać czystej architektury JS w witrynie produkcyjnej, jeśli zależy Ci na ruchu z zewnętrznych źródeł.

Powiązane problemy