Могу ли я использовать дружественный URL в SearchAction? - PullRequest
0 голосов
/ 18 января 2019

Вот мой текущий 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> 

Как видите, я использую дружественный URL на target.

Я видел людей, использующих строку запроса в URL, например:

https://example.com/?search={search_term_string} 

Я не видел людей, использующих дружественный URL на target. Это не разрешено?

А на https://developers.google.com/search/docs/data-types/sitelinks-searchbox написано:

Проверьте реализацию своей поисковой системы, скопировав URL-адрес WebSite.potentialAction.target из структурированных данных, заменив search_term_string тестовым запросом и перейдя по этому URL-адресу в веб-браузере. Например, если ваш сайт - example.com, и вы хотите протестировать запрос «котята», вы должны перейти к 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}.

Итак, мой вопрос : Могу ли я использовать дружественный URL на target? И код моего фрагмента верен?

Ответы [ 2 ]

0 голосов
/ 18 января 2019

Согласитесь с вышеуказанным решением от @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>
0 голосов
/ 18 января 2019

Конечно, вы должны использовать URL, который работает .

Google будет использовать URL-адрес target для своего окна поиска Sitelink, чтобы пользователи могли выполнять поиск в поисковой выдаче Google и в конечном итоге во внутренней поисковой выдаче. Если вы укажете URL-адрес target, который ведет к 404 страницам, эта функция не имеет смысла, и Google не будет заинтересован, чтобы включить ее для ваших результатов.

Если этот URL окажется дружественным (например, без компонента запроса), пусть будет .

...