Laissez-moi écrire une pseudocode pour la vérification actuelle affichée dans la Search Console. Je pense que cela aidera beaucoup sur ces fils de discussion. Je pourrais vous envoyer le ShEx ou le SHACL mais ceux-ci sont beaucoup moins lisibles par l’homme.
if not (IsDeletedContent() OR IsExternalContent())
then if not ("text" OR "articleBody" OR "sharedContent" OR "image" or "video")
then report(OneOfThreeRequired("text", "image", "video"))
if not ("author")
then Report(Required("author"))
if not("datePublished")
then Report(Required("datePublished")
L’idée est que si le DiscussionForumPosting/OP a son contenu sur la page actuelle, il devrait y avoir un champ de contenu quelconque.
Si le DiscussionForumPosting fait référence à du contenu sur une page différente (comme sur la page d’origine d’un contenu multi-pages), il peut simplement avoir un stub qui contient n’importe quoi (comme le titre du sujet de l’OP) puis référence l’URL de la première page. C’est la vérification IsExternalContent() qui vérifie simplement si url != page URL.
Le deuxième exemple dans nos docs était censé modéliser exactement ce cas (la 14ème page fait référence à un stub de message de la première page).
author et date sont actuellement requis dans tous les cas dans nos règles de validation. C’est surtout pour éviter un saut supplémentaire pour trouver ces données. Vous pourriez au moins voir à quel point connaître la date de l’OP pourrait être utile pour comprendre à quel point le commentaire est obsolète. Pouvez-vous simplement y insérer des méta-éléments avec ces données ? Je ne me souciais pas autant de ces champs en ce qui concerne le gonflement de la page avec des données redondantes.