Our website was developed with Drupal and we only have a small set of Spanish language pages on a primarily English website.

My question is, I'm getting THREE pages generated for every one page:

  • .com/node/11
  • .com/espanol/node/11
  • .com/conveniences/gift-cards -- all of these use the same English content.

The dev team says this is working as intended as long as there is no Spanish content, we get a Spanish URL as well.

We apparently have 3x the pages now because of this.

Is there something we can do?

  • If the content is the same, and you have proper rel canonical links in place, you will be good at least for SEO. But it might further help to write some redirect rules to help from all three pages getting indexed in google. If there is a common pattern to these replications, you can use path patterns to create redirects – Prestosaurus Jan 29 at 15:47
  • Can’t really say too much about “works as intended” without more info. – Prestosaurus Jan 29 at 15:49
  • You heard the dev team, so whats the issue...? You have 3 URLs that point to 1 (English) page. Its not saved 3 times in the dstabase. – No Sssweat Jan 29 at 16:32
  • Because all three pages are in Google for no good reason. If it's not in Spanish, why does it make a Spanish URL with English content? Makes no sense. – Daniel Jan 29 at 17:44

As already stated in comments, you have one page but more than one link/path to access it. From the SEO perspective it is something to consider, eventhough Drupal "knows" this is the same content.

The /node/11 is the base URI for your English content, you can't be without it, it's a Drupal internal.

/conveniences/gift-cards is the path alias of the /node/11. It is usually created with the help of Path or Pathauto modules to improve the URIs for better UX and better SEO. They're usually coupled with Global Redirect or Redirect modules that automatically and permanently redirect to the alias. This way search engines only ever see one URI for this content.

/espanol/node/11 This link comes from Multilingual features, actually the specific way you have them configured. It's important to distinguish two independent parts of the website that can be translated: Interface and Content. Roughly speaking, Content is what usually goes into a node, and Interface is everything else surrounding the node.

Multilingual sites need a way to determine which Interface language to display, and which Content exactly when a request is made (a link clicked). Usually this is done by constructing links that contain both information. The language prefix is being used to determine the Interface language, and what follows it is a normal path to some content.

The /espanol/ is the language prefix and is telling Drupal to display the interface in Spanish language. /node/11 is the content path and is telling Drupal to pull the contents of node 11 from the database. When you put that together you have Spanish interface, but you're looking at English content. This might be the case for a Spanish translator: they are using their native language as the default interface language, but they might want to edit the English content.

In D7 every translation is a new node, but in D8 all translations of the same node share the NID, so some configuration might differ there.

Multi-Language Link and Redirect (MultiLink) module can help with some multilingual link handling, automatically changing the output of links to point to the translation of the content based on the current interface language, so you don't mix interface and content languages, unless you create it like that on purpose in menus.

The way to correctly tell search engines about pages being translations of one another is through hreflang: Hreflang.

  • Thank you for explaining. I'll pass along your answer to the dev team. – Daniel Jan 29 at 20:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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