DrMartiner
@DrMartiner
Full-Stack WEB Developer on Django & AngualrJS

_escaped_fragment_ работает с HTML5 адресами?

Добрый день

Front-end написан на AngualrJS (одностраничник) - куда ни зайди везде в коде страницы . Используется HTML5 адреса: /order/ , /product/name и пр. Контент подгружается из шаблонов, которые собираются на клиенте, данные берутся из API

Если в адресной строке есть параметр _escaped_fragment_=/product/name , то back-end отдаст собранный HTML для продукта

_escaped_fragment_ понимает только #!/product/name ссылки или HTML5 адреса тоже /product/name?
_escaped_fragment_ работает одинаково у Google и у Яндекс или есть какие-то особенности?
  • Вопрос задан
  • 3470 просмотров
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
только #!/product/name и только при наличии мета тега. Работает одинаково как для гугла так и для яндекса и для bing. Для ссылок вида /product/name это не имеет особо смысла.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
uaKorona
@uaKorona
Front-End разработчик
Если вы используете режим HTML5 routing mode
То для правильной поисковой индексации в код страницы следует включить мета-тег:
<meta name="fragment" content="!">
Например, если страница доступна по адресу www.example.com/blog и содержит мета-тег , то робот проиндексирует HTML-версию страницы по адресу www.example.com/blog?_escaped_fragment_= .
Примечание.
В HTML-версии документа мета-тег размещать не следует: в этом случае страница не будет проиндексирована.
Это справедливо и для Yandex и для Google
Ответ написан
Комментировать
@mayorovp
Зачем вам _escaped_fragment_, если на сервер уже ушло /product/name?
Ответ написан
DrMartiner
@DrMartiner Автор вопроса
Full-Stack WEB Developer on Django & AngualrJS
evilbloodydemon.ru/blog/2014/11/diy-angularjs-seo-... - вот отличное решение
Ответ написан
Комментировать
@vkdv
Только #!/product/name
_escaped_fragment_ работает одинаково у Google и у Яндекс или есть какие-то особенности?

Есть особенности :
1) Для яндекса важно, чтобы на главной (индексовой странице) был канонический урл , например прописать в индекс контроллере
$('head').append('<link rel="canonical" href="http://xxx.ru/#!/" />');
Иначе он главную страницу не индексирует (возможно это лечится втч пунктом 2)
2) в конифге nginx нужно сделать канонический редирект с www на http (или наоборот) return 301 http://www.example.com$request_uri; иначе гугл будет вредничать. Можно также указать в гугл мастере основной домен , мб этого будет достаточно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы