Hi,
I want to have SEO urls for my website using three different languages. What do you think about making 3 stores with the same layout, the only difference the main language (english, german, ...) in subfolders of the mainsite, like: http://www.mystore.com/en -> for english page, http://www.mystore.com/de or http://www.mystore.com for the main site in german?
Then a product url would be something like this: http://www.mystore.com/en/apple-ipad (english language store and product name apple-ipad)
Is it a good idea or will a language url be included in the core in the near future?
Best wishes,
I want to have SEO urls for my website using three different languages. What do you think about making 3 stores with the same layout, the only difference the main language (english, german, ...) in subfolders of the mainsite, like: http://www.mystore.com/en -> for english page, http://www.mystore.com/de or http://www.mystore.com for the main site in german?
Then a product url would be something like this: http://www.mystore.com/en/apple-ipad (english language store and product name apple-ipad)
Is it a good idea or will a language url be included in the core in the near future?
Best wishes,
Last edited by i2Paq on Sat Jan 08, 2011 7:54 am, edited 1 time in total.
Reason: Topic moved
Reason: Topic moved
Sounds like the question for this is, does google/bing/yahoo etc index using foreign languages?
Why should they not?SteveSherry wrote:..., does google/bing/yahoo etc index using foreign languages?
If I set up three stores, with the same products - the only difference is the default language - and the URLs are created through different subfolders, "en/" and "no/" main folder (german) "/", does it affect the google index poorer than only using one shop with these three languages?
My current store, which is built on the crappy Zen-Cart builds URLs with this ending:
index.php?main_page=product_info&products_id=125&language=en
and depending on which google site you use (google.com, google.de) the results in the related language is displayed in the search result page.
I can suggest another solution for search engine optimization. This way you can have a single store with several languages, all are available for search engines. Two files have to be changed.
Here is the code change:
For file catalog/view/theme/default/template/common/header.tpl
replace
with
For file catalog/controller/common/header.php
replace
with
This code replaces the languages form and method POST with direct links, that any search engine will follow.
Here is an example site www.woodwormfarms.com
Here is the code change:
For file catalog/view/theme/default/template/common/header.tpl
replace
Code: Select all
<form action="<?php echo str_replace('&', '&', $action); ?>" method="post" enctype="multipart/form-data" id="language_form">
<div class="switcher">
<?php foreach ($languages as $language) { ?>
<?php if ($language['code'] == $language_code) { ?>
<div class="selected"><a><img src="image/flags/<?php echo $language['image']; ?>" alt="<?php echo $language['name']; ?>" /> <?php echo $language['name']; ?></a></div>
<?php } ?>
<?php } ?>
<div class="option">
<?php foreach ($languages as $language) { ?>
<a onclick="$('input[name=\'language_code\']').attr('value', '<?php echo $language['code']; ?>'); $('#language_form').submit();"><img src="image/flags/<?php echo $language['image']; ?>" alt="<?php echo $language['name']; ?>" /> <?php echo $language['name']; ?></a>
<?php } ?>
</div>
</div>
<div>
<input type="hidden" name="language_code" value="" />
<input type="hidden" name="redirect" value="<?php echo $redirect; ?>" />
</div>
</form>
Code: Select all
</form>
<?php } ?>
<?php if ($languages) { ?>
<form action="<?php echo str_replace('&', '&', $action); ?>" method="get" id="language_form">
<div class="switcher">
<?php foreach ($languages as $language) { ?>
<?php if ($language['code'] == $language_code) { ?>
<div class="selected"><a><img src="image/flags/<?php echo $language['image']; ?>" alt="<?php echo $language['name']; ?>" /> <?php echo $language['name']; ?></a></div>
<?php } ?>
<?php } ?>
<div class="option">
<?php foreach ($languages as $language) { ?>
<a href="<?php echo($redirect.'&language='.$language['code']); ?> "><img src="image/flags/<?php echo $language['image']; ?>" alt="<?php echo $language['name']; ?>" /> <?php echo $language['name']; ?></a>
<?php } ?>
</div>
</div>
<div>
</div>
</form>
replace
Code: Select all
if (($this->request->server['REQUEST_METHOD'] == 'POST') && isset($this->request->post['language_code'])) {
$this->session->data['language'] = $this->request->post['language_code'];
if (isset($this->request->post['redirect'])) {
$this->redirect($this->request->post['redirect']);
} else {
$this->redirect(HTTP_SERVER . 'index.php?route=common/home');
}
}
Code: Select all
if (($this->request->server['REQUEST_METHOD'] == 'GET') && isset($this->request->get['language'])) {
$this->session->data['language'] = $this->request->get['language'];
unset( $this->request->get['language']);
}
This code replaces the languages form and method POST with direct links, that any search engine will follow.
Here is an example site www.woodwormfarms.com
Last edited by wormbin on Tue Jan 11, 2011 10:56 pm, edited 2 times in total.
From what I can tell from your website, that solution offers up the same URLs for the different languages. I don't know completely, but that doesn't seem an improvement on the default method.
I think the original poster has a good point, but instead of using folders, they should use multi-store with subdomains, just because there is a problem with the way OpenCart uses folders and SEO URLs.
If you use folders, www.mystore.com/en/apple-ipad and www.mystore.com/de/apple-ipad will direct to the same page.
However, using multi-store and using subdomains you could have different language pages that would not confuse OpenCart at www.en.mystore.com/apple-ipad and www.de.mystore.com/apple-ipad
That said, I haven't used multi-store with different languages. There may be problems I haven't forseen, such as setting the default language for each store - is it possible to have different defaults for each store? etc.
I think the original poster has a good point, but instead of using folders, they should use multi-store with subdomains, just because there is a problem with the way OpenCart uses folders and SEO URLs.
If you use folders, www.mystore.com/en/apple-ipad and www.mystore.com/de/apple-ipad will direct to the same page.
However, using multi-store and using subdomains you could have different language pages that would not confuse OpenCart at www.en.mystore.com/apple-ipad and www.de.mystore.com/apple-ipad
That said, I haven't used multi-store with different languages. There may be problems I haven't forseen, such as setting the default language for each store - is it possible to have different defaults for each store? etc.
http://scarletandjones.com/
http://sharpdressedman.co.uk/
http://coffincompany.co.uk/
http://horsesculptures.co.uk/
If I've helped you out, why not buy me a beer? http://craigmurray.me.uk
Maybe this extension is something?:
http://www.inveostore.com/magic-seo-urls-for-opencart-9
This extension support multilang webshops and creates virtual subdirectory's (also on older versions of opencart).
Demo: http://demo.inveostore.com/opencart/de/
Too bad it's so expensive.
Has anyone tried it out yet?
http://www.inveostore.com/magic-seo-urls-for-opencart-9
This extension support multilang webshops and creates virtual subdirectory's (also on older versions of opencart).
Demo: http://demo.inveostore.com/opencart/de/
Too bad it's so expensive.
Has anyone tried it out yet?
One thing I am still looking for: In this discussion and in any extension I found, everybody ignores the fact that products can have different names in different languages. All demo sites I have seen use the same "ipod nano" and ofcourse this is the same in all languages. So SEO productname should be moved from catalog>product>data to catalog>product>general>english + catalog>product>general>french + etc.etc.
I guess it would have to be stored in a different table too. In product_description maybe, or keep it in url_alias but add a language field.
I guess it would have to be stored in a different table too. In product_description maybe, or keep it in url_alias but add a language field.
Who is online
Users browsing this forum: No registered users and 5 guests