Разрешить неанглийские (ASCII) символы в URL для SEO? - PullRequest
10 голосов
/ 06 января 2010

У меня есть много контента в формате UTF-8, который я хочу вставить в URL для целей SEO. Например, отправьте теги, которые я хочу включить в URI (site.com/tags/id/TAG-NAME). Однако только символы ASCII допускаются стандартами.

Символы, которые разрешены в URI но не имеют зарезервированной цели называется безоговорочным. Они включают прописные и строчные буквы, десятичные цифры, дефис, точка, подчеркивание и тильда.

Решение выглядит следующим образом: :

  • Преобразование строки символов в последовательность байтов с использованием UTF-8 кодировка
  • Конвертировать каждый байт не буква ASCII или цифра в% HH, где ЧЧ - шестнадцатеричное значение байт

Однако это преобразует разборчивые (и ценные для SEO) слова в mumbo-jumbo . Поэтому мне интересно, достаточно ли у Google все еще достаточно умного, чтобы обрабатывать поисковые запросы в URL, содержащие зашифрованные данные, или мне следует попытаться преобразовать эти неанглийские символы в их полу-ASCII-аналоги (что может помочь с латинскими языками)?

Ответы [ 2 ]

9 голосов
/ 29 января 2010

Во-первых, поисковые системы действительно не заботятся об URL-адресах. Они помогают посетителям: посетители ссылаются на сайты, и поисковые системы заботятся об этом. URL-адреса легко спамить, если бы они заботились о спаме. Ни одна крупная поисковая система не хочет этого. allinurl: - это просто функция Google, помогающая продвинутым пользователям, а не то, что учитывается при органическом ранжировании. Любая выгода, которую вы получаете от использования более естественного URL, вероятно, придет как незначительная выгода от PR от плохой поисковой системы, индексирующей ваш сайт - и есть некоторые доказательства того, что это может быть отрицательным с появлением отрицательного PR тоже.

С Google Webmaster Central

Значит ли это, что мне следует избегать вообще переписывать динамические URL?

Это наша рекомендация, если ваш переписывает только удаление ненужные параметры, или вы очень старательно удаляет все параметры, которые могут вызвать проблемы. Если вы преобразуете свой динамический URL в чтобы это выглядело статично, вы должны быть осознавая, что мы не сможем правильно интерпретировать информацию в все дела. Если вы хотите служить статический эквивалент вашего сайта, вы может захотеть рассмотреть трансформацию основное содержание, обслуживая замена, которая действительно статична. Один Примером может быть создание файлов для все пути и сделать их доступными где-то на вашем сайте. Однако если вы используете переписывание URL (скорее чем сделать копию содержимого) создавать статически выглядящие URL-адреса из динамический сайт, вы можете причинить вред а не хорошо. Не стесняйтесь служить нам ваш стандартный динамический URL, и мы автоматически найдет параметры которые не нужны.

Лично я не верю, что это так важно, если чуть больше щелкнуть мышью и помочь пользователям. Что касается Unicode, вы не понимаете, как это работает: запрос направляется в шестнадцатеричное место назначения Unicode, но механизм визуализации должен знать, как с этим справиться, если он хочет декодировать их обратно во что-то визуально привлекательное. Google будет корректно отображать (закодировать) URL в кодировке Unicode .

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

Я хотел бы показать вам пример этого, вот запрос к http://hy.wikipedia.org/wiki/Գլխավոր_Էջ, выданный wget:

Hypertext Transfer Protocol
    GET /wiki/%D4%B3%D5%AC%D5%AD%D5%A1%D5%BE%D5%B8%D6%80_%D4%B7%D5%BB HTTP/1.0\r\n
        [Expert Info (Chat/Sequence): GET /wiki/%D4%B3%D5%AC%D5%AD%D5%A1%D5%BE%D5%B8%D6%80_%D4%B7%D5%BB HTTP/1.0\r\n]
            [Message: GET /wiki/%D4%B3%D5%AC%D5%AD%D5%A1%D5%BE%D5%B8%D6%80_%D4%B7%D5%BB HTTP/1.0\r\n]
            [Severity level: Chat]
            [Group: Sequence]
        Request Method: GET
        Request URI: /wiki/%D4%B3%D5%AC%D5%AD%D5%A1%D5%BE%D5%B8%D6%80_%D4%B7%D5%BB
        Request Version: HTTP/1.0
    User-Agent: Wget/1.11.4\r\n
    Accept: */*\r\n
    Host: hy.wikipedia.org\r\n
    Connection: Keep-Alive\r\n
    \r\n

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

2 голосов
/ 28 января 2010

Знаете ли вы, на каком языке все будет? Это все на латинице?

Если это так, то я бы предложил создать своего рода справочную таблицу, которая будет преобразовывать UTF-8 в ASCII, когда это возможно (и не будет конфликтовать). символ не существует в вашей таблице поиска, он просто использует% HH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...