У меня есть веб-страница, которая реализует набор вкладок, каждая из которых отображает различный контент. Щелчки вкладок не обновляют страницу, а скрывают / отображают содержимое на стороне клиента.
Теперь существует требование изменить заголовок страницы в соответствии с выбранной вкладкой на странице (по причинам SEO). Это возможно? Может кто-нибудь предложить решение для динамического изменения заголовка страницы с помощью JavaScript без перезагрузки страницы?
источник
Хочу поздороваться с будущим :) То, что произошло недавно:
Поэтому, чтобы ответить на ваш вопрос, вы можете смело менять заголовок и другие метатеги из javascript (вы также можете добавить что-то вроде https://prerender.io, если вы хотите поддерживать поисковые системы, не принадлежащие Google), просто сделайте их доступными в виде отдельных URL-адресов ( иначе как Google узнает, что это разные страницы для отображения в результатах поиска?). Изменить теги, связанные с SEO (после того, как пользователь изменил страницу, нажав на что-то), очень просто:
Просто убедитесь, что css и javascript не заблокированы в robots.txt, вы можете использовать Fetch в качестве службы Google в Google Webmaster Tools.
1: http://searchengineland.com/tested-googlebot-crawls-javascript-heres-learned-220157
источник
Я не вижу, как изменение заголовка страницы с помощью Javascript поможет SEO. Большинство (или все) поисковых роботов не запускают Javascript и будут читать только изначально загруженный заголовок, который является разметкой.
Если вы хотите помочь SEO, то вам нужно будет изменить заголовок страницы в серверной части и обслуживать разные версии страницы.
источник
window.history
полезно для обновления заголовка страницы, а также URLИспользование
document.title
.Смотрите эту страницу для элементарного учебника, а также.
источник
Код
document.title = 'test'
источник
;
в конце?Есть много способов изменить заголовок, два основных из них выглядят так:
Сомнительный метод
Поместите тег заголовка в HTML (например
<title>Hello</title>
), затем в JavaScript:Очевидно правильный метод
Самым простым из них является использование метода, предоставляемого объектной моделью документов (DOM).
Первый метод обычно используется для изменения тегов, найденных в теле документа. Использование этого метода для изменения метаданных меток, подобных тем, которые встречаются в заголовке (например
title
), в лучшем случае сомнительная практика, не является идиоматичным, не очень хорошим стилем для начала и даже не может быть переносимым. Однако вы можете быть уверены в том, что это будет раздражать других разработчиков, если они увидятtitle.innerHTML = ...
в поддерживаемом ими коде.То, что вы хотите пойти, это последний метод. Это свойство предоставляется в спецификации DOM специально для целей, как следует из названия, изменения названия.
Также обратите внимание, что если вы работаете с XUL, вы можете проверить, что документ загружен, прежде чем пытаться установить или получить заголовок, так как в противном случае вы вызываете
undefined behavior
(здесь драконы), что само по себе является страшной концепцией. Это может происходить или не происходить с помощью JavaScript, так как документы в DOM не обязательно относятся к JavaScript. Но XUL - целое «другое чудовище», поэтому я отвлекся.Говоря о
.innerHTML
Несколько хороших советов, которые следует иметь в виду, это то, что использование
.innerHTML
обычно небрежно. ИспользуйтеappendChild
вместо этого.Хотя два случая, которые я все еще нахожу
.innerHTML
полезными, включают вставку простого текста в небольшой элемент ...... и очистка контейнера ...
источник
undefined behavior
.document.querySelector.apply
, серьезно?Использование document.title - это то, как вы это сделаете в JavaScript, но как это должно помочь SEO? Боты, как правило, не выполняют код JavaScript, когда они перемещаются по страницам.
источник
Современные сканеры способны анализировать динамически сгенерированный контент в DOM, поэтому его использование
document.title = ...
совершенно нормально.источник
Вам нужно будет повторно предоставить страницу с новым заголовком, чтобы все сканеры заметили это изменение. Выполнение этого через javascript принесет пользу только читателю, так как сканеры не будут выполнять этот код.
источник
для тех, кто ищет npm-версию, для этого есть целая библиотека:
источник
Может быть, вы можете загрузить на свой заголовок все вкладки заголовков в одну строку, а затем, как только вы загрузите одну из вкладок, измените заголовок с помощью JavaScript
например: сначала установите свой заголовок
после загрузки одной из вкладок запустите:
источник
Один способ, который приходит на ум, который может помочь с SEO и сохранить ваши вкладки такими, какими они являются, - это использовать именованные привязки, которые соответствуют каждой вкладке, как в:
http://www.example.com/mypage#tab1, http://www.example.com/mypage#tab2, etc.
Вам потребуется обработка на стороне сервера для анализа URL и установки начального заголовка страницы, когда браузер отображает страницу. Я также хотел бы сделать эту вкладку «активной». Как только страница загружена и фактический пользователь переключает вкладки, вы можете использовать javascript для изменения,
document.title
как заявили другие пользователи.источник
Вы можете использовать JavaScript. Некоторые боты, включая Google, будут выполнять JavaScript в интересах SEO (показывая правильный заголовок в поисковой выдаче).
Однако это сложнее, поскольку вы показываете и скрываете вкладки, не обновляя страницу и не меняя URL. Возможно добавление якоря поможет, как заявили другие. Возможно, мне нужно отозвать свой ответ.
Статьи, показывающие положительные результаты: http://www.aukseo.co.uk/use-javascript-to-generate-seo-friendly-title-tags-1275/ http://www.ifinity.com.au/2012/10 / 04 / Changing_a_Page_Title_with_Javascript_to_update_a_Google_SERP_Entry
Не всегда предполагайте, что бот не будет выполнять JavaScript. http://searchengineland.com/tested-googlebot-crawls-javascript-heres-learned-220157 Google и другие поисковые системы знают, что наилучшие результаты для индексации - это результаты, которые фактический конечный пользователь увидит в своем браузере, включая JavaScript.
источник
Использование
document.title
. Это будет полезно для большинства вещей, но разрушит SEO на вашем сайте.Пример:
источник
Поскольку поисковые системы игнорируют большинство javascript, вам нужно сделать так, чтобы поисковые системы могли сканировать с помощью вкладок, не используя Ajax. Сделайте каждую вкладку ссылкой с ссылкой, которая загружает всю страницу с выбранной вкладкой. Тогда страница может иметь этот заголовок в теге.
Обработчик события onclick может по-прежнему загружать страницы с помощью ajax для людей, читателей.
Чтобы увидеть страницы так, как их видит большинство поисковых систем, отключите Javascript в своем браузере и попытайтесь сделать так, чтобы при нажатии вкладок загружалась страница с выбранной вкладкой и правильным названием.
Если вы загружаете через ajax и хотите динамически изменять заголовок страницы только с помощью Javascript, то выполните:
Тем не менее, поисковые системы не увидят это изменение, сделанное в JavaScript.
источник
Но для того, чтобы получить SEO подходит
Вам нужно перезагрузить страницу, когда страница меняется, чтобы поисковая система видела разные заголовки и т. Д.
Поэтому убедитесь, что перезагрузка страницы работает, а затем добавьте изменения document.title.
источник
Я просто хочу кое-что добавить: изменение заголовка с помощью JavaScript на самом деле полезно, если вы обновляете базу данных с помощью AJAX, поэтому заголовок изменяется без необходимости обновлять страницу. Название на самом деле меняется с помощью языка сценариев на стороне сервера, но его изменение с помощью JavaScript - это всего лишь удобство использования и пользовательский интерфейс, который делает работу с пользователем более приятной и плавной.
Теперь, если вы меняете заголовок с помощью JavaScript, просто не стоит этого делать.
источник
Google упомянул, что все js-файлы отредактированы, но в действительности я потерял свой заголовок и другие метатеги, которые были предоставлены Reactjs на этом сайте, и фактически потерял мою позицию в Google! Я много искал, но кажется, что все страницы должны быть предварительно отрендерены или с использованием SSR (рендеринга на стороне сервера), чтобы иметь их SEO-дружественный протокол!
Он расширяется до Reactjs, Angularjs и т. Д.
Короче говоря, каждая страница, которая имеет источник просмотра страниц в браузере, индексируется всеми роботами, если это не так, вероятно, Google может индексировать, но другие пропускают индексацию!
источник
Самый простой способ - удалить
<title>
тег из index.html и включитьна каждой странице в Интернете. Пауки найдут это и будут показаны в результатах поиска :)
источник