Я пытаюсь понять, что лучше всего сделать веб-приложение angularJS для SEO.
Я прочитал это Как поисковые системы работают с приложениями AngularJS?
и он рекомендует использовать: <meta name="fragment" content="!">
поскольку мое веб-приложение использует html5mode.
Сайт работает хорошо, когда доступ к корневому URL /
и просмотр обычно в других областях, но как только я перезагрузить/обновить веб - сайт (если я не в корневом URL) возвращает url not found
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Прямо сейчас, я понимаю, что, используя этот трюк, google сможет обходить сайт в обычном режиме? Я также добавил попытку создания карты сайта с использованием этого сайта третьей стороны https://www.xml-sitemaps.com/, но вернулся только с одним URL-адресом (корневым URL-адресом).
У моего сайта нет сервера, такого как узел, он просто угловой.
Каков правильный способ исправить все это?
Благодарю!
В основном, что вам нужно сделать, это сообщить Google, что содержимое страницы, которую он видит. Например, если у вас есть этот URL #/services, Google просто знает основную страницу, например example.com, потому что AngularJS - это простая страница. Маршруты управляются AngularJS через javascript.
Итак, если вы используете html5mode, у вас будут более приятные URL-адреса, например: /services, но для google это все равно одно и то же.
Решение состоит в том, чтобы перенаправить Google на статический контент. Вы можете сделать это вручную, но это больно.
Я рекомендую вам эту услугу: https://prerender.io/. Я использую его для всех моих веб-сайтов, которые я сделал в AngularJS. Эта услуга отображает каждую страницу, которую вы имеете в AngularJS для вас, и хотя.htaccess вы перенаправляете Google на эту услугу.
npm install prerender-node --save
но он просто загружает кучу node_modules, и я не уверен, что делать после :(
Нет никакой цели в том, чтобы проиндексировать ваш сайт поисковыми системами, когда посетители получат ошибку 404, когда они приземляются на любой URL-адрес, отличный от базового URL-адреса. Поэтому самое первое, что нужно было бы отправить все HTTP-запросы на этот один файл, который выполняет ваше приложение AngularJS, в большинстве случаев index.php. Вы можете выполнить это, добавив следующее в ваш файл.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)/$ $1 [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Теперь, по словам самого Google, у вас есть все необходимое для индексации. Несколько месяцев назад я провел несколько тестов, чтобы узнать, может ли приложение AngularJS индексироваться без какого-либо резервного копирования. И это произошло, пока оно появляется как ожидалось и без ошибок в Google Web Mastertools → Crawl as Google
, оно будет индексироваться должным образом.