I sell a software product.

I currently detect if the user agent identifies itself as Mac somehow. if so, the server generates the landing page, so its default download link is for Mac and shows a screenshot from Mac. (If not detected as mac, Windows download link and screenshot is shown.)

There may also be other pages where the default "download" link is patched depending on user agent, but that is all. No change in conent in any other way.

Could this "cloaking" become a problem? I don't think so, but curious if anyone has any experience on this with regards to e.g. Google or Bing penalizing.

I did consider having .htaccess redirect to a version having ?os=mac appended to URL (and use canonical to refer to main product landing page), but I would need to write code then to ensure all internal links then adds ?os=mac. However, I guess that could be the solution if necessary.

  • What do you do when the user agent doesn't match any of your downloads. Googlebot wouldn't and some users (maybe Linux) wouldn't. Nov 29, 2016 at 10:25
  • Windows screenshot + windows download is shown. (Only when Mac is positively identified through ua detection are mac download link + screenshot shown)
    – Tom
    Nov 29, 2016 at 20:48
  • I would thing that redirecting and using the parameter would be the safest option. Cloaking is when a user is shown something different than what googlebot sees. Google does check for cloaking by making requests from outside of it's network, however, I would not be betting that they would be using a Mac user agent. Still, it would be better to be safe than sorry. Cheers!!
    – closetnoc
    Nov 30, 2016 at 5:17

2 Answers 2


For usability, you should allow users to download the software for a different OS. For example, because the user has multiple OS and wants the software for a different one, or because the one buying the software is not the one using it.

This could, for example, be done with tabs.

If you offer tabs, the content for both OS is on the same page, and the only job of your user agent detection is to decide which tab should be opened by default for a user.

Then no somewhat sophisticated search engine bot should consider this to be cloaking, because the whole content on that page is accessible by everyone.

  • I agree with your usability assessment. But any thoughts on whether he is risking a Google penalty for cloaking? Dec 1, 2016 at 12:00
  • @StephenOstermiller: I could only make guesses; I don’t know any resource that could answer this definitely.
    – unor
    Dec 1, 2016 at 12:06
  • Another problem is showing the screenshot. Would look weird in tabs I think. However, I understand that it could be a possible solution by simply changing the default selected tab through e.g. JS code. (For reference, all downloads are available in a link called "all downloads" and all screenshots in a link called "screenshots")
    – Tom
    Dec 2, 2016 at 6:36

I don't think you are risking a cloaking penalty in this case. Cloaking is when you do something different for search engine bots than for regular users. As long as you are treating the bot like the majority of your users, you should be fine.

I am aware of two other high profile download sites that do similar things. If they can do it, you should be able to do it too.


https://www.mozilla.org/en-US/firefox/new/ changes the download button based on your user agent


https://java.com/en/download/ has a single button that links to a redirector script. That script redirects different places based on user agent.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.