An International SEO Implementation Tale – Sitemaps: rel=”alternate” hreflang=”x”

Those of you who follow me on Twitter will know that over the 6 or so weeks, I’ve been digging around for information and details on results from the implementation of rel=”alternate” and hreflang on sites.

Basically, this is a relatively new option from Google to appropriately mark-up your webpages to tell them that you know there are multiple versions of what is quite possibly mostly the same page that are targeting visibility in different countries/languages, and that here are details on which country each of these pages are targeting.

What it won’t do, is “improve the rankings” that a site has. The idea is, that wherever a site (or group of websites) appear in search, if marked up with rel=”alternate” then it will swap out the ranking  page based on region – so UK searchers would get a UK page, the US the US page, rather than always being the page that would rank. So, if you have a global over-arching website that ranks all over the world, on a regional basis, it will then show users their localised page.

Mark-up in the <head> – rel=”alternate” hreflang=”x”

Initially when first launched in December, there was one method for putting this in place on your website. This involved adding the appropriate mark-up to each page of your website, telling them page “x” was for one particular language and/or region/country, and that page “y”, “z” etc, were for other respective locations.

Google gave us guidelines on how to plan what to do here, and essentially you would add something like the following code to the <head> of all pages of all of the websites:

<link rel=”alternate” hreflang=”en” href=”” />

<link rel=”alternate” hreflang=”en-gb” href=”” />

<link rel=”alternate” hreflang=”en-us” href=”” />

<link rel=”alternate” hreflang=”de” href=”” />

Example taken from Google’s rel=”alternate” hreflang=”x” guidelines.

The examples show a sub-domain being deployed, but the beauty of this, is that it works across different domains, sub domains and could even be used on a sub-folder international SEO setup.

Whilst this is a good way to tell Google about what content is for which location, it is not without issues.

You have to produce a map in advance so that you can plan which pages are linked together in this way, you have to determine what region and/or language you are going to going to be targeting for each version of each page, and you have to plan the mark-up that is going to be deployed.

On a medium to large scale ecommerce site, this mapping could involve a hell of a lot of work, let alone working out the deployment of the code. If you are doing this for several languages, for several thousand pages, it just seems overwhelming.

rel=”alternate” hreflang=”x” Sitemaps

Around May of this year, Google announcing another way of doing this, through the use of XML sitemaps, and not too long after, we started working with a customer that this was perfect fit for.

The XML sitemap approach allows you to take the largest element of the work out of the equation, as you essentially just have to map the variations, work out the country code for each region, and then use that map to create the appropriate XML sitemap.

I spent a lot of time talking to a lot of SEO’s, and it seemed that everyone wanted to implement this, but had no idea if it would actually work as intended, as well as encountering from potential nervousness from clients about implementing this, presumably because there was some visibility in all regions and there was no desire to go rocking the cart unnecessarily.

For our client, it made perfect sense – they operate in 3 regions, the UK, US and Australia, with top level domains for each market. However, the .com website was ranking in all regions, causing all sorts of billing headaches and the like.

A few methods had been tried before our involvement such as IP delivery and currency selections, but none of these worked perfectly to get to the bottom of the issue – users were reaching a website that wasn’t appropriately priced for them.

We agreed that we would proceed with implementing this sitemap approach after tidying up a number of other necessary changes across the group of websites.

The approach we implemented for this, led us to create an XML sitemap along the lines of the following:

<urlset xmlns=”″ xmlns:xhtml=””>



<xhtml:link rel=”alternate” hreflang=”en-us” href=””/>

<xhtml:link rel=”alternate” hreflang=”en-gb” href=””/>

<xhtml:link rel=”alternate” hreflang=”en-au” href=””/>



It was of course, quite a bit bigger than this – this mini sitemap gives the relative variations of the home pages that we used for each region. For each additional “<url>”, you would set the main “<loc>”, and then give details on the alternative used in each sub region.

There are also further details from Google about the implementation of XML sitemaps.

For starters, as it was the URL that was ranking in all regions, we decided to only implement this for the .com website (something I’d probably think differently about and produce extra sitemaps for if there were lots of sites ranking in the various regions).

If you did want to implement this on each site, as I understand it, you’d need to create a variation of this for each specific website, as the main “<loc>” would vary from site to site – but this assumes top level domains and is something I’d want to examine on a case by case basis.

The Results

After a week of impatiently waiting, and checking on a near hourly basis, something began to change. Rankings for the site where the .com had always ranked, despite this being the US centric website, started to show the domain instead.

I quickly checked visibility for a number of keywords we’d seen to drive traffic to the website and searching from the UK, everything had switched domains. I rushed off to check US and Australian visibility, and in every instance, the correct website was showing to the correct region.

So, in short, it worked perfectly! I’ve come back to it today, and can see marked increases in traffic from search for both regional domains since this has started to kick in, and the visibility in each region is still leading users to their correct version of the website.

I should note, that as I had expected, rankings didn’t change at all as a result of this. It really wasn’t the goal – it was all about making sure that the content being served to users was correctly localised to them.

I think that this something to think about and plan very closely – get the implementation of this technique wrong, and it could cause all sorts of havoc to visibility (if you say that the UK site is Australian, and Google pay attention to this, it’s clear to see what could go wrong).

That said, in the right circumstances, this is clearly a very powerful tactic to serve up the correct localised results in each region that you are targeting. When coupled with other international SEO work to increase visibility of those websites in each region, you can really give international targeting a good kick in the right direction, particularly when starting out in a new region for the first time. It seems that this has effectively allowed us to piggy back off visibility one of the existing web properties already had.

About the author


Peter Handley

Technical Director at theMediaFlow,


  1. Michael says:

    That’s solved a big headache for me! I have same problem with a client selling through individual sites in UK, IE and US.

    I’m very interested to see how this will affect their rankings and traffic!

    Thanks Peter

  2. Dave Colgate says:

    Just deployed this for an international client. Good to hear positive feedback about someone else who’s also implemented it. Will have to see what results it brings …

  3. Nice one. Got some questions for you:

    1) Did the implementation on deep pages have the same results?
    2) Did you self reference the hreflang attribute? Example:

    3) How similar was the content between the 3 sites?

    4) In the example implementation that Google provided above (mark up in the head), they specify both an en and an en-US target for the hreflang. On the blog (, they essentially have 2 different pages for the US. Did you always specify language + country code, or was one of your targets simply EN?

    Thanks Peter for sharing!

    • Peter says:

      Thanks for the questions! I think I can answer all of these, but let me know if you have any follow ups :-)

      1) Deep pages that I referenced in the sitemap all appear to be behaving exactly the same way (I didn’t do it for *every* page, there were some Press Releases etc that I didn’t include in the map), but for all pages I’ve done this for, for every search in all 3 regions, for deep and home page terms, it seems to have switched.

      2) Yes, I did self reference

      3) In this case, all 3 sites were English language, so it’s easier for comparing the duplication here. On deep pages, I would say nearly all the pages are just about identical except for the price. On the 3 home pages there are some elements of duplication, but slightly more variation, but they are still probably about 80-90% the same.

      4) I specified 3 language + country codes here, as per my example – en-us, en-gb & en-au – this was kinda deliberate – I did think about leaving the US targeting/over-arching “English” language site as just EN, but none of the 3 websites were particularly setup for users outside of that country (I mean, they’d take the sales and can ship internationally, but its not a core goal at the moment) – basically, there was no over-arching language page for all of the English language, so I thought it was best to target these at a more granular level.

      5) Ok – you didn’t ask a 5th question, but I’ve just noticed this behaviour this morning – but, the Search Snippet showing in Google at the moment is still for the original website, rather than the site it is actually linking to

  4. Regarding your question number 5…

    YES! Exactly, I’m having the same problem too, as well as the page title – however I used the implementation alongside the canonical version. Before I leave the URL, I just want to say that this is a joke site we built to troll Tom Critchlow, but now it’s a nice little testing ground. Anyway, here you go:

    Your search query: “solid delivery”
    Use the search query in the following Google search TLds:

    French Canada

    Now, you’ll see that the correct URL is always returned, except that the snippet (title & description) always comes from the original UK site. Both of the French pages do have canonicals pointing to the UK site, and both of the French pages are now gone from the index :S

    So, it kind of worked. I think that this would work well if you only used hreflang to specify other version of the same language, and not cross between languages. This means that I should have used either the French Canadian or French page as the canonical target for only the French language.

    I’m sure I’m confusing you, and myself in the process but it makes sense to me finally.

    Ok, here’s my hypothesis so far: If the pages you’re using hreflang on are referencing different languages, they are NOT duplicate and should not be referenced. So, if you have 3 English language pages, you should keep the same title on all three pages and indicate the hreflang. If you have 3 English pages and 2 German pages (Switzerland & Germany), you should only use hreflang between those 2 pages, excluding the 3 English pages.

    Am I talking sh*t or does this make any sense?

    • Peter says:

      I just asked Pierre about this snippet retention on Twitter/Google+ and he asked “Are you using rel=”canonical” too?”, so I suspect that there is a link between your mentioning this and Pierre asking :-)

      I think I get what you are saying – I deliberately (after much thought) steered away from using canonical tags as part of this site optimisation, despite thinking I probably should have been using them due to the content being so similar across those sites.

      But I digress – if hreflang ONLY changes the URL, and not the snippet/title of the original ranking page, and this is by design, and not something that Google needs to iron out bug wise, then I would agree about implementing this in a segmented fashion like your example – at the moment with what I am seeing.

      But – this sort of assumes that the “main” ranking site was always the one ranking (i.e. in English), even in other languages/regions – you’d like to think that Google would be better at localising this and ranking the right sites in the right regions with the right languages. Where this only swaps out ranking results, if say the French site was always the one ranking in France, there would be no need for it to change (my example was all done on different top level domains though rather than sub pages of the same site, which may alter things).

      Plenty more twisters with this to get the head wrapped around!

  5. We’re getting close, I can feel it ;) The reason why I’m very happy to use the canonical tag is because we definitely know that it consolidates link authority.

    Where page titles in the same language, but different countries are exactly the same, the canonical + hreflang works well. If the main site was the .com (us) and the secondary was UK, I’m perfectly OK with the fact that the UK version inherits the page title & meta description, as long as the actual URL / Page is the UK is the one shown to searchers in the UK.

    I think I’m 60% happy with this now :)

  6. Jason Mun says:

    Hey Pete,

    We are about to implement the same thing for one of our clients. Great tip on the XML sitemap implementation. Our setup is slightly different, the website is currently setup in folders, ie:

    Not too sure how it is going to work the XML sitemap.

    Thanks for sharing!

  7. Thomas says:

    This is a great article Peter – we have been doing similar research so this has been a great read. I recommend to add some screenshots to the article to make it clearer for your audience that is less familiar with the topic.

    Once thing I am trying to still understand though – and I might have missed out on this in the article – is the following use case:

    - A user goes to and queries for a Turkish keyword
    - Right now it surfaces a page on #3 for that keyword pointing to domain
    - Tomorrow – after implementing the changes – it would point to my .com domain on spot #3 – showing the English title and description from the .com page? Or would only the URL change?

    Thank you for clarifying /Thomas

    • Peter says:

      Thomas – I plan on doing a deeper look with specific examples – perhaps an update with screenshots would suffice, I’ll bear that in mind.

      My understanding of this is that its more based on which search engine is being used – so if you have an issue where you search on in turkish but only have an English site ranking, despite having a different turkish sub-site, which doesn’t appear then this could help swap that for the correct URL.

      It took about a week from my initial implementation of this to start working – I don’t know that I would expect overnight changes here!

      Hope that answers your query

  8. Great news. I haven’t hear about rel=”alternate” hreflang=”x” before. And this tutorial can work with Vietnamese language?

    • Peter says:

      Hi Toan – I can’t see why not, presuming there are multiple regions to be targeting users of that language or if you have international variations of it

  9. Steve says:

    Hi Peter, thanks for sharing this. I’m about to implement this with a client who operates in 9 countries and the non-sitemap version seemed like such a headache. However, your explanation of the sitemap version of implementation is great. This post couldn’t have come at a better time. Thank you!

  10. Tom Andrews says:

    Very interesting post, still seen examples of massive sites like Puma getting this wrong, with links to German version of site from UK user. This appears to be the solution.

  11. Hi We’re running a study on the usefulness of Hreflang here! Would invite everyone to participate!

  12. Ok last one, we banged our heads and know fully understand. We’ll put out a detailed post crediting your efforts, these awesome guys ,Pierre Far and explain it plain English for everyone.

    I’ll probably come grab you for a quote or two. It’s been fun but my brain feels a bit melted :)

  13. Alex says:

    Sorry my example keeps getting removed.

    I am a developer for a company that offers translated websites options for users in 54 countries. We are interested in reducing duplicate results for in Google and having the correct regional site displayed. For the sitemap implementation, did you have to specify the alternative tag for each page or is one set of references at the top of the sitemap enough?

    Basically, if I have two pages and Would I need to do the following?
    <urlset xmlns=” xmlns:xhtml=””>



    <xhtml:link rel=”alternate” hreflang=”en-us” href=””/>

    <xhtml:link rel=”alternate” hreflang=”en-gb” href=””/>

    <xhtml:link rel=”alternate” hreflang=”en-au” href=””/>

    <xhtml:link rel=”alternate” hreflang=”es-es” href=””/>



    <xhtml:link rel=”alternate” hreflang=”en-us” href=””/>

    <xhtml:link rel=”alternate” hreflang=”en-gb” href=””/>

    <xhtml:link rel=”alternate” hreflang=”en-au” href=””/>

    <xhtml:link rel=”alternate” hreflang=”es-es” href=””/>

    or can specify the alternative urls once for the root domain?

    • Peter says:

      Sorry, it was in moderation – I’m afraid, you have to do it page by page – hope its clearer now!

    • Hi Alex,

      I hope I’ve understood you correctly here – basically, I mapped several hundred like for like pages across each website on .com, &

      For each page on those, each requires a “loc” in the sitemap, which then references the sub page for each region in the

      You can’t just set this for the root for each of these languages and let the search engines extrapolate the rest out for themselves – it needs to be done on a page by page basis I’m afraid!

  14. Alex says:

    Thanks Peter! That is much clearer now. On our end, it should not be too difficult to implement as our sitemaps are dynamically created through one of our own applications.

  15. eli says:

    Great post!

    Did you try this on any non-English pages to see if this impacts the local language pages?

    • Peter says:

      In this instance, we only did it with English language pages, as the client only operates in this language. I would be interested to see how this would work across multiple languages, particularly with what we’ve discussed in the comments about the original snippet being retained rather than the new page (I can potentially foresee issues with wanting a Spanish snippet from a site that is English but ranking, using this tag and whilst the destination URL updates, the snippet remains in English).

      Also, the duplication of content is often less of an issue across languages, as you are writing that content localised towards that specific market, right? ;-) It’s sometimes a bit harder to do with the same language in different regions (though, we are trying).

  16. Matt says:

    So which sitemap do these actually get added to?
    Do I add the rules to a regular sitemap.xml, or do I make an additional sitemap like locations.xml? If the latter, do I need to reference it in the robots.txt?

    Alternatively, should I make a sitemapindex.xml and link to it from there?

    • Peter says:

      Hi Matt,

      In this case, I just created a new (separate) XML sitemap, and submitted it to Google via Webmaster Tools, I didn’t add a rule to the robots.txt in this instance. There were already sitemaps in place, so I’ve added these in addition, I would expect them to play nicely with one another.

  17. Matt says:

    Hi Peter,

    Thanks for the reply, missed the obvious :) I’m trialling it with 2 clients right now and I’ll be monitoring it closely.

    Client 1 had already put regular href lang tags in place a few months ago, but I was never really satisfied with the results. So, I’m going to back it up with this and see what happens.

    Client 2 is having a site rebuilt with another web agency which will perform well internationally, but the existing site is going to be in place for a few months (and the international setup is awful), so I’m really excited to be able to hopefully sort out a lot of their issues right now.

    • Peter says:

      Thanks Matt – we’d love to hear any progress you make here. As we are just at the start of people talking about their experiences with this technique, the more knowledge sharing that can occur here the better.

  18. Rahul Lonkar says:

    I haven’t heard about these tags….good to know it.

  19. Stephen says:

    Hi Nic & Peter, loving the article (and the new site). I’m going to see how we might incorporate these meta tags on our price comparison sites (US, AU and UK based) – I’ll feed back on my trials and tribulations in the coming weeks.

    TC, Stephen

    p.s. Tell Nichola to stop appearing in Google search results – not a day goes by without her happy face popping up – it’s like having a virtual stalker!

    • Peter Handley says:

      Hi Stephen,

      You might want to have a look at the XML sitemap generator we pushed live with the new website too, depending on what works out as the easiest implementation.

      • Hi Peter,

        Thanks for publishing the study.

        Your XML generator seems to have a flaw when I use it. Rather than producing a full Sitemap it stops after the first set with alternative URLs. In other words, it only produces tags for one set of country specific URLs, rather than doing them for each country specific set.

        • Peter Handley says:

          hmmm, thanks for the feedback here Richard – I think this stems from the way that we’ve specifically had to implement this for ourselves – we were implementing this on different TLDs, and therefore a different sitemap was required for production for each TLD. Will bear this in mind for future development on this tool – there are ways to get around this (switching the URLs in the first column and then manually merging the sitemaps to create one), but I appreciate that this isn’t a perfect solution here really.

    • Nichola Stott says:

      Boo Stephen! Hope all is well?. Just getting you back from the days at Yahoo! when you used to change our wallpaper to your holiday photos if we ever left our laptops unlocked!

      Give us a shout if you get stuck with hreflang geotargeting. Always happy to help you guys ;-)

  20. Steven says:

    Hello, Great artikel, in all the articles I see the rel=”alternate” is used between different domains where the country extensions is different (,,). But can it also be done where the domainname and country extension is different? (,,).

    • Peter Handley says:

      Hi Steven,

      I can’t see why not – this doesn’t even need to be deployed across different domains – it can work across sub domains and sub folders too depending on how you have your internationally targeted pages setup. I think people have used those sorts of examples for ease, rather than it *having* to be that way.

  21. Lee Hughes says:

    Hi Peter,

    Awesome post, it helped me a lot. I have a client with a few Spanish versions of his website and I used your tool to create a sitemap. I submitted it to webmaster tools and it has been all indexed. However when I check on the sitemap all URLs only the en versions are showing.

    Any ideas?

    • Peter Handley says:

      Hi Lee,

      I’m not quite sure what you mean here – when I look at that URL I can see “eu” URLs specified (although there is an erroneous space after it), and “es”.

      Have you checked the source of the sitemap? What browser are you using when you are looking at this?

      Sorry I can’t be more help, I’m not clear what the issue is here really.

      Regarding your use of “eu” though, I’m not convinced that is the correct approach to take with that – I would set that as language with “en” instead if I have understood your intent correctly.

      Let me know if you have any more queries and I’ll see if I can assist further

  22. Lee Hughes says:

    Hi Peter,

    Sorry, when I loaded the sitemap it didn’t have any of the es listings but now it does.. strange..

    Anyway, thanks for the heads up on the eu, I mistyped it when I was making the csv file.

    Thanks :)

  23. Stuseo says:

    I’ve just been looking at how to do this – glad I came across this post!

  24. Daniel says:

    After many unsuccessful research, I prefer to ask for help regarding the combination of hreflang and canonical on a fully translated website (that matters).
    From what I read in most prominent SEO blogs and websites (including Google FAQ), it should be done like this: every page feature the alternate-hreflang of the others. The canonical should not be used, otherwise the meta title and description will always be the ones from the canonical URL.
    However, in a similar case, Google itself on its Play Store combines canonical and hreflang and it doesn’t seem when it comes to metas. It is set as follow: each language contains a canonical to itself + alternate-hreflang to all the others.
    Did someone replicated this? Thank you very much!

    • Peter Handley says:

      Hi Daniel,

      Thanks for the comment.

      I found very little information with regards to canonical and hreflang interaction when I was researching this a few months ago. Part of why I thought it might be necessary was to fix product duplication on the site I was implementing this for, but fortunately we managed to fix this properly.

      The main reason I’ve steered away from Canonical use was due to the recommendation of them playing nicely together being “struck through” on – here, Google have said “Update: to simplify implementation, we no longer recommend using rel=canonical.”

      I recall hearing somewhere from a Googler (though I cannot find the source right now I think it was a Google Plus hangout with Pierre Far) that you need to be careful combining these together due to the ways that they interacted with one another. I took this as a warning to not use them together.

      I suspect that with your specific example, its a case of “do as I say, not as I do”. It would be interesting to test further perhaps when time allows.

  25. [...] order to not burden your site code, and it actually works very well, as Peter Handley discusses in this post. Also, they offer pre-existing tools which integrate the rel=”alternate” [...]

  26. Jack leo says:

    We create xml sitemap to home page URLs only or for all inner level pages too ?

    • Peter Handley says:

      We’ve implemented an XML sitemap for all pages of the sites that have equivalents for different regions – so, home pages and selected inner pages as well (there weren’t equivalents for every single page).

  27. Hi Peter,

    I have read your article (more than once) and think you have the solution to my problem. But who better to ask than the source himself.

    I manage multi-language website and our Austrian (.at) website keeps showing up in instead of the german website. The problem is we do not have the .de extension but redirected .com to .com/de/de.

    Do you think I can use the xml sitemap solution? Our website is campingcard .com

    Thanks in advance,


    • Peter Handley says:

      Hi Ivo,

      Thanks for your comment, and sorry its taken me a couple of days to reply.

      Had a quick look, and conceptually XML sitemaps for hreflang could work here – I think you’d want to create one for each of the various sites with the alternates for each of the countries you are targeting here so that the references are circular as per the Google guidelines.

      If you want to get in contact any further, drop me a tweet @ismepete and I’ll see if I can assist you here.

      Best of luck!


  28. Jessy Wu says:

    By Google guideline-> You must create a separate url element for each URL. Each url element must include a loc tag indicating the page URLs, and an xhtml:link rel=”alternate” hreflang=”XX” subelement for every alternate version of the page, including itself.

    does this mean that nodes that have no other alt urls still need an alt url for itself?

    or just that url nodes that have alts need to include themselves?

    hope you can shed some lights here. thanks!

    • Peter Handley says:

      Are you asking if you’d need to set a location for a specific URL when there are no alternatives? I dont think it would hurt, as it gives you a chance to set intended language for that page, e.g.

      set loc for

      set rel=”alternate” hreflang=”en” href=””

      Alternatively, and what I did in the case of a handful of pages, is that you could just leave that URL out of the hreflang sitemap and not overly worry about it. I had autogenerated “normal” sitemaps used in tandem with these ones though.

      Was difficult to illustrate this properly in this comment as the example mark-up I tried to give isn’t displaying – tweet me @ismepete if you want some further asssistance

  29. Nuno Anjos says:

    Hi Peter,

    Interesting article. I’m trying to implement this technique as well, but I have a few doubts. Our website is in 8 languages, and for 1 type of dynamic content, for example “destinations”, there are 934 of them in your database. So, we have 934 urls in the sitemap just for that kind of data (not considering the rest of the site yet).

    If you multiply 934 by 8 languages (so that we get the 8 alternate hreflang tags), the result is 7472 urls only for destinations, the sitemap becomes 13 MB in size, bigger than the 10 MB maximum. Also it takes a long time to be created.

    I’m trying to create the sitemap in 1 file (sitemap.xml). Do you have any suggestion?

    Best regards,
    Nuno Anjos

    • Peter Handley says:

      Hi Nuno

      I’m not quite sure why that file gets so big? Is through using our tool?

      I’ve created sitemaps for a site that had 3000 URLs using this technique and it didn’t seem to be anywhere near that file size.

      Also, have you thought about GZ compression of your sitemap file? It’s a standard supported by the major search engines. That might sort your issue here.


  30. Ben says:

    Hi Peter, great article and I noticed you’re replying to people who post here which is amazing!

    I have a conundrum that I hope you can help with! We are about to expand to multiple cTLDs (.com,,, .at, .sa, .ae, .ca, .fr, .de, etc etc) in multiple different languages. We put them online with separate sitemaps (without the hreflang attribute though), and it caused our SEO to drop significantly! From second to 13th within a week, then 57th for a week, then back up to 9th when we took them all offline except for one.

    Now, I want to do this right this time using hreflang, but I’m not entirely sure how to setup the sitemaps in google webmaster tools.

    At the moment I have one sitemap per cTLD, but with no hreflang things. If I were to add these alternate urls, do I need to do it to each country’s sitemap?

    To properly track each domain, I had to create two separate webmaster tools accounts for each domain (one for www, one for non-www unless I’m doing it wrong :P!)

    For each of these webmaster tools account, should I submit one sitemap e.g.
    sitemap.en_AU.xml which contains all AU URLs as, then ALL GB/US/DE/FR/AE alternates in the one sitemap file? Or should I do sitemap.en_AU.xml and sitemap.en_AU-en_GB.xml and sitemap.en_AU-fr_FR.xml for example that includes all the alternates? Or wouldn’t it matter (apart from file size)?

    And when I have that setup for en_AU, do I do exactly the same thing for en_GB, except swap around the en_AU domains for en_GB domains?

    We have about 1000 entries in our sitemap at the moment for one country, so 1000×10 different countries is 10,000 entries, which isn’t that much in terms of file size.

    • Peter Handley says:

      Hi Ben,

      Good luck with this, its quite the head twister!

      If you already have visibility in all those regions with your original site, then hreflang could well be the way forward, as it would, if it works correctly, switch out the original ranking website and display the regional equivalent instead.

      Yes, you would need to create a sitemap for each of the cTLDs. It would be a very similar sitemap – the actual rel=alternate elements of it could be exactly the same for each of them, but you would need to set the corresponding loc pertinent to that website for this to work – those references need to be circular. I would do all of these in one file ideally for each domain. So, yes to “do I do exactly the same thing for en_GB, except swap around the en_AU domains for en_GB domains?”

      I’d then submit these XML sitemaps to GWT for each location. I actually left the other xml sitemap that was already in place without the hreflang stuff submitted as well for the 3 websites I did this for, but I am not sure if it matters.

      Tweet me @ismepete if you’ve got any other queries.


  31. Good article Peter. It was more helpful then Google’s own documentation. I especially like the example you named!
    Good stuff!

    • Peter Handley says:

      this was me writing up my experiences of trawling through that Google documentation… not sure it’s particularly user friendly (though, I don’t think this is a particularly user friendly topic to be honest!)

  32. Marco says:

    Hi Peter, i used href=lang tool and i saw in sitemap.xml these lines, Are they correct?
    In attachmnet first lines (domain = example website):;;

    • Peter Handley says:

      I’m not entirely sure – was that how it looked in the browser? did you view the source of it if so? That doesn’t seem quite right though, drop me a tweet on twitter (@ismepete) and I’ll send you over my email address and I can look at it a bit further

  33. guest says:

    Great post. This was one of 20 articles I read on international SEO and is by far the best!

    Is there any benefit insetting up a .com/au & .com/us & .com/uk version of a site if there are no currency differences on the page?

    Effectively, we are selling a SAS product. The only benefit of having different landing pages for each region, I can think of, would be to localize the content/wording. Something my client doesn’t want to do or manage going forward.

    Would I be best just keeping the site on a .com and ensuring no country or region is selected within Webmaster Tools?

    Thanks in advance!


    • Peter Handley says:

      in that sort of context, I would probably try and keep them all to one page and rank them internationally, particularly if you dont want to localise the content to each of the regions… context is important though, thats my “gut” reaction without any further detail though

  34. guest says:

    Thanks Peter.

  35. Tom Fitton says:

    Hi Peter,

    In your experience; once the tags are being respected fully, do the sites that have been targeted towards another country still appear within the SERP’s of another country, that itself has a website targeted specifically for that geographic audience.To provide an example of what I am seeing;
    On search engine for which we have a .com domain targeted using hreflang (and also through WMT), a search for “Brand + Product Type” does return the correct website in search as the first 2 results, however the other versions of the website such as the .eu and another .com (targeted towards the US and Canada) fill spots 3 and 4 in the SERP.

    • Peter Handley says:

      Hi Tom – thanks for the comment.
      After more time elapsed, it did seem to me that the sites I used this on started ranking more prominently in their own right, and no longer just a case of switching the ranking page to the one I’ve targeted. Once that happened, I did indeed see more results from their other sites appearing in the results. On keyword oriented terms, I really don’t mind additional domination of the listing for the brands in question, but it can look a little unusual. Similarly to you though, hreflang is not the only item we’d implemented, so its hard to isolate it back to one specific factor here.

  36. Alex Christopher says:

    Hi Peter,

    From last few days i have being doing research on how to use href lang tag on one of my client website. My client requirement is he has domain and he wants to create with same content he has on

    I though of suggesting him to use below href lang tags on his websites to get better visibility of .com and and get rid from duplication penality

    I will ask him to put this tag on his .com domain

    This tags on domain

    Please let me know if this is not the best solutions.

    Appreciate your quick reponse

    • Peter Handley says:

      I don’t know that this would negate a “duplication penalty” so to speak, but if for example, your .com website has good visibility in the UK, which you want to transfer over to the version of the website, then this should work for your needs.

      The references have to appear in a circular way, so you do need to have tags or sitemaps for both versions of the website.

      I think if you put markup into the comment that it has been stripped out, so I’m not able to verify that your markup at a page level is correct. If you have any doubts, it might be worth checking out Aleyda’s awesome tool

      I’ve only used the sitemap approach for hreflang so far, so that might be more useful if you want to go down the on page route. Hope that helps!

  37. Vanessa says:

    Very interesting thoughts indeed.
    Since you implemented this last year did you see real change in rankings?
    I guess these mark-ups are very little used and the impact should be insignificant in rankings.

    • Peter Handley says:

      The result we saw was that the right pages were ranking in the right regions.

      At the time we started this, they had one website that was returned for all their targeted regions, so people purchased in the wrong currencies, caused all sorts of back office headaches.

      I don’t think this directly impacted improvements in rankings (we didn’t expect it to), but it achieved the result we were looking for.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

econsultancy preferred supplierSearch Awards Judge 2012Wirehive 100LRT-Associateleaguetable-top50