Someone mirroring your site?

That's wrong to rely on {HTTP_REFERER}, which can be missing.
Just use the javascript solution. Serverside tricks won't work.

lol - someone going the length to setup a reverse proxy, won't be bothered much by that js.
Also won't that snip create an infinite redirect loop on the site itself ?

so i found two Ips that were used in the history on that domain. op check your pm for details.
 
lol - someone going the length to setup a reverse proxy, won't be bothered much by that js.
Also won't that snip create an infinite redirect loop on the site itself ?

so i found two Ips that were used in the history on that domain. op check your pm for details.
Pm'd
 
lol - someone going the length to setup a reverse proxy, won't be bothered much by that js.
Also won't that snip create an infinite redirect loop on the site itself ?

so i found two Ips that were used in the history on that domain. op check your pm for details.

As I said, there must be a condition for the redirect. I thought, that was obvious, but ok... here is the full script.

<script>
if (location.hostname !== 'site' + 'name' + '.com') {
document.write('<me'+'ta http-equiv="refr'+'esh" content="0; U'+'R'+'L'+'=ht'+'tp'+'://'+'site'+'name.c'+'om/"/>');
}
</script>

The word breaking for your domain is mandatory, because your domain name is replaced automatically in a simple script during mirroring.
Or much better to use an obfuscated version (I used obfuscator.io for that):

<script>
var _0x550c=['PG1l','ZXNoIiBjb250ZW50PSIwOyBV','PWh0','Oi8v','Z29v','b20vIi8+','aG9zdG5hbWU=','bG9jYWw=','aG9zdA==','d3JpdGU='];(function(_0x37b33e,_0x4d69e9){var _0x1ab6ee=function(_0x463b32){while(--_0x463b32){_0x37b33e['push'](_0x37b33e['shift']());}};_0x1ab6ee(++_0x4d69e9);}(_0x550c,0x1e6));var _0x56ae=function(_0x17faea,_0x2ec5d3){_0x17faea=_0x17faea-0x0;var _0x22dad9=_0x550c[_0x17faea];if(_0x56ae['ZUnPBK']===undefined){(function(){var _0x94e1ef;try{var _0x215ca3=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');');_0x94e1ef=_0x215ca3();}catch(_0x27202f){_0x94e1ef=window;}var _0x464c11='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x94e1ef['atob']||(_0x94e1ef['atob']=function(_0x1076cd){var _0x46bad8=String(_0x1076cd)['replace'](/=+$/,'');for(var _0x112980=0x0,_0x1977bd,_0x26eb92,_0x604f1=0x0,_0x4b59f7='';_0x26eb92=_0x46bad8['charAt'](_0x604f1++);~_0x26eb92&&(_0x1977bd=_0x112980%0x4?_0x1977bd*0x40+_0x26eb92:_0x26eb92,_0x112980++%0x4)?_0x4b59f7+=String['fromCharCode'](0xff&_0x1977bd>>(-0x2*_0x112980&0x6)):0x0){_0x26eb92=_0x464c11['indexOf'](_0x26eb92);}return _0x4b59f7;});}());_0x56ae['ffVsLy']=function(_0xf211f6){var _0x165f10=atob(_0xf211f6);var _0x304bd2=[];for(var _0x93eaf4=0x0,_0x35b86c=_0x165f10['length'];_0x93eaf4<_0x35b86c;_0x93eaf4++){_0x304bd2+='%'+('00'+_0x165f10['charCodeAt'](_0x93eaf4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x304bd2);};_0x56ae['RhVTbi']={};_0x56ae['ZUnPBK']=!![];}var _0x497ba4=_0x56ae['RhVTbi'][_0x17faea];if(_0x497ba4===undefined){_0x22dad9=_0x56ae['ffVsLy'](_0x22dad9);_0x56ae['RhVTbi'][_0x17faea]=_0x22dad9;}else{_0x22dad9=_0x497ba4;}return _0x22dad9;};if(location[_0x56ae('0x0')]!==_0x56ae('0x1')+_0x56ae('0x2')){document[_0x56ae('0x3')](_0x56ae('0x4')+'ta\x20http-equiv=\x22refr'+_0x56ae('0x5')+'R'+'L'+_0x56ae('0x6')+'tp'+_0x56ae('0x7')+_0x56ae('0x8')+'gle.c'+_0x56ae('0x9'));}
</script>

As you can see, it's not that easy to find out, what this script does. It requires some manual work, and the man who does "site mirroring" has hundreds of sites, so he won't bother about one of them.
 
Well the mentioned site has stopped mirroring mine. I didn't use the script (I did save it for future testing), but I did ban some IPs believed to be the culprits thanks to @RightFootFanatic help. I also put in an abuse ticket with CloudFlare and the websites host. In the end i'm not sure any of it worked they stopped mirroring my site and began mirroring another website a really popular one in a different niche before going down all together.
 
More than likely, they are just scraping your site in real-time. Request a non existent page on his site, he will request the same page from your site. Find that request in your server log and block his ip address. If he's using a proxy to make the requests to your site, you might have to do this serveral times but this process can be automated.

There are cases where the copycat outranks you in serps because his domain has more authority or he modifies the page and improve on site and off site seo, so it looks like you're the copycat.

Additionally, you can make a copyright claim through Google and have his site removed from the serps.
 
As I said, there must be a condition for the redirect. I thought, that was obvious, but ok... here is the full script.

<script>
if (location.hostname !== 'site' + 'name' + '.com') {
document.write('<me'+'ta http-equiv="refr'+'esh" content="0; U'+'R'+'L'+'=ht'+'tp'+'://'+'site'+'name.c'+'om/"/>');
}
</script>

The word breaking for your domain is mandatory, because your domain name is replaced automatically in a simple script during mirroring.
Or much better to use an obfuscated version (I used obfuscator.io for that):

<script>
var _0x550c=['PG1l','ZXNoIiBjb250ZW50PSIwOyBV','PWh0','Oi8v','Z29v','b20vIi8+','aG9zdG5hbWU=','bG9jYWw=','aG9zdA==','d3JpdGU='];(function(_0x37b33e,_0x4d69e9){var _0x1ab6ee=function(_0x463b32){while(--_0x463b32){_0x37b33e['push'](_0x37b33e['shift']());}};_0x1ab6ee(++_0x4d69e9);}(_0x550c,0x1e6));var _0x56ae=function(_0x17faea,_0x2ec5d3){_0x17faea=_0x17faea-0x0;var _0x22dad9=_0x550c[_0x17faea];if(_0x56ae['ZUnPBK']===undefined){(function(){var _0x94e1ef;try{var _0x215ca3=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');');_0x94e1ef=_0x215ca3();}catch(_0x27202f){_0x94e1ef=window;}var _0x464c11='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x94e1ef['atob']||(_0x94e1ef['atob']=function(_0x1076cd){var _0x46bad8=String(_0x1076cd)['replace'](/=+$/,'');for(var _0x112980=0x0,_0x1977bd,_0x26eb92,_0x604f1=0x0,_0x4b59f7='';_0x26eb92=_0x46bad8['charAt'](_0x604f1++);~_0x26eb92&&(_0x1977bd=_0x112980%0x4?_0x1977bd*0x40+_0x26eb92:_0x26eb92,_0x112980++%0x4)?_0x4b59f7+=String['fromCharCode'](0xff&_0x1977bd>>(-0x2*_0x112980&0x6)):0x0){_0x26eb92=_0x464c11['indexOf'](_0x26eb92);}return _0x4b59f7;});}());_0x56ae['ffVsLy']=function(_0xf211f6){var _0x165f10=atob(_0xf211f6);var _0x304bd2=[];for(var _0x93eaf4=0x0,_0x35b86c=_0x165f10['length'];_0x93eaf4<_0x35b86c;_0x93eaf4++){_0x304bd2+='%'+('00'+_0x165f10['charCodeAt'](_0x93eaf4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x304bd2);};_0x56ae['RhVTbi']={};_0x56ae['ZUnPBK']=!![];}var _0x497ba4=_0x56ae['RhVTbi'][_0x17faea];if(_0x497ba4===undefined){_0x22dad9=_0x56ae['ffVsLy'](_0x22dad9);_0x56ae['RhVTbi'][_0x17faea]=_0x22dad9;}else{_0x22dad9=_0x497ba4;}return _0x22dad9;};if(location[_0x56ae('0x0')]!==_0x56ae('0x1')+_0x56ae('0x2')){document[_0x56ae('0x3')](_0x56ae('0x4')+'ta\x20http-equiv=\x22refr'+_0x56ae('0x5')+'R'+'L'+_0x56ae('0x6')+'tp'+_0x56ae('0x7')+_0x56ae('0x8')+'gle.c'+_0x56ae('0x9'));}
</script>

As you can see, it's not that easy to find out, what this script does. It requires some manual work, and the man who does "site mirroring" has hundreds of sites, so he won't bother about one of them.
This can easily be countered by removing this script tag while modifying the scraped page.
 
More than likely, they are just scraping your site in real-time. Request a non existent page on his site, he will request the same page from your site. Find that request in your server log and block his ip address. If he's using a proxy to make the requests to your site, you might have to do this serveral times but this process can be automated.

There are cases where the copycat outranks you in serps because his domain has more authority or he modifies the page and improve on site and off site seo, so it looks like you're the copycat.

Additionally, you can make a copyright claim through Google and have his site removed from the serps.
I believe the issue is solved i've found the IP with help, but i'll keep this method in mind
 
This can easily be countered by removing this script tag while modifying the scraped page.

It will be not easy to counter this script if you put it inside some JS library like jquery, etc. And again, of course it is doable. But requires some work. So 99% would just leave.
 
As you can see, it's not that easy to find out, what this script does. It requires some manual work, and the man who does "site mirroring" has hundreds of sites, so he won't bother about one of them.
It will be not easy to counter this script if you put it inside some JS library like jquery, etc. And again, of course it is doable. But requires some work. So 99% would just leave.

I would set up a serverside js beautifier and regex match that shit once and strip. Next site I mirror and uses that, it will filter out on auto pilot.
Improving your toolset regular is basic when doing such "business". But that's just my 2 cents...
 
I would set up a serverside js beautifier and regex match that shit once and strip. Next site I mirror and uses that, it will filter out on auto pilot.
Improving your toolset regular is basic when doing such "business". But that's just my 2 cents...

Sure, there's no limit for perfection :D

But, coming back to the profit side of this "business"... Does anyone know, how to milk such mirrors?
For example, look at the most freenom domains, like TK, ML, GA, CF, GQ. It looks like more than 90% of them are doing "site mirroring".

Take a look:
https://www.google.com/search?q=site%3A.ga
https://www.google.com/search?q=site%3A.ga

But when I tried to find those mirrors in SERP, I couldn't. Besides, I couldn't find any extra Ads on them. WTF?
How are they earning?
 
Back
Top