mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: Send a 'noindex' header in non-canonical responses (#15026)
* FEATURE: Optionally send a 'noindex' header in non-canonical responses This will be used in a SEO experiment. Co-authored-by: David Taylor <david@taylorhq.com>
This commit is contained in:
committed by
GitHub
parent
1166afa4e8
commit
5647819de4
@@ -41,13 +41,14 @@ class ApplicationController < ActionController::Base
|
||||
before_action :redirect_to_login_if_required
|
||||
before_action :block_if_requires_login
|
||||
before_action :preload_json
|
||||
before_action :add_noindex_header, if: -> { is_feed_request? || !SiteSetting.allow_index_in_robots_txt }
|
||||
before_action :check_xhr
|
||||
after_action :add_readonly_header
|
||||
after_action :perform_refresh_session
|
||||
after_action :dont_cache_page
|
||||
after_action :conditionally_allow_site_embedding
|
||||
after_action :ensure_vary_header
|
||||
after_action :add_noindex_header, if: -> { is_feed_request? || !SiteSetting.allow_index_in_robots_txt }
|
||||
after_action :add_noindex_header_to_non_canonical, if: -> { request.get? && !(request.format && request.format.json?) && !request.xhr? }
|
||||
|
||||
HONEYPOT_KEY ||= 'HONEYPOT_KEY'
|
||||
CHALLENGE_KEY ||= 'CHALLENGE_KEY'
|
||||
@@ -912,6 +913,13 @@ class ApplicationController < ActionController::Base
|
||||
end
|
||||
end
|
||||
|
||||
def add_noindex_header_to_non_canonical
|
||||
canonical = (@canonical_url || @default_canonical)
|
||||
if canonical.present? && canonical != request.url && !SiteSetting.allow_indexing_non_canonical_urls
|
||||
response.headers['X-Robots-Tag'] ||= 'noindex'
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def honeypot_value
|
||||
|
||||
Reference in New Issue
Block a user