I'm looking for a trick/workaround. My years-old scheme for serving different versions of a page to different devices works great ...except it doesn't mesh well with Google's handling of image sitemaps.

Each of my pages is actually implemented as a "set" of pages, one "generic" (and canonical) entry page, and several "phantom" pages. The generic/landing page sniffs its environment, then vectors to the best fit specific phantom page. Only the generic page appears in Google's index, not any of the phantom pages that are also part of the page-set. This scheme has worked fine for several years.

The new twist is I now want Google to list some of my images, and am constructing a sitemap. My question is how to list the "hosting" page for an image in the sitemap. My actual hosting page for each image is one of my phantom pages; the generic page hosts only thumbnails.

The current -clearly incorrect- situation is the sitemap lists the actual phantom page as "hosting" the image, and that phantom page is marked NOINDEX (and uses rel="canonical" to point at the generic page). When Google crawls this, it complains that a listed page is marked NOINDEX. Further, if a user asks Google to visit the image, they are presented with the literal sitemap XML (rather than a graphic page displaying images).

How can I construct a sitemap so Google [visit] displays correctly, yet only the generic page (not any of the phantom pages in the page-set) is included in its index?

EDIT: April 2021 - the question was heavily edited for clarity, as the initial answers suggested the question could be easily misunderstood.

2 Answers 2


My tests in May 2021 show that (as noted in the other answer) Google does indeed require the URL hosting an image to actually be the exact URL, not just a closely related one. In other words Google assumes oneURL <=> onePage, and does not understand or handle the situation where several closely related URLs form one page "set". Or to put it yet another way, the workaround I was searching for does not seem to exist.

  • If the sitemap lists the desired image as being hosted by the "master" page, but in fact the desired image is referenced only on a related "phantom" page, Google does not list the desired image at all.

  • If the sitemap lists the desired image as being hosted by a "phantom" page, but that page is marked NOINDEX, Google will list the image as being hosted by the sitemap itself rather than by any page.

  • If the sitemap lists the desired image as being hosted by a "phantom" page, but that page is marked NOINDEX, and in addition the sitemap itself is excluded from indexing by an X-Robots-Tag header, Google will incorrectly list the image as being hosted by the very first page mentioned in the sitemap.

  • If the sitemap lists the desired image as being hosted by an unmarked "phantom" page, the "phantom" page will appear in Google's index as well as the "master" page. Google does not make use of the 'canonical' link to tie the set of URLs together into a single logical page. Google apparently (I'm unsure about this) splits the search weight of the page between the "master" page and the "phantom" page, as though they were completely unrelated separate pages.


Google image search has people click through to the page containing the image, not the image itself. It needs an index-able landing page containing the image to index the image. There is no way to have Google image search index an image without using it on a page that can be indexed.

You have three options:

  1. Decide not to have this image indexed.
  2. Make the page containing the image index-able.
  3. Use the same image on some different index-able page.

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.