The "Bulk SEO" application lets you apply the fundamentals of SEO. For example, you can modify title, canonical, hreflang and meta robot tags, and add a link block to thousands of pages by setting up a CSV file. It's the application that's going to make you more agile every day 😉.
To use Bulk SEO, follow the steps below.
The column url column is used to indicate the page to which you wish to apply modifications.
The url column is mandatory for each line.
We expect a valid url that responds with a status code 200 in the column
Examplein csv file
Avalid url must be structured with the protocol (http:// or https://) followed by the full domain.
Below are some examples of urls that are valid:
<url> |
---|
https://www.edgeseo.io/ |
https://edgeseo.io/ |
https://www.edgeseo.io/blog |
https://www.edgeseo.io/blog?param=1 |
Below are some examples of URLs that will return an error:
❌ www.edgeseo.io → The https:// or http://
protocol is missing ❌ edgeseo.io → The https:// or http://
protocol is missing ❌ /blog → The https:// or http:// protocol and the full domain are missing.
The title column lets you add or modify the content of the title tag in your page's source code.
How does it work?
title |
---|
My great title with an emoji 🚀 |
Result in source code
1<!DOCTYPE >
2<html>
3<head>
4 <meta charset="UTF-8">
5 <title>Mon super titre avec un émoji 🚀</title>
6</head>
7<body>
8 <!-- Le contenu de votre page -->
9</body>
10</html>
The meta-description column is used to add or modify the content of the meta description tag in your page's source code.
How does it work?
Example in csv file
meta-description |
---|
My new description that will improve my CTR 🤑 in #SERP |
Result in source code
1<!DOCTYPE >
2<html>
3<head>
4 <meta name="description" content="Mon nouvelle description qui va améliorer mon CTR 🤑 dans les #SERP">
5</head>
6<body>
7 <!-- Le contenu de votre page -->
8</body>
9</html>
The column canonical column lets you add or modify the content of the canonical tag in your page's source code.
How does it work?
Example in csv file
canonical |
---|
https://www.edgeseo.io |
Result in source code
1<!DOCTYPE >
2<html>
3<head>
4 <link rel="canonical" href="https://www.edgeseo.io">
5</head>
6<body>
7 <!-- Le contenu de votre page -->
8</body>
9</html>
The column meta-robots column lets you add or modify the content of the meta robots tag in your page's source code.
You can use the index / noindex and follow / nofollow properties separated by a " , ". We'll give you a few examples below 👇
How does it work?
meta-robots |
---|
index,follow |
noindex,nofollow |
index,nofollow |
noindex,follow |
Result in source code
1<!DOCTYPE >
2<html>
3<head>
4 <meta name="robots" content="index, follow">
5</head>
6<body>
7 <!-- Le contenu de votre page -->
8</body>
9</html>
The hn-target and columns hn-content columns columns can be used to replace the text content of one or more hn tags in your page's source code. hn-target column is used to target the hn tag tag via CSS selector selector on which to modify the text.
The column hn-content column is used to add the text content to be modified to the hn tag.
How does it work?
hn-target | hn-content |
---|---|
h1.maClass | h2.classT | My new title 😍 | My new subtitle |
Result in source code
1<!DOCTYPE >
2<html>
3<head>
4
5</head>
6<body>
7 <h1 class="maClass">Mon nouveau titre 😍</h1>
8 <h2 class="classT">Mon nouveau sous-titre</h2>
9</body>
10</html>
The column hreflang-default column is used to add the hreflang="x-default" tag
The columns hreflang-country and hreflang-url columns are used to add a hreflang="x-default" tag
The column hreflang-country column is used to add the country code for the url.
The column hreflang-url column is used to add the url associated with the country code.
How does it work?
Example in csv file
hreflang-defaut | hreflang-countries | hreflang-url |
---|---|---|
https://url-defaut.com | en|fr | https://url-defaut.com/en | https://url-defaut.com/fr |
Result in source code
1<!DOCTYPE >
2<html>
3<head>
4 <link rel="alternate" hreflang="en" href="https://url-defaut.com/en">
5 <link rel="alternate" hreflang="fr" href="https://url-defaut.com/fr">
6 <link rel="alternate" hreflang="x-default" href="https://url-defaut.com">
7</head>
8<body>
9
10</body>
11</html>
Columns html-target and columns html-content columns are used to add html content to your page.
The html-target column allows you to target the area where you wish to add the html via a keyword + a CSS selector
The column html-content column is used to indicate html content to be added to the targeted zone.
How does it work?
html-target | html-content |
---|---|
prepend_inside div.maClass | <p>Mon super contenu optimisé pour le SEO</p> <div class=”link”> <a href=”#”>ancre de lien 1</a><a href=”#”>ancre de lien 2</a> </div> |
Original source code
1<!DOCTYPE >
2<html>
3<head>
4
5</head>
6<body>
7 <div class="maClass">
8 <p>un pararagraphe</p>
9 </div>
10</body>
11</html>
Modified source code
1<!DOCTYPE >
2<html>
3<head>
4
5</head>
6<body>
7 <div class="maClass">
8 <p>Mon super contenu optimisé pour le SEO</p>
9 <div class=”link”>
10 <a href=”#”>ancre de lien 1</a>
11 <a href=”#”>ancre de lien 2</a>
12 </div>
13 <p>un pararagraphe</p>
14 </div>
15</body>
16</html>
Focus on keywords to target an area
To illustrate the behaviour of each keyword, we will start with this code htmlWe'll see where the content is positioned, depending on the keyword. html content we wish to add to the page.
prepend_inside
Adds content html content at the beginning of the targeted DOM element.
Result with prepend_inside.
1<!-- Code original -->
2<div class="maClass">
3 <p>Contenu existant</p>
4</div>
5
6<!-- Code ajouté avec le mot clé prepend_inside div.maClass -->
7<div class="maClass">
8 <p>Mon super contenu optimisé pour le SEO</p>
9 <div class=”link”>
10 <a href=”#”>ancre de lien 1</a>
11 <a href=”#”>ancre de lien 2</a>
12 </div>
13
14 <p>Contenu existant</p>
15</div>
insert_after_outside
Adds content html content content immediately after the targeted element in the DOM.
Result with insert_after_outside.
1<!-- Code original -->
2<div class="maClass">
3 <p>Contenu existant</p>
4</div>
5
6<!-- Code ajouté avec le mot clé insert_after_outside div.maClass -->
7<div class="maClass">
8 <p>Contenu existant</p>
9</div>
10<p>Mon super contenu optimisé pour le SEO</p>
11<div class=”link”>
12 <a href=”#”>ancre de lien 1</a>
13 <a href=”#”>ancre de lien 2</a>
14</div>
append_inside
Adds content html content to the end of the targeted DOM element.
Result with append_inside.
1<!-- Code original -->
2<div class="maClass">
3 <p>Contenu existant</p>
4</div>
5
6<!-- Code ajouté avec le mot clé append_inside div.maClass -->
7<div class="maClass">
8 <p>Contenu existant</p>
9
10 <p>Mon super contenu optimisé pour le SEO</p>
11 <div class=”link”>
12 <a href=”#”>ancre de lien 1</a>
13 <a href=”#”>ancre de lien 2</a>
14 </div>
15</div>
insert_before_outside
Adds content html content content before the targeted element in the DOM.
Result with insert_before_outside.
1<!-- Code original -->
2<div class="maClass">
3 <p>Contenu existant</p>
4</div>
5
6<!-- Code ajouté avec le mot clé insert_before_outside div.maClass -->
7<p>Mon super contenu optimisé pour le SEO</p>
8<div class=”link”>
9 <a href=”#”>ancre de lien 1</a>
10 <a href=”#”>ancre de lien 2</a>
11</div>
12<div class="maClass">
13 <p>Contenu existant</p>
14</div>
The column html-remove column column is used to delete html content from your page by targeting it via a CSS selector.
How does it work?
Example in csv file
html-remove |
---|
span.maClass2 , h3 |
Original source code
1<!DOCTYPE >
2<html>
3<head></head>
4<body>
5 <div class="main">
6 <h1>Mon titre 🍿</h1>
7 <span class="maClass2">
8 <h2>Contenu duppliqué</h2>
9 <p>Intellectum est enim mihi quidem in multis, et maxime in me ipso, sed paulo ante in omnibus, cum M</p>
10 </span>
11 <p>Marcellum senatui reique publicae concessisti, commemoratis praesertim offensionibus, te auctoritatem huius ordinis dignitatemque rei publicae tuis vel doloribus vel suspicionibus anteferre</p>
12 <h3>Mon titre qui ne sert à rien 😉</h3>
13 <a href="#">coucou !</a>
14 </div>
15</body>
16</html>
Modified source code
1<!DOCTYPE >
2<html>
3<head></head>
4<body>
5 <div class="main">
6 <h1>Mon titre 🍿</h1>
7
8 <p>Marcellum senatui reique publicae concessisti, commemoratis praesertim offensionibus, te auctoritatem huius ordinis dignitatemque rei publicae tuis vel doloribus vel suspicionibus anteferre</p>
9
10 <a href="#">coucou !</a>
11 </div>
12</body>
13</html>
The columns beacon-switcher-target and columns tag-switcher-replace columns are used to modify an html tag with another.
The column tag-switcher-target column is used to target the html tag you wish to modify via a CSS selector
La colonne balise-switcher-replace permet d’indiquer la balise html que l’on souhaite utiliser pour remplacer la balise <html> ciblée.
How does it work?
Example in csv file
beacon-switcher-target | beacon-switcher-replace |
---|---|
h1.maClassC | h2.classT | span | div |
Original source code
1<!DOCTYPE >
2<html>
3<head></head>
4<body>
5 <h1 class="maClass">Mon nouveau titre 😍</h1>
6 <h2 class="classT">Mon nouveau sous-titre</h2>
7</body>
8</html>
Modified source code
1<!DOCTYPE >
2<html>
3<head></head>
4<body>
5 <span class="maClass">Mon nouveau titre 😍</span>
6 <div class="classT">Mon nouveau sous-titre</div>
7</body>
8</html>
The column link-obfuscation column is used to obfuscate an a href="" link by targeting it via a CSS selector.
How does it work?
Example in csv file
link-obfuscation |
---|
a[href="/mentions-legales"] , li a.maClass |
Original source code
1<!DOCTYPE >
2<html>
3<head></head>
4<body>
5 <div class="main">
6 <a href="/mentions-legales">Mentions legales</a>
7 <li class="maClass">
8 <a href="/link/link/link">lien</a>
9 <li>
10 </div>
11</body>
12</html>
Modified source code
1<!DOCTYPE >
2<html>
3<head></head>
4<body>
5 <div class="main">
6 <span rel="aHR0cHM6Ly9mci5iZW5ldHRvbi5jb20vcHJpdmFjeS9wcml2YWN5Lmh0bWw=">Mentions legales</span>
7 <li class="maClass">
8 <span rel="aHR0cHM6Ly9mci5iZW5ldHRvbi5jb20vY29va2llc18vY29va2llc18uaHRtbA==">lien</a>
9 <li>
10 </div>
11</body>
12</html>
The column schema-org column is used to add structured data of type schema.org.
How does it work?
Example in csv file
schema-org |
---|
{"@context": "http://schema.org/","@type": "Recipe","name": ""},{"@context": "http://schema.org","@type": "WebPage",} |
Result in source code
1<!DOCTYPE >
2<html>
3<head>
4 <script type="application/ld+json">
5 {
6 "@context": "http://schema.org/",
7 "@type": "Recipe",
8 "name": ""
9 },
10 {
11 "@context": "http://schema.org",
12 "@type": "WebPage",
13 }
14 </script>
15
16</head>
17<body>
18 <!-- Le contenu de votre page -->
19</body>
20</html>
The column opengraph column is used to add structured open graph data.
How does it work?
Example in csv file
opengraph |
---|
<meta property="og:title" content="Titre de la page"><meta property="og:type" content="website"><meta property="og:url" content="URL de la page"><meta property="og:image" content="URL de l'image"><meta property="og:description" content="Description de la page"><meta property="og:site_name" content="Nom du site"><meta property="og:locale" content="fr_FR"> |
Result in source code
1<!DOCTYPE >
2<html>
3<head>
4 <meta property="og:title" content="Titre de la page">
5 <meta property="og:type" content="website">
6 <meta property="og:url" content="URL de la page">
7 <meta property="og:image" content="URL de l'image">
8 <meta property="og:description" content="Description de la page">
9 <meta property="og:site_name" content="Nom du site">
10 <meta property="og:locale" content="fr_FR">
11</head>
12<body>
13 <!-- Le contenu de votre page -->
14</body>
15</html>
The column twitter-card column lets you add structured data of the open Twitter card type.
How does it work?
Example in csv file
twitter-card |
---|
<meta name="twitter:card" content="summary"><meta name="twitter:site" content="@NomDuCompteTwitter"><meta name="twitter:title" content="Titre de la page"><meta name="twitter:description" content="Description de la page"><meta name="twitter:image" content="URL de l'image"><meta name="twitter:url" content="URL de la page"> |
Result in source code
1<!DOCTYPE >
2<html>
3<head>
4 <meta name="twitter:card" content="summary">
5 <meta name="twitter:site" content="@NomDuCompteTwitter">
6 <meta name="twitter:title" content="Titre de la page">
7 <meta name="twitter:description" content="Description de la page">
8 <meta name="twitter:image" content="URL de l'image">
9 <meta name="twitter:url" content="URL de la page">
10</head>
11<body>
12 <!-- Le contenu de votre page -->
13</body>
14</html>