Processor to add `rel=nofollow`
to run in your site's root directory
View template source
create_file "app/processors/nofollow_processor.rb", <<~RUBY
class NofollowProcessor < Perron::HtmlProcessor::Base
def process
@html.css("a").each do |link|
next if skippable? link
link["rel"] = "nofollow"
end
end
private
def skippable?(link)
href = link["href"]
# when using absolute urls for your internal links, make sure to include
# those as well e.g., `href.start_with?("https://example.com/")`
href.blank? ||
href.start_with?("/", "#", "mailto:") ||
link["rel"].present?
end
end
RUBY
This snippet adds a processor for the markdownify helper to add rel=nofollow to your outgoing links, it skips internal links—those starting with a / and # (anchors).