The URLs play a very important role in SEO. I don’t know about old versions of OC, but in 1.5.X onward, OC too has SEO friendly URLs facility.
I read on many blogs about OpenCart’s SEO URLs. I found some coding for modification of .htaccess file or usage of extensions. But I want all the OpenCart users to know that SEO URLs are possible without performing any of these actions. Also you don’t need to perform any mod or coding.
Just perform these steps..
By default, OpenCart comes with “.htaccess.txt” file. Simply rename it to “.htaccess” . DON’T modify anything inside that file.
By default, the .htacess file should contain :
# 1.To use URL Alias you need to be running apache with mod_rewrite enabled.
# 2. In your opencart directory rename htaccess.txt to .htaccess.
# For any support issues please visit: http://www.opencart.com
Options +FollowSymlinks
# Prevent Directoy listing
Options -Indexes
# Prevent Direct Access to files
<FilesMatch "\.(tpl|ini|log)">
Order deny,allow
Deny from all
</FilesMatch>
# SEO URL Settings
RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/
RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^download/(.*) /index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
### Additional Settings that may need to be enabled for some servers
### Uncomment the commands by removing the # sign in front of it.
### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.
# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
# php_flag register_globals off
# 2. If your cart has magic quotes enabled, This may work to disable it:
# php_flag magic_quotes_gpc Off
# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
# php_value upload_max_filesize 999M
# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value post_max_size 999M
# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_execution_time 200
# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_input_time 200
# 7. disable open_basedir limitations
# php_admin_value open_basedir none
In case you have installed OpenCart in a directory, you have to make one modification in .htaccess . Find this line in it – RewriteBase /
. Make it – RewriteBase /your-directory-name
.
So, if I run Opencart on www.mywebsite.com, I will simply rename the .htaccess.txt file to .htaccess.
And, if I run OpenCart on www.mywebsite.com/store, I will rename the file as well as change the line to RewriteBase /store
.
Enabling SEO URLs in OpenCart
SEO URLs are turned off by default. We have to enable them first.
1. Go to Admin Panel -> System -> Settings.
2. Click on “Edit” link on the right side of the store name.
3. Click on “Server” tab. You will find an option – “Use SEO URL’s”. Click on “Yes” in front of it. Save the options.
Adding SEO slug for products
Now we have to add SEO keyword (or slug) for each product.
1. Go to Catalog -> Products. Click on “Edit” on the right side of the product which you SEO URL for.
2. Click on the “Data” tab.
3. You will find one field named “SEO Keyword:”. Enter the desired link keyword there. The URL of your product will be storelink/keyword.
Do not include spaces and capital letters in it. It will make your URLs difficult to be handled. Also, while browsing, you will see the URLs like storelink/category1/category2/keyword. But the default canonical link will always be storelink/keyword. This will help search engines to include the proper product URLs instead of /index.php?route=product/product&product_id=51.