Edit The Opencart Homepage Breadcrumb

So by default, the homepage breadcrumb in Opencart points to this url:

http://domain.com/index.php?route=common/home

Now this isn’t ideal from an SEO perspective, as we want all of the internal links to point to our proper root domain url, which would be:

http://domain.com

So to do this, We have to edit the seo_url.php file, which is found here: /catalog/controller/common/seo_url.php

Find the line:

return $link;

And before it, add this line:

$link = str_replace('index.php?route=common/home', '', $link);

This will fix all of the homepage breadcrumbs to point to the proper root domain url.

Change The Opencart Homepage Breadcrumb Link Text

Sometimes we might want to link with some text that’s a little more SEO friendly than just “home”, or maybe your shop is on a sub-domain or sub-directory and you want to label it with a different name.

So to edit this homepage breadcrumb link, edit the file header.php, in /catalog/language/english/common/header.php

You need to edit the line:

$_['text_home'] = 'Home';

Replacing the word “Home” with the text you want to link to the homepage with. In our example we’ve changed it to this:

$_['text_home'] = 'Digital Products';

Editing the opencart breadcrumb text

If you have any questions about this, then feel free to leave them in the comments. Share the guide with your friends if you enjoyed it!

Matt Jackson

Digital marketer, specialising in e-commerce SEO, including audits and strategy. Director of JP Digital Enterprises.
This Post Has 4 Comments
  1. Hi Matt,

    I try this in opencart 2.2 but not work.

    For the information in opencart 2.2 the seo_url is located in /catalog/controller/startup/seo_url.php

    Thanks.

    1. Hi Eko, there’s a free extension on the Opencart marketplace that does this for OC 2.0 / 3.0, it’s a OCMOD, but you can also hard code it -> http://bit.ly/2h3cu8z

      To hard code it:

      Go to: catalog/controller/startup/seo_url.php
      Find the line with: } elseif ($key == ‘path’) {
      And on the line BEFORE, add this: } elseif ($data[‘route’] == ‘common/home’) {
      $url .= ‘/’;
      unset($data[$key]);

      Hope that helps!

  2. I have noticed that home pages with a keyword rich name added after the domain do better in the search engines than a home page with a domain name only i.e. mydomain.com/what-i-sell (php asp/html etc.) vs mydomain.com. Why Opencart does not allow one to add an SEO name to the home page is a mystery to me and my sites are suffering because of it. In every single search under my keywords (even those with a domain name describing products on the site) my sites appear after those with an SEO name on the home page. How can I add an SEO name to an OpenCart home page? And if you have any ‘influence’ with the OC developer, please pass along this request. Thanks in advance for your reply.

    1. Hi EP, I have replied to the email but I’ll also add it here for anyone else interested:

      The homepage of a website is always domain.com or domain.com/index.html, it is never domain.com/keyword.

      The url mydomain.com/what-i-sell is a sub page, not the homepage.

      You are correct in that in most cases a specific sub-page will out rank a generic homepage, but for the main keywords of the website the Homepage will often rank better (due to many factors).

      The homepage of a website is always domain.com or domain.com/index.html, it is never domain.com/keyword.

      mydomain.com/what-i-sell < - this is a sub page, not the homepage.
      You are correct in that in most cases a specific sub-page will out rank a generic homepage.

      Any more info, just email me: info@matt-jackson.com

Leave a Reply

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