Jump to content
balboa

Скрыть контент от поисковых систем - .php

Recommended Posts

Всем привет

 

Появилась задача скрыть вывод результата .php функции из кода страницы.

 

Т.е, функция .php выводит на странице блок контента в виде .html кода и его нужно скрыть из кода но оставить видным для посетителя.

 

Для простого кода .html - отлично подходит такой метод:

 

1) Подключаем библиотеку:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>

2) Создаем hide_file.html файл с кодом того что будем скрывать. (любой - html код)

3) Добавляем скрипт с указанием пути до файла с кодом скрытия:

<script type="text/javascript">$(document).ready(function() {$('#hidden').load('/upload/hide_file.html');});</script>

4) Прописываем id вывода в месте где ранее был код:

<div id="hide_file"></div> 

5) Чистим кеширование, если есть.

 

6) Прописать правило в файле robots.txt:

Disallow: /js*

Есть-ли подобный метод для php?

Share this post


Link to post
Share on other sites

Поискови давно понимают javascript и это контент от них не скрывает. Нет php так не может.

Понимаю, но это скорее для улучшения релевантности текста. Т.е не стоит задачи скрыть что-то вредоносное.

Share this post


Link to post
Share on other sites

 

<script type="text/javascript">
(function ($) {
$ (function (){
$("#m1").load (" /upload/hide_file.php");
})
}) (jQuery)
    </script>
<div id="m1"></div>

 

ПС перейдет по ссылке, нужно отправлять на сервер POST запрос, и GET по этому же url отдавать 404. Недавно был случай с $.ajax, гугл по мимо того что url брал, так он еще и содержимое data подставлял к ссылке, вот пример

$.ajax({
    "url": "/ajax/setup/",
    "method": "POST",
    "data": {"id": 1, "urlPage": "/catalog/"}
});

При таким раскладе google bot активно долбил ссылку /ajax/setup/?id=1&urlPage=/catalog/

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

Share this post


Link to post
Share on other sites

Agent.php

<?php
class Agent
{
    public static $robots = array(
        'googlebot',
        'msnbot',
        'slurp',
        'yahoo',
        'askjeeves',
        'fastcrawler',
        'infoseek',
        'lycos',
        'ia_archiver',
        'yandex',
        'mail.ru',
        'ask.com',
        'Copyscape.com',
        'bing.com',

    );

    protected function __construct() { }

    protected static function find($agents)
    {
        if (isset($_SERVER['HTTP_USER_AGENT'])) {
            foreach ($agents as $agent) {
                if (stripos($_SERVER['HTTP_USER_AGENT'], $agent) !== false) {
                    return true;
                }
            }
        }

        return false;
    }

    public static function isRobot()
    {
        return Agent::find(Agent::$robots);
    }
}
?>

Вывод:

include 'Agent.php';
if (!Agent::isRobot()) {
     echo 'Роботы не увидят';
}

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...