This post exists because a third party platform called Bloglovin went from reading our live RSS to republishing our content using the RSS.

RSS is a time-limited format – the latest items (usually twenty) are the only things made available. When read in an RSS reader, or standard content display, those items have a time, a date, and they expire and are replaced by new content.

What Bloglovin is doing is copying the entire content of the feed, changing its format to their own, and producing it in full on their own site. They then mark their URL as canonical for the search engine indexers. This means that traffic, advertising, etc, all goes to them. They also strip out of their reformatting the books and sponsors who actually support Bookangel.

The image on the left shows their site. The subscribe page subscribes you to Bloglovin, not Bookangel. Such Subscribers would never receive our reviews, updates, Distinctive Cat updates,Review Aside, etc. because Bloglovin’ doesn’t get them.

Bloglovin’ say that if we want them to stop, we must take down our RSS for everyone.

This is not using RSS as a public feed because the items never expire.

This is republishing other people’s content for money.

They refuse to follow DMCA claiming the content is publicly available. The problem is that once the RSS entry expires, the content is not publicly available – it is a temporary licence – but it remains on their site permanently. There is no difference between that and if they were to scrape our site itself, which is plagarism.

Therefore we have now blocked Bloglovin’ from our site.

(For those concerned the third party reviews project here does not take full content ever, just 20 words, does not give it a distinct URL far less a canonical one, and always provides dofollow links back. Also the reviews are all manually submitted and checked).

To block Bloglovin:

deny from 194.0.59.
deny from .*bloglovin\.com.*
Add these two lines to your htaccess. For full details, if you don’t use Apache regularly, see here:

if ( $http_user_agent ~* ‘Bloglovin’ ) {
return 403;
For full details see: