The bill has angered Americans and Russians who argue it victimises children to make a political point, cutting off a route out of frequently dismal orphanages for thousands of children.
The Russian-language hashtag “PutinEatsKids” was trending on Twitter just minutes after Putin signed it.
Unicef estimates that there are about 740,000 children not in parental custody in Russia while about 18,000 Russians are on the waiting list to adopt a child.
The law also blocks dozens of Russian children now being adopted by American families from leaving the country. The US is the biggest destination for adopted Russian children – more than 60,000 of them have been taken in by Americans over the past two decades.
The measure is retaliation for an American law that calls for sanctions against Russian officials deemed human rights violators. The US State Department has said it regrets the Russian Duma’s decision to pass the bill, arguing it would prevent many children from growing up in families.
Children’s rights ombudsman Pavel Astakhov says that 46 children who were about to be adopted in the US would remain in Russia if the bill comes into effect.
Mr Putin has said that US authorities routinely let Americans suspected of violence toward Russian adoptees go unpunished.
The passage of the bill followed weeks of a hysterical media campaign on Kremlin-controlled television that lambasts American adoptive parents and adoption agencies that allegedly bribe their way into getting Russian children.
A few MPs claimed that some Russian children were adopted by Americans only to be used for organ transplants and become sex toys or cannon fodder for the US Army.
A spokesman with Russia’s dominant Orthodox Church said that the children adopted by foreigners and raised outside the church will not “enter God’s kingdom”.