web-dev-qa-db-fra.com

Pour le référencement, le contenu contenant des mots-clés peut-il être écrit dans la page à l'aide de JavaScript et rester bien classé?

Nous avons une liste de résumés de produits qui apparaissent dans plusieurs sections différentes de notre site Web. Actuellement, ces produits sont rendus au format HTML et se retrouvent dans des caches différents (caches de page, caches de passerelle, caches de navigateur) pour chaque page de liste de produits (et nous en avons plus de 20).

Si nous ajoutons ou modifions un produit, nous devons ensuite invalider ces caches et il semble extrêmement inefficace que tous ces caches du site doivent ensuite être régénérés.

Par conséquent, j'aimerais plutôt servir toutes les informations de résumé de produit à partir d'une seule URL, puis l'inclure à l'aide de jQuery sur chacune des pages de liste de produits spécifiques (en utilisant la technique décrite ici: https://stackoverflow.com/ questions/8988855/include-another-html-file-in-a-html-file # 900336 ). Ainsi, lorsque les informations sur le produit sont modifiées, seuls les caches associés à cette URL doivent être régénérés. Les caches de page pour chacune des pages de liste de produits spécifiques pourraient rester valides.

Ma question est la suivante: est-ce une idée terrible du point de vue du référencement?

En supposant pour le moment que jQuery ne soit pas exécuté par les moteurs de recherche, alors tout ce qu'ils verraient pour chacune des pages de liste de produits serait l'en-tête et le paragraphe d'introduction. Cela permettrait néanmoins à Google de renvoyer la page pour des recherches telles que "Où puis-je acheter des produits xyz?" où nous avons une liste de recherche de produits qui a un paragraphe d'introduction semblable à "ici, vous pouvez trouver tous les produits xyz que nous avons à la vente". Mais, faut-il que Google voit ensuite les résultats apparaître dans le code HTML lui-même pour bénéficier d'un avantage SEO particulier?

Mon intention est que Google trouve toutes les pages de description du produit au moins via sitemap.xml. Mais doit-il vraiment voir les liens vers ceux-ci dans les pages de liste de produits appropriées, en HTML pré-rendu?

(Je me rends bien compte que l'implémentation que je suggère rendrait la page inutile pour les personnes qui n'exécutent pas JavaScript).

2
Pryo

Nous avions quelque chose de très similaire avec des produits dynamiques. Nous avions initialement beaucoup de produits qui ont été essentiellement filtrés dans le magasin en utilisant js. Donc, essentiellement, nous avions peu ou pas de contenu. Lorsque la page a chargé l'information alors chargée dans.

Ce que nous avions pu être considéré comme un fichier "basé sur un modèle" dupliqué sur le site. Malheureusement, le contenu n'a pas été lu du tout. Nous sommes passés de la 1ère page à bien en dessous de la 10ème page en l'espace d'un mois.

Nous avons également inclus toutes les informations dans le plan du site, mais je n'aurais pas pensé que Google aurait pris ces informations dans le plan du site, car les internautes aiment masquer leurs sites.

Ce que vous faites essentiellement selon ces documents: http://api.jquery.com/load/ est AJAX. Ce que Google ne lit pas (actuellement).

Une des solutions consiste à fournir des instantanés Google HTML de votre site.

  1. Méthode héritée: création de contenu statique pour chaque état dynamique Les webmasters ont utilisé des techniques telles que HIJAX pour diffuser du contenu statique dans un état dynamique. Si vous avez déjà ce contenu ou si le contenu de votre application ne change pas fréquemment, le renvoi de contenu statique est toujours une option valide. Toutefois, pour que AJAX URL apparaisse dans les résultats de la recherche plutôt que sur des URL HTML statiques, les principales modifications nécessaires consistent à adopter le #! AJAX structure d'URL et répond correctement aux demandes _escaped_fragment_.

  2. Une grande partie de votre contenu est créée par une technologie côté serveur telle que PHP ou ASP.NET Il est possible que votre application utilise AJAX pour une interactivité améliorée, mais une grande partie du contenu est en fait produit avec une technologie côté serveur telle que PHP ou ASP.NET. Par exemple, considérons l’application d’informations fictives sur les films:

Voici le lien vers le document https://developers.google.com/webmasters/ajax-crawling/docs/html-snapshot

Vous devrez générer des fragments du code HTML et utiliser leur méthode de fragments pour récupérer les données:

// load the html page
  $remote = file_get_contents('index-movies.html');
  $doc = new DomDocument();
  $file = $doc->loadHTML($remote);

  // get the _escaped_fragment_ parameter
  $escapedfragment = $_GET['_escaped_fragment_'];
  // NOTE: VALIDATE PARAMETERS (as always, to avoid security risks)
  $params = getParams($unescapedfragment);

  // you can use the same php script that your JavaScript calls
  $dataToAdd = include('getdata.php');

  // now add it to the right place in the DOM
  $docToAdd = new DomDocument();
  $docToAdd->loadHTML($dataToAdd['summary']);
  $newNode = $doc->importNode($docToAdd->documentElement, true);
  $doc->getElementById('load')->appendChild($newNode);

  // finally, save as HTML
  echo $doc->saveHTML();

Il existe quelques autres astuces concernant AJAX et/ou js que vous devriez pouvoir trouver ici: https://developers.google.com/webmasters/ajax-crawling/

3
Liam Sorsby