К сожалению (или к счастью), понятие качественного сайта для поисковых систем и для людей разнятся. Взять, к примеру, блоки архивов, тегов, дублирование каких-то ссылок. Иногда они могут дать возможность пользователям лучше изучить сайт и быстрее найти полезную информацию. Однако для Яндекса и Гугла – это лишь страницы с дублированным (считай, неуникальным контентом) и ненужные ссылки, куда утекает «вес сайта».

Можно, конечно, эти блоки удалить, а странички закрыть в robots.txt (что я чаще всего и делаю), но сегодня я предложу другой вариант – скрыть часть кода с помощью Ajax.

Ajax – это технология, которая работает при помощи JavaScript и позволяет динамически подгружать код на страницу. Контент на странице вроде бы есть, но если глянуть в код – его нет. В этом и кроется «козырь» Ajax – мы можем ненужные для поисковых систем блоки скрыть от них, тем самым правильно распределить вес.

Что можно/нужно скрывать через аякс:

  • Блоки тегов;
  • Блоки архивов по месяцам;
  • Внешние ссылки, рекламу;
  • Подписку на почтовую рассылку, RSS-ленту;
  • Блоки авторизации;
  • Циклические ссылки, если другим способом их удалить не удалось;
  • Дубли ссылок и какого-то текста;
  • И прочие блоки, которые не нужно показывать ПС.

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

Вывод кода через Ajax в WordPress

1. Заходим через FTP на свой сайт, в папку с шаблоном. Путь будет, примерно, таким:

/wp-content/themes/НАЗВАНИЕ_ШАБЛОНА/

2. Создаём там файл со следующим названием:

ajax_block.php

3. Открываем этот файл и в него прописываем следующий код:

<?php  
/*
Template Name: AJAX
*/
 
?>  
Code

*Вместо «Code» вставляем кусок кода, который хотим скрыть.

4. Заходим в админку WordPress и создаём новую страницу (не запись, а именно страницу). Название странице даём любое. Например: AJAX.

Поле для текста оставляем пустым. В боковой колонке, атрибуты страницы, там выбираем шаблон AJAX.

Создание страницы в WP

Нажимаем «Опубликовать».

5. Проверяем правильность всех действий, для этого переходим на созданную страницу. На ней должен появиться тот контент, который будет подгружаться.

Не переживайте, если он растянут или имеет неправильный шрифт – это нормально, т.к. не подключены каскадные таблицы стилей (CSS).

Если вместо русских букв отображаются «кракозябры», значит у файла неправильная кодировка, задайте UTF-8 без BOM в текстовом редакторе NotePad++

utf-8 (без bom)

6. В том месте, куда хотите вывести подгружаемый блок, разместите следующий код:

<div id="archives"></div>

7. Аякс работает за счёт jQuery, поэтому нужно его подгрузить (если он ещё не подгружен). Для этого открываем файл header.php

И в нём, перед кодом:

<?php wp_head(); ?>

Вставляем этот код:

<?php  
  wp_deregister_script('jquery');  
  wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"), false, '1.7.2');  
  wp_enqueue_script('jquery');  
?>

8. Возвращаемся в папку с шаблоном (по FTP) и создаём новый файл под названием:

scripts.js

В него вставляем следующий код:

(function($) {  
$(function() {  
 
  $("#archives").load("http://site.ru/ajax/");  
 
})  
})(jQuery)

Вместо http://site.ru/ajax/ вы должны прописать свой адрес к созданной в админке страничке.

9. Открываем файл header.php и перед строчкой:

</head>

Прописываем следующий код:

<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/scripts.js"></script>

На этом всё. Любуемся результатом.

UPD: подгружаемую страничку нужно скрыть от индексации. Это можно сделать, прописав в robots.txt такую строку:

Disallow: /ajax/

Вывод блоков через Ajax в DLE

  • Если в DLE нужно скрыть от поисковиков какой-то HTML- блок (без тэгов движка), то:

    1. Подключаем необходимые библиотеки и скрипт вывода. Для этого открываем через FTP файл main.tpl

    В нём перед кодом:

    </head>

    Прописываем 2 строчки:

    <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js?ver=1.6.4'></script>
    <script type='text/javascript' src='/ajax.js'></script>

    2. Создаём в корне сайта файл:

    ajax.html

    И вставляем в него код, который необходимо вывести на странице.

    3. Создаём JavaScript-документ и называем:

    ajax.js

    И внутрь вставляем следующее:

    (function($) {
    $(function() {
      $("#blockajax").load("/ajax.html");
    })
    })(jQuery)

    4. Последний шаг – выводим скрытый контент. В то место шаблона, где необходимо подгрузить блок, вставляем код:

    <div id="blockajax"></div>

    P.S.: Если хотите использовать несколько блоков (допустим 3) в разных местах, то для этого создайте три файла:

    ajax1.html
    ajax2.html
    ajax3.html

    В ajax.js пропишите:

    (function($) {
    $(function() {
      $("#blockajax1").load("/ajax1.html");
      $("#blockajax2").load("/ajax2.html");
      $("#blockajax3").load("/ajax3.html");
    })
    })(jQuery)

    И используйте эти блоки для вставки:

    <div id="blockajax1"></div>
    <div id="blockajax2"></div>
    <div id="blockajax3"></div>

    Готово!

    P.P.S.: Этот способ можно попробовать применять и к другим CMS.

  • Если вам необходимо скрыть аяксом блок, в котором присутствуют теги движка Data Life Engine ( {vote}, {login}, {calendar}, {include file=»sidebar.tpl»} и прочие), то это можно сделать вот каким методом:

    1. Вам нужно вставить в файл main.tpl перед кодом:

    </head>

    Следующий код:

    <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js?ver=1.6.4'></script>
    <script type='text/javascript' src='/ajaxblock.js'></script>

    2. Создайте папку ajax1 в папке templates

    3. Скопируйте в папку ajax1 всё содержимое из вашей активного шаблона.

    4. Откройте файл main.tpl в папке ajax1 и замените всё содержимое на следующий код:

    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    {calendar}

    Вместо {calendar} вы можете вписать ту часть кода, которую хотите выводить через AJAX.

    5. Теперь создаём статическую страницу. В админке DLE заходим в «статические страницы» и жмем «создать новую страницу»:

    Data Life Engine статические страницы

    Поле «Текст:» можно оставить пустым, а «Название» задать любое. В нашем случае будет «Тест». Остальные поля неважны кроме:

    Создание статической страницы DLE

    6. В корне сайта создаём файл:

    ajaxblock.js

    В него вставляем:

    (function($) {
    $(function() {
      $("#blockajax").load("/test.html");
    })
    })(jQuery)

    Где test – это url, созданной статической страницы.

    7. Последний штрих. В то место шаблона, в котором хотите вывести блок вставляем:

    <div id="blockajax"></div>

Особым параноикам еще и можно закрыть страницу с подгружаемым текстом в robots.txt:

Disallow: /ajax.html

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

Всем успехов!