您在此处:
Duplicate Home Page URLs
Duplicate content is content that appears on a site for two (or more) URLs without a redirect. Even though the way search engines determine the search rating of a page changes frequently, most search engines decrease the search rating for such content. To have the best search ratings for your page, avoid duplicate content. This topic applies to B2C Commerce.
B2C Commerce automatically handles most out-dated (duplicate) URL mappings without a configuration change. For mappings in the aliases file (host only rules and site paths), however, add mappings to enable automatic redirects. B2C Commerce also uses these duplicate resource rules to create your URLs as defined, using the B2C Commerce Script API.
Configuring Rules to Avoid Duplicates
You can configure rules in the Business Manager aliases module to define pipelines that have duplicate URL entry points or are contextual equals for a hostname. You can also define the preferred destination. B2C Commerce generates URLs using the first applicable mapping.
Duplicate URL Rule
The following example shows how to mark a pipeline
(PiplineA-StartNode) to be checked for duplicate URLs (defined
within the aliases file as host-only or site-path
rule). A redirect automatically occurs if the URL isn't as defined by the preferred
destination configuration.
There are three destination types, host, site-path,
and pipeline, with host and
site-path requiring a corresponding rule.
From left to right, the first applicable rule is used to redirect duplicate URLs and to generate URLs:
"www.your-hostname.com" :
[
{
"pipeline" : "PiplineA-StartNode"
},
{
"if-site-path" : "eu",
"pipeline" : "PiplineA-StartNode"
},
{
"entry-point-pipelines" : [ "PiplineA-StartNode" ],
"entry-point-destination" : [ "host", "site-path", "pipeline" ]
}
]With this configuration, all requests that identify the
PiplineA-StartNode pipeline are redirected to the host only
destination. The host only URL invokes the pipeline.
Duplicate Pipeline Rule
The following example shows how to mark pipelines (for example,
PiplineB-StartNode and PiplineC-StartNode) as
duplicates of, for example, PiplineA-StartNode. If either of the two
marked pipelines are called, a redirect automatically occurs to the defined
PiplineA-StartNode URL:
"www.your-hostname.com" :
[
{
"pipeline" : "PiplineA-StartNode"
},
{
"if-site-path" : "eu",
"pipeline" : "PiplineA-StartNode"
},
{
"entry-point-pipelines" : [ "PiplineA-StartNode", "PiplineB-StartNode", "PiplineC-StartNode" ],
"entry-point-destination" : [ "site-path", "host", "pipeline" ]
}
]With this configuration, all requests that identify the
PiplineA-StartNode pipeline are redirected to the site path
destination. All requests that identify PiplineB-StartNode or
PiplineC-StartNode pipeline are redirected to the URL defined for
PiplineA-StartNode, which is the site path destination URL.
Checklist to Avoid Duplicate Resources
To avoid duplicate resources for your storefront URLs, do the following:
- Configure trailing slashes for:
- Categories
- Folders
- Pipelines
- If configured, site-paths
- Configure pipelines for host and site-path rules. (If no pipeline is defined means,
the
Default-Startpipeline is invoked.)- Define a duplicate URL rule for those pipelines.
- If you have already defined RedirectURL mappings, remove them to avoid conflicts.
- Identify which pipelines are contextual equals. The most common example is
Default-Start, which forwards toHome-Show. Define a duplicate pipeline rule to handle this. - Verify that rules are defined for all hostname mappings.
Example 1: One Locale and One Hostname
In
this example, your site has one locale and one hostname defined. You have
identified Default-Start (alias=homepage) and
Home-Show (alias=home) as duplicate pipelines and
Default-Start with multiple URLs. Your goal is to avoid
these duplicates and redirect them to the host only URL.
To do this, configure your hostname alias file as follows:
"www.your-hostname.com" :
[
{
},
{
"entry-point-pipelines" : [ "Default-Start", "Home-Show" ],
"entry-point-destination" : [ "host" ]
}
]This is the new behavior for the following duplicate resource URL requests:
- www.your-hostname.com/ (invoking pipeline)
- www.your-hostname.com/home (redirect)
- www.your-hostname.com/home/ (redirect)
- www.your-hostname.com/homepage (redirect)
- www.your-hostname.com/homepage/ (redirect)
This is the new behavior for the URL generation API:
- pipeline
Default-Startand host'www.your-hostname.com': www.your-hostname.com/ - pipeline
Home-Showand host'www.your-hostname.com': www.your-hostname.com/
Example 2: Two Locales and Two Hostnames
In this example, your site has two locales
(en_UK and de_DE) and two hostnames that
are shared with other sites:
-
www.your-hostnameA.com- works without a site path for this site -
www.your-hostnameB.com- works with a site path only
You have identified Default-Start
(alias=homepage) and Home-Show (alias=home) as duplicate
pipelines and Default-Start with multiple URLs. Your goal
is to avoid these duplicates and redirect them to the host only URL, with
the site path URL as a fallback.
To do this, configure your hostname alias file as follows:
"www.your-hostnameA.com" :
[
{
"locale":"en_UK" },
{
"if-site-path":"de",
"site-path-trailing-slash" : "no",
"locale":"de_DE"
},
{
"entry-point-pipelines" : [ "Default-Start", "Home-Show" ],
"entry-point-destination" : [ "host", "site-path" ]
}
]
"www.your-hostnameB.com" :
[
{
"if-site-path":"uk",
"site-path-trailing-slash" : "no",
"locale":"en_UK"
},
{
"if-site-path":"de",
"site-path-trailing-slash" : "no",
"locale":"de_DE"
},
{
"entry-point-pipelines" : [ "Default-Start", "Home-Show" ],
"entry-point-destination" : [ "host", "site-path"
]
}
]The new behavior for the following duplicate resource URL requests is as follows:
- www.your-hostnameA.com/ (invoking pipeline)
- www.your-hostnameA.com/home (redirect)
- www.your-hostnameA.com/home/ (redirect)
- www.your-hostnameA.com/homepage (redirect)
- www.your-hostnameA.com/homepage/ (redirect)
- www.your-hostnameA.com/de (invoking pipeline)
- www.your-hostnameA.com/de/ (redirect)
- www.your-hostnameA.com/de/home (redirect)
- www.your-hostnameA.com/de/home/ (redirect)
- www.your-hostnameA.com/de/homepage (redirect)
- www.your-hostnameA.com/de/homepage/ (redirect)
- www.your-hostnameB.com/uk (invoking pipeline)
- www.your-hostnameB.com/uk/ (redirect)
- www.your-hostnameB.com/uk/home (redirect)
- www.your-hostnameB.com/uk/home/ (redirect)
- www.your-hostnameB.com/uk/homepage (redirect)
- www.your-hostnameB.com/uk/homepage/(redirect)
- www.your-hostnameB.com/de (invoking pipeline)
- www.your-hostnameB.com/de/ (redirect)
- www.your-hostnameB.com/de/home (redirect)
- www.your-hostnameB.com/de/home/ (redirect)
- www.your-hostnameB.com/de/homepage (redirect)
- www.your-hostnameB.com/de/homepage/ (redirect)
The new behavior for URL generation API is as follows:
- host 'www.your-hostnameA.com'
- pipeline ('Default-Start' or 'Home-Show') and locale 'en_UK': www.your-hostnameA.com/
- pipeline ('Default-Start' or 'Home-Show') and locale 'de_DE': www.your-hostnameA.com/de
- host 'www.your-hostnameB.com'
- pipeline ('Default-Start' or 'Home-Show') and locale 'en_UK': www.your-hostnameB.com/uk
- pipeline ('Default-Start' or 'Home-Show') and locale 'de_DE': www.your-hostnameB.com/de
Example 3: Three Locales and One Hostname
In this example, your site has three locales
(en_UK (site's default locale), fr_FR,
and de_DE), and one hostname. You want to support the
site-path both with and without the eu prefix. You have
identified Home-Show (alias=home) with multiple URLs and
the PipelineB-Show pipeline (alias=show-something-b) as
duplicate for the PipelineA-Show pipeline
(alias=show-something-a). Your goal is to avoid duplicate URLs for
Home-Show and redirect requests for
PipelineB-Show to
PipelineA-Show.
To do this, configure your hostname alias file as follows:
"www.your-hostnameA.com" :
[
{
"if-site-path":"eu/uk",
"site-path-trailing-slash" : "no",
"pipeline":"Home-Show"
},
{
"pipeline":"Home-Show"
},
{
"if-site-path":"eu/fr",
"site-path-trailing-slash" : "no",
"locale":"fr_FR",
"pipeline":"Home-Show"
},
{
"if-site-path":"fr",
"site-path-trailing-slash" : "no",
"locale":"fr_FR", "pipeline":"Home-Show"
},
{
"if-site-path":"eu/de",
"site-path-trailing-slash" : "no",
"locale":"de_DE",
"pipeline":"Home-Show"
},
{
"if-site-path":"de",
"site-path-trailing-slash" : "no",
"locale":"de_DE",
"pipeline":"Home-Show"
},
{
"entry-point-pipelines" : [ "Home-Show" ],
"entry-point-destination" : [ "site-path" ]
},
{
"entry-point-pipelines" : [ "PipelineA-Show", "PipelineB-Show"],
"entry-point-destination" : [ "pipeline"]
}
] Set the trailing slash to NO for pipelines
and then enable it.
The new behavior for the following duplicate resource URL requests is as follows:
- www.your-hostname.com/eu/uk (invoking pipeline)
- www.your-hostname.com/ (redirect)
- www.your-hostname.com/home (redirect)
- www.your-hostname.com/home/ (redirect)
- www.your-hostname.com/eu/uk/ (redirect)
- www.your-hostname.com/eu/uk/home (redirect)
- www.your-hostname.com/eu/uk/home/ (redirect)
- www.your-hostname.com/eu/fr (invoking pipeline)
- www.your-hostname.com/fr (redirect)
- www.your-hostname.com/fr/ (redirect)
- www.your-hostname.com/fr/home (redirect)
- www.your-hostname.com/fr/home/ (redirect)
- www.your-hostname.com/eu/fr/ (redirect)
- www.your-hostname.com/eu/fr/home (redirect)
- www.your-hostname.com/eu/fr/home/ (redirect)
- www.your-hostname.com/eu/de (invoking pipeline)
- www.your-hostname.com/de (redirect)
- www.your-hostname.com/de/ (redirect)
- www.your-hostname.com/de/home (redirect)
- www.your-hostname.com/de/home/ (redirect)
- www.your-hostname.com/eu/de/ (redirect)
- www.your-hostname.com/eu/de/home (redirect)
- www.your-hostname.com/eu/de/home/ (redirect)
- www.your-hostname.com/eu/show-something-a (invoking pipeline)
- www.your-hostname.com/show-something-a (redirect)
- www.your-hostname.com/show-something-a/ (redirect)
- www.your-hostname.com/show-something-b (redirect)
- www.your-hostname.com/show-something-b/ (redirect)
- www.your-hostname.com/eu/show-something-a/ (redirect)
- www.your-hostname.com/eu/show-something-b (redirect)
- www.your-hostname.com/eu/show-something-b/ (redirect)
- www.your-hostname.com/eu/de/show-something-a (invoking
pipeline)
- www.your-hostname.com/de/show-something-a (redirect)
- www.your-hostname.com/de/show-something-a/ (redirect)
- www.your-hostname.com/de/show-something-b (redirect)
- www.your-hostname.com/de/show-something-b/ (redirect)
- www.your-hostname.com/eu/de/show-something-a/ (redirect)
- www.your-hostname.com/eu/de/show-something-b (redirect)
- www.your-hostname.com/eu/de/show-something-b/ (redirect)
- www.your-hostname.com/eu/fr/show-something-a (invoking
pipeline)
- www.your-hostname.com/fr/show-something-a (redirect)
- www.your-hostname.com/fr/show-something-a/ (redirect)
- www.your-hostname.com/fr/show-something-b (redirect)
- www.your-hostname.com/fr/show-something-b/ (redirect)
- www.your-hostname.com/eu/fr/show-something-a/ (redirect)
- www.your-hostname.com/eu/fr/show-something-b (redirect)
- www.your-hostname.com/eu/fr/show-something-b/ (redirect)
The new behavior for the URL generation API is as follows:
- pipeline 'Home-Show' and locale 'en_UK': www.your-hostname.com/eu/uk
- pipeline 'Home-Show' and locale 'fr_FR': www.your-hostname.com/eu/fr
- pipeline 'Home-Show' and locale 'de_DE': www.your-hostname.com/eu/de
- pipeline ('PipelineA-Show' or 'PipelineB-Show') and locale 'en_UK': www.your-hostname.com/eu/show-something-a
- pipeline ('PipelineA-Show' or 'PipelineB-Show') and locale 'fr_FR': www.your-hostname.com/eu/fr/show-something-a
- pipeline ('PipelineA-Show' or 'PipelineB-Show') and locale 'de_DE': www.your-hostname.com/eu/de/show-something-a
With this mapping, all pipeline aliases (or category/folder
mappings) are available with two site paths eu and
eu/[locale]. If these URLs are not published, for
example, via your sitemap or email recommendation, you don't need to
configure rules for these resources.
