Sign in

Зарегистрируйтесь, чтобы стать полноправным участником сообщества Masterpro.ws.

SEO Ruby on Rails

И сразу оговорюсь: термин SEO (англ. Search Engine Optimization) - автор, не будучи профессиональным сеошником, использует сейчас несколько условно.

Не будем забывать, речь пойдет о CMS, основанной на фреймворке Ruby on Rails, и являющейся в немалой степени концептом; каждый админ способен привнести в него то, что считает необходимым. В том числе те или иные усовершенствования из мира SEO.

OK, это было краткое предисловие, а теперь перейдем к описанию тех свойств Blog on Rails, которые, так или иначе, возможно отнести к области SEO.

 

SEO Ruby on Rails
SEO Ruby on Rails

 

Увидеть на гитхабе.

Взглянуть Blog on Rails на Heroku.

 

Метатеги. При написании очередного материала вы имеете возможность, см. скриншот, создать description и keywords метатеги, и метатег description при создании категории. Разумеется, все это может быть в любой момент отредактировано либо создано позже; к слову, любую статью блога необходимо привязать к той или иной категории, но вот публиковать ли категорию или нет - дело сугубо ваше, материал будет доступен для чтения в любом случае. Что касается метатега title, он будет сформирован автоматически, по принципу <Имя блога> | <Название статьи>, причем имя блога единожды определено в application.html.erb:

 

# app/views/layouts/application.html.erb

<head>
  <%= display_meta_tags site: 'My Blog on Rails' %>
</head>

 

Так происходит для всех страниц статей и страниц категорий, на других динамически формируемых страницах (странички тегов, например) title и description (keywords в данном случае без надобности, но, при желании, возможно включить и его) окажутся сформированы исходя из метода, доступного для редактирования в application_controller.rb:

 

# app/controllers/application_controller.rb

def metatags
  set_meta_tags title: 'Building a Blog with Ruby on Rails',
  description: 'Your Guide To Content Management System For Ruby on Rails'
end

 

Собственно говоря, достаточно определить в том или ином контроллере @page_title и @page_description (например), чтобы тут же получить эти метатеги на страничке, при этом вносить изменения в HTML не потребуется... это и есть, так сказать, магия Ruby on Rails.

Доступны для использования, например, следующие методы:

 

<% title 'Member Login' %>
<% description 'Member login page.' %>
<% keywords 'Site, Login, Members' %>
<% nofollow %>
<% noindex %>
<% refresh 3 %>

 

, но не только; вы можете использовать, например, :canonical, :og (Open Graph), :twitter и другие. Подробнее на страничке kpumuk/meta-tags.

Sitemap, карта сайта. Чтобы сформировать в директории public архив sitemap.xml.gz (или обновить, ввиду публикации нового контента), достаточно запустить в консоли эту команду:

 

rails sitemap:refresh

 

При этом Google и Bing будут уведомлены о доступности новой карты сайта. Возможно и добавление в ping иных поисковых систем, подробнее см. описание gem 'sitemap_generator', использованного для реализации sitemap блога. Возможен, разумеется, и автоматический, из крона запуск по расписанию обновления карты сайта; при использовании Whenever синтаксис способен выглядеть совсем несложно:

 

# config/schedule.rb

every 1.day, :at => '5:00 am' do
  rake "-s sitemap:refresh"
end

 

Помимо динамически созданных страниц, включаем в карту сайта и пару статических:

 

# config/sitemap.rb
SitemapGenerator::Sitemap.default_host = ENV['DOMAIN_NAME']

SitemapGenerator::Sitemap.create do
  Post.find_each do |content|
    add post_path(content), :lastmod => content.updated_at
  end
  add analytics_path, :priority => 0.5, :changefreq => 'weekly'
  add contacts_path, :priority => 0.5, :changefreq => 'weekly'
end

 

Путь к карте сайта прописан в robots.txt, не забудьте изменить название домена:

 

# public/robots.txt

User-agent: *
Disallow:

Sitemap: http://mstp.herokuapp.com/sitemap.xml.gz

 

Тегирование. При формировании или редактировании материала вы имеете возможность указать (снова см. скриншот) теги, через запятую. Как и положено тегам, они появятся в нижней части статьи, представляя собой линки на динамически формируемую страницу, содержащую перечень статей, объединенных данным тегом; цифра в скобках (e.g. (5)) обозначает счетчик. Подробнее.

SEO-Friendly URLs, дружелюбные / человекопонятные адреса ЧПУ страниц. Url страницы формируется исходя из заголовка, кириллица при этом автоматически транслитерируется в латиницу. Это касается статей и категорий.

RSS. Blog on Rails автоматически формирует валидную RSS-ленту, доступную (иконка bootstrap 4) на всех страницах сайта. Несколько портят впечатление длинные коды изображений, сохраненных в base64. Дело в том, что данная CMS изначально ориентирована на хостинг (облачная PaaS-платформа) Heroku, с его хитроумной виртуальной файловой системой, потому и base64. Не представляет большой сложности, к слову, при работе в используемом редакторе - Quill Editor - сохранение изображений классическим способом, кому оно надо - велкам на страничку джема за инструкциями по установке ImageUploader plugin. Но, возможно, вы удовлетворитесь уже реализованной возможностью альтернативной загрузки изображений на сервера Amazon S3 ? Подробнее в этом материале.

 

Плюс вкусная возможность, потратив совсем небольшое количество усилий - бесплатно пользоваться всем перечисленным на облачной PaaS-платформе хостинга Heroku неограниченное время; американцы предоставляют полностью Free тарифный план всем желающим, причем мне почему-то кажется, что скудных их лимитов с лихвой и за глаза хватит абсолютному большинству наших блогеров. cool Совсем неплохо ведь для начала, а? Подробнее о том, как сделать деплой на Heroku.

 

Измените xml.title, xml.description и xml.tag! на свои:

 

# app/views/feeds/rss.rss.builder

xml.instruct!
xml.rss version: '2.0', 'xmlns:atom' => 'http://www.w3.org/2005/Atom' do
  xml.channel do
    xml.title 'Blog on Rails'
    xml.description 'CRUD Blog on Rails. Geo-Targeted Banner Ads. Visitor analytics. Tags.'
    xml.link root_url
    xml.language 'ru-ru'
    xml.tag! 'atom:link', rel: 'self', type: 'application/rss+xml', href: 'https://mstp.herokuapp.com/feed.rss'

    @posts.each do |post|
      xml.item do
        xml.title post.title
        xml.link post_url(post)
        xml.pubDate(post.created_at.rfc2822)
        xml.guid post_url(post)
        xml.description(h(post.text))
      end
    end
  end
end

 

Пагинация. Правда, здесь автор уже и вовсе не берется судить, на пользу это SEO или во вред. Для любого перечня статей и категорий (перечень статей на главной странице, на странице категории и на странице тега, также на странице перечня категорий), включена автоматическая разбивка на страницы по 5 на каждой, все опции доступны в этом конфиге:

 

# config/initializers/kaminari_config.rb

Kaminari.configure do |config|
  config.default_per_page = 5
  # config.max_per_page = nil
  # config.window = 4
  # config.outer_window = 0
  # config.left = 0
  # config.right = 0
  # config.page_method_name = :page
  # config.param_name = :page
  # config.max_pages = nil
  # config.params_on_first_page = false
end

 

Оставить комментарий

Добавьте ваш комментарий

Комментарии в блоге

  • Гена Какой сложный и отвратительный те.... всем привет, зовут меня Гена-мудило, по профессии я срущий на чужих сайтах копеечный бот, по-совместительству…

    Суббота, 03 апреля 2021

    Опубликовано в: Про IT Selection, gray salary и Барака Обаму
  • Aleksej Доброго дня! Повторюсь, контент статьи представляет собой лишь концепт, хотя показанный код и был в свое время оттестирован и является…

    Пятница, 26 марта 2021

    Опубликовано в: Виджет amoCRM: экспорт данных в Google Docs
  • ОлегАверс Здравствуйте. Скажите, можно ли с Вашей помощью настроить и АВТОМАТИЧЕСКИ (например, ежедневно) выгружать из АМО и Битрикс24 в Эксель следующие…

    Среда, 24 марта 2021

    Опубликовано в: Виджет amoCRM: экспорт данных в Google Docs
  • Aleksej Интересно отметить: за всю свою жизнь в российском IT у меня не было ни одного проекта - а в пору,…

    Вторник, 19 января 2021

    Опубликовано в: Про IT Selection, gray salary и Барака Обаму
  • Рамат Они до сих пор такую шляпу предлагают с оформлением в известную американскую компанию через ИП или самозанятого, на прошлой неделе…

    Пятница, 15 января 2021

    Опубликовано в: Про IT Selection, gray salary и Барака Обаму