Google indeksuje strony za pomocą #! chociaż nie mamy żadnych


11

Nasza firma opracowała aplikację jednostronicową przy użyciu AngularJS i jej routingu. Google zindeksowało naszą stronę przyzwoicie za pomocą JavaScript, ale nie zaindeksowało dobrze niektórych stron, dlatego opracowaliśmy wersję wyłącznie w języku HTML.

Postępowaliśmy zgodnie z opublikowaną tutaj specyfikacją indeksowania Ajax i mamy <meta name='fragment' content='!'>tag oraz kanoniczne adresy URL. Oczekujemy, że http://www.example.com/foo/barzostaniemy zabrani http://www.example.com/?_escaped_fragment_=/foo/bar.

Przekonaliśmy się jednak, że kiedy wdrożyliśmy specyfikację AJAX, teraz wszystkie strony są indeksowane dwukrotnie, raz w wersji JavaScript as http://www.example.com/foo/bari raz w nowej wersji as http://www.example.com/#!/foo/bar. Jest to dla nas szkodliwe, ponieważ powielają treści, a także źle przedstawiają naszą witrynę.

Próbowałem szukać podobnych pytań tutaj i na forum produktów Google, ale nic nie znalazłem.


Czy poruszyłeś ten problem w Google? Na ich forum?
Jérôme Verstrynge

@JVerstry tak - zrobiłem to natychmiast po opublikowaniu tego pytania: productforums.google.com/forum/… Jednak moje pierwsze założenia są takie, że nie zrozumieliśmy poprawnie protokołu, a nie coś jest nie tak z ich produktem, więc mam szansę pomoc tutaj jest całkiem przyzwoita, oprócz tego, że pytanie to jest istotne dla dużej grupy docelowej tutaj (wszyscy z aplikacją na jednej stronie, która nie używa #! w adresach URL i chce, aby Google je zindeksował). Nawiasem mówiąc, dzięki za sugestię.
Benjamin Gruenbaum

1
Czy można zdefiniować kanoniczne URL poprzez rel="canonical"?
kqw

3
przekierowanie #! adresy URL i maskowanie brzydkich adresów URL nie wydają się zgodne ze specyfikacją.
Tony McCreath

1
Zastanawiam się, jeśli nie używasz #!adresów URL, dlaczego używasz _escaped_fragment_i specyfikacji Google AJAX?
MrWhite

Odpowiedzi:


2

W razie wątpliwości użyj rel="canonical". To może być tak proste, jak umieszczenie <link rel="canonical" href="http://blog.example.com/dresses/green-dresses-are-awesome" />w twojej <head>. Zobacz Google, aby uzyskać więcej informacji.

To nie powstrzyma botów przed indeksowaniem obu „wersji”, ale powie Google (i innym SERP), aby indeksowały tylko dokument kanoniczny.


Czy w tym samym duchu może użyć pliku robots.txt?
eyoung100,

Mamy te, w tym przypadku nie pomogły.
Benjamin Gruenbaum

1

Naprawdę nie rozumiem o javascript.
Podczas indeksowania Google kanoniczny adres URL <head>jak w @philtune mówi. Ale jeśli nie możesz oczekiwać, http://www.example.com/foo/barże zostaniesz zabrany http://www.example.com/?_escaped_fragment_=/foo/bar.

Google Fetch właśnie ściągnął canonical url.

W takim przypadku adres URL jest http://www.example.com/foo/barrównież indeksowany przez Google http://www.example.com/foo/bar.

Jeśli chcesz indeksować swoją stronę w Google, dodaj ten skrypt do <head>:

<meta content = 'index, follow' name = 'googlebot' />

a następnie pobierz ponownie za pomocą Google Fetch.

Note:
google będzie przeglądać i śledzić oraz indeksować witrynę i podążać za wszystkimi linkami na stronie. Jeśli na stronie masz link podobny do http://www.example.com/?_escaped_fragment_=/foo/bari przekierowanie do http://www.example.com/foo/bar, Google zaindeksuje, http://www.example.com/foo/barponieważ http://www.example.com/?_escaped_fragment_=/foo/barsą przekierowywane http://www.example.com/foo/bar.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.