Category SEO Meta Tags - МЕТА дані для категорій і тегів

Кажуть, що сторінки категорій і тегів завжди потрібно закривати в noindex щоб не створювати дубльований контент Кажуть, що сторінки категорій і тегів завжди потрібно закривати в noindex щоб не створювати дубльований контент. Почасти це так, але не завжди - адже сторінки міток і тегів можна облагородити, те ж саме стосується і категорій блогу . Під цим поняттям я розумію додавання унікальних описів для категорій блогу щоб вони були не просто можливістю навігації, а повноцінними розділами сайту. Чому на звичайних проектах ми не закриваємо від індексації розділи, а в блогах повинні? Крім контенту, важливим моментом є вказівка ​​відповідних МЕТА тегів для даних сторінок з унікальним title, description і keywords. За вказаними вище посиланнях ви знайдете невелике пояснення «мого методу» роботи, а також дізнаєтеся про Планіне Rich Text Tags, який дозволяє легко додавати опис категорій і тегів. А ось з МЕТА даними не все так просто.

Раніше для додавання МЕТА опису та різних seo налаштувань я використовував плагін All in One SEO Pack . Трохи пізніше мені більше сподобався Platimun SEO. Проте, мені завжди здавалося, All in One SEO Pack був більш популярний серед користувачів + старі сайти я вже не став переробляти. Рішення для сторінок категорій і тегів я розробляв самостійно шляхом редагування початкових кодів плагіна - за кілька годин вийшло придумати якусь модифікацію, за допомогою якої я міг задавати для будь-якої сторінки title, description і keywords.

У паблік викладати я цю розробку не став, а потім якось самі стали з'являтися подібні плагіни. Трохи пізніше в рунеті почали використовувати модуль All meta, що дозволяв легко вказувати всі МЕТА дані. На жаль, в останніх версіях модуль почне давати збої і робота його була дещо нестабільною. Зокрема через це довелося робити хак відображає правильні заголовки категорій з кешем MaxCache . Іноді не вантажилися цілі сторінки через модуля і т.п., та й самі розробники припинили підтримку. Довелося шукати альтернативу - підходящий варіант Category SEO Meta Tags.

Взагалі плагінів для МЕТА опису категорій є кілька, але в цьому мене привабило те, що було заявлено мовляв він розроблений спеціально з урахуванням All in One SEO Pack. Були модулі, де ця опція є частиною набагато більше функціональності, щось на зразок альтернативи Platimun SEO і All in One SEO Pack. Але мені хотілося знайти найпростіший, який би просто виводив МЕТА опису і нічого більше. На перший погляд Category SEO Meta Tags підходив ідеально.

Єдине, чим він, можливо, не так крутий - це установка. Вона тут трохи «ускладнена», хоча без цього ніяк. Отже, в першу чергу викачуємо плагін звідси . Далі розпаковуємо на локальному комп'ютері і завантажуємо на ФТП в директорію / wp-content / plugins /. Активуємо модуль в розділі плагінів адмінки, після чого потрібно буде підправити вихідні All in One SEO Pack.

Оновлення 14.03.2016. У коментарях підказують, що нові версії модуля не вимагають правки коду. Тому інформація нижче стосується лише старих версій All in One SEO Pack.

Отже, в директорії плагіна All in One SEO Pack знаходимо файл aioseop.class.php. Тут десь в районі 762 рядка (увага це для версії 1.6.14.3) побачите код:

$ Title = $ this -> paged_title ($ title); $ Header = $ this -> replace_title ($ header, $ title); } Else if (is_page () || $ this -> is_static_posts_page ()) {

$ Title = $ this-> paged_title ($ title); $ Header = $ this-> replace_title ($ header, $ title); } Else if (is_page () || $ this-> is_static_posts_page ()) {

У ньому після першого рядка додаєте:

$ Title = apply_filters ( 'aioseop_category_title', $ title);

$ Title = apply_filters ( 'aioseop_category_title', $ title);

Наступний крок - шукаємо рядок 811 (для версії 1.6.14.3), де буде щось врде:

$ Title = $ this -> paged_title ($ title); $ Header = $ this -> replace_title ($ header, $ title); }} Else if (isset ($ STagging) && $ STagging -> is_tag_view ()) {// simple tagging support

$ Title = $ this-> paged_title ($ title); $ Header = $ this-> replace_title ($ header, $ title); }} Else if (isset ($ STagging) && $ STagging-> is_tag_view ()) {// simple tagging support

Знову після першого рядка додаємо:

$ Title = apply_filters ( 'aioseop_tag_title', $ title);

$ Title = apply_filters ( 'aioseop_tag_title', $ title);

Зберігаємо файл і замінюємо їм вихідну версію All in One SEO Pack. Це допоможе виводити Title, який ви вказуєте в налаштуваннях Category SEO Meta Tags а не загальний варіант для All in One SEO Pack.

Увага! Даний метод не працює для нових версій All in One SEO Pack. У коментарях поділися зміненим файлом aioseop.class.php під версію 2.0.2 модуля All in One SEO Pack. Завантажити його можна тут . По-перше, попередньо раджу зберегти минулу версію файлу перед заміною. По-друге, даний файл качаєте на свій страх і ризик - думаю, в коді немає нічого шкідливого, але особисто я його не перевіряв.

Далі потрібно перевірити чи працює наш хак - для цього просто вказуєте МЕТА опису на сторінках категорій:

Далі потрібно перевірити чи працює наш хак - для цього просто вказуєте МЕТА опису на сторінках категорій:

До речі, для модуля Category SEO Meta Tags є ще деякі настройки, які ви можете знайти в пункті меню CSMTags Settings в розділі «Параметри». В принципі, нічого особливого, базові опції.

В принципі, нічого особливого, базові опції

Єдине, що хотілося б додати так це ще невеликий хак для коректності відображення описів. Не знаю чи це так було у всіх версіях All in One SEO Pack, то чи тільки в останніх, але на сторінках категорій відображається автоматично згенерований description. Це, звичайно, дуже добре, але тільки, якщо ви на плануєте використовувати інші плагіни для цих цілей. За логікою речей пішов в настройки All in One SEO Pack, де в пункті «Формат опису» прибрав всі параметри. На жаль, нічого це не змінило, тому довелося правити код.

Знову відкриваємо файл aioseop.class.php, де знаходимо рядок:

$ Meta_string. = Sprintf ( "<meta name = \" description \ "content = \"% s \ "/>", $ description);

$ Meta_string. = Sprintf ( "<meta name = \" description \ "content = \"% s \ "/>", $ description);

Нам потрібно додати умову «якщо відображається сторінка категорії, то опис виводитися не буде». Точніше воно буде виводитися для всіх сторінок крім категорії. В такому випадку використовуємо код:

if (! is_category ()) {$ meta_string. = sprintf ( "<meta name = \" description \ "content = \"% s \ "/>", $ description); }

if (! is_category ()) {$ meta_string. = sprintf ( "<meta name = \" description \ "content = \"% s \ "/>", $ description); }

Взагалі для більш ґрунтовного хака правильніше було б робити перевірку задано значення МЕТА description за допомогою плагіна Category SEO Meta Tags - якщо так, то виводити його, якщо немає автоматично генерувати опис за замовчуванням від плагіна All in One SEO Pack.

Чому на звичайних проектах ми не закриваємо від індексації розділи, а в блогах повинні?