German ministers have approved plans to fine social media firms up to 50m euros ($53.3m; £42.7m) if they fail to remove hate speech and fake news quickly.
The proposed law would give the companies 24 hours to block obviously criminal content after it had been reported, and seven days for other offensive material.
However, a plan to state explicitly that penalties could be imposed after a single infraction has been dropped.
Facebook has voiced concern.
“We work very hard to remove illegal content from our platform and are determined to work with others to solve this problem,” a spokeswoman told the BBC.
“As experts have pointed out, this legislation would force private companies rather than the courts to become the judges of what is illegal in Germany.”
Twitter, Snapchat and Google have yet to comment.
Germany’s justice minister said hate speech posed a grave danger to harmonious living in a free, open and democratic society.
“Twitter only removes 1% of these hate speeches, Facebook removes less than 50%,” said Heiko Maas.
“But we know this is possible, because YouTube manages to remove 99% of them.
“The freedom of speech is only limited by the law.”
Racism and hate speech are believed to have become more prevalent on German social media following the arrival of large number of refugees in the country.
The draft law was unveiled last month. Since then, it has been amended to add child abuse imagery as a category requiring a rapid response, as well as to acknowledge that the fining authority must be careful not to undermine freedom of speech.
But a local tech lobby group, Bitkom, is concerned that social media platforms will feel compelled to err in favour of censorship.
“Given the short deadlines and the severe penalties, providers will be forced to delete doubtful statements as a precaution,” said the group’s manager, Bernhard Rohleder.
“That would have a serious impact on free speech on the internet.”