Ніколи раніше особливо не замислювався про просування свого сайту, але тут довелося. Як виявилося, в цьому плані Joomla - не такий вже і хороший движок, без напилка не обійтися. Але, пошукавши деякий час інформацію, вивів для себе кілька основних правил.
дублі сторінок
У Joomle з цим навіть не біда, а справжня катастрофа. Спочатку присутні посилання типу http://khtulhu.org.ua/index.php?option=com_content&view=article&id=178, але вони не дуже красиво виглядають і погані для SEO, хоча, якщо хочеться жити спокійно і не турбуватися про позиції в пошукових стстемах, можна і так залишити.
Для реалізації ЧПУ в Joomla є вбудовані засоби.
Посилання перетворюються в такий вигляд: http://khtulhu.org.ua/veb-programmirovanie/178-forma-dobavleniya-elementov-na-modx.html
Але залишається два неприємних бага: якщо прибрати .html і / або поставити "/" (слеш, без лапок) в кінці, посилання все одно працює. У підсумку існує цілих три дублі сторінки.
Для видалення дублів є цілий комплекс заходів.
У .htaccess додаємо наступне:
1. Видалення завершального слеша.
RewriteBase / RewriteCond% {HTTP_HOST} (. *) RewriteCond% {REQUEST_URI} / $ [NC] RewriteRule ^ (. *) (/) $ $ 1 [L, R = 301]
2. Прибрати index.php на головній сторінці
Redirect 301 http://khtulhu.org.ua/index.php http://khtulhu.org.ua/ <a href="http://khtulhu.org.ua/"> </a>
3. Всі номери повинні заканчікаться .html
RewriteCond% {REQUEST_URI}! ^ (. +) \. (Html | php) $ RewriteRule. % {REQUEST_URI} .html [R = 301, L]
Прибрати index.php із заслання
Продовження історії з дублями. В Joomla працюють посилання типу http://khtulhu.org.ua/blog/183-rosetta-i-kometa-churyumova-gerasimenko.html і http://khtulhu.org.ua /index.php/ blog / 183-rosetta -i-kometa-churyumova-gerasimenko.html
Це непорозуміння теж потрібно виправити.
# Remove index.php from url RewriteCond% {REQUEST_URI} ^ / index \ .php / RewriteRule ^ index.php /(.*) / $ 1 [R, L]
Індексація
Для швидкого оповіщення Яндекса про нові статтях є такий сервіс Yandex.pinger . Це зручно, але він приносить деякі незручності.
Чи не знайшов і не придумав як це автоматизувати, тому буде дуже багато ручної роботи. Справа в тому що Yandex.pinger генерує посилання типу index.php? option = com_content & view = article & id = 178, тому на кожну таку посилання в .htaccess я пишу перенаправлення на правильну з ЧПУ.
Невеликий відступ.
У .htaccess є простий спосіб зробити 301 Redirect
Redirect 301 http://oldsite.ru/blabla.html http://newsite.ru/blabla.html
Але у випадку з Joomla проблема криється в питальних знаках на засланні, які не обробляються сервером.
RewriteCond% {QUERY_STRING} ^ option = com_content & view = article & id = 178 $ RewriteRule ^ index.php $ http://khtulhu.org.ua/index.php/veb-programmirovanie/178-forma-dobavleniya-elementov-na-modx. html? [R = 301, L]
( http://izgoba.com/11510.html )
Якщо буде якесь рішення цієї проблеми, опишу у відповідній статті.
файл robots.txt
Цікаве рішення в боротьбі з дублями знайшов тут .
Що б виключити індексацію сторінок зі знаком питання в url, в robots.txt додаємо рядок
Різне
Не має до оптимізації відносини, але примусово виправляє шлях до зображень.
У файлі .htaccess
RewriteRule ^. * / Images /(.*)$ http: //% {HTTP_HOST} / images / $ 1 [L, R = 301]
Корисна стаття на Хабре http://habrahabr.ru/post/141424/
Php?Php?
Html?