Проверьте, проиндексирован ли URL Google с помощью PHP

#php #indexing

#php #индексирование

Вопрос:

Я хотел бы знать, возможно ли проверить, проиндексирован ли URL Google с помощью PHP.

Противоречит ли это их ToS?

Ответ №1:

Делать это без API противоречит TOS. Для малого объема вы можете:

 // CHECK IF PAGE IS IN GOOGLE INDEX
$domain = 'stackexchange.com';
if (strstr(file_get_contents("http://www.google.com/search?q=site:$domain"), 'did not match any documents')) {
  // Page is not in the index
  print 'No Go!';
}
else {
  print 'All Good!';
}
exit;
  

Ответ №2:

Вы можете прочитать здесь (соответствующая цитата ниже) ответ на часть ToS этого вопроса. В принципе, без ключа API и их разрешения это, вероятно, не очень хорошая идея. Однако из-за объема, который они обрабатывают, вам может сойти с рук, если вы не делаете ТОННЫ запросов.

Проверка PageRank — это еще кое-что, что люди часто пытаются делать, но они не придают этому достоинству такого большого значения (ходят слухи), а ключи API старого стиля действительно трудно найти.

Не используйте неавторизованные компьютерные программы для отправки страниц, проверки рейтинга и т.д. Такие программы потребляют вычислительные ресурсы и нарушают наши Условия предоставления услуг. Google не рекомендует использовать такие продукты, как WebPosition Gold ™, которые отправляют автоматические или программные запросы в Google.

Комментарии:

1. Спасибо, я ничего не буду делать против их ToS, так что это больше не нужно (для меня).

Ответ №3:

Ну, не явно. Но вы можете проверять каждый просмотр страницы с помощью:

 $agent = $_SERVER['HTTP_USER_AGENT'];

if (strstr($agent, 'googlebot')){

  // tell the database that google has crawled this page.
}
  

Комментарии:

1. он только проверит, посещал ли Google когда-либо эту страницу, и не подтвердит, проиндексировал ли он ее.

Ответ №4:

Для польского языка вам следует попробовать выполнить проверку между UTF-8 и ISO-8859-2 следующим образом:

 $encAry = array('ISO-8859-2', 'UTF-8');
$contentEncoding = mb_detect_encoding( $content, $encAry );
$googleSearchResult = mb_convert_encoding($content, 'UTF-8', $contentEncoding);
  

У меня работает.