Разница между rel= "canonical" и og: url?
У меня возникли проблемы с пониманием канонических URL-адресов в отношении того, как, по-видимому, обращаются с ними поисковые системы и Facebook.
Мой сайт, основанный на Google maps, позволяет посетителям использовать социальные сети для запроса концерта в своей стране. Одна из страниц, о которой идет речь, находится по адресу: http://izzy.nogig.in/
Когда пользователь нажимает на свой странный маркер, он дает им варианты совместного доступа (твиттер/facebook/и т.д.), которые при совместном использовании разделяют URL-адрес специально для этой страны, например: izzy.nogig.in/usa? или izzy.nogig.in/spain? и др.
Все эти страны в URL-адресе составляют много дублирующегося содержимого, поэтому я использую следующее, чтобы указать поисковые системы на страницу, которую я хочу найти: -
<link rel="canonical" href="#" onclick="location.href='http://izzy.nogig.in/_?'; return false;"/>
Для Facebook Любите рассчитывать на каждую отдельную страну. Я установил свой Open Graph "og: url" следующим образом, например:
<meta property="og:url" content="http://izzy.nogig.in/australia?" />
Теперь, когда я запускаю URL-адрес для конкретной страны через отладчик объектов Facebook (например, http://developers.facebook.com/tools/debug/og/object?q=http%3A%2F%2Fizzy.nogig.in%2Faustralia%3F), он показывает следующее: -
Response Code: 206
Fetched URL: http://izzy.nogig.in/australia
Canonical URL: http://izzy.nogig.in/australia
Mismatch og:url and canonical url:
og:url tag in the header is not the same URL as rel='canonical' link in the html.
Вышеупомянутая ошибка - это то, что меня смущает. Я знаю, что они несовместимы, но я думал, что это правильный способ сделать это.
Все в отладчике выглядит хорошо для меня (правильная ссылка, описание, изображение и т.д. для каждой страны), и я не могу изменить значение rel= "canonical" в соответствии с моим og: url, поскольку мне это нужно, указывая на одиночная страница (без учета страны) для поисковых систем.
Я считаю, что все работает правильно. Должен ли я просто игнорировать ошибку из отладчика, или я неправильно настроил это? Я не хочу, чтобы "нравы" для каждой страны все исчезали и считались по отношению к rel= "каноническому" URL.
Большое спасибо - Will
Ответы
Ответ 1
link rel="canonical"
будет использоваться поисковыми системами, где og:url
будет использоваться facebook
og:url
в основном сообщает скребок FB "ignore anything on this page, and scrape this url instead
"
Подробнее для элемента Canonical link: http://en.wikipedia.org/wiki/Canonical_link_element
Ответ 2
На одном из сайтов, которые я разработал, я обслуживаю страницу более чем на одном языке и предоставляю ссылки, позволяющие пользователю переключаться между одним языком и другим. Итак, у моего rel="canonical"
будет URL http://www.example.com/
, тогда как в коде я обновляю og:url
так, чтобы он был либо http://en.example.com/
, либо http://fr.example.com/
. Таким образом, когда пользователь делится страницей на Facebook, все будет отображаться на Facebook на языке, который они просматривали на странице, что имеет смысл, поскольку большинство друзей-посетителей, вероятно, будут говорить на одном языке.
С уважением.
Ответ 3
Я не вижу причин, почему og: url и canonical должны отличаться. В обоих случаях вы говорите либо поисковой системе, либо Facebook, какую страницу вы хотите индексировать или отображать.
Ответ 4
Канонические URL-адреса относятся к содержимому страницы.
Целевой (канонический) IRI ДОЛЖЕН идентифицировать контент, который либо дублирующий или дополняющий контент в контексте (ссылаясь) IRI. rfc6596 # 3
URL-адрес Opengraph относится к "объекту".
Канонический URL вашего объекта, который будет использоваться как его постоянный идентификатор в графе, например, http://www.imdb.com/title/tt0117500/ ". ogp.me
Поэтому они могут быть разными. Например, для многоязычных сайтов страница для каждого языка должна иметь отдельный канонический URL-адрес, поскольку контент отличается, но обычно тот же og:url
для всех языков, потому что они относятся к одному и тому же объекту, описанному на нескольких языках.