Optimisation Sémantique via YourtextGuru : un bookmarklet utile
Si vous utilisez YourtextGuru pour l’optimisation de vos contenus SEO ou la construction des noeuds de votre cocon sémantique, pouvoir compter rapidement les top termes présents dans le texte testé peut s’avérer utile. Pour gagner du temps sur cette partie, nous vous proposons un Bookmarklet à activer lorsque vous testez un contenu et affichez sa courbe d’optimisation.
Ce bookmarklet vous permet, en un clic, d’afficher un tableau contenant :
- le listing des top termes à utiliser
- le nombre de fois ou ils sont présents dans le texte soumis
Ensuite, vous pouvez ajouter de nouvelles occurences de ces mots clés (que vous séparez par « == » du reste du texte) et le bookmarklet vous donnera en plus le nombre d’ajouts réalisés, et le nombre d’occurences au total.
Alors bien sûr l’optimisation sémantique ne repose pas (loin de là) uniquement sur un nombre d’occurences, mais ces indications peuvent se révéler utiles pour par exemple calibrer des consignes que vous transmettez ensuite à vos équipes en charge de la rédaction des contenus.
Code du bookmarklet YourTextGuru
javascript:(function(){var newScriptCode='\nfunction occurrences() {\nvar row = document.getElementsByClassName(\'row\')[4].getElementsByTagName(\'div\')[0];\nvar mots = document.getElementsByClassName(\'highcharts-axis-labels\')[0].getElementsByTagName(\'text\');\nvar rematch = document.getElementById(\'contenu\').value.split("==", 2);\n\nvar newDiv = document.getElementById(\'zedata\');\nif (newDiv) {\nnewDiv.innerHTML = occus();\n}\nelse {\nrow.className = "col-lg-8";\nnewDiv = document.createElement("div");\nnewDiv.className = "col-lg-4";\nnewDiv.innerHTML = \'<div class="ibox float-e-margins"><div class="ibox-title"><h5><strong>Occurrences</strong> des mots clés à inclure</h5></div><div class="ibox-content"><p>Classés par importance <button class="btn btn-primary" style="float:right;" onclick="ra=document.createRange();ra.selectNode(document.querySelector(\\\'#zedata\\\')); s=window.getSelection();s.removeAllRanges();s.addRange(ra);document.execCommand(\\\'copy\\\');s.removeAllRanges();">Copier</button></p><table class="table table-striped" id="zedata" style="text-align:center;">\' + occus() + \'</table></div></div>\';\nrow.insertAdjacentElement(\'afterend\', newDiv);\n}\n\nfunction occus() {\nvar bmot, tmot, re, res, res1, res2;\n\nif (rematch.length<2) {\nres = \'<thead><tr><th style="text-align:center;">Mot clé</th><th style="text-align:center;">Occurrences</th></tr></thead><tbody id="dataBegin">\';\n\nfor (bmot of mots) {\ntmot = bmot.getElementsByTagName("tspan")[0].innerHTML;\nre = new RegExp("(?<=^|[^a-z0-9àâäéêèëîïôöûüùç])" + tmot + "(?=[^a-z0-9àâäéêèëîïôöûüùç]|$)", "ig");\nres = res + \'<tr><td style="padding:2px;max-width:9em;word-wrap:break-word;text-align:left;">\' + tmot + \'</td><td style="padding:2px;">\' + ((rematch[0] || "").match(re) || []).length + \'</td></tr>\';\n}\n}\nelse {\nres = \'<thead><tr><th style="text-align:center;">Mot clé</th><th style="text-align:center;">Occurrences</th><th style="text-align:center;">Ajouts</th><th style="text-align:center;">Total</th></tr></thead><tbody id="dataBegin">\';\n\nfor (bmot of mots) {\ntmot = bmot.getElementsByTagName("tspan")[0].innerHTML;\nre = new RegExp("(?<=^|[^a-z0-9àâäéêèëîïôöûüùç])" + tmot + "(?=[^a-z0-9àâäéêèëîïôöûüùç]|$)", "ig");\nres1 = ((rematch[0] || "").match(re) || []).length;\nres2 = ((rematch[1] || "").match(re) || []).length;\nres3 = res1 + res2;\nres = res + \'<tr><td style="padding:2px;max-width:9em;word-wrap:break-word;text-align:left;">\' + tmot + \'</td><td style="padding:2px;">\' + res2 + \'</td><td style="padding:2px;">\' + res1 + \'</td><td style="padding:2px;">\' + res3 + \'</td></tr>\';\n}\n}\n\nres = res + \'</tbody>\';\nreturn res;\n}\n}\n',newScript=document.createElement("script"),inlineScript=document.createTextNode(newScriptCode); newScript.appendChild(inlineScript),document.getElementsByTagName("body")[0].appendChild(newScript),document.getElementById("contenu").setAttribute("oninput","occurrences();"),occurrences();})();