Вивчаємо WordPress

446
  • Як приховати посилання від індексації і навіщо це робити
  • Як через Ajax (Аякс) налаштувати підвантаження даних
  • Умова виведення в постах певних рубрик (in_category)
  • Здрастуйте, шановні читачі блогу . Хочу сьогодні трохи розвинути тему, розпочату в першій статті циклу (вона називалася Технічний аудит і внутрішня оптимізація), а саме в деталях розглянути згаданий там спосіб, що дозволяє закрити будь-яке посилання від індексації пошуковими системами. Просте додавання в тег гіперпосилання атрибуту rel=nofollow вже, по суті, не працює, та й дивно буде виглядати в очах пошуку закриття таким чином внутрішніх посилань на сайті.

    Для того, щоб приховати посилання або будь-який інший фрагмент контенту на сайті, нам знадобиться підключити бібліотеку jQuery і використовувати можливості технології Ajax. Звучить все це страхітливо, на практиці ж реалізується на раз-два. Навіщо потрібно закривати посилання від індексації пошуковиками?

    Вивчаємо WordPress

    Для того, щоб отримати дещицю надії на краще ранжування вашого сайту в пошуку. Але рішення про доцільність даного дійства доведеться брати саме вам, а я умиваю руки, бо уклав з вами де факто угода, знімає з мене всяку відповідальність за наслідки (це у продовженні статті про копірайт).

    В кінці статті я описав спосіб виведення з допомогою Ajax різних списків, рекомендованих для прочитання статей, в залежності від того, до якої категорії належить цей пост. Реалізовано це за допомогою функції in_category і прекрасно працює.

    Як приховати посилання від індексації і навіщо це робити

    Отже, ще раз про доцільність використання Ajax (Аякса) для закриття зовнішніх або внутрішніх посилань від індексації Яндексом і Гуглом. Фактично з допомогою Аякса ми можемо приховати будь-який фрагмент із структури свого сайту. При цьому користувачі в браузері будуть бачити приховані фрагменти, а пошук їх бачити не буде. Як це відбувається, я й сам не знаю, але кажуть, що це дійсно працює.

    Взагалі, проблема індексації сайтів використовують Ajax існує вже дуже давно і до цих пір повністю не вирішена. Цей самий Аякс дозволяє довантажувати деякі фрагменти сторінки без її перезавантаження, що робить цю технологію дуже затребуваною. Бачили, у мене вгорі сайдбара живе перекладач Google? Ось він як раз і працює на основі технології Ajax (здійснює переклад в реальному часі без перезавантаження сторінки) і створені ним переклади, природно, не індексуються пошуковими системами.

    Але існування можливості приховування фрагментів сайту від індексації зовсім не говорить на користь того, що це потрібно робити. Давайте подумаємо, а навіщо це може бути потрібно? Мені так здається, що в основному для того, щоб прибрати з індексу все зайве, тим самим допомогти пошуку розгребти ваші авгієві стайні. Поясню.

    У будь-якого сайту є обвіс — верхнє меню, бічна колонка (або колонки), футер і ще може бути щось, що присутні на всіх сторінках сайту. Всі ці речі служать благим намірам зробити сайт прозорим для відвідувача, спростити навігацію та підвищити юзабіліті. Якщо прибрати обвіс, то користувач просто піде з сайту, подивившись одну сторінку (так, до речі, роблять МФА сайти, які заробляють на Адсенс і не дають користувачеві іншої альтернативи, крім як жмакнуть по рекламному посиланню).

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

    Відкрийте вихідний код будь-якої сторінки вашого сайту і оцініть розмір змістовної частини і всього іншого, що має місце бути на всіх сторінках. Подивитися код сторінки можна, клацнувши правою кнопкою миші у вікні браузера і виберіть пункт контекстного меню «Вихідний код» (браузер Opera), або «Вихідний код сторінки» (Фаєрфокс), або «Перегляд коду сторінки» (Хром), або «Перегляд HTML-коду» (Експлорер).

    Звідси випливає висновок, що, по-перше, необхідно почистити код сайту. Забрати всі згадки CSS стилів і Java скриптів в окремий файл (читайте про це у статті Оптимізація CSS Page Speed) і перевірити Html код на валидаторе (можна ще в Html прибрати всі прогалини, але обережно). Ну, а по-друге, спробувати позбутися від обважування, але таким хитрим способом, щоб відвідувачі бачили, а пошук — ні.

    О, передбачаю ваші висловлювання в коментарях з приводу клоакинга. Адже загальний зміст той же. Але, поспішаю Вас переконати, бо є приклади приховування посилань (і навіть цілих блоків) від індексації Аякс і робилося це в основному на комерційних сайтах з високою конкуренцією. Тому необізнаність пошуку про таких фокусах малоймовірна (стук серед власників і просуванців комерційних сайтів є одним з основних інструментів).

    Та й суть клоакинга полягає в підміні аби якого контенту (але приємного погляду відвідувачів) на інший, насичений ключами і не придатний для погляду відвідувачів, але який сподобається роботу. Це дійство було актуально, коли більша кількість ключів у статті давало більш високу позицію у видачі. Зараз такий спосіб буде давати зворотний ефект — бан за переспам, тому його використання не доцільне.

    За великим рахунком, навіть закриття сторінок в тезі Robts або у файлі роботс від індексації, теж змушує павука бачити ваш сайт не таким жахливим, який він є насправді. Ajax ж просто є тією технологією, до якої пошуку важко працювати, але її використання не заборонено. Так само, як і сайти на фрейми (frame) не можуть нормально індексуватися пошуком саме в силу технічних причин та принципу його роботи (у фреймах для різних сторінок може використовуватися один і той же УРЛ, що абсолютно не підходить пошуковикам).

    Крім цього, відомий SEO блогер Сергій Сосновський (його ресурс увійшов в мій список кращих SEO форумів та блогів) повністю приховав свій сайдбар через Ajax, але перед цим списався з техпідтримкою Яндекса з приводу їх ставлення до такого способу приховування непотрібного контенту. Яндекс відповів, що такі дії не є караними.

    До речі, часткове дублювання контенту не є єдиною причиною, яка змушує закривати посилання від індексації через Аякс. В недавній статті я писав про внутрішню перелінковку і відзначав виняткову важливість при просуванні. Справа в тому, що зовнішніми посиланнями ви статична вага на сайт особливо не нагоните (тільки анкорный — читайте детальніше у статті про різні анкор для посилань), а ось внутрішня перелінковка, зроблена грамотно, може створити диво.

    перелинковка под НЧВивчаємо WordPress

    Ось цю ідеальну схему я малював, описуючи те, що потрібно буде зробити особисто мені. Ця схема дозволяє максимально накачати статичним вагою сторінки третього рівня (безпосередньо статті). Звертаю вашу увагу, що таким чином ви лише допомагаєте зробити акцент на тих сторінках, які реально несуть відповідь і пошук буде ранжувати їх за інших рівних трохи вище, ніж сторінок розділів або головну.

    Але реалізувати таку схему на практиці заважає як раз згаданий вище обвіс. Без десятків посилань на навігаційні сторінки (рубрики, карта сайту тощо) у вас сильно постраждають поведінкові фактори. Але ж можна залишити посилання на рубрики тільки на головній сторінці (як і показано на схемі), а на інших використовувати для їх виведення Ajax. Користувачі різниці не відчують, а пошук отримає код сторінок, набагато більше насичене новою інформацією і не містить, за великим рахунком, муссорный обвіс.

    Здавалося б, що це просто «чума» і, зробивши такий «фінт вухами», ми відразу стрибнемо в Топ по всьому просуваються запитам. А ось і ні. Пошук адже теж не ликом шитий і чудово вміє відокремлювати зерна від плевел. Тобто він зменшує вплив внутрішніх і зовнішніх теж) наскрізних посилань практично до значення одиничної посилання, так і часткове дублювання контенту в більшості випадків прощає за описаною вище причини, якщо розмір статті не губиться на тлі обважування.

    Я ще раз повторюю, що якщо і буде позитивний ефект від усієї це скритності, то він буде незначним. Багато ви отримали від того, що сміттєві сторінки вашого сайту закрили від індексації robots.txt. Напевно, не дуже. Але пошук все одно оцінить вашу допомогу і сайт з чистим роботсом (або відсутнім взагалі) ранжируватиметься трохи гірше, а ваш (з правильним роботсом) — трохи краще (але це лише як правило і при інших рівних умовах).

    Так само і тут. Якщо у вас з сайтом все добре і ви виконали всі вимоги технічного аудиту, то чиста схема внутрішньої перелінковки може допомогти вам піднятися ще трохи вище у видачі. А якщо ви на більшість фішечок і витребеньок оптимізації поклали, то і такою нісенітницею теж займатися не варто, бо буде без різниці. Все це моє ІМХО, однак, підтверджене думкою деяких профі. В SEO оптимізації і просуванні взагалі немає дрібниць. Курочка по зернятку клює і, нехтуючи цими зернятками з-за їх малості, ви ризикуєте померти з голоду (не отримати бажаного трафіку).

    Загалом, нікого не агітую, а навіть, навпаки, відмовляю, бо на собі поки ще не перевірив. Однак метод, що дозволяє закрити посилання від індексації (і не тільки їх), що я зараз опишу.

    Як через Ajax (Аякс) налаштувати підвантаження даних

    Загалом-то, закриття посилань і частини вмісту не завжди є причиною використання Ajax, але в нашому випадку нам потрібно від цієї технології тільки це, тому все буде виглядати просто і наочно. Для реалізації цього способу потрібно довантажувати бібліотеку jquery.

    Можна буде це робити зі свого власного сервера, але я вибрав варіант завантаження з Google, бо він відрізняється високою стабільністю і ніяких проблем з цим виникнути не повинно. Для цього в файл header.php з папки з використовуваної темою (файли в ній називаються шаблонами, про призначення яких можете почитати тут) потрібно буде додати наведений нижче код.

    Шаблон header.php відповідає за формування шапки, а також в ньому прописуються службові позначки в області Head. Ну, і нашим завданням є розміщення між відкриттям і накрывающим Head ось такий простенької конструкції для виклику jquery:

    Я буду використовувати підвантаження елементів веб-сторінки через Ajax тільки в постах, хоча, по ідеї, я міг би вставити код виклику бібліотеки jquery тільки в той шаблон, який за це відповідає (single.php), але так буде правильніше, напевно.

    Далі нам потрібно буде додати невеликий фрагмент коду в будь-файлик з Java Script, якщо такий є в папці з вашою темою оформлення (його легко дізнатися по розширенню .js). У моєму випадку він має місце бути і називається taber.js. Якщо у вас такого багатства немає, то просто створіть його в будь-якому місці (краще, напевно, все в тій же папці з файликами теми) і обзовите його латинськими літерами.

    Далі знову ж відкрийте header.php і додайте між відкриттям і накрывающим Head код, який ініціює підвантаження даного файлика разом з вебстраницами вашого сайту. Буде виглядати це неподобство приблизно так:

    Гаразд. Тепер в цей js файлик потрібно буде додати дуже простий код. Я буду розповідати на своєму прикладі, ну а ви вже адаптуєте все це під свої потреби.

    У мене підвантажується через Аякс півтора десятка фрагментів, які представляють із себе звичайний Html код списків, вміст яких ви зможете побачити, промотав цю або будь-яку іншу сторінку зі статтею до кінця. Там буде написано «Ви також можете ознайомитися з іншими статтями на цю ж тему:» і наведено відповідний список.

    Для цього мені знадобилося в taber.js додати код:

    $(document).ready(function() {
    $(‘#seoender’).load(‘/wp-content/themes/Organic/ender/seoender.php’);
    $(‘#hostender’).load(‘/wp-content/themes/Organic/ender/hostender.php’);
    $(‘#progender’).load(‘/wp-content/themes/Organic/ender/progender.php’);
    $(‘#htmlender’).load(‘/wp-content/themes/Organic/ender/htmlender.php’);
    $(‘#cssender’).load(‘/wp-content/themes/Organic/ender/cssender.php’);
    $(‘#intender’).load(‘/wp-content/themes/Organic/ender/intender.php’);
    $(‘#insrtender’).load(‘/wp-content/themes/Organic/ender/insrtender.php’);
    $(‘#obzorender’).load(‘/wp-content/themes/Organic/ender/obzorender.php’);
    $(‘#vmender’).load(‘/wp-content/themes/Organic/ender/vmender.php’);
    $(‘#denender’).load(‘u/wp-content/themes/Organic/ender/denender.php’);
    $(‘#zarabender’).load(‘/wp-content/themes/Organic/ender/zarabender.php’);
    $(‘#wpender’).load(‘/wp-content/themes/Organic/ender/wpender.php’);
    $(‘#joomlaender’).load(‘/wp-content/themes/Organic/ender/joomlaender.php’);
    });

    Перший рядок відкриває функцію, а остання її закриває. Розташовані посередині рядка однотипні і у вас їх буде рівно стільки, скільки фрагментів веб-сторінки ви захочете довантажувати через Ajax (вона відбувається після основної завантаження і у вихідному коді цих фрагментів ви не знайдете).

    Давайте для прикладу розглянемо першу рядок:

    $(‘#seoender’).load(‘https:///wp-content/themes/Organic/ender/seoender.php’);

    Слово seoender послужить маркером, за яким потім буде подгружаться фрагмент Html-коду, що міститься в файлику seoender.php (у другій частині рядка якраз вказується абсолютний шлях до нього — ttp:///wp-content/themes/Organic/ender/seoender.php). Можете перейти за цим посиланням і подивитися, якщо браузер правильно інтерпретує кодування російських символів.

    Вивчаємо WordPressВивчаємо WordPress

    Назва файлика і маркера не зобов’язані співпадати, але так простіше все це запам’ятати і не заплутатися. Ну, ось і все, ми підготували грунт, залишилося лише розставити в коді нашого Вордпресс шаблону елементи виклику підвантаження даних фрагментів через Аякс. Як це зробити? До неподобства просто.

    Наприклад, для виклику списку статей по тематиці SEO, який я додав в файлик seoender.php досить вставити в потрібне місце шаблону ось це:

    І все так просто. Куди саме вставляти дану конструкцію з відкриває і закриває DIV, вирішувати саме вам. Я, наприклад, це використав шаблон single.php (він відповідає за формування вебсторінок постів).

    Наприклад, якщо хочете, щоб фрагмент, подгружаемый через Ajax, опинився під основним текстом (як у моєму випадку), то знайдіть фрагмент:

    Та вставте діви після нього. У будь-якому випадку, пробуйте і дивіться на результат. Метод тику — він самий захоплюючий, бо не завжди знаєш що з цього вийде. Єдине що, користуйтеся для редагування чимось на зразок Notepad++, описаного тут, бо завжди зможете відкотитися назад. Та й бекап файлів хоча б папки з вашою темою оформлення зробити не завадить.

    Довантажувати через Аякс деякі скрипти (не всі, бо лічильники відвідувань мені вдавалося в свій час виводити таким чином) або коди Вордпресс у вас, швидше за все, не вийде. Для цього доведеться набагато сильніше изгаляться, на що мій куций мозок поки ще не здатний.

    Умова виведення в постах певних рубрик (in_category)

    Описаним трохи вище способом я приблизно рік тому налаштував висновок практично всього сайдбара (крім списку рубрик), всього футера і більшій частині шапки. Якщо хто-небудь спромігся переглянути вихідний код будь вебстарницы мого блогу, то він виявив би там фактично лише текст статті, список категорій і коментарі.

    Цієї весни я потрапив під санкції (фільтр) Яндекса, після чого привів стан сайту в вихідне, бо було не зрозуміло за що мене покарали. Однак, за ті півроку, що весь «обвіс» виводився через Ajax, жодних змін не відчув (так само, як і Сергій Сосновський).

    Тим не менш, у блогу в його вихідному стані не дуже добре складається з глибиною і часом перегляду (читайте про це детальніше у статті про статистику відвідуваності сайту). Доводиться все приблуди повертати, в тому числі і списки рекомендованих до прочитання статей.

    Розумію, що є способи реалізувати це автоматично. Наприклад, я використовую Yet Another Related Posts і саморобний скрипт, що дозволяє виводити пости з категорії WordPress з мініатюрами. Але вручну складені списки теж додають свої «п’ять копійок».

    Інша справа, що посилання зі сторінки в цьому випадку виходить аж надто багато, як мені здається, і я вирішив знову використовувати Ajax для завантаження цих фрагментів. Думаю, що з моєю мотивацією і аргументацією можна вважати розібралися. Залишилося тільки вирішити задачку.

    Мені потрібно виводити більше десятка різних списків на різних сторінках постом, та не просто так, а з попаданням в тематику. У статтях про WordPress відображати wpender.php про Joomla — joomlaender.php. Природно, що для цього потрібно написати умову і допоможе нам у цьому тег (функція) in_category.

    В якості аргументів можуть виступати ID або назва рубрики. Особисто я використовувати перший варіант. Знаєте, як дізнатися ID наявних у вас рубрик? Досить просто. Заходьте в адмінку на вкладку «Запис» — «Рубрики» і підводите курсор миші до тієї з них, яка вас цікавить.

    У рядку стану внизу вікна браузера, ви побачите «технічний» Url цієї рубрики, тобто той, який був до того, як ви включили і налаштували ЧПУ в своєму Вордпресс блозі.

    Вивчаємо WordPressВивчаємо WordPress

    Про синтаксис in_category ви можете детальніше прочитати в кодексі Вордпресс. В ній допустимо використовувати масиви (array), що мені дуже навіть підходить, бо в постах кількох рубрик потрібно виводити одні і ті ж списки з допомогою Аякса.

    В результаті, я додав в шаблон single.php відразу після виведення тексту статей ось такий код, що визначає умова виведення того чи іншого списку статей для прочитання в залежності від того, який саме рубриці належить даний пост:

    Зверніть увагу, що в запису echo’
    ‘не повинні використовуватися два рази подвійні або одинарні лапки, інакше це викличе помилку. Їх можна екранувати, або зробити як я.

    Ніби все працює і результатами я задоволений, бо трохи підросла глибина перегляду і час проводиться читачами на сайті. Якщо будуть питання, то задавайте, але врахуйте, що в PHP, Java Script і Ajax я за великим рахунком нуб. Тому не гарантую, що зможу відповісти.

    Ну, і так само хотілося б почути вашу думку з приводу використання Аякса для приховування посилань обліку їх пошуковими системами.

    Удачі вам! До зустрічей на сторінках блогу