<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Outils SEO gratuits - Hugo Domeur</title>
	<atom:link href="https://hugodomeur.com/blog/category/outils-gratuits/feed/" rel="self" type="application/rss+xml" />
	<link>https://hugodomeur.com/blog/category/outils-gratuits/</link>
	<description></description>
	<lastBuildDate>Wed, 14 Aug 2024 14:31:20 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://hugodomeur.com/wp-content/uploads/2020/01/logo-hugo-domeur-fond-blanc-etudiant-expert-seo-150x150.png</url>
	<title>Outils SEO gratuits - Hugo Domeur</title>
	<link>https://hugodomeur.com/blog/category/outils-gratuits/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Générateur de données structurées avec notes</title>
		<link>https://hugodomeur.com/blog/generateur-donnees-structurees-notation/</link>
					<comments>https://hugodomeur.com/blog/generateur-donnees-structurees-notation/#respond</comments>
		
		<dc:creator><![CDATA[Hugo]]></dc:creator>
		<pubDate>Wed, 14 Aug 2024 14:30:21 +0000</pubDate>
				<category><![CDATA[Outils gratuits]]></category>
		<guid isPermaLink="false">https://hugodomeur.com/?p=23007</guid>

					<description><![CDATA[Est-ce qu&#8217;il vous est déjà arrivé en pleine nuit de penser à une bonne idée, si bien que vous sacrifiez votre sommeil pour la réaliser ? Eh bien c&#8217;est l&#8217;histoire de cet outil. Les données structurées en SEO sont toujours un sacré bazar si on n&#8217;arrive pas à les automatiser, et en général elles peuvent [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Est-ce qu&rsquo;il vous est déjà arrivé en pleine nuit de penser à une bonne idée, si bien que vous sacrifiez votre sommeil pour la réaliser ? Eh bien c&rsquo;est l&rsquo;histoire de cet outil.</p>
<p>Les <strong>données structurées</strong> en <strong>SEO</strong> sont toujours un sacré bazar si on n&rsquo;arrive pas à les automatiser, et en général elles peuvent donner des maux à la tête en tentant de les mettre en place. Par contre, une fois placées et prises en compte, elles permettent de <strong>se différencier sur les SERP</strong>.</p>
<p>Du coup, je vous propose aujourd&rsquo;hui un <strong>générateur entièrement gratuit de données structurées avec notation</strong> pour améliorer votre visibilité sur les résultats de recherche.</p>
<p>&nbsp;</p>
<h2>Outil gratuit : générez vos données structurées avec notation</h2>
<p>&nbsp;</p>
<p> </p>
<p></p>
<p><style>
        body {
            font-family: Arial, sans-serif;
        }
        label {
            display: block;
        }
        input, select, textarea {
            width: 100%;
            padding: 8px;
            border: 1px solid #ccc;
            border-radius: 4px;
        }
        button {
            padding: 10px 15px;
            background-color: #006080;
            color: white;
            border: none;
            border-radius: 4px;
            cursor: pointer;
        }
        button:hover {
            background-color: #004d66;
        }
        .hidden {
            display: none;
        }
        .output {
            background-color: #f4f4f4;
            padding: 10px;
            border-radius: 4px;
            white-space: pre-wrap;
            word-wrap: break-word;
        }
    </style></p>
<p><label for="data-type">Quel type de données structurées voulez-vous créer ?</label></p>
<select id="data-type" onchange="showForm()">
<option disabled="disabled" selected="selected" value="">Choisir...</option>
<option value="product">Produit</option>
<option value="localBusiness">Entreprise Locale</option>
<option value="recipe">Recette</option>
<option value="event">Événement</option>
<option value="article">Article</option>
<option value="other">Autre</option>
</select>
<div id="form-container"> </div>
<div id="json-ld-output" class="output hidden"> </div>
<p><script>
        function showForm() {
            const dataType = document.getElementById('data-type').value;
            const formContainer = document.getElementById('form-container');
            formContainer.innerHTML = ''; // Clear previous form
            document.getElementById('json-ld-output').classList.add('hidden');
            
            switch (dataType) {
                case 'product':
                    formContainer.innerHTML = `
                        <h3>Données pour un Produit</h3>
                        <label for="product-name">Nom du Produit</label>
                        <input type="text" id="product-name" value="Exemple de produit" required>
                        
                        <label for="product-image">Lien de l'image</label>
                        <input type="url" id="product-image" value="https://exemple.com/image.jpg" required>

                        <label for="product-price">Prix (€)</label>
                        <input type="number" id="product-price" value="100" required>

                        <label for="product-description">Description (facultatif)</label>
                        <textarea id="product-description">Description du produit ici.</textarea>

                        <label for="product-brand">Marque (facultatif)</label>
                        <input type="text" id="product-brand" value="Exemple de marque">

                        <label for="product-rating">Note moyenne (sur 0 à 5)</label>
                        <input type="number" id="product-rating" value="4.5" step="0.1" min="0" max="5" required>

                        <label for="product-rating-count">Nombre de notes</label>
                        <input type="number" id="product-rating-count" value="100" required>

                        <button onclick="generateJsonLd('product')">Générer JSON-LD</button>
                    `;
                    break;
                case 'localBusiness':
                    formContainer.innerHTML = `
                        <h3>Données pour une Entreprise Locale</h3>
                        <label for="business-name">Nom de l'Entreprise</label>
                        <input type="text" id="business-name" value="Exemple d'entreprise" required>
                        
                        <label for="business-address">Adresse</label>
                        <textarea id="business-address" required>123 Rue Exemple, Ville, Pays</textarea>
                        
                        <label for="business-phone">Téléphone (facultatif)</label>
                        <input type="tel" id="business-phone" value="0123456789">

                        <label for="business-email">Email (facultatif)</label>
                        <input type="email" id="business-email" value="contact@exemple.com">

                        <label for="business-hours">Heures d'ouverture</label>
                        <textarea id="business-hours" required>Lun-Ven 9:00-18:00</textarea>

                        <label for="business-rating">Note moyenne (sur 0 à 5)</label>
                        <input type="number" id="business-rating" value="4.5" step="0.1" min="0" max="5" required>

                        <label for="business-rating-count">Nombre de notes</label>
                        <input type="number" id="business-rating-count" value="100" required>

                        <button onclick="generateJsonLd('localBusiness')">Générer JSON-LD</button>
                    `;
                    break;
                case 'recipe':
                    formContainer.innerHTML = `
                        <h3>Données pour une Recette</h3>
                        <label for="recipe-name">Nom de la Recette</label>
                        <input type="text" id="recipe-name" value="Exemple de recette" required>
                        
                        <label for="recipe-ingredients">Ingrédients (séparés par des virgules)</label>
                        <textarea id="recipe-ingredients" required>Ingrédient 1, Ingrédient 2, Ingrédient 3</textarea>
                        
                        <label for="recipe-instructions">Instructions</label>
                        <textarea id="recipe-instructions" required>Étape 1: ..., Étape 2: ...</textarea>

                        <label for="recipe-cooktime">Temps de cuisson (minutes)</label>
                        <input type="number" id="recipe-cooktime" value="45" required>

                        <label for="recipe-preptime">Temps de préparation (minutes)</label>
                        <input type="number" id="recipe-preptime" value="20">

                        <label for="recipe-totaltime">Temps total (minutes)</label>
                        <input type="number" id="recipe-totaltime" value="65">

                        <label for="recipe-calories">Calories</label>
                        <input type="number" id="recipe-calories" value="500" required>

                        <label for="recipe-servings">Portions</label>
                        <input type="number" id="recipe-servings" value="4" required>

                        <label for="recipe-category">Catégorie</label>
                        <input type="text" id="recipe-category" value="Plat principal" required>

                        <label for="recipe-cuisine">Cuisine</label>
                        <input type="text" id="recipe-cuisine" value="Française">

                        <label for="recipe-keywords">Mots-clés (séparés par des virgules)</label>
                        <input type="text" id="recipe-keywords" value="poulet, facile, rapide">

                        <label for="recipe-rating">Note moyenne (sur 0 à 5)</label>
                        <input type="number" id="recipe-rating" value="4.5" step="0.1" min="0" max="5" required>

                        <label for="recipe-rating-count">Nombre de notes</label>
                        <input type="number" id="recipe-rating-count" value="100" required>

                        <button onclick="generateJsonLd('recipe')">Générer JSON-LD</button>
                    `;
                    break;
                case 'event':
                    formContainer.innerHTML = `
                        <h3>Données pour un Événement</h3>
                        <label for="event-name">Nom de l'Événement</label>
                        <input type="text" id="event-name" value="Exemple d'événement" required>
                        
                        <label for="event-location">Lieu</label>
                        <input type="text" id="event-location" value="Lieu de l'événement" required>
                        
                        <label for="event-date">Date de début</label>
                        <input type="date" id="event-date" value="${new Date().toISOString().split('T')[0]}" required>

                        <label for="event-enddate">Date de fin</label>
                        <input type="date" id="event-enddate" value="${new Date().toISOString().split('T')[0]}">

                        <label for="event-description">Description</label>
                        <textarea id="event-description" required>Description de l'événement ici.</textarea>

                        <label for="event-image">Lien de l'image (facultatif)</label>
                        <input type="url" id="event-image" value="https://exemple.com/image.jpg">

                        <label for="event-rating">Note moyenne (sur 0 à 5)</label>
                        <input type="number" id="event-rating" value="4.5" step="0.1" min="0" max="5" required>

                        <label for="event-rating-count">Nombre de notes</label>
                        <input type="number" id="event-rating-count" value="100" required>

                        <button onclick="generateJsonLd('event')">Générer JSON-LD</button>
                    `;
                    break;
                case 'article':
                    formContainer.innerHTML = `
                        <h3>Données pour un Article</h3>
                        <label for="article-title">Titre de l'Article</label>
                        <input type="text" id="article-title" value="Exemple d'article" required>
                        
                        <label for="article-pubdate">Date de publication</label>
                        <input type="date" id="article-pubdate" value="${new Date().toISOString().split('T')[0]}" required>

                        <label for="article-rating">Note moyenne (sur 0 à 5)</label>
                        <input type="number" id="article-rating" value="4.5" step="0.1" min="0" max="5" required>

                        <label for="article-rating-count">Nombre de notes</label>
                        <input type="number" id="article-rating-count" value="100" required>

                        <button onclick="generateJsonLd('article')">Générer JSON-LD</button>
                    `;
                    break;
                case 'other':
                    formContainer.innerHTML = `
                        <h3>Données pour un type de données personnalisé</h3>
                        <label for="other-type">Nom du Type de Données Structurées</label>
                        <input type="text" id="other-type" value="ExempleType" required>

                        <label for="other-rating">Note moyenne (sur 0 à 5)</label>
                        <input type="number" id="other-rating" value="4.5" step="0.1" min="0" max="5" required>

                        <label for="other-rating-count">Nombre de notes</label>
                        <input type="number" id="other-rating-count" value="100" required>

                        <button onclick="generateJsonLd('other')">Générer JSON-LD</button>
                    `;
                    break;
                default:
                    formContainer.innerHTML = '';
            }
        }

        function generateJsonLd(type) {
            let jsonLd = {};

            switch (type) {
                case 'product':
                    jsonLd = {
                        "@context": "https://schema.org/",
                        "@type": "Product",
                        "name": document.getElementById('product-name').value,
                        "image": document.getElementById('product-image').value,
                        "offers": {
                            "@type": "Offer",
                            "priceCurrency": "EUR",
                            "price": document.getElementById('product-price').value
                        },
                        "aggregateRating": {
                            "@type": "AggregateRating",
                            "ratingValue": document.getElementById('product-rating').value,
                            "ratingCount": document.getElementById('product-rating-count').value
                        },
                        ...(document.getElementById('product-description').value && {"description": document.getElementById('product-description').value}),
                        ...(document.getElementById('product-brand').value && {"brand": document.getElementById('product-brand').value})
                    };
                    break;
                case 'localBusiness':
                    jsonLd = {
                        "@context": "https://schema.org/",
                        "@type": "LocalBusiness",
                        "name": document.getElementById('business-name').value,
                        "address": document.getElementById('business-address').value,
                        "openingHours": document.getElementById('business-hours').value,
                        "aggregateRating": {
                            "@type": "AggregateRating",
                            "ratingValue": document.getElementById('business-rating').value,
                            "ratingCount": document.getElementById('business-rating-count').value
                        },
                        ...(document.getElementById('business-phone').value && {"telephone": document.getElementById('business-phone').value}),
                        ...(document.getElementById('business-email').value && {"email": document.getElementById('business-email').value})
                    };
                    break;
                case 'recipe':
                    jsonLd = {
                        "@context": "https://schema.org/",
                        "@type": "Recipe",
                        "name": document.getElementById('recipe-name').value,
                        "recipeIngredient": document.getElementById('recipe-ingredients').value.split(',').map(i => i.trim()),
                        "recipeInstructions": document.getElementById('recipe-instructions').value,
                        "cookTime": `PT${document.getElementById('recipe-cooktime').value}M`,
                        "prepTime": `PT${document.getElementById('recipe-preptime').value}M`,
                        "totalTime": `PT${document.getElementById('recipe-totaltime').value}M`,
                        "calories": document.getElementById('recipe-calories').value,
                        "recipeCategory": document.getElementById('recipe-category').value,
                        "recipeCuisine": document.getElementById('recipe-cuisine').value,
                        "keywords": document.getElementById('recipe-keywords').value,
                        "recipeYield": document.getElementById('recipe-servings').value,
                        "aggregateRating": {
                            "@type": "AggregateRating",
                            "ratingValue": document.getElementById('recipe-rating').value,
                            "ratingCount": document.getElementById('recipe-rating-count').value
                        }
                    };
                    break;
                case 'event':
                    jsonLd = {
                        "@context": "https://schema.org/",
                        "@type": "Event",
                        "name": document.getElementById('event-name').value,
                        "location": document.getElementById('event-location').value,
                        "startDate": document.getElementById('event-date').value,
                        "endDate": document.getElementById('event-enddate').value,
                        "description": document.getElementById('event-description').value,
                        "aggregateRating": {
                            "@type": "AggregateRating",
                            "ratingValue": document.getElementById('event-rating').value,
                            "ratingCount": document.getElementById('event-rating-count').value
                        },
                        ...(document.getElementById('event-image').value && {"image": document.getElementById('event-image').value})
                    };
                    break;
                case 'article':
                    jsonLd = {
                        "@context": "https://schema.org/",
                        "@type": "Article",
                        "headline": document.getElementById('article-title').value,
                        "datePublished": document.getElementById('article-pubdate').value,
                        "aggregateRating": {
                            "@type": "AggregateRating",
                            "ratingValue": document.getElementById('article-rating').value,
                            "ratingCount": document.getElementById('article-rating-count').value
                        }
                    };
                    break;
                case 'other':
                    jsonLd = {
                        "@context": "https://schema.org/",
                        "@type": document.getElementById('other-type').value,
                        "aggregateRating": {
                            "@type": "AggregateRating",
                            "ratingValue": document.getElementById('other-rating').value,
                            "ratingCount": document.getElementById('other-rating-count').value
                        }
                    };
                    break;
                default:
                    return;
            }

            document.getElementById('json-ld-output').textContent = JSON.stringify(jsonLd, null, 2);
            document.getElementById('json-ld-output').classList.remove('hidden');
        }
    </script></p>

<p>&nbsp;</p>
<p><strong>Note importante pour l&rsquo;intégration HTML</strong> : il faut précéder le résultat généré avec :</p>
<pre>&lt;script type="application/ld+json"&gt;</pre>
<p>et placer à sa fin :</p>
<pre>&lt;/script&gt;</pre>
<p>Plus de détails dans la partie « Comment les intégrer ? ».</p>
<p>&nbsp;</p>
<h2>Les différents Rich Snippet traités</h2>
<p>Je me suis concentré uniquement sur les <strong>données structurées avec un système de notation</strong>. Vous pourrez donc y retrouver des <strong>rich snippets</strong> de type :</p>
<ul>
<li>Produit</li>
<li>Entreprise locale</li>
<li>Recette</li>
<li>Evenement</li>
<li>Article</li>
<li>Et autre pour les cas plus précis (les films et séries par exemple)</li>
</ul>
<p>&nbsp;</p>
<h2>Comment les intégrer ?</h2>
<h3>Via un CMS</h3>
<p>On va pas se mentir, si vous avez un plugin permettant l&rsquo;<strong>automatisation</strong> de la mise en place de ces balises sur vos différentes pages, ne perdez pas votre temps avec mon outil. Ce sera 1000x plus rapide et efficace.</p>
<p>Ceci dit, moi-même utilisant <strong>WordPress</strong>, je n&rsquo;ai pas créé mon générateur par hasard. Certains plugins sont directement liés à des cas très spéciaux, et il peut être <strong>difficile d&rsquo;ajouter des données structurées en manuel</strong>. Dans ce cas, il vous faudra simplement <strong>copier-coller les balises générées dans la balise head de votre page</strong>, en mentionnant le fait que ce soit du Json. Exemple ci-dessous.</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" class="alignnone size-large wp-image-23026" src="https://hugodomeur.com/wp-content/uploads/2024/08/donnees-structurees-hugo-domeur-1024x381.png" alt="" width="1024" height="381" srcset="https://hugodomeur.com/wp-content/uploads/2024/08/donnees-structurees-hugo-domeur-1024x381.png 1024w, https://hugodomeur.com/wp-content/uploads/2024/08/donnees-structurees-hugo-domeur-300x112.png 300w, https://hugodomeur.com/wp-content/uploads/2024/08/donnees-structurees-hugo-domeur-768x286.png 768w, https://hugodomeur.com/wp-content/uploads/2024/08/donnees-structurees-hugo-domeur.png 1295w" sizes="(max-width: 1024px) 100vw, 1024px" /></p>
<p style="text-align: center;"><em>Intégration de mes données structurées sur ma page d&rsquo;accueil.</em></p>
<p>&nbsp;</p>
<h3>Via un site from-scratch</h3>
<p>Un peu comme manuellement sous un CMS, l&rsquo;objectif va être d&rsquo;<strong>implanter ces balises dans le &lt;head&gt;</strong> de votre page, juste en dessous de votre Title et Meta Description. En suivant la trame de l&rsquo;exemple ci-dessus.</p>
<p>Mais de même que pour les CMS, une <strong>automatisation</strong> est diablement <strong>plus pratique</strong> non seulement pour gagner du temps sur l&rsquo;implémentation, mais aussi sur les mises à jour de ces données.</p>
<p>&nbsp;</p>
<h2>Pourquoi appliquer des données structurées pour son SEO ?</h2>
<p>Je vous ai épargné ce paragraphe en premier, pour laisser la vraie valeur ajoutée de cet article en vedette. Mais pour autant, ce serait dommage que vous appliquiez ces Rich Snippets sans en connaître leurs avantages pour le SEO, surtout qu&rsquo;il y en a beaucoup, notamment :</p>
<ul>
<li><strong>Meilleure visibilité de son résultat</strong> : les données structurées mettent en avant des informations directement depuis les SERP, mais ces infos sont mises en forme dans le cas d&rsquo;avis. Parfait pour se démarquer de la concurrence.</li>
<li><strong>Amélioration du CTR</strong> : comme je viens de le mentionner, déjà si ces rich snippets s&rsquo;affichent sur les SERP, votre résultat est plus tape-à-l&rsquo;oeil. Mais si en plus vous avez des excellentes notes sur le contenu de votre page, alors il y a de fortes chances que vous récoltiez plus de clics. D&rsquo;ailleurs, si votre objectif est de <a href="https://hugodomeur.com/blog/tout-savoir-changements-date-publication-seo/">changer la date de publication d&rsquo;un article pour favoriser votre SEO</a>, pensez à mettre à jour ses données structurées.</li>
<li><strong>Progression au classement</strong> : même si certains SEO l&rsquo;ont découvert que depuis peu avec le leak des critères de classement Google, les référenceurs aguerris savent depuis longtemps que le taux de CTR depuis les SERP est un facteur indirect de classement. En gros, plus forte est la part de personnes cliquant sur votre résultat plutôt que sur celui d&rsquo;un concurrent, le meilleur sera votre positionnement. La logique de Google est simple : si tout le monde clique sur votre résultat, et interagit avec votre page, c&rsquo;est que vous répondez parfaitement à l&rsquo;intention de l&rsquo;utilisateur.</li>
</ul>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-23027 aligncenter" src="https://hugodomeur.com/wp-content/uploads/2024/08/exemple-serp-donnes-structurees.png" alt="" width="650" height="165" srcset="https://hugodomeur.com/wp-content/uploads/2024/08/exemple-serp-donnes-structurees.png 650w, https://hugodomeur.com/wp-content/uploads/2024/08/exemple-serp-donnes-structurees-300x76.png 300w" sizes="(max-width: 650px) 100vw, 650px" /></p>
<p style="text-align: center;"><em>Mes anciennes données structurées. Tape-à-l&rsquo;œil, mais ça manque un peu de vie.</em></p>
<p>&nbsp;</p>
<p>Attention cependant, mettez en avant des <strong>informations véridiques</strong> sur vos données structurées, que les googlebots peuvent retrouver sur la page en question. Par exemple, n&rsquo;allez pas mettre que vous avez une note moyenne de 5/5 pour 10 000 avis si vous n&rsquo;en avez que 10 (et pourtant, cette technique marchait par le passé).</p>
<p>&nbsp;</p>
<h2>Conclusion</h2>
<p>En soi, mon outil ressemble beaucoup (et se base, il faut l&rsquo;avouer) sur l&rsquo;<a href="https://www.google.com/webmasters/markup-helper/u/0/">outil d&rsquo;aide au balisage de Google</a>, que je vous recommande tout également. La différence est qu&rsquo;il se concentre sur les <strong>données structurées prenant en compte les avis</strong>, pour <strong>favoriser leur affichage depuis la SERP</strong> (et aussi en plus de l&rsquo;outil de Google, il propose l&rsquo;implémentation des Rich Snippets de type « Recette » et « Article »). Mais je pense qu&rsquo;il y a encore de quoi l&rsquo;améliorer, ce que je ferai probablement selon vos retours pour perfectionner le tool.</p>
<p>J&rsquo;espère que mon générateur gratuit pourra vous aider, n&rsquo;hésitez pas si vous avez des idées pour ensuite automatiser son intégration à les poster dans l&rsquo;espace commentaires, et je pourrais peaufiner l&rsquo;article. Et de mon côté, si vous souhaitez en savoir plus et que je vous guide sur leur écriture et implémentation, étant <a href="https://hugodomeur.com/">consultant SEO Freelance</a> je serais ravi de vous accompagner.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hugodomeur.com/blog/generateur-donnees-structurees-notation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Générateur de robots.txt optimisé SEO</title>
		<link>https://hugodomeur.com/blog/generateur-robots-txt-seo/</link>
					<comments>https://hugodomeur.com/blog/generateur-robots-txt-seo/#respond</comments>
		
		<dc:creator><![CDATA[Hugo]]></dc:creator>
		<pubDate>Wed, 22 May 2024 13:44:00 +0000</pubDate>
				<category><![CDATA[Outils gratuits]]></category>
		<guid isPermaLink="false">https://hugodomeur.com/?p=22857</guid>

					<description><![CDATA[Le fichier robots.txt est un élément important de votre site et pour le SEO, même si ce n&#8217;est pas lui qui vous propulsera à la première position. C&#8217;est quand même la première page que les bots des moteurs de recherche viennent visiter lorsqu&#8217;ils arrivent sur votre site, et en plus les directives de ce fichier [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Le <strong>fichier robots.txt</strong> est un élément important de votre site et pour le <strong>SEO</strong>, même si ce n&rsquo;est pas lui qui vous propulsera à la première position. C&rsquo;est quand même la première page que les bots des <strong>moteurs de recherche</strong> viennent visiter lorsqu&rsquo;ils arrivent sur votre site, et en plus les directives de ce fichier peuvent avoir un impact conséquent sur le référencement naturel si mal géré. Aujourd&rsquo;hui je vous propose donc un nouvel <strong>outil gratuit</strong>, mon <strong>générateur de robots.txt 100% optimisé SEO</strong>.</p>
<p>&nbsp;</p>
<h2>Outil gratuit pour générer votre fichier robots.txt optimisé SEO</h2>
<p>&nbsp;</p>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        .robots-container {
            font-family: Arial, sans-serif;
            background-color: #f4f4f4;
            margin: 0 auto;
            padding: 20px;
            max-width: 800px;
            background-color: #fff;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
            border-radius: 5px;
        }
        .robots-container label {
            display: block;
            margin: 15px 0 5px;
        }
        .robots-container input, .robots-container select, .robots-container textarea {
            width: 100%;
            padding: 10px;
            margin-bottom: 10px;
            border: 1px solid #ccc;
            border-radius: 3px;
        }
        .robots-container button {
            background-color: #006080;
            color: #fff;
            padding: 10px 15px;
            border: none;
            border-radius: 3px;
            cursor: pointer;
        }
        .robots-container button:hover {
            background-color: #004d66;
        }
        .robots-container .output {
            margin-top: 20px;
            background-color: #e0f7fa;
            padding: 20px;
            border-radius: 5px;
            white-space: pre-wrap;
            word-wrap: break-word;
        }
    </style>
</head>
<body>
    <div class="robots-container">
        <form id="robotsForm">
            <label for="seoVisibility">Est-ce que vous souhaitez que votre site génère du trafic SEO ?</label>
            <select id="seoVisibility">
                <option value="yes">Oui : Je veux être référencé</option>
                <option value="no">Non : Empêchez toute indexation</option>
            </select>

            <label for="cms">Quel CMS/technologie utilisez-vous ?</label>
            <select id="cms">
                <option value="wordpress">Wordpress</option>
                <option value="wix">Wix</option>
                <option value="prestashop">Prestashop</option>
                <option value="shopify">Shopify</option>
                <option value="joomla">Joomla</option>
                <option value="webflow">Webflow</option>
                <option value="squarespace">Squarespace</option>
                <option value="drupal">Drupal</option>
                <option value="other">Autres CMS / From-Scratch</option>
            </select>

            <label for="additionalDisallow">Listez les pages et directives supplémentaires que vous ne souhaitez pas voir être explorées par les moteurs de recherche (1 URL par ligne):</label>
            <textarea id="additionalDisallow" rows="5"></textarea>

            <label for="sitemap">Entrez le lien vers le sitemap de votre site :</label>
            <input type="text" id="sitemap" placeholder="https://example.com/sitemap.xml">

            <button type="submit">Générer mon fichier robots.txt</button>
        </form>

        <div class="output" id="output"></div>
    </div>

    <script>
        document.getElementById('robotsForm').addEventListener('submit', function(e) {
            e.preventDefault();

            const seoVisibility = document.getElementById('seoVisibility').value;
            const cms = document.getElementById('cms').value;
            const additionalDisallow = document.getElementById('additionalDisallow').value.split('\n').filter(line => line.trim() !== '');
            const sitemap = document.getElementById('sitemap').value.trim();

            let robotsTxt = "User-agent: *\n";

            if (seoVisibility === 'no') {
                robotsTxt += "Disallow: /\n";
            } else {
                switch (cms) {
                    case 'wordpress':
                        robotsTxt += "Disallow: /wp-admin\nDisallow: /wp-includes\nDisallow: /wp-content/cache\nDisallow: /trackback\nDisallow: /*.php$\nDisallow: /*.inc$\nDisallow: /*.gz$\nDisallow: /wp-login.php\n";
                        break;
                    case 'wix':
                        robotsTxt += "User-agent: Googlebot\nDisallow: *?lightbox=\n";
                        break;
                    case 'prestashop':
                        robotsTxt += "Disallow: /classes/\nDisallow: /config/\nDisallow: /download/\nDisallow: /mails/\nDisallow: /modules/\nDisallow: /translations/\nDisallow: /tools/\n" +
                                     "Disallow: /addresses.php\nDisallow: /address.php\nDisallow: /authentication.php\nDisallow: /cart.php\nDisallow: /contact-form.php\nDisallow: /discount.php\n" +
                                     "Disallow: /footer.php\nDisallow: /get-file.php\nDisallow: /header.php\nDisallow: /history.php\nDisallow: /identity.php\nDisallow: /images.inc.php\n" +
                                     "Disallow: /init.php\nDisallow: /my-account.php\nDisallow: /order.php\nDisallow: /order-slip.php\nDisallow: /order-detail.php\nDisallow: /order-follow.php\n" +
                                     "Disallow: /order-return.php\nDisallow: /order-confirmation.php\nDisallow: /pagination.php\nDisallow: /password.php\nDisallow: /pdf-invoice.php\n" +
                                     "Disallow: /pdf-order-return.php\nDisallow: /pdf-order-slip.php\nDisallow: /product-sort.php\nDisallow: /search.php\nDisallow: /statistics.php\nDisallow: /zoom.php\n";
                        break;
                    case 'shopify':
                    case 'joomla':
                        robotsTxt += "Disallow: /administrator/\nDisallow: /api/\nDisallow: /bin/\nDisallow: /cache/\nDisallow: /cli/\nDisallow: /components/\nDisallow: /includes/\nDisallow: /installation/\nDisallow: /language/\nDisallow: /layouts/\nDisallow: /libraries/\nDisallow: /logs/\nDisallow: /modules/\nDisallow: /plugins/\nDisallow: /tmp/\n";
                        break;
                    case 'webflow':
                        robotsTxt += "Disallow: /admin/\nDisallow: /template/\nDisallow: /design/\nAllow: /dashboard/login\nAllow: /dashboard/signup\nDisallow: /dashboard/\n";
                        break;
                    case 'squarespace':
                        robotsTxt += "Disallow: /config\nDisallow: /rechercher\nDisallow: /account$\nDisallow: /account/\nDisallow: /commerce/digital-download/\nDisallow: /api/\nAllow: /api/ui-extensions/\nDisallow: /static/\n" +
                                     "Disallow: /*?author=*\nDisallow: /*&author=*\nDisallow: /*?tag=*\nDisallow: /*&tag=*\nDisallow: /*?month=*\nDisallow: /*&month=*\nDisallow: /*?view=*\nDisallow: /*&view=*\n" +
                                     "Disallow: /*?format=json\nDisallow: /*&format=json\nDisallow: /*?format=page-context\nDisallow: /*&format=page-context\nDisallow: /*?format=main-content\nDisallow: /*&format=main-content\n" +
                                     "Disallow: /*?format=json-pretty\nDisallow: /*&format=json-pretty\nDisallow: /*?format=ical\nDisallow: /*&format=ical\nDisallow: /*?reversePaginate=*\nDisallow: /*&reversePaginate=*\n";
                        break;
                    case 'drupal':
                        robotsTxt += "Disallow: /includes/\nDisallow: /misc/\nDisallow: /modules/\nDisallow: /profiles/\nDisallow: /scripts/\nDisallow: /themes/\n" +
                                     "Disallow: /CHANGELOG.txt\nDisallow: /cron.php\nDisallow: /INSTALL.mysql.txt\nDisallow: /INSTALL.pgsql.txt\nDisallow: /INSTALL.sqlite.txt\nDisallow: /install.php\n" +
                                     "Disallow: /INSTALL.txt\nDisallow: /LICENSE.txt\nDisallow: /MAINTAINERS.txt\nDisallow: /update.php\nDisallow: /UPGRADE.txt\nDisallow: /xmlrpc.php\n" +
                                     "Disallow: /admin/\nDisallow: /comment/reply/\nDisallow: /filter/tips/\nDisallow: /user/logout/\nDisallow: /node/add/\nDisallow: /search/\nDisallow: /user/register/\n" +
                                     "Disallow: /user/password/\nDisallow: /user/login/\nDisallow: /?q=admin/\nDisallow: /?q=comment/reply/\nDisallow: /?q=filter/tips/\nDisallow: /?q=user/logout/\n" +
                                     "Disallow: /?q=node/add/\nDisallow: /?q=search/\nDisallow: /?q=user/password/\nDisallow: /?q=user/register/\nDisallow: /?q=user/login/\nDisallow: /?q=search/\n";
                        break;
                    case 'other':
                    default:
                        break;
                }

                additionalDisallow.forEach(path => {
                    robotsTxt += `Disallow: ${path}\n`;
                });

                if (sitemap) {
                    robotsTxt += `Sitemap: ${sitemap}\n`;
                }
            }

            document.getElementById('output').textContent = robotsTxt;
        });
    </script>
</body>
</html>

<p>&nbsp;</p>
<p>Ce générateur s&rsquo;applique aux sites sous :</p>
<ul>
<li>WordPress</li>
<li>Wix</li>
<li>Prestashop</li>
<li>Shopify</li>
<li>Joomla</li>
<li>Webflow</li>
<li>Squarespace</li>
<li>Drupal</li>
<li>Magento</li>
<li>Les autres CMS (toutefois sans informations supplémentaires)</li>
<li>Et les sites From-Scratch</li>
</ul>
<p>&nbsp;</p>
<h2>Les éléments du générateur en détails</h2>
<h3>Indexation générale</h3>
<p>C&rsquo;est la base de la base, mais l&rsquo;<strong>indexation</strong> est au final le <strong>critère le plus important en SEO</strong> : une page non-indexée ne pourra générer aucun trafic SEO (on avait déjà vu ça dans <a href="https://hugodomeur.com/blog/indexation-capricieuse-comment-convaincre-google-robots/">l&rsquo;article sur les problèmes d&rsquo;indexation</a>). Tout simplement car elle ne sera pas présente dans l&rsquo;index des moteurs de recherche. Par contre, si votre site est en pré-prod, refonte ou autre, ne le faites pas encore indexer et rendez l&rsquo;indexation impossible.</p>
<p>Concernant le détail des réponses :</p>
<ul>
<li>Oui : Votre site pourra générer du trafic SEO (<strong>accessible par les moteurs de recherche</strong>)</li>
<li>Non : Empêche tout SEO possible (<strong>inaccessible par Google</strong> et ses compères)</li>
</ul>
<p>Si vous avez un doute, le simple fait que vous soyez sur cet article devrait vous faire sélectionner « <strong>Oui</strong>« .</p>
<p>&nbsp;</p>
<h3>CMS / Technologie utilisée</h3>
<h4>WordPress</h4>
<p>Pour générer un robots.txt spécialement conçu pour le SEO de WordPress, j&rsquo;ai indiqué d&rsquo;enlever notamment l&rsquo;indexation et le crawl des fichiers de connexion et répertoires avancés.</p>
<p>&nbsp;</p>
<h4>Wix</h4>
<p>Pas grand chose de différent pour le robots.txt de Wix, simplement un élément lightbox à enlever du crawl.</p>
<p>&nbsp;</p>
<h4>Prestashop</h4>
<p>L&rsquo;outil a pour but d&#8217;empêcher la visite et l&rsquo;indexation des fichiers internes et répertoires dédiés au fonctionnement. Si vous avez un Prestashop, vous verrez le robots.txt généré plus fourni que pour les autres CMS.</p>
<p>&nbsp;</p>
<h4>Shopify</h4>
<p>Surtout des éléments internes sont listés : empêcher leur visite aidera à <a href="https://hugodomeur.com/blog/definition-bonnes-pratiques-seo-budget-crawl/">améliorer votre budget crawl</a>.</p>
<p>&nbsp;</p>
<h4>Joomla</h4>
<p>On empêche le crawl des éléments hors back-office mais nécessaires au bon fonctionnement de votre site web sous Joomla.</p>
<p>&nbsp;</p>
<h4>Webflow</h4>
<p>Un cas un peu particulier : j&rsquo;ai demandé à l&rsquo;outil d&#8217;empêcher les bots de visiter la page de tableau de bord, mais les ai tout de même autorisé à accéder aux pages de connexion. Plus pratique pour les sites dont les clients accèdent régulièrement à leur compte (de mon expérience, il y en a davantage sur Webflow).</p>
<p>&nbsp;</p>
<h4>Squarespace</h4>
<p>Attention dans ce cas particulier : j&rsquo;ai empêché l&rsquo;indexation des résultats de recherche interne. Si vous souhaitez qu&rsquo;ils soient crawlés et indexés, retirez « Disallow: /rechercher » dans votre robots.txt fraîchement généré</p>
<p>&nbsp;</p>
<h4>Drupal</h4>
<p>Beaucoup de disallow insérés, de même majoritairement pour les fichiers et répertoires internes.</p>
<p>&nbsp;</p>
<h4>Autre CMS / Sites web From-Scratch</h4>
<p>Simplement pas d&rsquo;autres directives ajoutées dans mon générateur. Il faudra, si vous avez des répertoires ou fichiers que les moteurs de recherche ne doivent pas explorer, les ajouter dans la partie des pages à ne pas indexer (expliquée d&rsquo;ailleurs juste ci-dessous).</p>
<p>&nbsp;</p>
<h3>Pages à ne pas indexer</h3>
<p>Ici, entrez simplement les URLs de votre site dont vous souhaitez empêcher l&rsquo;exploration et l&rsquo;indexation. Exemples de pages à ne pas indexer :</p>
<ul>
<li>Les <strong>fichiers internes</strong> aux collaborateurs de l&rsquo;entreprise</li>
<li>Les <strong>pages dupliquées</strong></li>
<li>Toutes les <strong>pages orientées Marketing</strong> (les Landing Pages, E-book, etc&#8230;)</li>
<li>Les <strong>pages à très faible valeur ajoutée</strong></li>
<li>Et toutes vos magouilles dont vous souhaitez garder le secret (du moins vis-à-vis des bots d&rsquo;exploration)</li>
</ul>
<p>&nbsp;</p>
<h3>Lien du sitemap</h3>
<p>Enfin, on ajoutera le <strong>lien du sitemap</strong> pour que les robots du moteur de recherche puissent l&rsquo;identifier rapidement. Pratique si vous n&rsquo;avez pas un simple /sitemap.xml/.</p>
<p>&nbsp;</p>
<h2>Où implanter son fichier robots.txt ?</h2>
<p>Dernière étape une fois votre <strong>robots.txt</strong> fin fini : l&rsquo;<strong>uploader</strong> sur votre site. Il doit être à la <strong>racine</strong> de ce dernier (c&rsquo;est à dire au plus haut possible dans l&rsquo;arborescence des fichiers). Pour ça, plusieurs méthodes :</p>
<ul>
<li>Connectez-vous à votre <strong>FTP</strong> via un outil dédié (Filezilla, WinSCP&#8230;) et uploadez-le dans le 1er répertoire (le plus haut) dédié à votre site web.</li>
<li>Si vous avez <strong>Cpanel</strong>, accédez à l&rsquo;éditeur de fichiers, et de même uploadez-le dans le répertoire le plus proche de la racine de votre site internet.</li>
<li>Certains <strong>CMS</strong> comme <strong>Wix</strong> ou <strong>Prestashop</strong> proposent d&rsquo;ajouter / modifier directement les robots.txt depuis le back-office.</li>
<li>D&rsquo;autres, comme <strong>WordPress</strong>, nécessitent des plugins si on veut hésiter de le faire à la mano.</li>
</ul>
<p>&nbsp;</p>
<h2>Conclusion</h2>
<p>Je pense que c&rsquo;est la 1ère fois que j&rsquo;écris un article avec si peu de documentation trouvée en ligne : pour définir les indications propres à chaque CMS, j&rsquo;ai dû dans la majorité des cas <strong>regarder les robots.txt des sites officiels</strong> et populaires SEO parlant pour en extraire des directives cohérentes. De même pour la conception de ce générateur, j&rsquo;ai dû passer une bonne heure et demie avant d&rsquo;avoir un résultat potable (il faut vraiment que je m&rsquo;améliore sur mes prompts), mais je suis content de pouvoir vous <strong>proposer cet outil gratuitement</strong>. N&rsquo;hésitez pas à commenter pour indiquer si vous avez des idées de perfectionnement, et si vous avez apprécié l&rsquo;outil, à le partager. Enfin, si vous souhaitez une stratégie SEO sur-mesure, n&rsquo;hésitez pas à découvrir mon profil de <a href="https://hugodomeur.com/">consultant SEO Freelance</a>.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hugodomeur.com/blog/generateur-robots-txt-seo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Générateur de balise alt pensé pour le SEO</title>
		<link>https://hugodomeur.com/blog/generateur-balise-alt-seo/</link>
					<comments>https://hugodomeur.com/blog/generateur-balise-alt-seo/#respond</comments>
		
		<dc:creator><![CDATA[Hugo]]></dc:creator>
		<pubDate>Wed, 08 May 2024 14:57:23 +0000</pubDate>
				<category><![CDATA[Outils gratuits]]></category>
		<guid isPermaLink="false">https://hugodomeur.com/?p=22831</guid>

					<description><![CDATA[Attribut servant initialement à améliorer l&#8217;accessibilité des personnes malvoyantes, la balise alt est aussi un élément utile pour le SEO. C&#8217;est à la fois une opportunité pour améliorer le positionnement d&#8217;une page, mais également de référencer ses visuels dans Google Images. Je vous propose aujourd&#8217;hui un générateur de balise alt simple, mais développé avec mon [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Attribut servant initialement à améliorer l&rsquo;accessibilité des personnes malvoyantes, la <strong>balise alt</strong> est aussi un élément utile pour le <strong>SEO</strong>. C&rsquo;est à la fois une opportunité pour <strong>améliorer le positionnement d&rsquo;une page</strong>, mais également de <strong>référencer ses visuels dans Google Images</strong>. Je vous propose aujourd&rsquo;hui un <strong>générateur de balise alt</strong> simple, mais développé avec mon expertise de <a href="https://hugodomeur.com/">Consultant Freelance spécialiste SEO</a> pour vous aider.</p>
<p>&nbsp;</p>
<h2>Outil de génération de balise alt dédiée au SEO</h2>
<p>J&rsquo;ai construit un petit bot et lui ai donné mes connaissances et consignes pour qu&rsquo;il <strong>génère automatiquement une balise alt pertinente et optimisée pour le SEO</strong> à partir d&rsquo;un <strong>mot-clé</strong> et d&rsquo;une <strong>description</strong>. N&rsquo;hésitez pas à me faire parvenir vos retours pour que je l&rsquo;améliore, ou le relayer si vous l&rsquo;aimez bien.</p>
<p><center><iframe loading="lazy" src="https://bots.easy-peasy.ai/bot/8b8b7517-03f1-4d5b-b837-7b4271b6fd4e?mode=iframe" width="400" height="500"><br />
<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start">﻿</span></iframe></center>&nbsp;</p>
<h2>Quelles sont les utilités de la balise alt pour le SEO ?</h2>
<h3>Amélioration du positionnement de la page</h3>
<p>De base, <strong>implanter des images sur une page aide au SEO</strong> : vous illustrez vos dires, rendant le <strong>contenu plus accessible</strong> et <strong>mieux illustré</strong> pour les utilisateurs. Mais là où la balise alt joue un rôle, c&rsquo;est qu&rsquo;elle est lue et <strong>prise en compte par Google</strong>. Ce dernier n&rsquo;a plus qu&rsquo;à vérifier si cet attribut est cohérent par rapport au sujet de la page, et bingo : <strong>le moteur de recherche comprend mieux le sujet de votre page</strong>, et s&rsquo;assure que vous parlez bien d&rsquo;une thématique précise. Il est donc plus confiant à mieux vous positionner sur vos mots-clés visés.</p>
<p>&nbsp;</p>
<h3>Référencement dans Google Images</h3>
<p>Car le SEO ce n&rsquo;est pas seulement améliorer de vulgaires positions sur une requête, la <strong>balise alt</strong> est votre passe-droit pour un <strong>référencement sur Google Images</strong>. C&rsquo;est à partir de cet attribut que le moteur de recherche choisit de positionner ou non une image sur un mot-clé. Et le plus la page comportant l&rsquo;image est pertinente et qualitative, le plus vous aurez de chances que votre visuel se positionne en tête des résultats de Google Images.</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" class="size-large wp-image-22849 aligncenter" src="https://hugodomeur.com/wp-content/uploads/2024/05/search-console-rapport-images-1024x442.png" alt="Rapport GSC sur la performance SEO des images" width="1024" height="442" srcset="https://hugodomeur.com/wp-content/uploads/2024/05/search-console-rapport-images-1024x442.png 1024w, https://hugodomeur.com/wp-content/uploads/2024/05/search-console-rapport-images-300x129.png 300w, https://hugodomeur.com/wp-content/uploads/2024/05/search-console-rapport-images-768x331.png 768w, https://hugodomeur.com/wp-content/uploads/2024/05/search-console-rapport-images.png 1465w" sizes="(max-width: 1024px) 100vw, 1024px" /></p>
<p style="text-align: center;"><em>Une capture d&rsquo;écran d&rsquo;un ancien site d&rsquo;affiliation que j&rsquo;avais. Le trafic généré par Google Images faisait tout de même environ 1/8e du trafic SEO général.</em></p>
<p>&nbsp;</p>
<p>Bonus pour les <strong>e-commerce</strong> : cet attribut peut (pratiquement) à lui seul vous <strong>générer des conversions</strong>. Soit car les utilisateurs passent justement par Google Images (notamment pour les recherches de textiles avec motifs), soit car vos produits peuvent être repris plus facilement dans l&rsquo;encart « Produits », ou même votre site web entier dans l&rsquo;onglet de recherche « Sites de produits ».</p>
<p>&nbsp;</p>
<h2>Comment implanter une balise alt sur mon image ?</h2>
<h3>Grâce à un CMS (WordPress, Wix, Prestashop&#8230;)</h3>
<p>Bien qu&rsquo;ils soient très pratiques pour la conception et l&rsquo;intégration, les <strong>CMS</strong> ont chacun leur méthode pour l&rsquo;intégration de cet attribut. Voici 3 cas différents d&rsquo;intégration selon la plateforme utilisée :</p>
<ul>
<li>Sous <strong>WordPress</strong>, rendez-vous dans l&rsquo;onglet « Médias », puis « Bibliothèque ». Sélectionnez l&rsquo;image souhaitée, et à son ouverture, remplissez l&rsquo;encart à côté de « Texte alternatif ».</li>
<li>Dans le cas de <strong>Wix</strong>, sélectionnez votre image, et sur les 3 petits points en haut à droite de cette dernière sélectionnez « Modifier le texte alt des images ».</li>
<li>Sous <strong>Prestashop</strong> c&rsquo;est encore différent : il faudra aller directement sur votre produit, et renseigner votre attribut alt dans l&rsquo;onglet « Légende ».</li>
</ul>
<p>En général, même s&rsquo;il s&rsquo;agit souvent d&rsquo;une méthode d&rsquo;intégration différente, il est relativement simple d&rsquo;ajouter une <strong>balise alt</strong> sous un CMS en raison de la forte importance de cet attribut.</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-22851 aligncenter" src="https://hugodomeur.com/wp-content/uploads/2024/05/integration-balise-alt-wordpress.png" alt="" width="631" height="484" srcset="https://hugodomeur.com/wp-content/uploads/2024/05/integration-balise-alt-wordpress.png 631w, https://hugodomeur.com/wp-content/uploads/2024/05/integration-balise-alt-wordpress-300x230.png 300w" sizes="(max-width: 631px) 100vw, 631px" /></p>
<p style="text-align: center;"><em>L&rsquo;encart en question sous WordPress.</em></p>
<p>&nbsp;</p>
<h3>Via du code</h3>
<p>La balise alt est relativement simple à intégrer via du code : vous n&rsquo;avez qu&rsquo;à l&rsquo;<strong>insérer directement dans le code de l&rsquo;image</strong>, à la suite de la source. Par exemple :</p>
<pre>&lt;img src="img.jpg" alt="<i>votre texte</i>"&gt;</pre>
<p>Bien sûr, n&rsquo;oubliez pas les autres attributs fondamentaux tels que la hauteur et la largeur.</p>
<p>&nbsp;</p>
<h2>Conclusion</h2>
<p>Un article un peu plus court pour une fois, mais non sans manquer d&rsquo;efforts par rapport aux autres pour autant. Avoir un résultat potable, puis proche de la perfection pour l&rsquo;<strong>outil de génération</strong> m&rsquo;aura demandé pas mal de temps. En tous cas il devrait être à même de vous <strong>générer des balises alt</strong> plutôt intéressantes pour votre <strong>SEO</strong>. N&rsquo;hésitez pas à me faire vos retours en commentaires, et de mon côté je verrai comment je peux l&rsquo;améliorer.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hugodomeur.com/blog/generateur-balise-alt-seo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
