diff --git a/ecrire/inc/lien.php b/ecrire/inc/lien.php
index 2bb3cf7d143afc3cc56765a078b1ab60ca71dfe9..6f812f108d94a118cd84b7d880b8425471f21dc4 100644
--- a/ecrire/inc/lien.php
+++ b/ecrire/inc/lien.php
@@ -36,11 +36,8 @@ function inc_lien_dist($lien, $texte='', $class='', $title='', $hlang='', $rel='
 	elseif (preg_match('/^\s*mailto:/',$lien)) # pseudo URL de mail
 		$class = "spip_mail";
 	elseif (preg_match('/^<html>/',$lien)) # cf traiter_lien_explicite
-		$class = "spip_url";
-
-	// spip_out sur tous les liens externes
-	if (preg_match(',^https?://,S', $lien))
-		$class = trim("$class spip_out");
+		$class = "spip_url spip_out";
+	elseif (!$class) $class = "spip_out"; # si pas spip_in|spip_glossaire
 
 	// Si l'objet n'est pas de la langue courante, on ajoute hreflang
 	if (!$hlang AND $lang!==$GLOBALS['spip_lang'])
@@ -49,7 +46,12 @@ function inc_lien_dist($lien, $texte='', $class='', $title='', $hlang='', $rel='
 	$lang = ($hlang ? " hreflang='$hlang'" : '');
 
 	if ($title) $title = ' title="'.texte_backend($title).'"';
+
+	// rel=external pour les liens externes
+	if (preg_match(',^https?://,S', $lien))
+		$rel = trim("$rel external");
 	if ($rel) $rel = " rel='$rel'";
+
 	$lien = "<a href='$lien' class='$class'$lang$title$rel>$texte</a>";
 
 	# ceci s'execute heureusement avant les tableaux et leur "|".
diff --git a/prive/spip_style.css b/prive/spip_style.css
index 7f1ced012fb07d42f7b2d30f585a4387c819ff8d..089f038592383a52472bea2d3ce5a7d25c4b0444 100644
--- a/prive/spip_style.css
+++ b/prive/spip_style.css
@@ -52,7 +52,7 @@ a.spip_ancre {} /* liens internes a la page */
 a.spip_in {} /* liens internes */
 a.spip_mail { color: #900; }
 a.spip_mail:before { content: "\002709"; } /* liens vers un email */
-a.spip_out { color: #009; } /* liens sortants */
+a.spip_out,a[rel=external] { color: #009; } /* liens sortants */
 a.spip_url { color: #009; } /* liens url sortants */
 a.spip_glossaire { color: #060; } /* liens vers encyclopedie */
 a.spip_glossaire:hover { text-decoration: underline overline; }