J'ai une page Web qui implémente un ensemble d'onglets affichant chacun un contenu différent. Les clics sur l'onglet ne rafraîchissent pas la page mais masquent / affichent le contenu côté client.
Maintenant, il est nécessaire de changer le titre de la page en fonction de l'onglet sélectionné sur la page (pour des raisons de référencement). Est-ce possible? Quelqu'un peut-il suggérer une solution pour modifier dynamiquement le titre de la page via javascript sans recharger la page?
la source
Je veux dire bonjour du futur :) Les choses qui se sont passées récemment:
Donc, pour répondre à votre question, vous pouvez modifier en toute sécurité le titre et les autres balises META à partir de javascript (vous pouvez également ajouter quelque chose comme https://prerender.io si vous souhaitez prendre en charge les moteurs de recherche non Google), il suffit de les rendre accessibles sous forme d'URL distinctes ( sinon, comment Google saurait-il qu'il s'agit de pages différentes à afficher dans les résultats de recherche?). Changer les balises liées au référencement (après que l'utilisateur a changé de page en cliquant sur quelque chose) est simple:
Assurez-vous simplement que css et javascript ne sont pas bloqués dans robots.txt, vous pouvez utiliser Fetch en tant que service Google dans Google Webmaster Tools.
1: http://searchengineland.com/tested-googlebot-crawls-javascript-heres-learned-220157
la source
Je ne vois pas en quoi le changement du titre de la page via Javascript aidera le référencement. La plupart (ou tous) les robots de recherche n'exécutent pas Javascript et ne liront que le titre initialement chargé qui est le balisage.
Si vous souhaitez aider le référencement, vous devrez modifier le titre de la page dans le back-end et servir différentes versions de la page.
la source
window.history
son bon de mise à jour le titre de la page ainsi que l' URLUtilisez
document.title
.Consultez également cette page pour un didacticiel rudimentaire.
la source
Le code est
document.title = 'test'
la source
;
à la fin?Il existe de nombreuses façons de modifier le titre, les deux principaux étant les suivants:
La méthode discutable
Mettez une balise de titre dans le HTML (par exemple
<title>Hello</title>
), puis en javascript:La méthode évidemment correcte
Le plus simple est d’utiliser la méthode fournie par le Document Object Model (DOM)
La première méthode est généralement ce que vous feriez pour modifier les balises trouvées dans le corps du document. L'utilisation de cette méthode pour modifier des balises de métadonnées comme celles trouvées dans la tête (comme
title
) est au mieux une pratique discutable, n'est pas idiomatique, pas un très bon style pour commencer, et pourrait même ne pas être portable. Une chose dont vous pouvez être sûr, c'est que cela ennuiera les autres développeurs s'ils voienttitle.innerHTML = ...
dans le code qu'ils gèrent.Ce que vous voulez utiliser, c'est cette dernière méthode. Cette propriété est fournie dans la spécification DOM spécifiquement dans le but, comme son nom l'indique, de changer le titre.
Notez également que si vous travaillez avec XUL, vous voudrez peut-être vérifier que le document a été chargé avant d'essayer de définir ou d'obtenir le titre, sinon vous invoquez
undefined behavior
(ici des dragons), ce qui est un concept effrayant à part entière. Cela peut ou non se produire via JavaScript, car les documents sur le DOM ne concernent pas nécessairement JavaScript. Mais XUL est une bête entière, donc je m'égare.En parlant de
.innerHTML
Un bon conseil à garder à l'esprit serait que l'utilisation
.innerHTML
est généralement bâclée. UtilisezappendChild
plutôt.Bien que deux cas où je trouve encore
.innerHTML
utile incluent l'insertion de texte brut dans un petit élément ...... et vider un conteneur ...
la source
undefined behavior
.document.querySelector.apply
, sérieusement?L'utilisation du document.title est la façon dont vous le feriez en JavaScript, mais comment cela est-il censé aider au référencement? Les bots n'exécutent généralement pas de code javascript lorsqu'ils traversent les pages.
la source
Les robots d'exploration modernes sont capables d'analyser le contenu généré dynamiquement dans le DOM, donc l'utilisation
document.title = ...
est parfaitement bien.la source
Vous devrez renvoyer la page avec un nouveau titre afin que les robots d'exploration remarquent le changement. Le faire via javascript ne bénéficiera qu'à un lecteur humain, les robots ne vont pas exécuter ce code.
la source
pour ceux qui en recherchent la version npm, il existe une bibliothèque complète pour cela:
la source
Peut-être que vous pouvez charger sur votre titre tous les titres des onglets dans une chaîne, puis une fois que vous chargez l'un des onglets, changez le titre via javascript
ex: définissez d'abord votre titre sur
une fois que vous avez chargé l'un des onglets, exécutez:
la source
Une façon qui vient à l'esprit qui peut aider avec le référencement et conserver vos pages à onglets telles qu'elles seraient serait d'utiliser des ancres nommées qui correspondent à chaque onglet, comme dans:
http://www.example.com/mypage#tab1, http://www.example.com/mypage#tab2, etc.
Vous auriez besoin d'un traitement côté serveur pour analyser l'URL et définir le titre de page initial lorsque le navigateur rend la page. Je voudrais également aller de l'avant et faire de cet onglet "actif". Une fois que la page est chargée et qu'un utilisateur réel change d'onglet, vous utiliserez javascript pour changer
document.title
comme d'autres utilisateurs l'ont déclaré.la source
Vous pouvez utiliser JavaScript. Certains bots, dont Google, exécuteront le JavaScript au profit du référencement (en affichant le titre correct dans le SERP).
Cependant, cela est plus complexe car vous affichez et masquez des onglets sans actualiser la page ni modifier l'URL. Peut-être que l'ajout d'une ancre aidera comme indiqué par d'autres. Je devrai peut-être retirer ma réponse.
Articles montrant des résultats positifs: 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
Ne supposez pas toujours qu'un bot n'exécutera pas JavaScript. http://searchengineland.com/tested-googlebot-crawls-javascript-heres-learned-220157 Google et les autres moteurs de recherche savent que les meilleurs résultats à indexer sont les résultats que l'utilisateur final verra dans son navigateur, y compris JavaScript.
la source
Utilisez
document.title
. Il sera utile pour la plupart des choses, mais il détruira le référencement de votre site Web.Exemple:
la source
Étant donné que les moteurs de recherche ignorent la plupart des javascript, vous devrez le faire pour que les moteurs de recherche puissent explorer en utilisant les onglets sans utiliser Ajax. Faites de chaque onglet un lien avec un href qui charge la page entière avec cet onglet sélectionné. Ensuite, la page peut avoir ce titre dans la balise.
Le gestionnaire d'événements onclick peut toujours charger les pages via ajax pour les téléspectateurs humains.
Pour voir les pages comme la plupart des moteurs de recherche les voient, désactivez Javascript dans votre navigateur et essayez de le faire de sorte que cliquer sur les onglets charge la page avec cet onglet sélectionné et le titre correct.
Si vous chargez via ajax et que vous souhaitez modifier dynamiquement le titre de la page avec juste Javascript, alors faites:
Cependant, les moteurs de recherche ne verront pas cette modification effectuée en javascript.
la source
Mais pour obtenir les avantages SEO
Vous devez effectuer un rechargement de page lorsque la page change afin que le moteur de recherche voit les différents titres, etc.
Assurez-vous donc que le rechargement de la page fonctionne d'abord, puis ajoutez les modifications de document.title
la source
Je veux juste ajouter quelque chose ici: changer le titre via JavaScript est en fait utile si vous mettez à jour une base de données via AJAX, donc le titre change sans que vous ayez à rafraîchir la page. Le titre change en fait via votre langage de script côté serveur, mais le faire changer via JavaScript n'est qu'une fonctionnalité et une interface utilisateur qui rendent l'expérience utilisateur plus agréable et fluide.
Maintenant, si vous changez le titre via JavaScript juste pour l'enfer, alors vous ne devriez pas le faire.
la source
Google a mentionné que tous les fichiers js étaient restitués mais en réalité, j'ai perdu mon titre et une autre balise META qui avait été fournie par Reactjs sur ce site Web et j'ai en fait perdu ma position sur Google! J'ai beaucoup cherché mais il semble que toutes les pages doivent avoir été pré-rendues ou utiliser SSR (Server Side Rendering) pour avoir leur protocole SEO-friendly!
Il se développe à Reactjs, AngularJS, etc.
Pour bref, chaque page a voir la source de la page sur le navigateur est indexé par tous les robots, si ce n'est pas probablement l' indice Google ne peut que l'indexation des autres!
la source
Le moyen le plus simple consiste à supprimer la
<title>
balise de index.html et à incluredans chaque page du Web. Les araignées trouveront cela et seront affichées dans les résultats de recherche :)
la source