我可以在 SearchAction 上使用友好的 URL 吗?
Can I use a friendly URL on SearchAction?
我目前 URL 的搜索是这个:
https://example.com/search/key/seach_word_here
JSON-LD
<script type='application/ld+json'>
[
{
"@context":"http:\/\/schema.org",
"@type":"WebSite",
"@id":"#website",
"url":"https://example.com",
"name":"Example",
"potentialAction":{
"@type":"SearchAction",
"target":"https:https://example.com/search/key/{search_term_string}",
"query-input":"required name=search_term_string"
}
},
{
"@context":"http:\/\/schema.org",
"@type":"Organization",
"url": "https://example.com",
"name": "Example",
"logo":"https://example.com/img/logo.png",
"@id":"#organization",
"sameAs": ["https://www.facebook.com/example"]
}
]
</script>
如您所见,我在 target
.
上使用了友好的 URL
我看到有人在 URL 上使用这样的查询字符串:
https://example.com/?search={search_term_string}
我没看到有人在 target
上使用友好的 URL。不允许吗?
在 https://developers.google.com/search/docs/data-types/sitelinks-searchbox 它说:
Verify your search engine implementation by copying the WebSite.potentialAction.target URL from your structured data, replacing search_term_string with a test query, and browsing to that URL in a web browser. For example, if your website is example.com, and you want to test the query "kittens", you would browse to https://www.example.com/search/?q={kittens}
.
我测试了这个 url https://example.com/search/hey/{search_word_here}
并且我没有找到 404,但是这个 URL 有效:https://example.com/?p=search&tp=key&word={search_word_here}
.
所以我的问题是:我可以在target
上使用友好的URL吗?我的代码片段中的代码是正确的吗?
当然,您必须使用 URL 。
Google 将使用 target
URL 作为他们的附加链接搜索框,这样用户就可以在 Google 的 SERP 上搜索并最终到达你的内部 SERP。如果您指定 target
URL 导致 404 页,则拥有此功能毫无意义,并且 Google 没有兴趣为您的结果启用它。
如果 URL 恰好是友好的(例如,没有查询组件),so be it。
同意@unor的上述解决方案,现在回答你的代码更正
请检查发布的目标 url JSON-LD:-
"target":"https:https://example.com/search/key/{search_term_string}",
删除双 https:
同样在 JSON-LD 的情况下:您不能将名称值映射到 /{search_term_string}
正确的做法总是这样:-
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebSite",
"url": "[website url]",
"potentialAction": {
"@type": "SearchAction",
"target": "[website search url]={search_term}",
"query-input": "required name=search_term"
}
}
</script>
微数据:-
<div itemscope itemtype="http://schema.org/WebSite">
<meta itemprop="url" content="[website url]"/>
<form itemprop="potentialAction" itemscope itemtype="http://schema.org/SearchAction">
<meta itemprop="target" content="[website search url]={search_term}"/>
<input itemprop="query-input" type="text" name="search_term">
<input type="submit">
</form>
</div>
我目前 URL 的搜索是这个:
https://example.com/search/key/seach_word_here
JSON-LD
<script type='application/ld+json'>
[
{
"@context":"http:\/\/schema.org",
"@type":"WebSite",
"@id":"#website",
"url":"https://example.com",
"name":"Example",
"potentialAction":{
"@type":"SearchAction",
"target":"https:https://example.com/search/key/{search_term_string}",
"query-input":"required name=search_term_string"
}
},
{
"@context":"http:\/\/schema.org",
"@type":"Organization",
"url": "https://example.com",
"name": "Example",
"logo":"https://example.com/img/logo.png",
"@id":"#organization",
"sameAs": ["https://www.facebook.com/example"]
}
]
</script>
如您所见,我在 target
.
我看到有人在 URL 上使用这样的查询字符串:
https://example.com/?search={search_term_string}
我没看到有人在 target
上使用友好的 URL。不允许吗?
在 https://developers.google.com/search/docs/data-types/sitelinks-searchbox 它说:
Verify your search engine implementation by copying the WebSite.potentialAction.target URL from your structured data, replacing search_term_string with a test query, and browsing to that URL in a web browser. For example, if your website is example.com, and you want to test the query "kittens", you would browse to
https://www.example.com/search/?q={kittens}
.
我测试了这个 url https://example.com/search/hey/{search_word_here}
并且我没有找到 404,但是这个 URL 有效:https://example.com/?p=search&tp=key&word={search_word_here}
.
所以我的问题是:我可以在target
上使用友好的URL吗?我的代码片段中的代码是正确的吗?
当然,您必须使用 URL 。
Google 将使用 target
URL 作为他们的附加链接搜索框,这样用户就可以在 Google 的 SERP 上搜索并最终到达你的内部 SERP。如果您指定 target
URL 导致 404 页,则拥有此功能毫无意义,并且 Google 没有兴趣为您的结果启用它。
如果 URL 恰好是友好的(例如,没有查询组件),so be it。
同意@unor的上述解决方案,现在回答你的代码更正
请检查发布的目标 url JSON-LD:-
"target":"https:https://example.com/search/key/{search_term_string}",
删除双 https:
同样在 JSON-LD 的情况下:您不能将名称值映射到 /{search_term_string}
正确的做法总是这样:-
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebSite",
"url": "[website url]",
"potentialAction": {
"@type": "SearchAction",
"target": "[website search url]={search_term}",
"query-input": "required name=search_term"
}
}
</script>
微数据:-
<div itemscope itemtype="http://schema.org/WebSite">
<meta itemprop="url" content="[website url]"/>
<form itemprop="potentialAction" itemscope itemtype="http://schema.org/SearchAction">
<meta itemprop="target" content="[website search url]={search_term}"/>
<input itemprop="query-input" type="text" name="search_term">
<input type="submit">
</form>
</div>