James Rodríguez anunciou, nesta terça-feira (15/9), sua aposentadoria da seleção colombiana, encerrando uma trajetória de 15 anos com a camisa do país. Aos 35 anos, o meia se despede da equipe nacional após disputar três Copas do Mundo e protagonizar alguns dos principais momentos da história recente da Colômbia.
“Saio tranquilo porque sei que dei absolutamente tudo (…) A toda a Colômbia, obrigado”, anunciou o jogador em um vídeo divulgado em suas redes sociais.
(function () {
var AD_UNIT = ‘ld-m-art-r1-01’;
var PLACEMENT = ‘846612’;
var DEVICE = ‘mobile’;
var MIN_H = 280;
var done = false;
function rightDevice() {
var isMobile = window.matchMedia
? window.matchMedia(‘(max-width: 767px)’).matches
: (document.documentElement.clientWidth || 0) < 768;
return DEVICE === 'mobile' ? isMobile : !isMobile;
}
function box() {
return document.getElementById(AD_UNIT);
}
function hide() {
var b = box();
if (b) b.style.display = 'none';
}
function register() {
if (done) return;
done = true;
if (!rightDevice()) {
hide();
return;
}
var b = box();
if (b) {
b.style.minHeight = MIN_H + 'px';
}
window.ANConfig = window.ANConfig || {};
window.ANConfig.placements = window.ANConfig.placements || [];
window.ANConfig.placements.push({
adUnitId: AD_UNIT,
propertyId: '105130',
placementId: PLACEMENT,
data: {},
consent: true,
onLoad: function (adUnitId) {},
onFail: function (adUnitId) {
hide();
}
});
setTimeout(function () {
var c = box();
if (c && !c.getElementsByTagName('iframe').length) {
hide();
}
}, 6000);
}
var C = window.__ldAdConsent;
if (!C) {
C = window.__ldAdConsent = {
subs: [],
fired: false
};
C.granted = function () {
var v = window.LD_AD_CONSENT;
return v === true ||
v === 1 ||
v === 'true';
};
C.fire = function () {
if (C.fired) return;
C.fired = true;
if (C.poll) {
clearInterval(C.poll);
C.poll = null;
}
for (var i = 0; i < C.subs.length; i++) {
try {
C.subs[i]();
} catch (e) {}
}
var inject = function () {
if (document.getElementById('ap-js')) {
return;
}
var ver = new Date()
.toISOString()
.split(':')[0]
.replace(/D/g, '');
var apjs = document.createElement('script');
apjs.type = 'text/javascript';
apjs.async = true;
apjs.setAttribute('id', 'ap-js');
apjs.src =
'https://central-brazil.ap.giraffa.tech/js/ap-gjanout.js?v=' + ver;
document.head.appendChild(apjs);
};
if (document.readyState === 'loading') {
document.addEventListener(
'DOMContentLoaded',
function () {
setTimeout(inject, 0);
}
);
} else {
setTimeout(inject, 0);
}
};
function onSignal(e) {
if (
(e && e.detail === true) ||
C.granted()
) {
C.fire();
}
}
window.addEventListener(
'ld-ad-consent',
onSignal
);
document.addEventListener(
'ld-ad-consent',
onSignal
);
if (typeof window.__tcfapi === 'function') {
window.__tcfapi(
'addEventListener',
2,
function (tcData, success) {
if (!success || !tcData) {
return;
}
if (
tcData.eventStatus !== 'tcloaded' &&
tcData.eventStatus !== 'useractioncomplete'
) {
return;
}
if (
tcData.purpose &&
tcData.purpose.consents &&
tcData.purpose.consents[1]
) {
C.fire();
}
}
);
}
C.poll = setInterval(function () {
if (C.fired) {
clearInterval(C.poll);
C.poll = null;
return;
}
if (C.granted()) {
C.fire();
}
}, 250);
}
C.subs.push(register);
if (C.fired) {
register();
} else if (C.granted()) {
C.fire();
}
})();
Veja as fotos
(function () {
var AD_UNIT = ‘ld-m-art-r1-02’;
var PLACEMENT = ‘846681’;
var DEVICE = ‘mobile’; /* ‘mobile’ or ‘desktop’ */
var MIN_H = 280; /* tallest size listed for this position */
var done = false;
/* This block belongs to one device. Mobile and desktop blocks may both sit in the
same responsive template: each checks the viewport and only the matching one
asks for an ad, so they never both render. Breakpoint 768px, tablets count as
desktop. If your template already renders per device server-side this is simply
a second guard and changes nothing. */
function rightDevice() {
var isMobile = window.matchMedia
? window.matchMedia(‘(max-width: 767px)’).matches
: (document.documentElement.clientWidth || 0) < 768;
return DEVICE === 'mobile' ? isMobile : !isMobile;
}
function box() { return document.getElementById(AD_UNIT); }
function hide() { var b = box(); if (b) b.style.display = 'none'; }
/* Registers this position. Never called without a positive consent answer. */
function register() {
if (done) return;
done = true;
if (!rightDevice()) { hide(); return; }
var b = box();
if (b) b.style.minHeight = MIN_H + 'px'; /* reserve only now, never before */
window.ANConfig = window.ANConfig || {};
window.ANConfig.placements = window.ANConfig.placements || [];
window.ANConfig.placements.push({
adUnitId: AD_UNIT,
propertyId: '105130',
placementId: PLACEMENT,
data: {},
consent: true,
onLoad: function (adUnitId) {},
onFail: function (adUnitId) { hide(); }
});
/* Safety net: if nothing has rendered here shortly, release the space.
No position can leave a permanent blank gap, whatever goes wrong. */
setTimeout(function () {
var c = box();
if (c && !c.getElementsByTagName('iframe').length) hide();
}, 6000);
}
/* One shared coordinator per page, created by whichever block runs first.
Every block registers with it, so when consent arrives they all register in
the SAME tick and the loader is injected once, afterwards. The loader drains
its queue once, so a block that registered late would never be served. */
var C = window.__ldAdConsent;
if (!C) {
C = window.__ldAdConsent = { subs: [], fired: false };
C.granted = function () {
var v = window.LD_AD_CONSENT;
return v === true || v === 1 || v === 'true';
};
C.fire = function () {
if (C.fired) return;
C.fired = true;
if (C.poll) { clearInterval(C.poll); C.poll = null; }
for (var i = 0; i < C.subs.length; i++) {
try { C.subs[i](); } catch (e) {}
}
var inject = function () { /* now, with all of them queued */
if (document.getElementById('ap-js')) return;
var ver = new Date().toISOString().split(':')[0].replace(/D/g, '');
var apjs = document.createElement('script');
apjs.type = 'text/javascript';
apjs.async = true;
apjs.setAttribute('id', 'ap-js');
apjs.src = 'https://central-brazil.ap.giraffa.tech/js/ap-gjanout.js?v=' + ver;
document.head.appendChild(apjs);
};
/* The loader drains its queue once, so it must not be fetched while the page is
still parsing: blocks further down would register after the drain and be lost.
Consent known before the body parses is the normal returning-visitor case. */
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', function () { setTimeout(inject, 0); });
} else {
setTimeout(inject, 0);
}
};
function onSignal(e) {
if ((e && e.detail === true) || C.granted()) C.fire();
}
window.addEventListener('ld-ad-consent', onSignal);
document.addEventListener('ld-ad-consent', onSignal); /* the event does not bubble */
/* 2. IAB TCF v2, used automatically if it ever resolves. Purpose 1 gates storing
and accessing information on the device, which ad serving requires. Consent
is required whether or not gdprApplies is set: gdprApplies being false is
never treated as permission. (Measured here 28 Aug 2026: it is true.) */
if (typeof window.__tcfapi === 'function') {
window.__tcfapi('addEventListener', 2, function (tcData, success) {
if (!success || !tcData) return;
if (tcData.eventStatus !== 'tcloaded' &&
tcData.eventStatus !== 'useractioncomplete') return;
if (tcData.purpose && tcData.purpose.consents && tcData.purpose.consents[1]) C.fire();
});
}
/* 1. Your signal. Set window.LD_AD_CONSENT = true when consent is known.
The order does not matter and there is no time limit: this watch runs
until consent arrives or the page is closed. */
C.poll = setInterval(function () {
if (C.fired) { clearInterval(C.poll); C.poll = null; return; }
if (C.granted()) C.fire();
}, 250);
}
C.subs.push(register);
if (C.fired) register(); /* consent already given before this block parsed */
else if (C.granted()) C.fire();
})();
A história de James com a seleção ganhou dimensão mundial na Copa de 2014, no Brasil. Aos 22 anos, o camisa 10 terminou o torneio como artilheiro, com seis gols, e ainda recebeu o prêmio de gol mais bonito da competição pelo voleio marcado contra o Uruguai, no Maracanã. A campanha levou a Colômbia pela primeira vez às quartas de final de um Mundial, fase em que a equipe foi eliminada pelo Brasil, por 2 a 1.
Depois do Mundial no Brasil, James voltou a defender a seleção na Copa de 2018, na Rússia. A Colômbia chegou às oitavas de final e foi eliminada pela Inglaterra nos pênaltis.
O meia não disputou a Copa do Mundo de 2022, já que a Colômbia não conseguiu se classificar para o torneio no Catar. Quatro anos depois, retornou ao Mundial em 2026 e disputou sua terceira Copa. A seleção colombiana acabou eliminada nas oitavas de final.
Ao todo, James deixa a seleção com 131 partidas e 31 gols, segundo dados divulgados pela AFP. Com esse número, é o segundo maior artilheiro da história da Colômbia, atrás apenas de Radamel Falcao García, que marcou 36 vezes. O meia também divide com o goleiro David Ospina o recorde de jogos pela equipe nacional.
Em sua mensagem de despedida, James também falou sobre o objetivo que carregou desde o início da trajetória pela seleção. Para o jogador, a intenção sempre foi deixar a equipe em uma condição melhor do que aquela encontrada quando chegou.
“Desde que cheguei à seleção, tive um pensamento muito claro: que, no dia em que partisse, pudesse sentir que deixava esta camisa em um patamar mais elevado do que quando a encontrei (…) sinto que consegui”, disse o craque em seu vídeo de despedida.
James estreou pela seleção principal em 2011 e rapidamente se tornou um dos principais nomes da geração colombiana. A Copa de 2014 foi o ponto mais alto desse percurso e também abriu caminho para sua transferência ao Real Madrid, que o contratou após o Mundial.
Novo capítulo no futebol de clubes
A aposentadoria da seleção acontece poucos dias depois de James ser anunciado como novo jogador do Atlético Nacional de Medellín. O clube colombiano será o nono time defendido pelo meia em um período de seis anos.
(function () {
var AD_UNIT = ‘ld-m-art-r1-03’;
var PLACEMENT = ‘846688’;
var DEVICE = ‘mobile’; /* ‘mobile’ or ‘desktop’ */
var MIN_H = 280; /* tallest size listed for this position */
var done = false;
/* This block belongs to one device. Mobile and desktop blocks may both sit in the
same responsive template: each checks the viewport and only the matching one
asks for an ad, so they never both render. Breakpoint 768px, tablets count as
desktop. If your template already renders per device server-side this is simply
a second guard and changes nothing. */
function rightDevice() {
var isMobile = window.matchMedia
? window.matchMedia(‘(max-width: 767px)’).matches
: (document.documentElement.clientWidth || 0) < 768;
return DEVICE === 'mobile' ? isMobile : !isMobile;
}
function box() { return document.getElementById(AD_UNIT); }
function hide() { var b = box(); if (b) b.style.display = 'none'; }
/* Registers this position. Never called without a positive consent answer. */
function register() {
if (done) return;
done = true;
if (!rightDevice()) { hide(); return; }
var b = box();
if (b) b.style.minHeight = MIN_H + 'px'; /* reserve only now, never before */
window.ANConfig = window.ANConfig || {};
window.ANConfig.placements = window.ANConfig.placements || [];
window.ANConfig.placements.push({
adUnitId: AD_UNIT,
propertyId: '105130',
placementId: PLACEMENT,
data: {},
consent: true,
onLoad: function (adUnitId) {},
onFail: function (adUnitId) { hide(); }
});
/* Safety net: if nothing has rendered here shortly, release the space.
No position can leave a permanent blank gap, whatever goes wrong. */
setTimeout(function () {
var c = box();
if (c && !c.getElementsByTagName('iframe').length) hide();
}, 6000);
}
/* One shared coordinator per page, created by whichever block runs first.
Every block registers with it, so when consent arrives they all register in
the SAME tick and the loader is injected once, afterwards. The loader drains
its queue once, so a block that registered late would never be served. */
var C = window.__ldAdConsent;
if (!C) {
C = window.__ldAdConsent = { subs: [], fired: false };
C.granted = function () {
var v = window.LD_AD_CONSENT;
return v === true || v === 1 || v === 'true';
};
C.fire = function () {
if (C.fired) return;
C.fired = true;
if (C.poll) { clearInterval(C.poll); C.poll = null; }
for (var i = 0; i < C.subs.length; i++) {
try { C.subs[i](); } catch (e) {}
}
var inject = function () { /* now, with all of them queued */
if (document.getElementById('ap-js')) return;
var ver = new Date().toISOString().split(':')[0].replace(/D/g, '');
var apjs = document.createElement('script');
apjs.type = 'text/javascript';
apjs.async = true;
apjs.setAttribute('id', 'ap-js');
apjs.src = 'https://central-brazil.ap.giraffa.tech/js/ap-gjanout.js?v=' + ver;
document.head.appendChild(apjs);
};
/* The loader drains its queue once, so it must not be fetched while the page is
still parsing: blocks further down would register after the drain and be lost.
Consent known before the body parses is the normal returning-visitor case. */
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', function () { setTimeout(inject, 0); });
} else {
setTimeout(inject, 0);
}
};
function onSignal(e) {
if ((e && e.detail === true) || C.granted()) C.fire();
}
window.addEventListener('ld-ad-consent', onSignal);
document.addEventListener('ld-ad-consent', onSignal); /* the event does not bubble */
/* 2. IAB TCF v2, used automatically if it ever resolves. Purpose 1 gates storing
and accessing information on the device, which ad serving requires. Consent
is required whether or not gdprApplies is set: gdprApplies being false is
never treated as permission. (Measured here 28 Aug 2026: it is true.) */
if (typeof window.__tcfapi === 'function') {
window.__tcfapi('addEventListener', 2, function (tcData, success) {
if (!success || !tcData) return;
if (tcData.eventStatus !== 'tcloaded' &&
tcData.eventStatus !== 'useractioncomplete') return;
if (tcData.purpose && tcData.purpose.consents && tcData.purpose.consents[1]) C.fire();
});
}
/* 1. Your signal. Set window.LD_AD_CONSENT = true when consent is known.
The order does not matter and there is no time limit: this watch runs
until consent arrives or the page is closed. */
C.poll = setInterval(function () {
if (C.fired) { clearInterval(C.poll); C.poll = null; return; }
if (C.granted()) C.fire();
}, 250);
}
C.subs.push(register);
if (C.fired) register(); /* consent already given before this block parsed */
else if (C.granted()) C.fire();
})();
Antes de retornar ao futebol colombiano, James passou por clubes como Real Madrid, Bayern de Munique, Everton, Al-Rayyan, Olympiacos, São Paulo e León. O meia também defendeu o Minnesota United, nos Estados Unidos, antes de acertar com o Atlético Nacional.






