Как я могу переместить URL-адрес с помощью перенаправления 301 и сохранить лайки страницы на Facebook и информацию Open Graph?

Я понимаю, что метатег og:url является каноническим URL-адресом ресурса в открытом графике.

Какие стратегии я могу использовать, если хочу поддерживать 301 перенаправление ресурса, сохраняя при этом его место в открытом графе? Я не хочу терять свои лайки, потому что я изменил URL-адреса.

Лучший способ сделать это, чтобы сохранить исходный URL-адрес контента и ссылаться на него? Существуют ли какие-либо другие стратегии для борьбы с этим?

Чтобы уточнить - у меня есть страница:

/page1, с og:url из http://www.example.com/page1

Теперь я хочу переместить его на /page2, используя перенаправление 301 на http://www.example.com/page2.

Есть ли у меня какие-либо варианты, чтобы избежать потери лайков и комментариев, кроме установки метаданных og:url на /page1?


person timmow    schedule 25.08.2011    source источник


Ответы (2)


Короткий ответ, вы не можете.

Как только объект создан на стороне Facebook, его URL-адрес в диаграмме Facebook фиксируется — лайки и комментарии связаны с этим URL-адресом и объектом; вам нужно, чтобы этот URL был доступен сканеру Facebook, чтобы поддерживать этот объект в будущем. (обратите внимание, что объект, становящийся недоступным, не обязательно удаляет его из Facebook, но фактически вы начинаете сначала)

Что я обычно рекомендую здесь (с примерами http://www.example.com/oldurl и http://www.example.com/newurl):

  • На /newpage держите тег og:url, указывающий на /oldurl
  • Add a HTTP 301 redirect from /oldurl to /newurl
    • Exempt the Facebook crawler from this redirect
    • Продолжайте обслуживать метатеги для страницы на http://www.example.com/oldurl, если запрос исходит от поискового робота Facebook.
    • Нет необходимости возвращать краулеру какой-либо фактический контент, достаточно простой HTML-страницы с соответствующими тегами.

Таким образом:

  1. Существующие экземпляры объекта на Facebook при нажатии перенаправляют пользователей на правильную (новую) страницу с помощью вашего перенаправления.
  2. Кнопка «Нравится» на (новой) странице по-прежнему будет отмечать правильный объект (но по старому URL-адресу).

Если вы перемещаете много URL-адресов или полностью переписываете свою схему URL-адресов, вам следует использовать новые URL-адреса для новых статей/продуктов/и т. д., но вам нужно будет сохранить перенаправление на месте, если вы хотите сохранить лайки, комментарии, и т. д. на старом контенте.

Это включает в себя, если вы меняете домен.

Единственная проблема здесь заключается в сохранении старого сопоставления URL-адреса -> нового URL-адреса где-то в вашем коде, но технически это не сложно, просто дополнительная вещь, которую нужно поддерживать в будущем.

Кстати, поисковый робот Facebook в настоящее время facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php).

person Community    schedule 14.04.2012
comment
Если старый URL-адрес подвергся перенаправлению 301, а затем следовал вашим рекомендациям, будет ли счетчик лайков fb по-прежнему сбрасываться до 0? - person Fadhli Rahim; 22.04.2013
comment
Если у вас были лайки на URL-адресе, а затем вы перенаправили этот URL-адрес в другое место, сохранит ли цель перенаправления количество лайков старого URL-адреса? Нет, я совершенно уверен, что это не так. это почти противоположно обходному пути, который предлагает мой ответ - person Igy; 22.04.2013
comment
Зачем нужно освобождать поисковый робот facebook от редиректа? Что произойдет, если вы этого не сделаете? - person Lode; 10.06.2014
comment
Я не уверен на 100%, но я полагаю, что сканер считает страницу «после перенаправления» каноническим URL-адресом и может игнорировать лайки, комментарии и т. д. по «старому» URL-адресу (который сейчас находится в середине перенаправления). цепочка к конечному каноническому URL) - person Igy; 10.06.2014
comment
Тьфу, -10 Facebook за то, что он сделал это единственным способом и не предложил нам руководство. Спасибо за решение, но для большинства людей это все еще слишком сложно и требует непропорциональной сложности. - person jerclarke; 18.05.2015
comment
С другой стороны, лайки гораздо важнее для нового контента, чем для старого, поэтому начинать все сначала — это не конец света. - person jerclarke; 18.05.2015
comment
это то, что FB в настоящее время говорит о своем поисковом роботе (включая обновленный UA) — плюс хорошо видеть, что они разрешают обнаруживать UA, так что это нормально — developers.facebook.com/docs/sharing/webmasters/crawler - person Simon_Weaver; 26.09.2015
comment
Да, эта страница документации частично основана на моем ответе здесь — я забыл добавить сюда ссылку после того, как она была опубликована в апреле — спасибо за ее предоставление. - person Igy; 28.09.2015
comment
Что, если я полностью сменил домен и делаю это в htaccess, на данный момент нет возможности открыть старую страницу, есть идеи, как это сделать? - person Karim Samir; 01.11.2015
comment
Что вы имеете в виду под «нет возможности открыть старую страницу»? вам нужно, чтобы старый URL-адрес по-прежнему реагировал на поисковый робот Facebook, чтобы приведенный выше ответ работал, если по какой-то причине это невозможно, вы будете начинать с 0 с URL-адресами в новом домене / новые URL-адреса - person Igy; 01.11.2015
comment
на данный момент этот ответ больше не соответствует действительности. см. developers.facebook.com/docs/plugins/faqs - person törzsmókus; 28.12.2016
comment
Я считаю, что FAQ по-прежнему согласуется с этим ответом: (из «Как переместить страницу на другой URL-адрес?» по этому URL-адресу) This also requires that the old URL still renders a document with Open Graph tags and returns a HTTP 200 response, at least when loaded by Facebook's crawler. If you want other clients to redirect when they visit the URL, you must send your 301 HTTP response to all non-Facebook crawler clients. The old URL should contain its own og:url tag that points to itself. - person Igy; 03.01.2017

У меня такая же проблема со старыми сайтами. Домены меняются, администраторы хотят изменить URL-адреса для SEO и т. д.

Я пришел к выводу, что лучше всего иметь какой-то уникальный идентификатор в БД только для Facebook - с самого начала. Например, для статей у меня есть myurl.com/a/123, где 123 — это идентификатор статьи.

Настоящий URL — myurl.com/category/article-title. Затем статью можно поместить в другую категорию, переименовать и т. д. с обширной логикой для 301 редиректа. Но базовый идентификатор fb может оставаться неизменным навсегда.

Конечно, это возможно только при запуске нового сайта или при первом добавлении комментариев в Facebook.

Просто идея, если вы можете планировать заранее :) Дайте мне знать, что вы думаете.

person Miha Trtnik    schedule 13.07.2012
comment
Это не решает миграцию изменения протокола (например, с HTTP на HTTPS). - person Agis; 02.04.2015
comment
Это имеет смысл, но я просто рад, что никогда не реализовывал комментарии Facebook! Какой неловкий беспорядок. FB должен корректно поддерживать 301 и переатрибутировать лайки. Они также должны поддерживать HTTP/HTTPS по умолчанию. - person jerclarke; 18.05.2015