Han ställde också in en utredning om maktmissbruk som avslöjats genom hemliga inspelningar, och sade att han ville "göra slut på våndan" inför de tidiga valen i juni.
Men hans agerande fördömdes både av oppositionen och av EU:s tjänstemän.
Makedonien har varit i kaos sedan inspelningarna släpptes 2015.
I ett tv-tal på tisdagen sade president Ivanov att han agerade för att "försvara nationella intressen".
"Jag har bestämt mig för att sätta stopp för våndan och, metaforiskt talat, att skära en knut," sade han, utan att hänvisa till några politiker vid namn.
Oppositionsledaren Zoran Zaev sade att flytten var olaglig och uppmanade demonstranter att samlas i huvudstaden Skopje. Flera hundra personer samlades senare utanför åklagarämbetet.
Under tiden sade EU:s utvidgningskommissionär Johannes Hahn: "Dagens åtgärder av president Ivanov är inte i linje med min förståelse av rättsstatsprincipen."
Johannes Hahn tillade att denna åtgärd satte Makedoniens EU-medlemskapsambitioner på spel.
Krisen utlöstes av hemliga inspelningar som verkar visa ministrar som konspirerar om röstning och mörkläggningen av ett mord.
Zaev har släppt en stadig ström av inspelningar sedan februari 2015 och anklagat regeringen för att ha avlyssnat 20.000 människor, däribland politiker, journalister och religiösa ledare.
Han säger att mängder av läckta inspelningar avslöjar korruption på högsta myndighetsnivå, inklusive dålig förvaltning av medel, tvivelaktiga lagföringar av motståndare och till och med mörkläggning av mord.
Regeringen förnekar anklagelserna och har i gengäld anklagat Zaev för att försöka "förstöra" Balkannationen.
Han avvisar påståendet.
Den makedonske presidenten Gjorge Ivanov har benådat alla politiker invecklade i en stor korruptionsskandal som utlöste en stor politisk kris.