mod rewrite - How to check is canonicalized domains are being used? Apache 301 redirect does not preserve referrer
I have multiple domains which are setup to redirect (301) to my main domain. However I know some of these domains have little to no value in terms of SEO and I would like to get rid of them. But a concern of mine is that there may exist backlinks under these domains.
I checked google analytics and none of these domains came up, but I decided to confirm they would registered if they were used. Unfortunately in testing, my Apache 301 redirect does not seem to preserve the referring URL. I know this is largely dependent on the client, but it seems the consensus is that most of the time this is preserved.
- Are there any settings in modern browsers which instruct them to remove a referrer when redirected? I'm getting this behavior in Firefox, Chrome and IE.
- Is there anything I can do on the server side which may influence a client to preserve the referrer?
- If this is a dead end, what other methods are there to check if there are any backlinks or usages of these aliased domains?
Here is my redirect:
## Redirect non www to www
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com$1 [R=301,L]
Answer
An referrer is not the same as a redirect.
If you call a page e.g. http://www.example.com
and on the page you have one or more resource like Images, CSS and JavaScript files, the browser will get them as well. If the Browser do so he send the original page, in our case this is http://www.example.com
as a referrer to the server. Even this is optimal all modern browser do so. There is only one exception if the origin page is a https
URL but the resources is http
.
Now a redirect is something completely different. If you request is going to a server and the server responds with a 301 redirect the browser understand that the location has changed and therefor requesting the new location.
But if a 301 is for a resource (image,css,js,etc.) the refer will usually send again to the new location. The same exception applies here with https
and http
(see above).
A referrer will not be send by the Browser if a user enter a URL into the browser e.g http://example.com
and this URL will be redirected to http://www.example.com
, because http://example.com
is not the referring page it was just redirected to a new location.
Now to the possible solution: you could add some UTM Parameters to your redirect https://en.wikipedia.org/wiki/UTM_parameters . This will be tract by Google Analytics. So you see if a page was called with this UTM Parameters and that means that it was called by a redirect. You can do statistic of how many times that page is called with this parameter or what source was the most used etc. Of course if someone have disabled JS or have any Anti-Tracking plug in than you will not see this call in your statistic.
## Redirect non www to www
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com$1?utm_source=%{HTTP_HOST}/%{REQUEST_URI}%?{QUERY_STRING}&utm_campaign=redirect [R=301,QSA,L]
Comments
Post a Comment