The bill introduces fines for publishing materials showing disrespect to the state, its symbols and government organs. Repeat offenders could face a 15-day jail sentence.
The Kremlin-controlled lower house, the State Duma, approved the bill in the final, third reading. It also endorsed a separate bill that will block anyone publishing "fake news" online, that is perceived to threaten public health and security.
The bills are expected to quickly pass in the upper house before President Vladimir Putin signs them into laws.
Critics see the legislation as part of Kremlin efforts to stifle criticism and tighten control.
During Thursday's debates, Communist lawmaker Alexei Kurinnyi warned that the authorities could use the "fake news" bill to punish critics.
Valery Gartung of the Just Russia faction also criticized the legislation, saying its vagueness will open the way for selective interpretation.