<
  • Главная
Статьи

Циклічні посилання або посилання на саму себе

  1. Як знайти циклічну посилання
  2. Посилання на саму себе - проблема чи ні
  3. Як прибрати циклічні посилання з головної сторінки
  4. Як прибрати циклічні посилання з меню сторінок
  5. Як видалити циклічні посилання з меню категорій
  6. Посилання на саму себе в заголовку статті

Всім привіт! Сьогодні на seo-mayak.com ми будемо говорити про циклічні посилання.

Циклічні посилання зустрічаються досить часто, і на WordPress блогах, і на інших CMS, так би мовити, щоб знайти «живий» приклад такого посилання, далеко ходити не треба. Велика ймовірність, що і у Вас на сайті є хоч одна циклічна посилання.

Буду відвертим, у себе на блозі я вирішив цю проблему зовсім недавно, нарешті дійшли руки, хоча про циклічні посилання я звичайно знав давно.

Отже, визначення для тих, хто не в курсі.

Циклічні посилання - це посилання, що ведуть на ту ж саму сторінку, де вони розташовані. На таку посилання можна клікати нескінченно і завжди буде довантажувати один і той же контент, тобто це ніщо інше, як посилання на саму себе. Тому вони й називаються циклічними, що виходить якийсь замкнутий цикл.

Так проблема це, чи ні? Ось про це і піде сьогодні мова. Поїхали!

Як знайти циклічну посилання

На 100% впевнений, що у початківців майстрів веб-індустрії циклічні посилання є: в меню сторінок, в меню рубрик, в заголовку сайту (в деяких випадках в логотипі) або в заголовку статті, нерідко циклічні посилання можна зустріти в підвалі.

Визначити просто. Практично на всіх сайтах є сторінка «Контакти». Так ось, перебуваючи на сторінці «Контакти», натисніть знову на «Контакти» і якщо сторінка оновиться, тобто підвантажиться заново, то можете себе привітати - ви тільки що знайшли циклічну посилання.

Так ось, перебуваючи на сторінці «Контакти», натисніть знову на «Контакти» і якщо сторінка оновиться, тобто  підвантажиться заново, то можете себе привітати - ви тільки що знайшли циклічну посилання

Насправді радіти тут особливо нічому, так як ви виявили проблему. Не скажу, що проблема першочергова, але кожен поважаючий себе веб-майстер, обов'язково повинен з нею розібратися і зараз поясню чому.

Посилання на саму себе - проблема чи ні

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

Але чому ж тоді інтернет сповнений кричущих статей, в яких автори радять обов'язково позбавлятися від посилань на самих себе?

Відомий блогер Devaka, ще в 2010 році, провів експеримент з циклічними посиланнями, по завершенню якого зробив цікавий висновок:

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

Виходить, недоотримання статичної ваги важливими сторінками і є основна проблема циклічних посилань.

Може бути статична вага не так важливий для рубрик, які найчастіше закриті від індексації або для статичних сторінок, але недоотримання статичної ваги головною сторінкою, наводить на думки.

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

Тим більше в 90% випадків на головній розташовуються мінімум дві (буває і більше) циклічні посилання - це посилання в заголовку з анкором «Назви сайту» і посилання в меню з анкором «Головна». Такі справи!

Крім того, вважаю, що циклічні посилання чинять негативний вплив на поведінковий фактор .

З усього вищесказаного можна зробити висновок - боротися з циклічними посиланнями все ж треба, цим ми зараз і займемося. Приступимо!

Як прибрати циклічні посилання з головної сторінки

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

<H1> <a href="&lt;?php echo esc_url( home_url('/') ); ?&gt; "> &lt;? Php bloginfo ( 'name'); ?> </a> </ h1>

Або на це:

<H1 itemprop = "headline"> <a href="&lt;?php bloginfo('url');?&gt; "> &lt;? Php bloginfo ( 'name');?> </a> </ h1>

Шаблони всі різні, тому можуть бути і інші варіанти.

Що нам треба зробити? Нам треба створити сценарій-умова, яке полягатиме в наступному. Якщо відкрита головна сторінка, то посилання з заголовка буде перетворюватися в постій текст.

&lt;? Php if (is_front_page () || is_home ()):?> <H1> SEO Маяк </ h1> &lt;? Php else:?> <H1> <a href="/"> SEO Маяк </a> </ h1> &lt;? php endif; ?>

У прикладі я замінив php функції, які виведуть URL і назва сайту, на їх текстовий варіант. Детальніше про це тут .

Давайте я поясню, як працює даний сценарій. Тут застосовується конструкція if / else, що створює умова. Іншими словами, якщо (if) відкрита головна сторінка (is_home), виводимо заголовок сайту без посилання, інакше (else) виводимо заголовок з атрибутами посилання і завершуємо сценарій (endif;).

Звичайно доведеться підправити стилі, без цього ніяк, адже неактивний заголовок перетвориться в простий текст, а в style.css або іншому css файлі, стилі прописані для посилання.

В силу різноманітності WordPress-тим, я не можу привести будь-який стандартний приклад стильового оформлення, зрозуміло, що у кожного сайту свій дизайн і свої стилі, так що новачкам буде ще один привід вникнути в CSS.

Тепер давайте розберемося з логотипом. Знову ж таки, в різних шаблонах код виведення логотипу може відрізнятись. Для прикладу, наведу код з стандартної теми WordPress - Twentyfourteen:

<a href="&lt;?php echo esc_url( home_url('/') ); ?> "rel =" home "> <img src =" &lt;? php header_image ();?> "width =" &lt;? php echo get_custom_header () -> width;?> "height =" &lt;? php echo get_custom_header () -> height;?> "alt =" &lt;? php echo esc_attr (get_bloginfo ( 'name', 'display'));?> "> </a>

Застосуємо знайому нам конструкцію if / else. В результаті маємо отримати так:

&lt;? Php if (is_front_page () || is_home ()):?> <Img src = "&lt;? Php header_image ();?>" Width = "&lt;? Php echo get_custom_header () -> width;?>" Height = "&lt;? php echo get_custom_header () -> height;?>" alt = "&lt;? php echo esc_attr (get_bloginfo ( 'name', 'display'));?>"> &lt;? php else:?> <a href = "&lt;? php echo esc_url (home_url ( '/'));?>" rel = "home"> <img src = "&lt;? php header_image ();?>" width = "&lt;? php echo get_custom_header ( ) -> width;?> "height =" &lt;? php echo get_custom_header () -> height;?> "alt =" &lt;? php echo esc_attr (get_bloginfo ( 'name', 'display'));?> "> </a> &lt;? php endif; ?>

Як бачите, нічого складного!

Є ще одна часто зустрічаються циклічна посилання на головну, яка знаходиться в меню сторінок, але про це ми вже поговоримо в наступному розділі.

Як прибрати циклічні посилання з меню сторінок

Тут багато що залежить від функції, яка виводить дане меню. У wordPress закладено три функції:

1. wp_list_pages ()
2. wp_page_menu ()
3. wp_nav_menu ()

У даних функцій є певна структура взаімедействій. Базовою функцією є wp_list_pages (). На її основі працює функція wp_page_menu (), яка відрізняється від свого батька лише можливістю виводити посилання на головну сторінку.

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

Тепер треба з'ясувати, яка з функцій відповідає за виведення меню сторінок у вашій темі. Шукати одну з перерахованих вище функцій, треба в тому ж файлі header.php.


Функція wp_list_pages ()

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

<Ul id = "nav"> <li> <a href="&lt;?php echo esc_url( home_url('/') ); ?> "> Головна </a> </ li> &lt;? Php wp_list_pages ( 'sort_column = menu_order & title_li = & depth = 1 '); ?> </ Ul>

Тут просто треба додати вже знайомий нам сценарій. В результаті маємо отримати так:

<Ul id = "nav"> &lt;? Php if (is_home ()):?> <Li> Головна </ li> &lt;? Php else:?> <Li> <a href="/"> Головна </ a > </ li> &lt;? php endif; ?> &lt;? Php wp_list_pages ( 'sort_column = menu_order & title_li = & depth = 1'); ?> </ Ul>

Прийшов час знешкодити циклічні посилання у всіх залишилися пунктах меню, що виводиться функцією wp_list_pages ().

Розробники WordPress передбачили спеціальний CSS-клас, який автоматично підставляється до активного пункту меню:

Розробники WordPress передбачили спеціальний CSS-клас, який автоматично підставляється до активного пункту меню:

Раз у нас є унікальний клас current_page_item, за який можна зачепитися, значить варто спробувати скласти регулярний вираз.

Ось що у мене вийшло:

function mayak_list_page_no_link ($ no_link) {$ gg_mk = '! <li class = "(. *?) current_page_item"> <a (. *?)> (. *?) </a>! si'; $ Dd_mk = '<li class = "$ 1current_page_item"> $ 3'; return preg_replace ($ gg_mk, $ dd_mk, $ no_link); } Add_filter ( 'wp_list_pages', 'mayak_list_page_no_link');

Тепер все назви активних пунктів меню будуть виводиться у вигляді простого тексту, залишиться лише підправити злили. Нагадаю, що стилі треба прописувати для класу current_page_item. наприклад:

.current_page_item {font-size: 16px // розмір шрифту color: #fffff // колір тексту background: # F0F0F0; //колір фону }


Функція wp_page_menu ()

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

&lt;? Php wp_page_menu ( 'show_home = Головна'); ?>

У цьому випадки, можна впорається з циклічними посиланнями однією функцією:

function mayak_page_menu_no_link ($ no_link) {$ gg_mk = '! <li class = "(. *?) current_page_item"> <a (. *?)> (. *?) </a>! si'; $ Dd_mk = '<li class = "$ 1current_page_item"> $ 3'; return preg_replace ($ gg_mk, $ dd_mk, $ no_link); } Add_filter ( 'wp_page_menu', 'mayak_page_menu_no_link');

Залишилася остання функція, яка може використовуватися розробниками тим WordPress для побудови меню сторінок.


Функція wp_nav_menu ()

Функція wp_nav_menu () з'явилася з версії WordPress 3.0 і використовується більшості сучасних шаблонів.

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

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

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

Доведеться трохи підкоригувати функцію:

function mayak_nav_menu_no_link ($ no_link) {$ gg_mk = '! <li (. *?) class = "(. *?) current_page_item (. *?)"> <a (. *?)> (. *?) </ a>! si '; $ Dd_mk = '<li $ 1class = "\\ 2current_page_item \\ 3"> $ 5'; return preg_replace ($ gg_mk, $ dd_mk, $ no_link); } Add_filter ( 'wp_nav_menu', 'mayak_nav_menu_no_link');

Тепер має бути все в порядку. Прийшов час розібратися з посиланнями в меню категорій.

Як видалити циклічні посилання з меню категорій

Меню категорій на WoirdPress в 90% випадках формує функція wp_list_categories () (Бувають рідкісні винятки). Якщо у вашому шаблоні застосовуватися інша функція, то пишіть в коментарях, що-небудь придумаємо.

Для вилучення циклічних посилань з wp_list_categories () застосуємо наступний фільтр:

function mayak_category_no_link ($ no_link) {$ gg_mk = '! <li class = "cat-item (. *?) current-cat"> <a (.*?)> (. *?) </a>! si' ; $ Dd_mk = '<li class = "cat-item \\ 1 current-cat"> \\ 3'; return preg_replace ($ gg_mk, $ dd_mk, $ no_link); } Add_filter ( 'wp_list_categories', 'mayak_category_no_link');

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

Посилання на саму себе в заголовку статті

У деяких темах, незрозуміло навіщо, заголовок запису в файлі single php або в одному з прикріплених до нього файлів, укладений на заслання. Наприклад так:

<H2> <a href="&lt;?php the_get_permalink() ?&gt; "> &lt;? Php the_title (); ?> </a> </ h2>

Або так:

&lt;? Php the_title ( '<h1 class = "entry-title"> <a href="'. Esc_url( get_permalink()).'" rel="bookmark">', '</a> </ h1>' ); ?>

Можуть бути й інші варіанти. Виходить посилання на тугіше сторінку, тобто горезвісна посилання на саму себе.

Для видалення циклічної посилання з заголовка запису, досить просто прибрати з коду атрибути посилання.

Можливо в природі WordPress є інші види циклічних посилань, які я не описав. Ви сильно допоможете, якщо приведете в коментарях відповідні приклади.

До зустрічі!

З повагою, Віталій Кирилов

Так проблема це, чи ні?
Але чому ж тоді інтернет сповнений кричущих статей, в яких автори радять обов'язково позбавлятися від посилань на самих себе?
Php echo esc_url( home_url('/') ); ?
Gt; "> <?
Php bloginfo ( 'name'); ?
Php bloginfo('url');?
Gt; "> <?
Php bloginfo ( 'name');?
Що нам треба зробити?
Lt;?


Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью