Jump to content
kerlin

Google search avertissements pour AggregateRating et review

Recommended Posts

Bonjour,

PS 1.6.1.7.

Le test de Google Search donnait une série d'avertissements de champs non remplis : url, priceValidUntil, sku, availability, mpn (ou isbn), brand, aggregateRating et review.

Sauf pour les 2 derniers, j'ai réussi à modifier product.tpl et product-list.tpl pour ne plus avoir les avertissements (le client ne mettant pas de référence ni d'isbn à ses produits, j'ai feinté avec l'id du produit. Et pour priceValidUntil je me suis servie d'un tuto de Webbax et ai mis content="{'Y'|date+1}-12-31").

Par contre pour les 2 derniers, vu que c'est le module Avis Vérifié qui est installé, il n'y a pas d'avis clients via le module de base de Prestashop. Ce ne sont que des avertissements et donc en principe cela ne devrait pas avoir d'incidence. Mais pour que les résultats soient "propres" comment peut-on faire ? Webbax donne des valeurs à mettre, mais ce ne sont pas des vrais avis, cela ne posera-t-il pas plus de problèmes que de laisser les avertissements ?

Merci d'avance

Share this post


Link to post
Share on other sites

Bonjour, je viens de lire votre post, je rencontre le même souci avec offers review or aggregarating, comment avez vous pu modifier vos fichiers pour ne plus avoir ces warnings ? 

Sinon le développeur de mon thème vient juste de m'annoncer que le fichier robots.txt sur mon site est mal configuré et qu'il ne correspond pas au thème que j'ai choisi, bizarre non ?

voici son message en anglais :   

1) Coverage: 233 errors related to the following problem 'Error Server 5xx'.

2) AMP : 252 pages ne peuvent pas être trouvées car problème d'indexation

Ainsi que de nombreuses erreurs :

3) Il faut indiquer "offers", "review", ou "aggregateRating" : 26 éléments

4) Produits : 10 problèmes (warnings)

Robot.txt file blocks proper functionality. Configuration of this file is not theme-related

Je suis à peu près sûr que mon sitemap est aussi mal configuré car Google ne reconnaît pas mes url lol

Mon url : https://www.asiahomefurniture.com/en/ (url canonique)

.La version .est 1.7.5.0

A vrai dire je ne sais pas quoi faire

Si seulement je pouvais avoir quelques conseils pour régler tous ces petits problèmes qui intoxiquent la visibilité de mon site ce serait vraiment super

Yves

Share this post


Link to post
Share on other sites

Bonjour,

pour les warning, j'ai quasiment tout résolu sauf review. Mais c'est sur un PS 1.6.

Sur product-list.tpl, j'ai supprimé tous les itemxxx (itemprop, itemtype, itemscope) et je n'ai plus de warning pour brand, sku, url sur les pages des catégories ni sur la home. Pour 1.7, vu l'heure, je n'ai plusles idées claires, mais il me semble qu'il utilise le même fichier que la paeg producuit (catalog/_partials/miniatures/product.tpl) donc c'est moins évident.

 

Dans ce fichier j'ai rajouté des itemprop. Si votre thème ne les utilise pas, il faut se baser sur le fichier du thème Classic. Sur le thème sur lequel je travaille, il n'y avait rien pour afficher les sku, brand. J'ai ajouté des meta itemprop (pour ne pas les afficher mais régler les warnings). Il faudrait voir votre site pour essayer de vous aider (pas le courage maintenant). Faut que je retrouve aussi toutes les pages que j'ai trouvées pour m'aider.

 

Pour aggregateRating et Review, si le module de commentaires est activé, ce ne sont plus que des avertissements qui disparaissent sur les pages produits où il y a des avis clients.

Pour le robot.txt, c'est curieux. 

Pour le coverage, vous avez beaucoup d'erreurs serveurs ?

Pour l'indexation, relancez une indexation des produits, recréez un sitemap avec le module google sitemap et envoyez le à google via votre console google.

 

Là, comme ça, c'est tout ce que je peux dire.

Share this post


Link to post
Share on other sites

Pour en revenir à mon post initial, il me reste plus donc qu'à régler l'avertissement concernant review.

Le module installé est Société des Avis garantis. Quand un avis est laissé sur un produit, plus d'avertissement pour aggregateRating mais toujours pour review.

 

Je me suis plongée dans la doc des données structurées, ai fait plein d'essaie de modif du code, mais sans régler le souci, juste en créer d'autres. J'ai trouvé le tpl du module concerné et ai essayé de m'inspirer de celui de productcomments. Mais celui-ci n'utilise pas aggregateRating mais reviewRating. J'ai donc essayé ça, mais l'outil de test de google veut absolument un aggregaterating. Et si je rajoute un itemprop review comme dans ce fichier, il me dit qu'il faut utiliser reviewrating.
Donc je tourne en rond.

 

Comme dans productcomments, il n'y a pas d'appel au schéma Product, je l'ai supprimé pour voir si du coup il n'exigeait plus review. Mais si.

 

Voici le code du module Avis garantis

{*

* NOTICE OF LICENSE

*

* This file is licenced under the Software License Agreement.

* With the purchase or the installation of the software in your application

* you accept the licence agreement.

*

* You must not modify, adapt or create derivative works of this source code

*

*  @author    Société des Avis Garantis <contact@societe-des-avis-garantis.fr>

*  @copyright 2013-2017 Société des Avis Garantis

*  @license   LICENSE.txt

*

*}



<div id="ag-s">

{if $showStructured}

<div itemscope itemtype="http://schema.org/Product">

	<span style="display:none;" itemprop="name">{$sagProduct->name|escape:'htmlall':'UTF-8'}</span>

{/if}

    <div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">

        <div id="agWidgetMain" class="agWidget rad" >

            <div class="topBar">{l s='Reviews about this product' mod='steavisgarantis'}</div>

            <div class="inner bgGrey1">

            <div class="logoCont"><img src="{$modules_dir|escape:'htmlall':'UTF-8'}steavisgarantis/views/img/{$sagLogo|escape:'htmlall':'UTF-8'}" width="150px" height="35px" class="logoAg">

            <a href="{$certificateUrl|escape:'htmlall':'UTF-8'}" class="agBt certificateBtn" target="_blank">{l s='Show attestation' mod='steavisgarantis'}</a>

            </div><div class="statCont">

                <div class="steavisgarantisStats">

                <div class="item"><span class="stat"><div class="note bar1" style="height:{$ratingValues['percent1']|escape:'htmlall':'UTF-8'}%"><span class="value">{$ratingValues['nb1']}</span></div></span><span class="name">1&starf;</span></div>

                <div class="item"><span class="stat"><div class="note bar2" style="height:{$ratingValues['percent2']|escape:'htmlall':'UTF-8'}%"><span class="value">{$ratingValues['nb2']}</span></div></span><span class="name">2&starf;</span></div>

                <div class="item"><span class="stat"><div class="note bar3" style="height:{$ratingValues['percent3']|escape:'htmlall':'UTF-8'}%"><span class="value">{$ratingValues['nb3']}</span></div></span><span class="name">3&starf;</span></div>

                <div class="item"><span class="stat"><div class="note bar4" style="height:{$ratingValues['percent4']|escape:'htmlall':'UTF-8'}%"><span class="value">{$ratingValues['nb4']}</span></div></span><span class="name">4&starf;</span></div>

                <div class="item"><span class="stat"><div class="note bar5" style="height:{$ratingValues['percent5']|escape:'htmlall':'UTF-8'}%"><span class="value">{$ratingValues['nb5']}</span></div></span><span class="name">5&starf;</span></div>

                </div>

            </div><div class="reviewCont"> <div class="reviewGlobal">

                <div class="largeNote"><big>{2 * $reviewsAverage|escape:'htmlall':'UTF-8'}</big>/10<p><br>{l s='Based on' mod='steavisgarantis'} {$nbOfReviews|escape:'htmlall':'UTF-8'} {if $nbOfReviews==1}{l s='review' mod='steavisgarantis'}{else}{l s='reviews' mod='steavisgarantis'}{/if}</p></div>

                </div></div>

                <meta itemprop="ratingValue" content="{$reviewsAverage|escape:'htmlall':'UTF-8'}" />

                <meta itemprop="reviewCount" content="{$nbOfReviews|escape:'htmlall':'UTF-8'}" />

                <meta itemprop="bestRating" content="5" />

            </div>

            <ul class="reviewList">

            {$i=0}

            {foreach from=$reviews item=singleReview}	



            <li class="bgGrey{$i % 2|escape:'htmlall':'UTF-8'}">

            <div class="author"><img width="24px" height="24px" src="{$modules_dir|escape:'htmlall':'UTF-8'}steavisgarantis/views/img/ico_user.png" /><span>{$singleReview['ag_reviewer_name']|escape:'htmlall':'UTF-8'}</span>

            <br><span class="time"><span class="published">{l s='Published' mod='steavisgarantis'} {$singleReview['date_time']|escape:'htmlall':'UTF-8'}</span>{if $singleReview['order_date']} ({l s='Order date: ' mod='steavisgarantis'}{$singleReview['order_date']|escape:'htmlall':'UTF-8'}){/if}</span></div>

            <div class="reviewTxt">

             <div class="steavisgarantisStar"><span></span><span class="note" style="width:{20 * $singleReview['rate']|escape:'htmlall':'UTF-8'}%"></span></div>

             <span class="metaHide">{$singleReview['rate']|escape:'htmlall':'UTF-8'}</span>

            <p class="">{$singleReview['review']|escape:'htmlall':'UTF-8'}</p>

            {if $singleReview['answer_text']}

            <div class="reponse"><span><img src="{$modules_dir|escape:'htmlall':'UTF-8'}steavisgarantis/views/img/ico_pen.png" height="12">

            {l s='Merchant\'s answer' mod='steavisgarantis'}</span>

            <p>{$singleReview['answer_text']|escape:'htmlall':'UTF-8'}</p></div>

            {/if}

            </div>

            </li>

            {$i = $i + 1}

            {/foreach}

            </ul>



            <img id="chargement" src="{$modules_dir|escape:'htmlall':'UTF-8'}steavisgarantis/views/img/page.gif" style="display:none">

            {if $nbOfReviews > 10}

                <div class="inner2">

                <a class="agBt rad4 agBtBig" href="#more-reviews" id="more-reviews"  onclick="return showMoreReviews({$nbOfReviews|escape:'html':'UTF-8'}, 2, '{$modules_dir|escape:'html':'UTF-8'}','{$id_lang|escape:'html':'UTF-8'}');" rel="2">{l s='Show more reviews' mod='steavisgarantis'}</a>

                </div>

            {/if}

        </div>

    </div>

{if $showStructured}

</div>

{/if}

</div>

<style>{literal}

.bar1 {animation-duration: 1s;  animation-name: newHeight1;  animation-iteration-count: 1;} @keyframes newHeight1 { from {height: 0%} to {height: {/literal}{$ratingValues['percent1']|escape:'htmlall':'UTF-8'}{literal}%} }

.bar2 {animation-duration: 1s;  animation-name: newHeight2;  animation-iteration-count: 1;} @keyframes newHeight2 { from {height: 0%} to {height: {/literal}{$ratingValues['percent2']|escape:'htmlall':'UTF-8'}{literal}%} }

.bar3 {animation-duration: 1s;  animation-name: newHeight3;  animation-iteration-count: 1;} @keyframes newHeight3 { from {height: 0%} to {height: {/literal}{$ratingValues['percent3']|escape:'htmlall':'UTF-8'}{literal}%} }

.bar4 {animation-duration: 1s;  animation-name: newHeight4;  animation-iteration-count: 1;} @keyframes newHeight4 { from {height: 0%} to {height: {/literal}{$ratingValues['percent4']|escape:'htmlall':'UTF-8'}{literal}%} }

.bar5 {animation-duration: 1s;  animation-name: newHeight5;  animation-iteration-count: 1;} @keyframes newHeight5 { from {height: 0%} to {height: {/literal}{$ratingValues['percent5']|escape:'htmlall':'UTF-8'}{literal}%} }

{/literal}

</style>

<script type="text/javascript">

    var reviewTabStr="{$reviewTabStr|escape:'htmlall':'UTF-8'}";

</script>

<br><br>

 

Voici un de mes nombreux tests. Avec cette config, il ne reconnaît pas reviewCount, me dit que author doit être rempli (mais affiche bien le nom à name), me dit qu'il faut remplir review, et qu'il faut aggregateRating. C'est à en devenir dingue. J'ai remis le fichier d'origine. Il ne reste donc qu'un seul avertissement (review) mais je DOIS régler l'histoire.

<div id="ag-s">

{if $showStructured}

<div itemscope itemtype="http://schema.org/Product">

	<span style="display:none;" itemprop="name">{$sagProduct->name|escape:'htmlall':'UTF-8'}</span>

{/if}

 <div itemprop="review" itemscope itemtype="https://schema.org/Review">
    <div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">

        <div id="agWidgetMain" class="agWidget rad" >

            <div class="topBar">{l s='Reviews about this product' mod='steavisgarantis'}</div>

            <div class="inner bgGrey1">

            <div class="logoCont"><img src="{$modules_dir|escape:'htmlall':'UTF-8'}steavisgarantis/views/img/{$sagLogo|escape:'htmlall':'UTF-8'}" width="150px" height="35px" class="logoAg">

            <a href="{$certificateUrl|escape:'htmlall':'UTF-8'}" class="agBt certificateBtn" target="_blank">{l s='Show attestation' mod='steavisgarantis'}</a>

            </div><div class="statCont">

                <div class="steavisgarantisStats">

                <div class="item"><span class="stat"><div class="note bar1" style="height:{$ratingValues['percent1']|escape:'htmlall':'UTF-8'}%"><span class="value">{$ratingValues['nb1']}</span></div></span><span class="name">1&starf;</span></div>

                <div class="item"><span class="stat"><div class="note bar2" style="height:{$ratingValues['percent2']|escape:'htmlall':'UTF-8'}%"><span class="value">{$ratingValues['nb2']}</span></div></span><span class="name">2&starf;</span></div>

                <div class="item"><span class="stat"><div class="note bar3" style="height:{$ratingValues['percent3']|escape:'htmlall':'UTF-8'}%"><span class="value">{$ratingValues['nb3']}</span></div></span><span class="name">3&starf;</span></div>

                <div class="item"><span class="stat"><div class="note bar4" style="height:{$ratingValues['percent4']|escape:'htmlall':'UTF-8'}%"><span class="value">{$ratingValues['nb4']}</span></div></span><span class="name">4&starf;</span></div>

                <div class="item"><span class="stat"><div class="note bar5" style="height:{$ratingValues['percent5']|escape:'htmlall':'UTF-8'}%"><span class="value">{$ratingValues['nb5']}</span></div></span><span class="name">5&starf;</span></div>

                </div>

            </div><div class="reviewCont"> <div class="reviewGlobal">

                <div class="largeNote"><big>{2 * $reviewsAverage|escape:'htmlall':'UTF-8'}</big>/10<p><br>{l s='Based on' mod='steavisgarantis'} {$nbOfReviews|escape:'htmlall':'UTF-8'} {if $nbOfReviews==1}{l s='review' mod='steavisgarantis'}{else}{l s='reviews' mod='steavisgarantis'}{/if}</p></div>

                </div></div>

                <meta itemprop="ratingValue" content="{$reviewsAverage|escape:'htmlall':'UTF-8'}" />

                <meta itemprop="reviewCount" content="{$nbOfReviews|escape:'htmlall':'UTF-8'}" />

                <meta itemprop="bestRating" content="5" />

            </div>

            <ul class="reviewList">

            {$i=0}

            {foreach from=$reviews item=singleReview}	



            <li class="bgGrey{$i % 2|escape:'htmlall':'UTF-8'}">

            <div class="author"><img width="24px" height="24px" src="{$modules_dir|escape:'htmlall':'UTF-8'}steavisgarantis/views/img/ico_user.png" /><span itemprop="author" itemscope itemtype="https://schema.org/Person">{$singleReview['ag_reviewer_name']|escape:'htmlall':'UTF-8'}</span>

            <br><span class="time"><span class="published">{l s='Published' mod='steavisgarantis'} {$singleReview['date_time']|escape:'htmlall':'UTF-8'}</span>{if $singleReview['order_date']} ({l s='Order date: ' mod='steavisgarantis'}{$singleReview['order_date']|escape:'htmlall':'UTF-8'}){/if}</span></div>

            <div class="reviewTxt">

             <div class="steavisgarantisStar"><span></span><span class="note" style="width:{20 * $singleReview['rate']|escape:'htmlall':'UTF-8'}%"></span></div>

             <span class="metaHide">{$singleReview['rate']|escape:'htmlall':'UTF-8'}</span>

            <p class="">{$singleReview['review']|escape:'htmlall':'UTF-8'}</p>

            {if $singleReview['answer_text']}

            <div class="reponse"><span><img src="{$modules_dir|escape:'htmlall':'UTF-8'}steavisgarantis/views/img/ico_pen.png" height="12">

            {l s='Merchant\'s answer' mod='steavisgarantis'}</span>

            <p>{$singleReview['answer_text']|escape:'htmlall':'UTF-8'}</p></div>

            {/if}

            </div>

            </li>

            {$i = $i + 1}

            {/foreach}

            </ul>



            <img id="chargement" src="{$modules_dir|escape:'htmlall':'UTF-8'}steavisgarantis/views/img/page.gif" style="display:none">

            {if $nbOfReviews > 10}

                <div class="inner2">

                <a class="agBt rad4 agBtBig" href="#more-reviews" id="more-reviews"  onclick="return showMoreReviews({$nbOfReviews|escape:'html':'UTF-8'}, 2, '{$modules_dir|escape:'html':'UTF-8'}','{$id_lang|escape:'html':'UTF-8'}');" rel="2">{l s='Show more reviews' mod='steavisgarantis'}</a>

                </div>

            {/if}

        </div>

    </div>

		</div>

 

Google, c'est vraiment une m..e comme dit Doekia, mais si quelqu'un a une solution ? (j'ai envoyé hier un message au dev du module mais pas eu de réponse)

 

Merci d'avance

Share this post


Link to post
Share on other sites

Bonjour, je viens de vous lire, je me rends compte que je ne suis pas le seul à avoir ces soucis

De plus je fais des tests en utilisant le code de chacun mais ça empire donc je remets à chaque fois le code original, exaspérant !

Je me permets de partager avec vous les copies d'écran que j'ai sur ma console en attachement.

Qu'en pensez vous ? 

Bien à vous,

Yves397615958_ErreurCouverture-erreurServeur5xx-122pages.thumb.png.3878960a66849c2b880f178c181dd0ce.png

 

 

 

Erreur Produits - Avertissements - Champs manquants.png

Erreur Produits - 17 - Il faur indiquer offers review ou aggregaRating.png

Share this post


Link to post
Share on other sites

Oops, je viens de consulter à nouveau ma console et le nombre d'erreurs couverture a augmenté, c'est passé de 122 à 170, surement du à mes tests, ca me frustre 

Et je découvre 396 erreurs pour AMP (erreur serveur 5xx) ! 

Je partage mon fichier robots.txt que je viens de mettre à jour via mon back office, je suis incapable de comprendre ce que ça signifie, dites moi ce que je peux faire pour arreter ces erreurs si toutefois elles proviennent de ce fichier.

Cordialement,

Yves

robots.txt

Share this post


Link to post
Share on other sites

je le copie ici :

 

# robots.txt automatically generated by PrestaShop e-commerce open-source solution
# http://www.prestashop.com - http://www.prestashop.com/forums
# This file is to prevent the crawling and indexing of certain parts
# of your site by web crawlers and spiders run by sites like Yahoo!
# and Google. By telling these "robots" where not to go on your site,
# you save bandwidth and server resources.
# For more information about the robots.txt standard, see:
# http://www.robotstxt.org/robotstxt.html
User-agent: *
# Allow Directives
Allow: */modules/*.css
Allow: */modules/*.js
Allow: */modules/*.png
Allow: */modules/*.jpg
Allow: /js/jquery/*
# Private pages
Disallow: /*?order=
Disallow: /*?tag=
Disallow: /*?id_currency=
Disallow: /*?search_query=
Disallow: /*?back=
Disallow: /*?n=
Disallow: /*&order=
Disallow: /*&tag=
Disallow: /*&id_currency=
Disallow: /*&search_query=
Disallow: /*&back=
Disallow: /*&n=
Disallow: /*controller=addresses
Disallow: /*controller=address
Disallow: /*controller=authentication
Disallow: /*controller=cart
Disallow: /*controller=discount
Disallow: /*controller=footer
Disallow: /*controller=get-file
Disallow: /*controller=header
Disallow: /*controller=history
Disallow: /*controller=identity
Disallow: /*controller=images.inc
Disallow: /*controller=init
Disallow: /*controller=my-account
Disallow: /*controller=order
Disallow: /*controller=order-slip
Disallow: /*controller=order-detail
Disallow: /*controller=order-follow
Disallow: /*controller=order-return
Disallow: /*controller=order-confirmation
Disallow: /*controller=pagination
Disallow: /*controller=password
Disallow: /*controller=pdf-invoice
Disallow: /*controller=pdf-order-return
Disallow: /*controller=pdf-order-slip
Disallow: /*controller=product-sort
Disallow: /*controller=search
Disallow: /*controller=statistics
Disallow: /*controller=attachment
Disallow: /*controller=guest-tracking
# Directories
Disallow: /app/
Disallow: /cache/
Disallow: /classes/
Disallow: /config/
Disallow: /controllers/
Disallow: /download/
Disallow: /js/
Disallow: /localization/
Disallow: /log/
Disallow: /mails/
Disallow: /modules/
Disallow: /override/
Disallow: /pdf/
Disallow: /src/
Disallow: /tools/
Disallow: /translations/
Disallow: /upload/
Disallow: /var/
Disallow: /vendor/
Disallow: /webservice/
# Files
Disallow: /*en/password-recovery
Disallow: /*en/address
Disallow: /*en/addresses
Disallow: /*en/login
Disallow: /*en/cart
Disallow: /*en/discount
Disallow: /*en/order-history
Disallow: /*en/identity
Disallow: /*en/my-account
Disallow: /*en/order-follow
Disallow: /*en/credit-slip
Disallow: /*en/order
Disallow: /*en/search
Disallow: /*en/guest-tracking
Disallow: /*en/order-confirmation
Disallow: /*fr/recuperation-mot-de-passe
Disallow: /*fr/adresse
Disallow: /*fr/adresses
Disallow: /*fr/connexion
Disallow: /*fr/panier
Disallow: /*fr/reduction
Disallow: /*fr/historique-commandes
Disallow: /*fr/identite
Disallow: /*fr/mon-compte
Disallow: /*fr/suivi-commande
Disallow: /*fr/avoirs
Disallow: /*fr/commande
Disallow: /*fr/recherche
Disallow: /*fr/suivi-commande-invite
Disallow: /*fr/confirmation-commande
# Sitemap
Sitemap: https://www.asiahomefurniture.com/1_index_sitemap.xml

 

 

Share this post


Link to post
Share on other sites

Rebonjour,

Suite à la lecture de mon fichier robots.txt et vù le nombre grandissant d'erreurs AMP et wishlist (bloqué par le fichier malgré son indexation), j'ai ajouté cela dans le fichier :

Allow: /*en/wishlists
Allow: /*en/jxamp/product/
Allow: /*fr/jxamp/product/
Allow: /*en/jxamp/category/
Allow: /*fr/jxamp/category/

Est- correct ou pas ?

Share this post


Link to post
Share on other sites

Bonjour, pour le robot.txt il faudrait créer un post spécifique car je ne pourrais pas vous aider et l'intitulé du mien ne correspond pas.

Pour les snippet, j'ai réussià tout régler sur le 1.6. J'attaque un 1.7 et quand j'aurai trouvé la solution, je viendrai la mettre. Car autant sur 1.6 il y a un fichier pour afficher les produits en liste, et 1 pour un seul produit, autant sur 1.7 c'est le même fichier, ça complique le bazar si on veut mettre les snippets sur la page produit et pas sur les pages catégories.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More