Découvrez comment générer gratuitement et rapidement le listing de tous les liens sortants de votre site web.
Dossier rédigé par Mathieu Jaulin

Si vous avez commencé à travailler le référencement naturel de votre site web, vous devez connaître à priori l’importance des liens. Ces liens permettent à Google d’évaluer votre notoriété sur internet, et ainsi de vous positionner en fonction de leur nombre et de leur qualité. En effet, mieux vaut avoir quelques liens provenant de sites à forte réputation plutôt qu’un grand nombre de backlinks de « petits » sites. De plus, les liens que vous publiez sur vos pages ou bien sur vos articles de blog permettent de transmettre votre jus SEO vers d’autres domaines tout en incitant vos internautes à découvrir ces autres sites.
Voici le sommaire de notre guide :
- L’importance des liens en SEO
- Comment lister vos liens externes avec un script Python ?
- Pourquoi connaître tous vos liens sortants ?
- Quels sont les tarifs ?
A quoi servent les liens en référencement naturel ?
L’autorité de domaine est définie grâce aux liens
En référencement naturel, les liens sont très importants car ils permettent à Google de mesurer ce que l’on peut appeler votre notoriété digitale. Cette notoriété numérique est l’équivalent digital de votre notoriété dans la vraie vie. Concrètement, plus un grand nombre de sites créent des liens vers votre propre site web, plus votre autorité de domaine augmente. Cette autorité est un critère important dans le positionnement de votre domaine sur les moteurs de recherche. Avec son algorithme, Google considère qu’un site qui a une bonne notoriété est plus fiable qu’un site dont personne ne parle. Ainsi, un site possédant un grand nombre de backlinks se verra mieux positionné par rapport à un site qui en possède moins.
La qualité est plus importante que la quantité
Le second critère concernant les liens en SEO est que la qualité primera toujours sur la quantité. Cela signifie que, si possible, envisagez l’acquisition de liens sur des sites web bénéficiant d’une forte autorité de domaine. En effet, mieux vaut avoir quelques liens provenant de sites avec une bonne notoriété plutôt qu’un grand nombre de backlinks provenant d’un « petit » domaine.
Pour rappel, vous pouvez mesurer cette autorité avec des outils tels que AHRefs ou bien Moz.
Comment lister les liens qui sortent de votre site internet ?
Ce dont vous avez besoin : les prérequis
Pour commencer, vous avez besoin de trois éléments avant de pouvoir lancer correctement le script Python :
- Un dossier que vous pouvez nommer comme bon vous semble,
- Un document texte appelé « extract_liens.py » que vous devez enregistrer dans ce dossier,
- Votre sitemap au format XML nommé « XML Sitemap.xml », autrement dit le plan du site contenant toutes les url à vérifier.
Le script Python
Ensuite, vous devez ouvrir votre document texte « extract_liens.py » avec le bloc notes par exemple. C’est dans ce document que vous devez coller le contenu suivant correspondant au script Python :
#!/usr/bin/env python3
# extract_liens.py
import time
import requests
from bs4 import BeautifulSoup
import pandas as pd
import xml.etree.ElementTree as ET
from urllib.parse import urlparse, urljoin
import sys
# ---------- CONFIG ----------
SITEMAP_FILE = "XML Sitemap.xml" # nom du fichier sitemap (mettre dans le même répertoire)
DOMAIN = "blogdudigital.fr" # domaine à considérer "interne" (ne pas lister comme sortant)
OUTPUT_FILE = "liens_sortants.xlsx"
USER_AGENT = "Mozilla/5.0 (compatible; LiensExtractor/1.0; +https://example.com)"
REQUEST_TIMEOUT = 12
DELAY_BETWEEN_REQUESTS = 0.5 # délai en secondes entre requêtes pour éviter surcharge
# Liste courte de domaines sociaux à ignorer si souhaité
IGNORED_DOMAINS_PARTS = [
"facebook.com", "twitter.com", "instagram.com", "linkedin.com",
"youtube.com", "whatsapp.com", "pinterest.com"
]
# -----------------------------
def is_external_link(href):
if not href:
return False
href = href.strip()
# ignorer ancres, mailto, tel, javascript
if href.startswith("#") or href.startswith("mailto:") or href.startswith("tel:") or href.startswith("javascript:"):
return False
if href.startswith("//"):
href = "https:" + href
if href.startswith("/"):
return False
if not (href.startswith("http://") or href.startswith("https://")):
return False
parsed = urlparse(href)
netloc = parsed.netloc.lower()
# si le domaine interne est présent => pas externe
if DOMAIN.lower() in netloc:
return False
# ignorer domaines sociaux courants (optionnel)
for part in IGNORED_DOMAINS_PARTS:
if part in netloc:
return False
return True
def extract_urls_from_sitemap(sitemap_file):
try:
tree = ET.parse(sitemap_file)
root = tree.getroot()
except Exception as e:
print(f"Impossible de lire le sitemap: {e}")
sys.exit(1)
# gérer namespace générique
ns = {'ns': 'http://www.sitemaps.org/schemas/sitemap/0.9'}
urls = [loc.text for loc in root.findall('ns:url/ns:loc', ns)]
if not urls:
# fallback: chercher toutes les <loc> sans namespace
urls = [elem.text for elem in root.findall('.//loc')]
return urls
def fetch_outgoing_links(url):
headers = {"User-Agent": USER_AGENT}
try:
resp = requests.get(url, headers=headers, timeout=REQUEST_TIMEOUT)
if resp.status_code != 200:
print(f" [WARN] {url} -> status {resp.status_code}")
return None, f"HTTP {resp.status_code}"
soup = BeautifulSoup(resp.text, "html.parser")
out_links = set()
for a in soup.find_all("a", href=True):
href = a['href'].strip()
if is_external_link(href):
# normaliser protocol-relative
if href.startswith("//"):
href = "https:" + href
out_links.add(href)
return sorted(out_links), None
except Exception as e:
return None, str(e)
def main():
urls = extract_urls_from_sitemap(SITEMAP_FILE)
print(f"Pages trouvées dans le sitemap : {len(urls)}")
data = []
for i, page in enumerate(urls, 1):
print(f"[{i}/{len(urls)}] Analyse : {page}")
links, error = fetch_outgoing_links(page)
if error:
data.append({"Page": page, "Lien sortant": "", "Note": error})
else:
if links:
for l in links:
data.append({"Page": page, "Lien sortant": l, "Note": ""})
else:
data.append({"Page": page, "Lien sortant": "", "Note": "Aucun lien sortant détecté"})
time.sleep(DELAY_BETWEEN_REQUESTS)
df = pd.DataFrame(data)
df.to_excel(OUTPUT_FILE, index=False)
print(f"\n✅ Fichier généré : {OUTPUT_FILE} (lignes : {len(df)})")
if __name__ == "__main__":
main()
Une fois le script copié, il vous faut personnaliser le domaine dans la partie CONFIG. C’est très simple à faire, rendez-vous dans le deuxième paragraphe du script appelé « # ———- CONFIG ———-« . Ici, il vous suffit de modifier le DOMAIN en insérant votre nom de domaine, par exemple « monsiteinternet.com ». Une fois que c’est fait, vous pouvez lancer le script en réalisant un double clic dessus. Un fichier Excel se crée automatiquement, contenant tous les liens sortants de votre site internet.
Voici à quoi ressemble votre dossier une fois le script exécuté :

Pourquoi est-ce important de connaître tous les liens qui partent de votre site web ?
En SEO, les liens qui partent de votre site internet transmettent ce que l’on appelle du jus SEO, autrement dit de la crédibilité aux yeux de Google. Ainsi, à chaque fois que vous créez un lien vers un autre domaine, ce dernier se voit attribuer une infime partie de jus SEO et permet aux moteurs de recherche d’évaluer sa crédibilité. Aussi, certains liens créés il y a longtemps peuvent entraîner des erreurs. En effet, certains sites internet migrent vers de nouveaux domaines, sont rachetés ou tout simplement supprimés car abandonnés.
Corriger des erreurs
Le premier intérêt de connaître tous vos liens sortants est la possibilité de faire le ménage, autrement dit d’en supprimer une bonne partie. Cette démarche est intéressante surtout lorsque vos liens entraînent une erreur. Ces erreurs font partie des erreurs techniques dont les moteurs de recherche tiennent compte pour évaluer la qualité de votre site internet. Si quelques erreurs peuvent arriver, surtout si votre site a publié du contenu il y a longtemps, un trop grand nombre d’erreurs va baisser votre ranking (autrement dit votre positionnement) aux yeux des algorithmes.
Faire le ménage dans vos liens sortants
Le second intérêt est que cela vous permet de nettoyer des liens sortant dont vous ne voulez plus, peu importe la raison ! Avec le script Python que vous pouvez exécuter en quelques secondes, vous connaissez tous les liens en provenance de votre site web ainsi que les urls sur lesquels ils sont positionnés. Cela vous fait gagner un temps précieux et vous évite de perdre du temps à les rechercher.
Combien cela coûte ? Quel budget ?
Le coût de cette démarche est très simple : il est nul ! Vous n’avez aucun prix à payer ou budget à prévoir. Même en termes de connaissances, nul besoin de maîtriser le langage Python avec le script que nous avons créé. Il vous suffit uniquement de le lancer et vous aurez automatiquement un fichier Excel constitué de deux colonnes :
- Une première colonne indiquant l’url de votre lien sortant,
- Une seconde colonne indiquant l’url de votre site sur laquelle ce lien est inséré.