Shopware SEO-Guide

Optimizing an online shop for the top spot among search engines is allegedly feasible for a professional. Defending this position against the competition in the long term, is slightly more elaborate, as they too are optimizing.

This SEO guide covers the basic SEO functions of Shopware 5. You will find important tips & tricks along with valuable explanations of the new responsive template. This guide serves as your basis for optimizing your shop for search engines for the long haul.

Search engine ranking takes more than 100 factors into account, making it impossible for this guide to explain every intricate detail. The “Tips & Tricks” section deals with specific ranking factor criteria and how these can be checking using Shopware 5’s SEO tools.

Bad ranking is the product of inferior page content. In the worst case scenario, a site includes duplicate content, broken links, poor-quality backlinks, excessive keyword use and slow delivery time.

The new responsive template provides a separate XML sitemap for mobile devices. The standard version of Shopware 5 gives you the tools you need for creating top-notch SEO page content. Furthermore, the responsive template caters to the Google crawler, Ajax, which checks your website for mobile-friendliness.

With the new responsive theme, all pages that are relevant for search engines have been completely optimized on-page. Tags which are unnecessary or no longer SEO- relevant have been removed – existing tags have been improved following the new SEO standards.

You can either adjust your URLs automatically or individually using the new SEO routemr engine. The Shopware 5 SEO engine gives you complete flexibility for setting up SEO URLs. The settings can be adjusted in the backend – there is no need to change the source code or template.

Mobile first

Since April 21, 2015, mobile optimization has been an important factor for search engine ranking. Since this update, Google actually punishes sites for not being mobile-friendly – they want their users to get only high-quality search results.

This has a massive impact on search queries. The Shopware 5 standard template supports this new requirement 100%, since it is completely responsive out-of-the-box.

You can check if your website is responsive using Google's Mobile-Friendly test.

Google PageSpeed Insights

The Shopware 5 responsive template makes the Google webmaster tools jump for joy. The following screenshot shows Google’s expectations for responsive optimization on mobile devices. Small font sizes and selectable elements that are placed too close are now a thing of the past with the Shopware 5 responsive template.

After switching to the Shopware 5 template, you will instantly see a noticeable improvement in your shop. Google will be unable to find errors regarding usability for mobile devices. This not only has a positive influence on your conversion rate for mobile devices, but also leads to a better search engine ranking for your online shop.

Here is an excerpt from the Google Webmasters account. This statistic shows the amount of errors and issues relating to usability on mobile devices. After switching to the new Shopware 5 template, Google no longer has any mistakes or suggestions to report. This on its own has a positive effect on your search engine ranking.

SEO-URLs

The again optimized SEO router of Shopware 5 provides all possibilities to offer SEO-friendly URLs in all variations to the search-engines. The intelligent Shopware SEO router saves the history of every URL. We explain to you what to consider when using and generating those URLs and how to build them in a Google-friendly way.

If a URL changes (for example when a product name has been changed) Shopware 5 memorizes the "old" item URL and redirects this per Redirect 301 to the new URL.

It makes no difference if the bot accepts cookies or not. There is a clean Redirect 301 in any case. Furthermore the canonical url of the goal site is displayed on the redirected site. By this Shopware makes sure there is no duplicate content recorded on the site.

This means the new SEO router guarantees that all in Shopware generated URLs are accessible for the crawler. Google will definitely make this worthwhile.

This chapter deals only with the creation of individual SEO URLs. By providing Smarty within the URL-templates you can form your SEO URLs completely variably.

If you want to realize any of the tutorials in this chapter we explicitly advise you to test your changes in a staging environment first. If you change the SEO URLs live in your productive environment, the changes of your Shop URLs could instantly affect your search engine ranking.

Google SEO Chef Matt Cutts casually mentioned in a video-web how to build the URLs and that an optimal URL should contain a maximum of 3-5 words and should not be longer than 60 characters. Otherwise the keywords within the URL will be ignored. So you have to be sure that your product URL is built according to the suggestion of Google. Shopware 5 offers the optimal solution for this.

In a videocast about how to build URLs, Google SEO Guru Matt Cutts offers other useful hints and tips for a perfect URL.

If you want to implement one of the tutorials in this chapter, we strongly suggest that you check your changes first within a staging environment. If you create the SEO URLs live in your productive environment, it could be possible that your changes in your shop URLs will have immediate negative or positive impact on your search engine rankings.

Moreover you should consider, that any new created URL results in a new entry in the s_core_rewrite_urls-table. If for example you have a shop with 50,000 items and generate an adjusted URL 3 times, there will be 150,000 entries generated in your database. This would mean a total of 200,000 entries! Unnecessary entries should be avoided to keep your database light and tidy.

Never ever empty the table s_core_rewrites_url. Otherwise you`ll loose all known 301 redirects.

Note that more than 5 redirects can cause problems indexing the urls by the bots.

Slugify Framework

Shopware uses the slugify-Framework. Slugify rewrites special characters like ñ, Ñ, ¿, é or Ó to n,n,-,e or o. If you named your article "tomàtiga de ramellet" the URL will be created like this "tomatiga-de-ramellet". Please note the slash will not be rewritten. That means that the article name „tomàtiga de ramellet / ecológica“ will be rewritten to "tomatiga-de-ramellet-/-ecologica". The slugify rules can be modified via a separate plugin and adapted according to your wishes.

In the Devdocs of Shopware you will find useful hints and a sample plugin for the implementation of such a plugin.

Link: https://github.com/cocur/slugify/tree/master/Resources/rules

Link: https://developers.shopware.com/developers-guide/plugin-slugify/

This means that you are able to create your own rules for replacing special characters.

With this jigsaw piece you have at least total control over every single URL in the frontend which is collected by the search engines.

Item SEO-URLs

The standard product URL in Shopware 5 looks like this: base-category/sub-category/item-id/item-name. You should ensure that the build of your product-URL corresponds to the wishes of Google (mentioned in the video above). Shopware 5 provides the optimal solution for this.

We recommend Professional SEO optimizers to create the URL individually per article. The SEO router settings in the backend enable you to completely individualize your product URLs. The standard SEO template for the item detail page looks like this:


 
{sCategoryPath itemID=$sArticle.id}/{$sArticle.id}/{$sArticle.name}
 

Shopware provides almost endless possibilities to customize the URL. For example the category-progress can be completely removed from the URL. We advise that professional SEO optimizers should create the URL individually per item. Here Shopware provides the free text fields. Those free text fields can be edited in the backends master data mask.

Here an example for the request of the free text field named attr4:


 
{if $sArticle.attr4}
 {$sArticle.attr4}
{else}
 {$sArticle.id}/{$sArticle.name}
{/if}
 

In this example we request the item free text field attr4. If this is filled with your own URL, the Shopware SEO engine recognises the content and displays it in the frontend as the URL. If the free text field is not filled in the item master data, the explicit item-id plus the item name is used to generate the link.

Alternatively you could also use the field title in the meta-information of the item to generate your item URL. Here is an example, which generates a descriptive URL using the field title in the item master data mask. If this field is empty, a fall-back to the item name takes place.


 
{if $sArticle.metaTitle}{$sArticle.metaTitle}{else}{$sArticle.name}{/if}
 

Generally we advise using the item-id in the URL, because that is a continuous, explicit attribute which ensures that an unique SEO link can be generated for each item.

Link: Changing/individualising of search-engine-friendly URLs

The standard adds an ?c=XX to the URL to accurately identify the category the item is assigned to. If this is not wanted you can remove this identifier by using the setting "Remove category-id from URL" in the SEO router backend.

Category SEO URLs

Shopware 5 offers every possibility to create a category URL which corresponds to your wishes or the wishes of your SEO agency. In the standard, the category URL is structured as follows: category1/category2/category3. However from the point of view of an SEO expert, in case of a high category nesting, there is a risk that the category URLs at the lowest level will unintentionally become too long.

Shopware 5 has made major efforts to replace long URLs with short URLs. Thus the Shopware category URLs are optimally captured by the search engine crawlers and displayed in the search results accordingly as clean.

In this example we record the desired URL in the category free text field named attribute1 for the selected category: my-optimized-category-url


 
{if $sCategory.attribute.attribute1}
{$sCategory.attribute.attribute1}
{else}
{sCategoryPath categoryID=$sCategory.id}
{/if}/
 

By this the content of the free text field attribute1 category is displayed as the category URL. In case the category-free text field attribute1 is empty, the SEO URL build is done with the old scheme: www.myshop.com/category1/category2/

Blog SEO URL

An individual blog SEO URL, which we implemented on demand from the Shopware community, you get the possibility to wrap your Blog content in an even more interesting way for search engines.

The blog URL is generated like this in the standard: http://www.myshop.com/my-blogcategory/blog-article-tile You can change the URLs by only small adjustments to build it like this: http://www.myshop.de/blog-article-tile. First you have to go to the SEO router settings and deposit the selected smarty request in the field SEO URLs blog-template.

In this example the SEO URL of the blog entry is displayed and cut short after 50 characters.


 
{$blogArticle.title|replace:"/":"-"|truncate:"50":false}
 

Supplier SEO URLs

Not only article and category URLs can be individualized. Shopware 5 also offers the possibility to create a special URL for each manufacturer page by changing the SEO template within the SEO router settings. See Shopware 5 Wiki articles about manufacturer pages.

This chapter will focus on the customization of the Supplier URL. For example, you can place an additional keyword into the URL for short supplier names. For example the standard Supplier-URL https://www.myshop.com/supplier changes to https://www.myshop.com/keyword/supplier/.

First, call the Free text management in the backend and create a new text field called attr1 for the manufacturer table (s_articles_supplier_attributes). Now you have to query the new manufacturer free text field within the SEO router settings;


 
{if $sSupplier.attributes.core.attr1}
 {$sSupplier.attributes.core.attr1}
{else}
 {createSupplierPath supplierID=$sSupplier.id|replace}/
{/if}
 

If the manufacturer free text field is filled, the supplier URL will be generated by using this content. Otherwise, the SEO router generates the standard supplier URL from the supplier name.

Shop pages SEO URLs

The URL for a static shop page can be assigned via free text fields instead of using the automatically generated standard URL. This is an example of an SEO router query using a free text field named attr1. As usual, the free text field attr1 (plain text) had to be added for the table shop page (s_cms_static_attributes). After creating the free text field, the field attr1 in the SEO template for the shop pages had to be queried:


 
{if $site.attributes.core.attr1}
 {$site.attributes.core.attr1}
{else}
 {$site.description}
{/if}
 

If e.g. the free text field attr1 of the shopsite disclaimer is filled with the text website-disclaimer, the URL https://myshop.com/website-disclaimer appears instead of https://www.myshop.com/disclaimer after generating the SEO URLs vie the performance module.

Modification of SEO noindex viewports

By default non-SEO-relevant sites like register, notepad or my account or filtered listing sites are delivered with the robots-tag noindex, follow. For example, if you use the filter in the listings, the URL will be expanded by the identifier f. To avoid duplicate content those sites are delivered with the robots Tag noindex,follow by default.


 
sPage,sPerPage,sSupplier,sFilterProperties,p,n,s,f
 

To prevent those sites from being crawled accidentally, we advise you not to change this standard.

Many shop operators fail to create individual product descriptions and copy the texts from the producer sites because of time issues. If you fail to create unique content you have to consider that sometimes you will copy external links along with the product text. Most search engine providers rate those backlinks and take this as an important criteria of the links’ popularity or the relevance of a site.

Shopware 5 makes sure that only the really desired backlinks will be recorded by the search engines. In order not to pass your popularity on to other unknown websites. all external links are delivered with a nofollow.

If you want to raise your shop’s popularity by using high quality backlinks, you can add those backlinks to the SEO-follow backlink list, separated by a comma. Here it is essential to have one link separated by comma per column. The last backlink must not end with a comma.

We advise you to be careful about unblocking backlinks. You should only unblock a backlink if you are 100% sure that you will get a high-quality backlink back. Every other procedure does not make sense from the SEO-technical point of view.

You should only release backlinks if you are 100% sure that this link is a trustworthy and 100% reachable site. From an SEO-technical point of view everything else makes little sense.

Link: Google explains how to use nofollow for links

Individual SEO title for category-, blog-, and product-sites

Sometimes it makes little sense to individualize the title for a site. For example if you use a high category interlacing in your shop you could easily exceed the title-tags recommended pixel-number.

Shopware 5 provides the optimal solution to display the perfect title tag for product-, blog- and category-sites by default. Please notice that you can use Smarty within the Shopware template-structure.

This means you could for example use count_chars . You are not bound by the specifications of the standard title tags. By using free text fields in combination with small template adjustments, you can create your own title-tags. So you do not need any extra plugins.

It is not necessarily guaranteed that Google will actually use the title tag provided in the template. This circumstance will be explained by Google SEO expert Matt Cutts:

Optimizing SEO titles for items

This example shows how to display your own title tag by using the free text field 9 item. The block frontend_index_header_title is responsible for this..


 
{strip}
{if $sCategoryContent.attribute.attribute1}
 {$sCategoryContent.attribute.attribute1} | {config name=sShopname}
{elseif $sArticle.attr1}
 {$sArticle.attr1} | {config name=sShopname}
{else}
 {if $sBreadcrumb}
  {foreach from=$sBreadcrumb|array_reverse item=breadcrumb}{$breadcrumb.name} |
  {/foreach}
 {/if}
 {config name=sShopname}
{/if}
{/strip}
 

Optimizing SEO titles for categories

To avoid overlong category URLs you can alternatively use a free text field category for the category-listing. Here you again have to deduce the block frontend_index_header_title. This example shows how the free text field attribute2 category can be used as an individual category title tag:


 
{strip}
{if $sCategoryContent.attribute.attribute2}
 {$sCategoryContent.attribute.attribute2}
{elseif $sCategoryContent.title}
 {$sCategoryContent.title}
{else}
 {$smarty.block.parent}
{/if}
{/strip}
 

Optimizing SEO titles for blogs

Shopware 5 already displays the blog items SEO-optimized by default. If you prefer a different title than the saved one, you can use one of the 6 free text fields of the blog-item.

For this the block frontend_index_header has to be deviated:


 
{strip}
{if $sArticle.attr1}
 {$sArticle.attr1}
{elseif $smarty.block.parent}
 {$smarty.block.parent}
{else}
 {if $sBreadcrumb}
  {foreach from=$sBreadcrumb|array_reverse item=breadcrumb}{$breadcrumb.name} |
  {/foreach}
 {/if}
 {config name=sShopname}
{/if}
{/strip}
 

First a check is made whether there is a URL saved in the blog item free text field 1. If that is not done, the title saved in the on-page optimization is checked. If that one is also not set there is a fallback to the breadcrumb.

The Google image search is probably the most underestimated possibility to get more clicks on your shop with little effort. Use title tags to display similar products (1) within the image search.

Those small but valuable possibilities are exploited perfectly by the new Shopware 5 responsive theme. Images are displayed search engine-optimized on every SEO-relevant template by default. In this way you can be sure to not miss any little possibility to improve your ranking.

A few helpful tips for the daily usage of Shopware in terms of Google image search follow.

Media-Manager

As the saying goes: "Many a little makes a muckle." In this way we want to suggest an easy to implement possibility of placing useful keywords in the foreground, for example for the Google image search.

Please remember to use unique and not too long file-names for the image-upload. Ideally you name the file after the product or category it is related to or you just put 1-2 searchengine-relevant keywords in the image’s name.
 

The image’s name will automatically appear in all templates source codes. This means the image will be released with exactly this file name (1) in the site’s source code and makes it possible for the search engines to crawl the image by its optimized name, for example fitting for each item, category or shopping world.

Just as with the creation of useful URLs, Google recommend separating keywords within the image name with a separator instead of using an underlining (see video in the section SEO URL`s).

Please remember to use a unique file name. In this way you guarantee a perfect capture of the file name by search engines.

Image alt tag

The SEO-relevant alt tag of images will always be displayed in the onpage-optimized standard themes of Shopware 5. Remember to set the field Title (1) for the product images. Work with a sense of proportion and do not set too many or too long keywords.
 

If the image is not a background image displayed via .css but via .img the alt tag of the item image automatically appears within the shop themes. Do not be confused by the alt tag of a link, because that can overwrite the alt tag of an image.

Item images: alternative title tag

SEO experts have been discussing for years whether the title tag has an SEO-relevant meaning for images. Shopware 5 provides the possibility to include a different title-tag within the .img call on the item detail page.

There are 3 free text fields available, so you can for example use the free text field 1 for a different title tag (1).
 

The free text field is called up within the theme like this:


 
{$sArticle.image.attribute.attribute1} 
 

Google Image Search: Similar items

Since April 2017 Google offers a new feature for the Google Image Search. Google will offer similar items automatically.

The similar items (1) will only appear if the required Schema.org-snippet is issued on the article details page.

In the Responsive Theme up to SW5.2.22 the required Schema.org-snippet has been implemented. Until now Google offers this feature in the mobile search only.

Sitemaps, robots.txt, RSS & Atomic feeds

There is an additional sitemap besides the normal sitemap.xml especially for mobile devices in Shopware 5. In this way you can show the Google crawlers unmistakably that the recorded URLs of the sitemap are only for mobile devices. This is explicitly requested by Google.

The Shopware sitemaps only contain SEO-relevant sites like item detail -pages, categories and the accounting area or the shopping cart pages (noindex by default) will also not be delivered to the sitemaps. This guarantees in Shopware a clean index structure and only offers those sites to the crawler which are interesting for the search engine providers and are declared as index, follow. Shopware does not give the bots unnecessary crawling synergies and delivers clean structured sites. This circumstance will be definitely be rewarded with a better ranking by the search engines.

Furthermore the creation of subshop-specific robots file by adding blocks has been simplified a lot. So you can submit your own robots.txt for each individual subshop and expand it as you wish (e.g., shut out bots, etc.).

Never ever delete the original entries in the robots.txt. Otherwise the bots will crawl system-paths which further on will be appear in the search results.

Variants and filter URLs in the sitemaps

The sitemaps purposely do not contain any variant or filter URLs.

SEO-URLs for variants in Shopware 5 can be generated t-url URL when the variant URL is called up. Duplicate content cannot appear like this!

The same handling is done for the filter URLs. Once the item URL is extended by a filter suffix (e.g., myitem/?p=1&o=1&n=12&max=425.00&s=1) Shopware automatically delivers a noindex,follow in the source code. In this way the filter URLs are no longer relevant for search engines and will not appear in the sitemap.

In this way Shopware prevents the search engines from having to unnecessarily crawl more URLs.

Sitemap (sitemap.xml)

Shopware automatically generates a sitemap in XML format. This sitemap can be used for all relevant searchengine providers (e.g., Google Webmaster tools). However Shopware cannot guarantee that every URL will be crawled and indexed. This always depends on the search engine provider.

The sitemap can be displayed via the following link: https://myshop.com/sitemap.xml

Sitemap (sitemap_mobile.xml)

This sitemap has been used in the past for feature phones with WAP browsers. If you use a frontend theme with WAP pages, you should to offer the mobile sitemap.

If you use the standard Responsive/Bare theme we strictly recommend to offer the sitemap.xml in Google Search Console.

The sitemap for wap-devices can be displayed via the following link: https://myshop.com/sitemap_mobile.xml

Extending the XML - template:

Categorie:


[categories] => Array
        (
            [0] => Array
                (
                    [id] => 5
                    [parentId] => 3
                    [name] => Genusswelten
                    [position] => 0
                    [metaKeywords] => 
                    [metaDescription] => 
                    [cmsHeadline] => Genusswelten
                    [cmsText] => Ivi praebalteata Occumbo congruens seco, lea qui se surculus sed abhinc praejudico in...
                    [active] => 1
                    [template] => article_listing_1col.tpl
                    [blog] => 
                    [path] => |3|
                    [showFilterGroups] => 1
                    [external] => 
                    [hideFilter] => 
                    [hideTop] => 
                    [noViewSelect] => 
                    [changed] => DateTime Object
                    [added] => DateTime Object
                    [media] => 
                    [attribute] => Array
                        (
                            [id] => 3
                            [categoryId] => 5
                            [attribute1] => 
                            [attribute2] => 
                            [attribute3] => 
                            [attribute4] => 
                            [attribute5] => 
                            [attribute6] => 
                        )

                    [childrenCount] => 3
                    [articleCount] => 44
                    [show] => 1
                    [urlParams] => Array
                        (
                            [sViewport] => cat
                            [sCategory] => 5
                            [title] => Genusswelten
                        )
                )
       )

Article:


[articles] => Array
        (
            [0] => Array
                (
                    [id] => 2
                    [changed] => DateTime Object
                    [urlParams] => Array
                        (
                            [sViewport] => detail
                            [sArticle] => 2
                        )
                )
        )

Blog article:


[blogs] => Array
        (
            [0] => Array
                (
                    [id] => 3
                    [category_id] => 17
                    [changed] => DateTime Object
                    [urlParams] => Array
                        (
                            [sViewport] => blog
                            [sAction] => detail
                            [sCategory] => 17
                            [blogArticle] => 3
                        )
                )
        )

Shop pages:


[customPages] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [tpl1variable] => 
                    [tpl1path] => 
                    [tpl2variable] => 
                    [tpl2path] => 
                    [tpl3variable] => 
                    [tpl3path] => 
                    [description] => Kontakt
                    [pageTitle] => 
                    [metaKeywords] => 
                    [metaDescription] => 
                    [html] => Fügen Sie hier Ihre Kontaktdaten ein
                    [grouping] => gLeft|gBottom
                    [position] => 2
                    [link] => shopware.php?sViewport=ticket&sFid=5
                    [target] => _self
                    [changed] => DateTime Object
                    [parentId] => 0
                    [attribute] => 
                    [children] => Array
                    [urlParams] => Array
                        (
                            [sViewport] => ticket
                            [sFid] => 5
                        )

                    [show] => 1
                )
        )

Supplier pages:


[suppliers] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [name] => shopware AG
                    [image] => 
                    [link] => http://www.shopware.de
                    [description] => 
                    [metaTitle] => 
                    [metaDescription] => 
                    [metaKeywords] => 
                    [changed] => DateTime Object
                    [urlParams] => Array
                        (
                            [sViewport] => supplier
                            [sSupplier] => 1
                        )
                )
        )

Landingpages:


[landingPages] => Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [id] => 5
                            [active] => 1
                            [name] => Stop The Water While Using Me
                            [userId] => 60
                            [containerWidth] => 1008
                            [validFrom] => 
                            [isLandingPage] => 1
                            [landingPageBlock] => leftMiddle
                            [landingPageTeaser] => media/image/testbild.jpg
                            [seoKeywords] => 
                            [seoDescription] => 
                            [validTo] => 
                            [createDate] => DateTime Object
                            [modified] => DateTime Object
                            [showListing] => 
                            [gridId] => 2
                            [templateId] => 1
                            [attribute] => 
                        )
                    [categoryId] => 6
                    [show] => 1
                    [urlParams] => Array
                        (
                            [sViewport] => campaign
                            [emotionId] => 5
                            [sCategory] => 6
                        )
                )
        )

RSS feeds

The good old RSS feed also has its right to exist in Shopware 5. Some search-engine providers support RSS feeds. This provides the possibility to crawl blog entries separately, for example.

Those RSS feeds are not only interesting for search engines. RSS feeds can also be embedded into many blog or CMS systems. This can be very interesting if you want to build backlinks. To better operate those incoming links, you should think about which areas of your shop you want to offer within the RSS feed.

Shopware 5 provides a separate RSS feed within every category and blog listing. This you can display as follows:https://myshop.com/category1/category2/?sRss=1

The RSS feed is displayed like this in the source code:


 
<link rel="alternate" type="application/rss+xml" title="Sommerwelten" href="https://myshop.com/category1/category2/?sRss=1" />
 

Atom feeds

Besides the RSS standard, Shopware 5 provides a feed in the Atom format. This behaves just like the RSS feed, so it is available on the listing sites. The Atom feed can be displayed like this: https://myshop.com/category1/category2/?sAtom=1

The Atom feed is displayed like this in the source code:


 
<link rel="alternate" type="application/atom+xml" title="Summertime" href="https://myshop.com/category1/category2/?sAtom=1" />
 

robots.txt - Avoid the undesired crawling of special document-types

Web crawlers read the file robots.txt even before the real shop URL is called, because of the Robots Exclusion Protocol. Via this file we can choose which URLs are allowed to be crawled by the search engine bot and which are not.

By Shopware default the robots.txt is already optimized and does not need any changes. The robots.txt of Shopware 5 is created dynamically from the template, so the template can be changed without any problems. You can provide an individual robots.txt for each of your subshops by using different templates.

You can add your changes to the following template blocks:


 
{block name="frontend_robots_txt_user_agent"}
{block name="frontend_robots_txt_disallows"}
{block name="frontend_robots_txt_sitemap"}
 

It can happen that crawlers find links within your site content, which lead for example to pdf or word-documents. Please ensure that the content of those documents is captured by search engines, so the content might be defining for the quality of your shop content.

If you want to hide your documents from the search engines you can easily do that by changes within the Shopware 5 template. In this example all pdf-files which would be available for the crawler by default, will be hidden from the search engines.

Extend the file /frontend/robots_txt/index.tpl and add the following changes to the block frontend_robots_txt_disallows:


 
Disallow: /*.pdf$

Link: Usefull tips from Google regarding the robots.txt

Shop settings - Set the right host aliases

You should definitely remember to register all active host aliases in the shop settings. Host aliases are URLs which reference directly to the installation path of Shopware.

If you redirect your host aliases via 301 redirect to your shop URL, Shopware will not be able to recognize your host aliases. If the host aliases are not routed to the installation path of Shopware 5 properly or not all host aliases are saved, Shopware might not be able to set the follow and nofollow properly..

Link: to the documentation of the shop-settings.

SSL encryption

SSL has become a big issue since the revelation scandal about the Ex-CIA employee Edward Snowden. After the revelations about the intelligence agencies you cannot be sure anymore about how safe an SSL-encryption is.

Nevertheless Google suggests that you save your shop by using a safe SSL certificate. Because of this we suggest encrypting your whole frontend via SSL. Valid SSL certificates can be normally be ordered from your host. You have to activate the setting use SSL in the shop settings.

Meta information

Standard snippets

Remember to set the default snippets for the meta description and the meta keywords. Otherwise you lose a lot of SEO-relevant information for the search engine crawlers.

The following snippets have to be set via the snippet administration in the Shopware backend:

  • #IndexMetaAuthor#: Author of the site
  • #IndexMetaCopyright#: Copyright of the site
  • #IndexMetaDescriptionStandard#: meta description of the site (Fill in this snippet unconditionally. This will be displayed on the front page (recommended are 200-300 characters).
  • #IndexMetaKeywordsStandard#: Keywords of the site, separated by comma (will be ignored by search engines)

Meta information for categories

  • title: Headline in the CMS function - recommended max. 50-60 characters (excl. spaces)
  • description: Meta-description recommended are 200-300 characters.
  • keywords: Meta keywords will not be regarded by Google anymore.

Link: Documentation of category-administration

Meta information for items

Store a meaningful title tag, meta description as well as meta keyword.

  • title: recommended max. 50-60 characters (excl. spaces)
  • description: recommended are 200-300 characters.
  • keywords: Meta keywords will not be registered by Google anymore. You can still use those for the own Shopware search and focus on some items in the search results.

Meta information for blog items

The Shopware 5 blog module provides the ideal possibility to present SEO-relevant texts. This is an opportunity you should definitely use. We suggest you set a divergent title tag and meta description for each blog item. The settings can be found in the menu on-page optimization.

  • title: recommended max. 50-60 characters (excl. spaces)
  • description: recommended are 200-300 characters.
  • keywords: Not very SEO-relevant anymore. You can still use those for your own Shopware search and focus on some items in the search results.

Additionally you can promote your blog items through SEO-relevant items.

Work by sense of proportion for the headline of your blog text. For example do not double set the h1 tag, because it is already used by the default template.

Hints for creating blog-entries with Shopware.

Meta information for shopping worlds & landing pages

Shopware provides special SEO settings for landing pages like its own SEO description and a freely selectable SEO URL by the landing page name. In this way you can place your shopping worlds and landing pages optimized for search engines.

Use the html block for the landing page to deposit SEO-optimized texts. Set the headlines in this block by sense of proportion. For example always set the h1 tag only once and always at the top of the landing page.

Link: To the documentation of landing pages in the shopping worlds

Meta information for shop sites

You can also set title, description, and keyword for shop sites independently of the content. Theoretically you can provide your forms ideally to the search engine crawlers.

Basically you should check if your shop site content is even SEO-relevant. Does it make sense to let your control of general terms and conditions be captured by the search engine?

Shopware 5 provides the possibility to set your shop sites to noindex, follow in the SEO router settings. In this way the search engines can only concentrate on your SEO-optimized items and category pages, as well as the shopping worlds.

Link: SEO optimized shop sites in Shopware 5

Meta information for producers

A major advantage of Shopware are the SEO possibilities for producer sites. If you have many items from a specific producer, you should think about optimizing the relevant producer site.

There are the usual SEO fields available in the backend producer module. We suggest that you use this option and place SEO-optimized text for the producers. Alternatively you can save an individual SEO URL here.

Canonical URLs - SW5-Matrix for Canonical URLs when using the rel=prev/next-Option:

This is the matrix for using canonical urls in Shopware 5 when activating the rel==prev/next-Option in the SEO-Router-Settings:

 canonicalrel prev/nextfollowindex
Shoppingworld wwith listingnonext onlyyesyes
Shoppingworld with listing page 2noprev and nextyesno
Shoppingworld without listing and linkyesnoyesyes (further articles set to nofollow)
Normal listing sitenoyesyesyes

Der canocial-Tag will be published on index,follow-Sites only.

"rel=prev" and "rel=next" for paginated sites

Within a paginated site Shopware can work with rel=next/prev in the area if the setting in the SEO settings (Index paginated content) is activated in the SEO settings. In this way the control within the indexation is shown to the Google crawler.

Basically paginated sites are content-based but of no importance to the search engines. Because of this paginated sites, which export an rel/next, are provided with a "noindex,follow" (Also look for Matrix for the usage of canonical urls in the next entry).

The search engines continue crawling the paginated sites (f.ex. ?p=1), but don't capture them anymore. Thus Shopware avoids giving duplicate content to the search engines because of paginated sites by default.

"noindex,follow" and "index,follow"

If you offer search engine exclusive content. a noindex,follow automatically is set for all listing subpages. This behavior is particularly recommended by Google. Thus for example the following meta tag is set for all subpages of categories or filters (page 2, page 3, etc.) :


 
<meta name="robots" content="noindex,follow" />
 

Those listing-subpages will get captures by Google but not indexed. If this behavior is not desired you can activate the option "Index paginated content" in the new Shopware 5 SEO-router.

If you do not wish this behavior you should be careful about the indexation. If you release the paginated sites by search engines you have lots of new sites in the search index, but could possibly suffer from this by a downgrading of your sites within the search results because of duplicate content. To avoid this, you should place the identifiers in Google Webmaster tools. (Anker-Link innerhlab dieses Artikels.).

Subshops with another language: Adjusting the XTML-namespace (http-equiv language)

If you use language subshops, you should clearly set the XHTML-namespace for the respective language subshops. This is done by changing the snippet IndexXmlLang.

Structured data - Rich snippets

Within the default templates rich snippets are provided in Shopware by using the schema.org markups. You can check the state of your sites with the Google test tool for structured data

Caution: Whether the provided markups also appear on the SERP will be decided by the owner of the search engines and unfortunately not by shopware.

Markups on the item-detail page

On the item detail page the following markups (schema.org) get displayed:

WebPage:


 
copyrightYear
isFamilyFriendly
image
name
copyrightHolder (name)
 

BreadcrumbList:


 
itemListElement (url, name, position, item)
 

SiteNavigationElement:


 
url
name
 

Product:


 
name
image
productID
sku
description
aggregateRating (ratingValue, worstRating, bestRating, ratingCount)
brand (name)
weight (name)
offers (priceCurrency, price, availability)
review (datePublished, name, reviewBody, reviewRating, author)
 

Example for a product site including evaluation (View in the Google search results):

Please ensure that, "in Stock" is only set if a positive stock and a delivery time in days is stored.

Structured data on the category and producer site

The following snippet-groups are read out:

WebPage:


 
copyrightYear
isFamilyFriendly
image
name
copyrightHolder (name)
 

BreadcrumbList:


 
itemListElement (url, name, position, item)
 

This element is not available on the starting page of your shop.

SiteNavigationElement:


 
url
name
 

Example for a category site (View in the google search results):

Tips, tricks, and the fitting tools

In this chapter we show you some tips & tricks which help you to better place your Shopware installation in the search engine results. We strongly suggest that the realization of the separate tips as well as the usage of the recommended tools is no guarantee of a better ranking.

If you do not have any experience in the area of SEO optimization, we suggest that you work with a professional SEO agency. Also remember the fact that the recommended tools might cause a very high server workload when crawled. The inappropriate usage of this tool can eventually cause complete failure and the inaccessibility of your server for smaller systems.

Ryte Onpage Analyse Tool: Discover and control your shop

Our Technology Partner Ryte offers an awesome onpage analyse tool for your shopware shop. Ryte offers almost all needed analysis options and tools for the sustainable onpage optimization of your shop.

Ryte helps you to optimize your content and thus generate more sales and more visitors to your shop. The tool detects duplicate content, wrong h-tag hierarchies and checks many other important ranking factors.

Ryte offers an interface to your Google Accounts (Search Console and Google Analytics). This means that your Ryte console has fully control to almost all important google datas.

The Ryte analyse tool is an allround talent made for seo-beginners and professionals. The SEO tool supports Ajax content and thus the shopware shopping worlds.

Link: Onpage-Analyze Tools especially for online-shops based on shopware

Rytes supports shopware shopping worlds in contrast to many other seo analyzis tools. To use this feature you have to set the option Analysis User-Agent to Googlebot (Media) in the project settings of your Ryte account.

SEO onpage

This chapter deals with how you can exhaust the topic of SEO optimization by using the default functions and smaller template changes. Please keep in mind that some possibilities in this chapter can only be done by some smaller template changes and might be hard to implement for comparatively inexperienced users.

Adjusting the advanced menu

The link "learn more" gets displayed through the snippet "learnMoreLink" in the advanced menu. You can change this URL as well as the titletag of the anchor. An example of this:


 
*'''old:''' learn more
*'''new:''' switch to {$mainCategory.cmsHeadline}"

Adjusting the comment link in the blog listing

There is a follow-up URL to the blog comments in the blog listing. The title tag can be optimized for search engines by changing the snippet BlogLinkComments. Go to the snippet administration in the backend and search for the snippet BlogLinkComments. You can use Smarty in this snippet so all arrays inserted in the blogtheme are available.

Example:


 
*'''old:''' Comments
*'''new:''' To the comments of the item $sArticle.title}
 

Adjusting of the supplier link on the item detail page

The link to the producer site is displayed on the item detail page. This link consists of the snippet frontend/detail/description/DetailDescriptionLinkInformation (1).

If needed the snipped can be edited in the snippet administration in the backend.

Ideal URL-structure for items with multiple categorization

If your item is assigned to multiple categories (1) in your shop, Shopware 5 provides the possibility to influence the SEO URL output. In the item master data you can enter the ideal SEO URL for each shop in the window SEO categories of the item (2).

This provides the possibility to generate an SEO-relevant item URL, which fits the optimized keywords ideally. For every shop an ideal SEO URL can be generated for the item page.

Hide forms from search engines

By default Shopware 5 allows all forms to be indexed and released in the searchresults. You should think whether it makes sense for your forms to be crawled from the SEO-technical point of view.

If you do not want Google to crawl your forms, for example,, you have to enter the variable forms in the mask SEO-noindex viewports within the SEO-router settings in the Shopware backend. In this way,. all forms will be delivered with a noindex,followand will not be crawled.

Additional category descriptions in the category-listing footer and the shopping worlds

A little template adjustment makes it possible to offer additional search engine-relevant text below the listing by using the category free text fields. The content is completely recorded by the search engines. For this you only have to extend the block frontend_listing_bottom_paging.

Google Webmaster tools

Here we introduce you to the rudimentary setting and analysis possibilities of Google Webmaster tools.

Non-available sites - 404 or 410?

Shopware 5 provides the possibility to offer a differing state code for sites no longer available to the crawlers. By default the crawlers get a 404 for non-available sites. Alternating you can for example return a 410-Code (1) in Shopware 5.

Thus the search engine-crawler can recognize that the URL has been permanently removed and will not be available in the future.

You can change the HTTP state code (1) in the SEO router settings to your liking:
 

An overview of available state codes you can find in the Google Webmaster tools Wiki or in the state Codes and protocol definitions of WC3.

Additionally you can enter your own "site not found" site in the SEO router settings. Therefore it is possible to display a special landing page including an individual error description by setting the "Page not found" destination(1).

Setting up Google Analytics & Adwords Conversion Tracking

Since Shopware 5 the Google-Plugin SwagGoogle is not delivered by default. We provide the Google Plugin for Shopware 5 on Github. The Shopware 5 Google Plugin can be downloaded there for free.

The plugin adds the requested source code of Google as well as optionally the Google Adwords Conversation to the frontend theme.

In the backend plugin configuration the Google Analytics ID (1) and optionally the Google Adwords Conversion ID (2) can be entered. Alternatively you can choose between the normal Google Analyticsand theUniversal Analytics Tracking Code (3).

The current version of the plugin can always be found in the ShopwareLabs on github. Please mind that the plugin is not offered in the Shopware store. The plugin is not supported by shopware at all.

Alternatively you can use the Google Tag Manager. In this case you normaly use only one static code snippet. Through this code snippet recognized all interactions which will be triggered from your Google Analytics / Adwords account. Thus no further plugin is needed.

URL parameters in Google Webmaster tools

Furthermore you can exclude URL search parameters in the Google Webmaster tools. This only makes sense, if, for example because of the usage of foreign plugins, the crawler captures URLs, which are not to be captured, or cause duplicate content.

By Shopware 5, default sites including search parameters have indirectly been declared as noindex,follow. Thus you avoid possible crawling mistakes caused by dirty external links in advance.

Possible examples for the search parameters to exclude:


 
Parameter,Effect,Crawling
c,Other,Only crawl representative URLs
sInquiry,Other,Let Googlebot decide
sOrdernumber,Other,Let Googlebot decide
p,Changes,Reorders, or narrows page content,Let Googlebot decide
number,Changes,Reorders, or narrows page content,Let Googlebot decide
n,Seitenauswahl,Let Googlebot decide
o,Changes,Reorders, or narrows page content,Let Googlebot decide
s,Changes,Reorders, or narrows page content,Let Googlebot decide
a,Other,Let Googlebot decide
__cache,Changes,Reorders, or narrows page content,No URLs
cf,Changes,Reorders, or narrows page content,No URLs
f,Changes,Reorders, or narrows page content,Let Googlebot decide
l,Other,Only crawl representative URLs
max,Changes,Reorders, or narrows page content,Let Googlebot decide
min,Changes,Reorders, or narrows page content,Let Googlebot decide
q,Changes,Reorders, or narrows page content,Let Googlebot decide
sAction,Other,Only crawl representative URLs
shippingFree,Changes,Reorders, or narrows page content,No URLs
sPage,Changes,Reorders, or narrows page content,No URLs
sPartner,Other,Only crawl representative URLs
sPerPage,Changes,Reorders, or narrows page content,No URLs
sSort,Changes,Reorders, or narrows page content,Let Googlebot decide
t,Other,Only crawl representative URLs
u,Other,Only crawl representative URLs
v,Other,Only crawl representative URLs
sFilterTags,Changes,Reorders, or narrows page content,Let Googlebot decide
sFilterDate,Changes,Reorders, or narrows page content,Let Googlebot decide
sFilterAuthor,Changes,Reorders, or narrows page content,Let Googlebot decide
 

Detailed information about the Configuration of search parameters you can find in the Google Webmasters central-Blog.

Hreview-aggregate snippet for the front page

Use the possibility to emphasize your products in the Google search result list.

Please remember that this tutorial is an experimental attempt, to display such a micro-format in the theme. Google alone decides how your products are displayed. Thus we cannot guarantee that the product assessments will be shown in the search results of Google.

Additional sitemap for images, news etc.

Shopware provides a normal and a mobile sitemap by default. If you want an additional sitemap for your images, you can create this with a little script independently from Shopware and store this in Google Webmaster tools.

General SEO tips

In this paragraph we deal with general but fundamental tips for the topic of search engine optimization. Those tips explicitly do not relate to Shopware.

Avoidance of duplicate content for the item descriptions

One of the cardinal sins for SEO are item descriptions, which have already been captured on other websites. Because of that you should always work with unique item descriptions. Sometimes you cannot avoid using an item description from the producer website. These item descriptions are of course used by a lot of your competitors as well.

Here you should think about setting these item pages to noindex and follow. Thus you tell the search engine crawlers not to enter this item into the search engine index but to continue crawling the site itself.

Alternatively you can use text agencies to create your item descriptions.

A healthy proportion of text and code (Text-to-Code-Ratio)

Make sure that your product description is not too short. The Text-to-code-ratio contains the proportion of Shopware source code and the text of the item description. Search engine optimizers suggest that the percentage of product description should be at least 25% of the source code.

Meaningful content

It is not sufficient to provide only a unique content. The content of course has to be equally meaningful and appealing to search engines and customers.

Avoiding h1 tags in the product description

Make sure not to use any h1 tags within the product description. The h1 tag is already used for the product headlines within default templates. Generally the h1 tag should only be set once per site.

Link: Onpage-Analyze Tools especially for online-shops based on shopware (supports shopware shopping worlds)

Link: Analyze html tags in your shop

Avoiding defective links

You should definitely pay attention to the accessibility of the links provided in your shop. This you can for example control with SEO tools.

Link: analyzes broken urls in the shop

Time to First Byte - Performance should be right

One of the most important criteria of a good search engine ranking is the performance. Shopware supports different cache-technologies by default: http-Cache, APCu, ZendOP. Combined with an efficient server, an ideal mysql- and php-configuration as well as an up-to-date php-Version the loading times of your site can be noticeably shortened.

Image sizes as well as external plugins, including additional css or java files, can also noticeably reduce the creation time of your site.

Useful tools: Link: Pagespeed testing with Google-bot

Link: Improve theloading times of your shop

Link: Webshop Monitoring Service

Link: Onpage-Analyzing tool for online-shops - TIP! Supports shopware shopping worlds and landing-pages!

SSL is required

Deliver your sites SSL-encrypted. A fitting and trustworthy certificate can be received for example from your host. If the certificate is established on your server you only have to activate the function Use SSL everywhere in the Shopware shop settings.

If you switch your site from http to https you have to correct your URL in your Google Webmaster tools account. By individual adjustments to the .htaccess file of Shopware, all direct requests can be forwarded from http to https.

Many hosting packages offer this option as standard so that this forwarding rule can also be stored in the server configuration. In this case no individual adjustments to the .ht access file are necessary.

Test your mobile sites after activating your own template or a Plugin

Generally the Shopware default responsive template has been optimized for mobile devices. If you use your own template or Plugin you should check those mobile templates after the installation to assure their functionality.

Freely adapted from the motto "Trust is good, control is better!" you should check the front page, the producer sites, the listings as well as the item detail pages.

Useful Tools:

SEO tools: Content or source code of the shopping world is not recognized

The content of a shopping world will appear in the developer consoles of the browsers only and not in the source view (e.g., view-source:http://www.shopwaredemo.de/)..

External crawlers or SEO tools only recognize the source code of a shopping world if these crawlers and tools will support boilerplate code. The Google bot supports this.

For example, the source code view of the browser or SEO tools from companies like Sistrix are not able to crawl boileplatecode. Their bots do not recognize html content embedded in shopping worlds because the tools are not able to identify ajax- embedded content. This is not a bug of shopware.

We recommend to use the Ryte SEO Analyze Tools which supports boilerplate code and shopware shopping worlds - other well-known tools unfortunately do not support this technique as yet.

You should not rely on the statements of such tools when capturing the source code of your shopping worlds. The tools capture only what they understand.

Optimize png- and jpg images

Shopware itself optimizes the images only in a rudimentary way.

If GooglePageSpeed complain about the compression level of your images, you must compress your images with tools like optpng or jpegoptiom via your own shellscripts once again and independently of Shopware.

In conjunction with own server cronjobs, the recompression can also be automated.

Link: Optimizing images with optipng

Link: Optimizing images with jpegoptim

Pushing articles via the internal linkjuice by using Shopware product streams

The number of incoming internal links can be affected by the Shopware Product Streams. If you want to increase the number of incoming links (Linkjuice) to one or more specific products, this is possible with a few kicks in the backend of Shopware. No additional plugins are required.

You just need to create a product stream including the articles you want to push. Assign this stream to a specific category, shopping world, or item detail page, if necessary.

Link: Pushing links with shopware product streams

Do not track the Paypal-Checkout-URL as a Referrer in Google Analytics

All orders created via Shopware's checkout using Paypal payment method (or others, e.g. Amazon or Klarna) will be identified by the Referrer-URL paypal.com.

You have to blacklist the URL paypal.com in your Google Analytics Administration under Tracking Information> Referrer Exclusion List. Otherwise the Referrer-URL paypal.com will get all conversions.

SEO / Router settings

The SEO engine offers the possibility to rewrite search engine friendly URLs for your shop. For example -- http://www.yourshop.com/detail/index/sArticle/326 would be replaced with http://www.yourshop.com/Category-name/Item-name.

This construction can be further customized with the SEO engine. For example, you can enter information such as manufacturer and/or item number in the link in order to have the desired URL structure.

Configuration options can be found under ‘’’Configuration/Basic settings/Frontend/SEO / router settings’’’

From Shopware 5.2.5 we implemented the slugify-Framework. Slugify rewrites special characters like ñ, Ñ, ¿, é or Ó to n,n,-,e or o. If you named your article "tomàtiga de ramellet" the URL will be created like this "tomatiga-de-ramellet". Please note the slash will not be rewritten. That means that the article name „tomàtiga de ramellet / ecológica“ will be rewritten to "tomatiga-de-ramellet/ecologica".

Description of fields

NameDescriptionExample
Only use lower case letters in URLsAll URLs will only contain lower case letters, no capitals.Yes/No
Redirect to starting page in case of unavailable categories / items (removed in Shopware 5)The system redirects automatically.Yes/No
Prepare meta descriptions of categories / items:Meta information will be dynamically displayed from the item text if the field is empty.#
Remove Category ID from URL?c=XXX is added to the item URLYes/No
SEO nofollow queriesIf these parameters are set in the shop, a “nofollow” is automatically entered into the source text.sPage,sPerPage,sSupplier,sFilterProperties,p,n,s,f
SEO nofollow viewportsThese pages are automatically marked with a "nofollow" in the source code.login, ticket, tellafriend, note, support, basket, admin, registerFC, newsletter, search, search, account, checkout, register
Remove unnecessary blank spaces or line breaksFilters spaces and line breaks from the page source text.#
Remove HTML commentsFilters HTML comments from the page source text.#
Query aliasesXsSearch=q,
sPage=p,
sPerPage=n,
sSupplier=s,
sFilterProperties=f,
sCategory=c,
sCoreId=u,
sTarget=t,
sValidation=v,
sTemplate=l
SEO follow backlinksListed domains that link to the shop do not have a “nofollow” tag.www.shopware.de,
www.shopware.ag, www.shopware.de
Use SEO canonical tags (removed in Shopware 5)Canonical tags are entered into the source code of categories and item detail pagesYes/No
Last updateThis is the date when the most recent update was made to the SEO engine. 
SEO URLs caching timetableThis is the interval in which SEO updates are made automatically.86400
SEO URLs item templateSmarty templating is allowed.{sCategoryPath articleID=$sArticle.id}/{$sArticle.id}/{$sArticle.name}
SEO URLs category templateSmarty templating is allowed.{sCategoryPath categoryID=$sCategory.id}/
Other SEO URLsRewrite other controllers/pages.sViewport=cat&sCategory={$sCategoryStart},listing/
SEO URLs blog templateSmarty templating is allowed.{sCategoryPath categoryID=$blogArticle.categoryId}/{$blogArticle.id}-{$blogArticle.title}
SEO URLs landing page templateSmarty templating is allowed.{sCategoryPath categoryID=$campaign.categoryId}/{$campaign.name}
Remove Shopware Kernel from URLStrips shopware.php from the URLyes/no
Canonical always with HTTPSets http:// always in front of the canonical tagyes/no
Supplier SEOUses the supplier SEO config, which is defined hereyes/no
Supplier SEO URL templateSmarty templating is allowed.{createSupplierPath supplierID=$sSupplier.id}/
Brands/{createSupplierPath supplierID=$sSupplier.id}/
"Page not found" destinationDefine, what Shopware should show the customer, when he get a "page not found" errorShow homepage (default), default error page, landingpages
"Page not found" error codeSet the error code on the error site404 (default), 410 (gone - site will be deleted from index)
Cutom site SEO URLs templateSet the desired SEO URL body from the custom page title{$site.description}
Form SEO URLs templateSet the desired SEO URL body for forms{$form.name}
Index paginated contentSet index for paginated sites on/offYes/No
Display related articles on "Article not found" pageShows the related articles slider on the error page.Yes/No

The option "index paginated content" will set Page 1 to index,follow and all following pages to noindex,follow. Also canonical tags will only shown on shopping worlds without listing below (otherwise this will be Page1). When updating, this option is disabled.

When you clear the cache, only URLs of changing items will be regenerated when using the SEO engine. The date in the “Last update” field can be removed from the settings. Save the settings and clear the cache. All URLs will now be built and verified. Keep in mind that a maximum of 1000 new URLs can be created per request in the frontend.

hreflang-support

If you use language shops, you can activate hreflang support after the update to version 5.5. In this case, the corresponding translations of the pages are output in their source code. This way search engines recognize that the language shop pages are translations and treat them accordingly. You can activate this feature via the folowing two options:

If the option Output href-lang in the meta tags: (1) is set active, all languages of the pages of your shop are output in the meta tags. Via the option Use in href-lang language and country: (2) you can choose if the country should be output in addition to the language, e.g. "en-EN" instead of just "en".

Example templates for building a URL

Building a template item

Template item structureAppearance in frontendDescription
{$sArticle.id}-{$sArticle.name}.html554-my-Test-Item.htmlItem ID will be displayed before the description.
{sCategoryPath articleID=$sArticle.id}/{$sArticle.id}-{$sArticle.name}.htmlCategory/Category2/554-My-Test-Item.htmlThe category will be displayed with the item link.
{$sArticle.supplier}/{$sArticle.name}.htmlManufacturer/My-Test-Item.htmlThe manufacturer will be displayed before the item name.
shop/{$sArticle.date}/{$sArticle.name}shop/2009-09-21/My- Test-ItemText, date and item name will be displayed.
{$sArticle.attr1}/{$sArticle.name}Freetext-1/My-Test-ItemItem name and item attribute 1 will be displayed.
{$sArticle.id}/{if $sArticle.attr1}{$sArticle.attr1}{else}{$sArticle.name}{/if}Item ID/Free text 1 or Item ID/Item nameItem attribute 1 or item name with ID will be displayed.
{if $sArticle.metaTitle}{$sArticle.metaTitle}{else}{$sArticle.name}{/if}/My-Meta-Title
valid from Shopware 4.2
Article Meta-Title if filledd, otherwise fallback on article name.

The following variables are available for the item template:


 
{$sArticle.id}
{$sArticle.name}
{$sArticle.ordernumber}
{$sArticle.suppliernumber}
{$sArticle.supplier}
{$sArticle.date}
{$sArticle.releasedate}
{$sArticle.attr1} bis {$sArticle.attr20}
 

valid from Shopware 4.2


 
{$sArticle.metaTitle}
{$sArticle.description}
{$sArticle.keywords}
 

Building template categories

Free text fields from the categories (e.g., " {$sCategory.attribute. attribute1} ") can be used with Shopware 4.0.2 and up.

Template item structureAppearance in frontendDescription
{sCategoryPath categoryID=$sCategory.id}Category1/Category2Category description
{sCategoryPath categoryID=$sCategory.id}/{$sCategory.cmsHeadline}Category1/Category headlineCategory description & Category headline
{sCategoryPath categoryID=$sCategory.id}{if $sCategory.attribute.attribute1}/{$sCategory.attribute.attribute1}{/if}Category1/Free text field1Category description & Free text field, unless filled in

Examples for category variables:


 
{$sCategory.id}
{$sCategory.path}
{$sCategory.metaKeywords}
{$sCategory.metaDescription}
{$sCategory.cmsHeadline}
 

Examples for blog templates


 
{sCategoryPath categoryID=$blogArticle.categoryId}
{$blogArticle.id}
{$blogArticle.title}
{$blogArticle.shortDescription}
{$blogArticle.description}
 

Example supplier template

In the supplier seo template the only variable you can use is the supplier id via {$sSupplier.id}.

From Shopware 5.2.4

With Shopware 5.2.4 the SEO URL generation was outsourced in a framework, which was used also in the past, but is much more up-to-date and is very useful to generate international SEO URLs.

Tips & Tricks

SEO Variables

Here we give you an overview of the variables which you can use for generating SEO URLs. These variables are arrays, so you first use the variable of the main item you want to use and switch via dot (.) to the next lower level. For a supplier of an article e.g. this would be {$sArticles.supplier}, because supplier is one level below sArticles.

Basically all listed variables are available for generating SEO URLs, but keep in mind, that the arrays can be different according how the item is build, e.g. if the article is a configurator item. Make sure, that your used variables are always available, otherwise your SEO URLs won't be generated correctly which might cause a problem regarding your SEO ranking!

To make sure, that your URLs will be generated right, you can work with if statements in the SEO URL rules to avoid empty variables, but also keep in mind for this, that the URLs should never change!

Items (Effective 5.2.6)


 
Array
(
    [id] => 49
    [supplierID] => 2
    [name] => DAYPACK
    [description] => SEO Description
    [description_long] => <p>My Description</p>
    [shippingtime] => 
    [datum] => 2015-01-28
    [active] => 1
    [taxID] => 1
    [pseudosales] => 0
    [topseller] => 0
    [metaTitle] => SEO Title
    [keywords] => Keywords
    [changetime] => 2015-01-28 10:12:12
    [pricegroupID] => 
    [pricegroupActive] => 0
    [filtergroupID] => 5
    [laststock] => 0
    [crossbundlelook] => 0
    [notification] => 1
    [template] => 
    [mode] => 0
    [main_detail_id] => 264
    [available_from] => 
    [available_to] => 
    [configurator_set_id] => 
    [ordernumber] => SW10049
    [suppliernumber] => 
    [supplier] => LEKI
    [date] => 2015-01-28
    [releasedate] => 
    [changed] => 2015-01-28 10:12:12
    [attr1] => 
    [attr2] => 
    [attr3] => 
    [attr4] => 
    [attr5] => 
    [attr6] => 
    [attr7] => 
    [attr8] => 
    [attr9] => 
    [attr10] => 
    [attr11] => 
    [attr12] => 
    [attr13] => 
    [attr14] => 
    [attr15] => 
    [attr16] => 
    [attr17] => 
    [attr18] => 
    [attr19] => 
    [attr20] => 
)
 

Categories (Effective 5.2.6)


 
Array
(
    [id] => 5
    [parentId] => 3
    [streamId] => 
    [name] => Mountain air & adventure
    [position] => 0
    [metaTitle] => SEO Title
    [metaKeywords] => Keywords
    [metaDescription] => SEO Description
    [cmsHeadline] => 
    [cmsText] => Description
    [active] => 1
    [template] => 
    [productBoxLayout] => minimal
    [blog] => 
    [path] => |3|
    [external] => 
    [hideFilter] => 
    [hideTop] => 
    [changed] => DateTime Object
        (
            [date] => 2015-01-25 20:59:28.000000
            [timezone_type] => 3
            [timezone] => Europe/Berlin
        )
 
    [added] => DateTime Object
        (
            [date] => 2015-01-25 20:59:28.000000
            [timezone_type] => 3
            [timezone] => Europe/Berlin
        )
 
    [mediaId] => 
    [media] => 
    [attribute] => Array
        (
            [id] => 35
            [categoryId] => 5
            [attribute1] => 
            [attribute2] => 
            [attribute3] => 
            [attribute4] => 
            [attribute5] => 
            [attribute6] => 
            [attr1] => 
        )
 
    [childrenCount] => 2
    [articleCount] => 97
)
 

Campaigns (Effective 5.2.6)


 
Array
(
    [id] => 3
    [parentId] => 
    [active] => 1
    [name] => bree
    [userId] => 50
    [position] => 1
    [device] => 0,1,2,3,4
    [fullscreen] => 0
    [validFrom] => 
    [isLandingPage] => 1
    [seoTitle] => SEO Title
    [seoKeywords] => Keywords
    [seoDescription] => SEO Description
    [validTo] => 
    [createDate] => DateTime Object
        (
            [date] => 2015-02-24 09:19:51.000000
            [timezone_type] => 3
            [timezone] => Europe/Berlin
        )
 
    [modified] => DateTime Object
        (
            [date] => 2016-08-31 15:57:22.000000
            [timezone_type] => 3
            [timezone] => Europe/Berlin
        )
 
    [rows] => 20
    [cols] => 3
    [cellSpacing] => 10
    [cellHeight] => 185
    [articleHeight] => 2
    [showListing] => 
    [templateId] => 1
    [mode] => fluid
    [categories] => Array
        (
            [0] => Array
                (
                    [id] => 7
                    [parentId] => 3
                    [streamId] => 
                    [name] => Craft & tradition
                    [position] => 2
                    [metaTitle] => 
                    [metaKeywords] => 
                    [metaDescription] => 
                    [cmsHeadline] => 
                    [cmsText] => 
                    [active] => 1
                    [template] => 
                    [productBoxLayout] => image
                    [blog] => 
                    [path] => |3|
                    [external] => 
                    [hideFilter] => 
                    [hideTop] => 
                    [changed] => DateTime Object
                        (
                            [date] => 2015-01-25 20:59:57.000000
                            [timezone_type] => 3
                            [timezone] => Europe/Berlin
                        )
 
                    [added] => DateTime Object
                        (
                            [date] => 2015-01-25 20:59:57.000000
                            [timezone_type] => 3
                            [timezone] => Europe/Berlin
                        )
 
                    [mediaId] => 
                )
 
        )
 
)
 

Blog (Effective 5.2.6)


 
Array
(
    [id] => 2
    [title] => On the tracks
    [authorId] => 
    [active] => 1
    [shortDescription] => 
    [description] => <p>Description</p>
    [views] => 6
    [displayDate] => DateTime Object
        (
            [date] => 2015-03-18 09:30:00.000000
            [timezone_type] => 3
            [timezone] => Europe/Berlin
        )
 
    [categoryId] => 37
    [template] => 
    [metaKeyWords] => Keywords
    [metaDescription] => SEO Description
    [metaTitle] => SEO Title
    [tags] => Array
        (
        )
 
    [author] => 
    [media] => Array
        (
        )
 
    [attribute] => Array
        (
            [id] => 4
            [blogId] => 2
            [attribute1] => 
            [attribute2] => 
            [attribute3] => 
            [attribute4] => 
            [attribute5] => 
            [attribute6] => 
            [attr1] => 
        )
 
    [comments] => Array
        (
        )
 
)
 

Forms (Effective 5.2.6)


 
Array
(
    [id] => 5
    [name] => Contact
    [text] => <p>Write an E-Mail to us.</p>
    [email] => info@example.com
    [emailTemplate] => E-Mail-Template
    [emailSubject] => Contact form Shopware
    [text2] => <p>Your form was sent!</p>
    [ticketTypeid] => 1
    [isocode] => en
    [metaTitle] => SEO Title
    [metaKeywords] => Keywords
    [metaDescription] => SEO Description
    [shopIds] => 
    [attribute] => Array
        (
            [id] => 1
            [formId] => 5
            [attr1] => 
        )
 
)
 

Shop pages (Effective 5.2.6)


 
Array
(
    [id] => 2
    [tpl1variable] => 
    [tpl1path] => 
    [tpl2variable] => 
    [tpl2path] => 
    [tpl3variable] => 
    [tpl3path] => 
    [description] => Help / Support
    [pageTitle] => 
    [metaKeywords] => Keywords
    [metaDescription] => SEO Description
    [html] => Description
    [grouping] => Array
        (
            [0] => gLeft
        )
 
    [position] => 1
    [link] => 
    [target] => 
    [shopIds] => 
    [shops] => Array
        (
        )
 
    [changed] => Array
        (
            [date] => 2016-08-29 15:10:42.000000
            [timezone_type] => 3
            [timezone] => Europe/Berlin
        )
 
    [children] => Array
        (
        )
 
    [parentId] => 
    [parent] => 
    [attributes] => Array
        (
            [core] => Array
                (
                    [id] => 
                    [cmsStaticID] => 
                    [attr1] => 
                )
 
        )
 
)
 

Supplier (Effective 5.2.6)


 
Array
(
    [id] => 1
    [name] => Amplid 
    [description] => <p>Description</p>
    [metaTitle] => SEO Title
    [metaDescription] => SEO Description
    [metaKeywords] => Keywords
    [link] => http://www.amplid.com/
    [coverFile] => media/image/amplid_logo.jpg
    [attributes] => Array
        (
            [core] => Array
                (
                    [id] => 1
                    [supplierID] => 1
                    [attr1] => 
                )
 
        )
 
)
 

Was this article helpful?

Version

5.0.0 or newer

Contents