2016-11-07 7 views
0

До сих пор я использовал prerender.io, чтобы сделать мои сайты angularjs seo friendly. Я работал хорошо, когда дело доходит до URL-адресов с hashbangs (website.com/#!).SEO для AngularJS с режимом url HTML5 в ExpressJS

В настоящее время я размещаю свои сайты на html5mode, который не содержит хэшинга на url и выглядит красивее. Однако даже после перехода на html5 url, prerender.io работает неправильно.

Кроме того, я придумал статью Google, в которой утверждается, что их новая технология позволяет механизму автоматически создавать веб-сайты Javascript (https://webmasters.googleblog.com/2015/10/deprecating-our-ajax-crawling-scheme.html). Однако, поскольку я использую инструмент «Получить как Google» в Google Search Console. Он очень плохо работает, а мой заголовок и мета-описание содержат синтаксис angularjs ({{seo.tile}} или {{seo.desc}}), которые не отображаются.

Я совершенно потерялся, где должен начать, и исправить проблемы, с которыми я столкнулся. Я попытался уйти от prerender.io, потому что я не думаю, что мы его уже обязательно нуждаемся.

Извините за плохо организованную должность и вопросы. Позвольте мне попытаться разобраться и связать вопросы ниже.

1) Неужели нам еще нужно научить бота Google об угловых?

2) Какова самая стабильная и лучшая практика для AngularJS + ExpressJS SEO? Я не хочу попробовать нестабильный и легко откалиброванный метод для этого.

Большое спасибо за ваше время.

+0

Я использовал оба параметра $ locationProvider.hashPrefix ('!') и в то же время. Но я не думаю, что должен. Мое заключение заключается в том, что если я хочу перейти в режим html5, мне нужен метатег в файле index.html. Однако, если я уйду из режима html5 и просто использую hashbang, мне нужно включить $ locationProvider.hashPrefix ('!') В главный угловой модуль и не обязательно добавлять метатег в index.html. – supergentle

+0

** Исправление: даже если вы помещаете тег pushstate ( supergentle

ответ

1

EDIT На момент написания этой статьи я не знал об использовании компилятора javascript, такого как babel. Я скажу, что здесь обязательно используйте webpack или gulp, чтобы скомпилировать ваши коды ES6 в стабильные, чтобы ваши коды могли быть написаны так, как вы ожидаете, и будут хорошо работать с любыми сторонними инструментами или pacakges.

Это эпоха ES6 !!!


Наконец, я решил мою проблему и для дальнейшего использования и других людей, которые борются с проблемой образца я прошел через, позвольте мне оставить то, что я нашел.

Прежде всего, сама причина, по которой я была очень смущена, заключалась в том, что даже если я возьму html-снимок с помощью phantomjs, я увидел неподвижный угловой синтаксис, подобный {{seo.title}} и. Очень неудобно, что я использовал ES6 syntax через мой модуль angularjs. Поскольку phantomjs не был полностью принят с синтаксисом ES6, он не смог интерпретировать модуль angularjs и просто сплел html с неконфигурированными угловыми ... Из этого я пришел к неожиданному выводу о том, что сейчас не самое подходящее время для внедрения ES6 для производства.

Во-вторых, я не буду рассчитывать на то, что Google уверенно объявил, что их боты могут обрабатывать сайты с динамическими фреймворками javascript, такими как angularjs. Даже если phantomjs работает, инструмент «Получить как Google» не дает мне хорошего результата. Несколько раз (на самом деле очень часто) это приводило к простому файлу html. Так как еще Ajax crawling поддерживается как «откат», но более стабильный метод, я бы рассчитывал, а не рассчитывал на их очень неустойчивых смарт-ботов.

В заключение НЕ ДОЛЖНЫ БЫТЬ РАННЕГО АДОПТОРА, особенно если вы делаете бизнес из этого! Для angularJS SEO (1) следуйте рекомендациям Ajax, даже если они считаются устаревшими, (2) Не используйте синтаксис ES6 для серьезных программных материалов.

 Смежные вопросы

  • Нет связанных вопросов^_^