Filter URLs and indexing
Every choice in the filter panel is part of the page’s address, so a link keeps it. Three screens under Filters → SEO decide how that address reads and what crawlers do with it: Filter URLs, URL names and Indexing. Landing pages, the filtered views meant for the index, have a page of their own: Landing pages.
Settings per sales channel
Section titled “Settings per sales channel”Filter URLs and Indexing are set for All sales channels, and each channel may override them. Pick a channel in Sales channel at the top of the column: each row then shows whether it inherits the value or is overridden there, and its chain button overrides it or lets it inherit again. Save writes the changes; the shop uses them from the next request.
Filter URLs
Section titled “Filter URLs”Filters → SEO → Filter URLs.
Format
Section titled “Format”Parameter format decides how the address names the choice:
| Format | Example | Effect |
|---|---|---|
| Shopware IDs | ?properties=… | As Shopware does it. Stays stable when names change. The default. |
| Readable names | ?color=red_navy&price=100-300 | The URL names in the query, in the channel’s language. A group without a URL name, or one two groups share, keeps Shopware’s parameter; a value without one stands by its ID. Old addresses lead to the new ones (301). |
| Readable path | /jackets/color!red_navy,price!100-300/ | The readable names after the category’s path: group!value, groups joined by ,, values by _. Sorting, paging and the search in results stay in the query. Shopware IDs and readable names lead here (301); a name no group has gives 404. |
Normalized parameter order is always on: the same choice gives the same address, whatever order it was clicked in. An address in another order leads to that one address (301).
Limits
Section titled “Limits”| Setting | Effect |
|---|---|
| Max. values in the address | How many values one address may name. 12 unless set, 1 to 50. |
| Max. in one group | How many values of one group it may name. 6 unless set, 1 to 50. |
| Past the limit | Show the page + noindex: the page filters by every value and gets noindex, nofollow, so crawlers neither keep it nor go on from it. The default. Show 404: an address past the limit answers 404; stricter, but old links with more values stop working. |
| A whole value group in the address | Its values: a value group chosen whole stands in the address as its values. The default. The group’s name: it stands as one entry, its name; shorter, and new values of its rule join old links. Part of a group stays its values. A value group of its own may say otherwise (Sources → Value groups). |
Compatibility
Section titled “Compatibility”| Setting | Effect |
|---|---|
| Price in the address | With Shopware IDs, the price stays Shopware’s two parameters, min-price=100&max-price=300. |
| Old Shopware parameters work | Always on: addresses with properties, manufacturer and min-price from bookmarks, emails and ads still filter. |
Live example and what a crawler sees
Section titled “Live example and what a crawler sees”Beside the settings, Live example takes a category of the channel with products. Click values to change the choice: the screen shows the address in each format, its length and whether it stays within the limits. Restore example starts again.
What a crawler sees loads that address in full and shows the response, the robots and the canonical the shop sends, the products after the filter and which values in the panel are links.
URL names
Section titled “URL names”Filters → SEO → URL names lists every name the shop writes in readable addresses, in the language of the switch in the top bar. It has three tabs:
| Tab | Lists |
|---|---|
| Filters | Each filter’s URL name, the one before = or !. |
| Values | Each value’s URL name. |
| History | The names a filter or a value had before, with what each Leads to today. |
The shop makes a URL name for every filter and value as soon as a readable address needs one, and keeps it. Made by says whose a name is: the shop or you. A name typed in the row becomes yours; the old addresses keep leading to it. An emptied name is made again by the shop.
- A URL name is made of lower-case letters and digits joined by hyphens, at most 64 characters.
- It names one thing in its language: two values of one source, or two filters, cannot share one.
- A filter cannot take a name the shop’s addresses use themselves, such as
order,p,search,propertiesor a name starting withmin-,max-orcf-.
A filter’s URL name can also be set on its Sources page; see Sources.
Every replaced name stays on History, so an address with it leads to today’s name (301). Delete a row there and that address answers 404. “nowhere” marks a former name whose filter or value has no name in that language now.
Indexing
Section titled “Indexing”Filters → SEO → Indexing.
Links and empty pages
Section titled “Links and empty pages”| Setting | Effect |
|---|---|
| Links to filter values | Only to landing pages: a value whose choice gives exactly the filters of an active, indexed landing page is a plain link to it in the panel; the rest are form fields, so crawlers find no combinations. The default. None: the panel has no links at all; only the sitemap and the ‘Popular’ row lead to landing pages. |
| ‘Popular’ row | Where a category’s links to its landing pages stand: Under the list (the default) or Over the list. Shown on the category’s page and on its landing pages. |
| 404 for empty filtered pages | On by default. A filtered page without products answers 404 on a full page load (from a search engine, a reload). After a click in the shop the customer sees an empty result with the hint “Without X you find N”. Off: such a page stays 200 with noindex. |
SEO check
Section titled “SEO check”| Setting | Effect |
|---|---|
| Thin landing page under (products) | An active landing page with fewer products is marked thin: in the SEO check, on the dashboard and on the landing pages’ screens. 3 unless set, 1 to 100. The same number decides from how many products a compatibility node’s page is indexed; see Compatibility in the shop. |
| Setting | Effect |
|---|---|
| Draft preview | Always noindex and no-store: an address with p2lab-filter-preview never goes into the index or the cache. |
| Sitemap and hreflang | From Shopware: landing pages go into the channel’s sitemap; hreflang links the language versions of the same page. |
Rules for crawlers
Section titled “Rules for crawlers”The Rules for crawlers table on the Indexing screen shows, for the channel picked, what each kind of address sends. Click a row to see why.
| Address | robots | canonical | Set by |
|---|---|---|---|
| Category without filters | index, follow | to itself | Shopware |
| Landing page | index, follow, or its own Robots | to itself | the landing page |
| Another filtered address | noindex, follow | to itself | the plugin |
| Address past the limit | noindex, nofollow, or 404 with Show 404 | to itself | Filter URLs → Past the limit |
| Search results with filters | noindex, follow | none | Shopware |
| Empty filtered page | 404, or noindex, follow with the setting off | to itself when not 404 | Indexing → 404 for empty filtered pages |
- A filtered address is never indexed: the combinations run into thousands and repeat the category’s content.
followlets crawlers reach the products through it. - Only landing pages lead into the index, with their own address, heading, meta and text.
- A choice of exactly one compatibility node, with at least the thin page’s number of products, is indexed as well.
- An address that repeats a parameter or a value, names a value the page does not offer, or a page past the last one answers 404. A choice of a group the page’s set does not show on this page leads to the address without it (301).
- The shop applies these rules only to full page loads; the panel’s own requests are not crawled.
The rule we keep: never noindex together with a canonical to another page. A canonical asks to move the signals to the page it names, noindex asks to drop the page, so a search engine may carry the noindex over to the other page. That is why every filtered address has a canonical to itself.
robots.txt
Section titled “robots.txt”The robots.txt card offers optional lines that keep crawlers away from filtered addresses; Copy puts them on the clipboard. A blocked address cannot show crawlers its noindex: add these lines only once the filtered addresses have left the index.
Related checks
Section titled “Related checks”Filters → SEO → SEO check counts the filters and values without a URL name; see Landing pages.