Как скрыть мой XML Sitemap от конкурентов, но не от поисковых систем

10

Я хочу спрятать свой XML-файл Sitemap от всех, но разрешить доступ с поисковых систем.

Как это сделать?

Я хочу скрыть глубину содержания сайта от конкурентов.

AGA
источник
1
Если сайт и его страницы не защищены именем пользователя и паролем, любой орган может просматривать их, им просто нужно перейти по ссылкам на вашем собственном сайте.
PatomaS
Я могу проверить IP бота Google и разрешить и запретить другим. Хотя мы не можем получить полный список IP-адресов Googlebot.
AgA

Ответы:

8

Первым шагом будет обнаружение User-Agent ботов, которых вы хотите разрешить , и обслуживание другого файла, если это не User-Agent, которого вы хотите разрешить.

Например, у вас может быть две версии robots.txt, одна с и без ссылки на карту сайта, поэтому ваши конкуренты не найдут карту сайта, если заглянут внутрь вашей robots.txt.

Затем вы можете обнаружить посещения вашего URL-адреса карты сайта и обслуживать карту сайта только тогда, когда UA правильно указан. Если вы предоставляете общую страницу 404 в противном случае, ваши конкуренты могут даже не знать, что ваша карта сайта существует.

Однако все меры, описанные до этого момента, являются просто безопасностью через неизвестность. Пользователь-агент может быть легко подделан.

Поэтому Google рекомендует , чтобы для определения реального GoogleBot вы:

  1. Выполните обратный поиск DNS для IP-адреса, утверждающего, что он является GoogleBot.
  2. Проверьте, является ли хост поддоменом googlebot.com..
  3. Выполните обычный поиск DNS для субдомена.
  4. Проверьте, указывает ли поддомен IP-адрес бота, сканирующего ваш сайт.

Подвести итог:

Блок-схема (когда показывать карту сайта)

Microsoft рекомендует использовать ту же процедуру для обнаружения своего сканера.

Этот трюк работает на Yahoo! также.

Для DuckDuckGo вы можете использовать этот список IP-адресов

Заметка

Вам не нужно использовать ошибку 404, если вы используете обнаружение паука на основе DNS-поиска.

Цель использования страницы ошибки 404 - скрыть, что ваша карта сайта существует вообще. Однако, если вы используете более продвинутую технику, которая не зависит исключительно от User-Agentзаголовков, не должно быть возможности ее обойти, чтобы вы могли безопасно использовать другой код ошибки, например, 403 Forbiddenкоторый является правильным кодом ошибки для использования здесь.

user2428118
источник
6

Проблема заключается в том, что если вы (совершенно справедливо) хотите, чтобы ваш контент индексировался поисковыми системами, любой, кто выполняет сайт: поиск в одной из поисковых систем, сможет увидеть, какие URL индексируются.

Если вы хотите «спрятать» свою карту сайта, вы можете разместить ее на URL-адресе с «секретным» именем, так что это не очевидно для тех, кто может его искать, но сочтет целесообразным включить карту сайта в файл robots.txt. файл и загрузить его в один из профилей инструментов для веб-мастеров поисковых систем, как говорили другие люди, трудно понять, зачем вам это нужно.

user3336644
источник
В случае Google Webmaster Tools / Search Console вам даже не нужно загружать его. Вы можете просто добавить скрытый URL карты сайта, и он продолжит его использовать.
Devabc
4

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

«Финт» содержит основную структуру вашего сайта, домашнюю страницу, контакты, о нас, основные категории. Похоже, реальная сделка и будет отлично работать в неизвестных поисковых системах, которые вас не интересуют. Это также будет бесполезно для ваших конкурентов. Разрешить индексировать его, чтобы они нашли его, дать ему очевидное имя, например sitemap.xml.

Теперь создайте свою реальную карту сайта с кодом. Дайте ему имя, например, «product-information-sitemap.xml», чтобы это было разумное имя, но на самом деле его было легче угадать, чем ваш пароль.

В вашей конфигурации Apache для папки Sitemap поместите что-нибудь на место, чтобы поисковые системы могли получить доступ ко второму файлу Sitemap, но не проиндексировать его:

<IfModule mod_rewrite.c>
    <Files product-information-sitemap.xml>
        Header set X-Robots-Tag "noindex"
    </Files>
</IfModule>

Теперь создайте код, который будет обновляться, рассмотрите третий файл Sitemap для изображений. Dowwngrade, как требуется, чтобы создать «финт». Обратите внимание и на отметки времени, Google обращает на них внимание, и это важно, если ваша карта сайта большая.

Теперь создайте задание cron для регулярной отправки карты сайта ваших продуктов в Google. В вашей записи crontab добавьте что-то вроде этого, чтобы каждую неделю отправлять ваш реальный файл сайта:

0 0 * * 0 wget www.google.com/webmasters/tools/ping?sitemap=http%3A%2F%2Fwww.example.com%2Fsitemaps%2Fproduct-information-sitemap.xml

Обратите внимание, что URL-адрес закодирован.

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

Ваш robots.txt не должен быть чем-то особенным, только если он не запрещает вход в ваши карты сайта, все должно быть хорошо. На самом деле нет необходимости отправлять различные файлы robots.txt на основе строк пользовательского агента или чего-либо такого сложного. Просто извлеките свой драгоценный контент в дополнительный, не рекламируемый файл и отправьте его в Google на задание cron (вместо того, чтобы ждать бота). Просто.

Theodores
источник
0

Я не понимаю, почему структура сайта может вызвать проблемы у конкурента?

Смысл карты сайта в том, чтобы проиндексировать страницы, чтобы люди могли легче их найти, что, в некоторой степени, должно показать, как организован ваш сайт, например:

  • /news/ содержит ваши статьи новостей
  • /forum/ где все обсуждения на форуме

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

Папки, которые вы не хотите иметь индекс похож на

  • PHP классы и функции, которые позволяют сайту работать
  • Изображения сайта, CSS, папки JavaScript
  • Панель администрирования

Тогда, если это так, то их вообще не должно быть в вашей карте сайта. Кроме того, вы также можете исключить их из индексации.

Zistoloen
источник
0

Если у вас есть IP-адреса ботов, которых вы хотите разрешить:

<Limit GET POST PUT>
order deny,allow
deny from all
allow from 192.168.1.1 # IP 1
allow from 192.168.1.2 # IP 3
allow from 192.168.1.3 # IP 2
</LIMIT>

Если вы хотите, чтобы это основывалось на строке агента пользователя:

Order Allow,Deny
allow from env=good_bot_1
allow from env=good_bot_2
Мартейн
источник
Полный список IP-адресов Google, Bing является секретным. Они не будут разглашать это миру, так как это создает большой риск сокрытия сайтами.
AgA
И именно поэтому я добавил 2-ю возможность :) С именем гораздо проще, но хотел дать полный ответ
Мартейн
0

Попробовать можно одним способом: в обычном сеансе сканирования Google-боты получают доступ к robots.txt и затем переходят к файлу карты сайта. Вставьте файл cookie для всех порций файла robots.txt и разрешите доступ к карте сайта только тем людям, у которых есть файл cookie. Будет проблема, когда боты Google не принимают куки. Так что сделай наоборот. Вставьте файл cookie, когда пользователь получит доступ к странице, отличной от robots.txt, и запретите доступ к карте сайта для пользователей, имеющих файл cookie. Кроме того, присвойте зашифрованное имя своей карте сайта, что-то, что меняется со временем и делает его неубедительным. Если у ваших конкурентов в своем браузере включены файлы cookie, им будет крайне сложно получить доступ к карте сайта, если они не следуют точному пути, по которому идет поисковая система.

Рана Пратхап
источник
0

Я полагаю, что правильно понял ваше требование, поэтому проявляю смелость ответить.

дайте ссылку на изображение к вашей карте сайта непосредственно перед вашим </html>тегом. Используйте прозрачный GIF-файл 1px:

<a href="sitemap.xml"><img src="transparent.gif" alt="" height="1" width="1" /></a>

На странице, на которой есть ссылка на вашу карту сайта, установите соответствующий метатег:

<meta name="robots" content="{index or noindex},follow">

проверьте визуальное состояние при нажатии Ctrl+, Aчтобы выбрать всю страницу. Является ли ссылка на 1 пиксель видимой, рискованной для вас?

Если вы скажете да, может быть другой вариант:

  1. создайте ссылку на вашу карту сайта: <a href="sitemap.xml">&nbsp;</a>
  2. изменить цвет шрифта так же, как цвет фона
  3. Используя методы CSS, скройте эту ссылку за изображением

Таким образом, обычный пользователь не заметит вашу ссылку. Поисковые системы будут знать об этом. Но, пожалуйста, имейте в виду, что присущая вашему вопросу природа подразумевает невозможность.

Я говорю невозможность, потому что, если пользователь ищет в Google, например, с этими условиями

* site:www.yoursite.com

Весь мир может видеть все ваши ссылки, если они не устают нажимать на nextссылки.

Я надеюсь, что это помогает.

Андре Шенье
источник
Почему это мешало бы пользователям находить / получать доступ к XML-карте сайта, если вы обычно не начинаете ссылаться на свою XML-карту сайта?
MrWhite
Я спросил тот же вопрос для себя, но это то, что я поняла от владельца вопроса. Я думаю, что это его требование как-то. Я не уверен :-)
Андре Шенье