237 lines
7.5 KiB
YAML
237 lines
7.5 KiB
YAML
|
name: SEO Tools
|
||
|
description: Adds common search engine optimisation tools such as meta tags, XML sitemap, robots.txt management and more.
|
||
|
type: Drupal CMS
|
||
|
recipes:
|
||
|
- core/recipes/image_media_type
|
||
|
install:
|
||
|
- eca_base
|
||
|
- eca_config
|
||
|
- eca_content
|
||
|
- eca_misc
|
||
|
- eca_user
|
||
|
- field_group
|
||
|
- focal_point
|
||
|
- layout_builder
|
||
|
- menu_link_content
|
||
|
- metatag
|
||
|
- metatag_open_graph
|
||
|
- metatag_twitter_cards
|
||
|
- node
|
||
|
- robotstxt
|
||
|
- seo_checklist
|
||
|
- simple_sitemap
|
||
|
- sitemap
|
||
|
- token_or
|
||
|
- yoast_seo
|
||
|
config:
|
||
|
# Treat all field storages strictly, since they influence the database layout.
|
||
|
strict:
|
||
|
- field.storage.node.field_seo_analysis
|
||
|
- field.storage.node.field_seo_description
|
||
|
- field.storage.node.field_seo_image
|
||
|
- field.storage.node.field_seo_title
|
||
|
import:
|
||
|
metatag:
|
||
|
# Exclude Global, Front and Node as we create those in the config folder.
|
||
|
- metatag.metatag_defaults.403.yml
|
||
|
- metatag.metatag_defaults.404.yml
|
||
|
- metatag.metatag_defaults.taxonomy_term.yml
|
||
|
- metatag.metatag_defaults.user.yml
|
||
|
simple_sitemap: '*'
|
||
|
actions:
|
||
|
# Add SEO fields to all content types that are installed.
|
||
|
field.storage.node.field_seo_analysis:
|
||
|
addToAllBundles:
|
||
|
label: 'SEO analysis'
|
||
|
description: 'Pick the main keyword this page is about.'
|
||
|
field.storage.node.field_seo_description:
|
||
|
addToAllBundles:
|
||
|
label: 'SEO description'
|
||
|
description: 'Write a description for search engines and social media sites.'
|
||
|
field.storage.node.field_seo_image:
|
||
|
addToAllBundles:
|
||
|
label: 'SEO image'
|
||
|
description: 'Upload an image to be used when the page is shared on social media sites.'
|
||
|
# Ensure all instances of `field_seo_image` reference image media.
|
||
|
field.field.node.*.field_seo_image:
|
||
|
setSettings:
|
||
|
handler: 'default:media'
|
||
|
handler_settings:
|
||
|
target_bundles:
|
||
|
image: image
|
||
|
field.storage.node.field_seo_title:
|
||
|
addToAllBundles:
|
||
|
label: 'SEO title'
|
||
|
description: 'Use this field to overwrite the default HTML page title for SEO.'
|
||
|
# Configure the fields on the edit forms.
|
||
|
core.entity_form_display.node.*.default:
|
||
|
# Configure field group.
|
||
|
setThirdPartySettings:
|
||
|
- module: field_group
|
||
|
key: group_seo
|
||
|
value:
|
||
|
children:
|
||
|
- field_seo_title
|
||
|
- field_seo_description
|
||
|
- field_seo_image
|
||
|
- field_seo_analysis
|
||
|
label: 'Search Engine Optimization (SEO) Information'
|
||
|
region: content
|
||
|
parent_name: ''
|
||
|
weight: 50
|
||
|
format_type: details
|
||
|
format_settings:
|
||
|
classes: ''
|
||
|
show_empty_fields: false
|
||
|
id: group_seo
|
||
|
label_as_html: false
|
||
|
open: false
|
||
|
description: ''
|
||
|
required_fields: false
|
||
|
setComponents:
|
||
|
-
|
||
|
name: field_seo_analysis
|
||
|
options:
|
||
|
type: yoast_seo_widget
|
||
|
weight: 18
|
||
|
region: content
|
||
|
settings:
|
||
|
render_theme: NULL
|
||
|
render_view_mode: default
|
||
|
edit_title: 0
|
||
|
edit_description: 0
|
||
|
-
|
||
|
name: field_seo_description
|
||
|
options:
|
||
|
type: string_textarea
|
||
|
weight: 16
|
||
|
region: content
|
||
|
settings:
|
||
|
rows: 5
|
||
|
placeholder: ''
|
||
|
-
|
||
|
name: field_seo_image
|
||
|
options:
|
||
|
type: media_library_widget
|
||
|
weight: 17
|
||
|
region: content
|
||
|
settings:
|
||
|
media_types: { }
|
||
|
-
|
||
|
name: field_seo_title
|
||
|
options:
|
||
|
type: string_textfield
|
||
|
weight: 15
|
||
|
region: content
|
||
|
settings:
|
||
|
size: 60
|
||
|
placeholder: ''
|
||
|
robotstxt.settings:
|
||
|
# We add Drupal core's robots.txt and XML Sitemap.
|
||
|
simpleConfigUpdate:
|
||
|
content: |
|
||
|
#
|
||
|
# robots.txt
|
||
|
#
|
||
|
# This file is to prevent the crawling and indexing of certain parts
|
||
|
# of your site by web crawlers and spiders run by sites like Yahoo!
|
||
|
# and Google. By telling these "robots" where not to go on your site,
|
||
|
# you save bandwidth and server resources.
|
||
|
#
|
||
|
# This file will be ignored unless it is at the root of your host:
|
||
|
# Used: http://example.com/robots.txt
|
||
|
# Ignored: http://example.com/site/robots.txt
|
||
|
#
|
||
|
# For more information about the robots.txt standard, see:
|
||
|
# http://www.robotstxt.org/robots
|
||
|
User-agent: *
|
||
|
# CSS, JS, Images
|
||
|
Allow: /core/*.css$
|
||
|
Allow: /core/*.css?
|
||
|
Allow: /core/*.js$
|
||
|
Allow: /core/*.js?
|
||
|
Allow: /core/*.gif
|
||
|
Allow: /core/*.jpg
|
||
|
Allow: /core/*.jpeg
|
||
|
Allow: /core/*.png
|
||
|
Allow: /core/*.svg
|
||
|
Allow: /profiles/*.css$
|
||
|
Allow: /profiles/*.css?
|
||
|
Allow: /profiles/*.js$
|
||
|
Allow: /profiles/*.js?
|
||
|
Allow: /profiles/*.gif
|
||
|
Allow: /profiles/*.jpg
|
||
|
Allow: /profiles/*.jpeg
|
||
|
Allow: /profiles/*.png
|
||
|
Allow: /profiles/*.svg
|
||
|
# Directories
|
||
|
Disallow: /core/
|
||
|
Disallow: /profiles/
|
||
|
# Files
|
||
|
Disallow: /README.md
|
||
|
Disallow: /composer/Metapackage/README.txt
|
||
|
Disallow: /composer/Plugin/ProjectMessage/README.md
|
||
|
Disallow: /composer/Plugin/Scaffold/README.md
|
||
|
Disallow: /composer/Plugin/VendorHardening/README.txt
|
||
|
Disallow: /composer/Template/README.txt
|
||
|
Disallow: /modules/README.txt
|
||
|
Disallow: /sites/README.txt
|
||
|
Disallow: /themes/README.txt
|
||
|
# Paths (clean URLs)
|
||
|
Disallow: /admin/
|
||
|
Disallow: /comment/reply/
|
||
|
Disallow: /filter/tips
|
||
|
Disallow: /node/add/
|
||
|
Disallow: /search/
|
||
|
Disallow: /user/register
|
||
|
Disallow: /user/password
|
||
|
Disallow: /user/login
|
||
|
Disallow: /user/logout
|
||
|
Disallow: /media/oembed
|
||
|
Disallow: /*/media/oembed
|
||
|
# Paths (no clean URLs)
|
||
|
Disallow: /index.php/admin/
|
||
|
Disallow: /index.php/comment/reply/
|
||
|
Disallow: /index.php/filter/tips
|
||
|
Disallow: /index.php/node/add/
|
||
|
Disallow: /index.php/search/
|
||
|
Disallow: /index.php/user/password
|
||
|
Disallow: /index.php/user/register
|
||
|
Disallow: /index.php/user/login
|
||
|
Disallow: /index.php/user/logout
|
||
|
Disallow: /index.php/media/oembed
|
||
|
Disallow: /index.php/*/media/oembed
|
||
|
# XML sitemap
|
||
|
Sitemap: /sitemap.xml
|
||
|
sitemap.settings:
|
||
|
simpleConfigUpdate:
|
||
|
plugins.frontpage:
|
||
|
base_plugin: frontpage
|
||
|
enabled: true
|
||
|
weight: 0
|
||
|
settings:
|
||
|
title: 'Front page'
|
||
|
rss: null
|
||
|
id: frontpage
|
||
|
provider: sitemap
|
||
|
plugins.menu:main:
|
||
|
base_plugin: menu
|
||
|
enabled: true
|
||
|
weight: 0
|
||
|
settings:
|
||
|
title: ''
|
||
|
show_disabled: false
|
||
|
id: 'menu:main'
|
||
|
provider: sitemap
|
||
|
system.performance:
|
||
|
simpleConfigUpdate:
|
||
|
# Ensure caching is on and set to 15 minutes for Lighthouse.
|
||
|
cache.page.max_age: 900
|
||
|
# Ensure CSS and JS are preprocessed.
|
||
|
css.preprocess: true
|
||
|
js.preprocess: true
|
||
|
user.role.anonymous:
|
||
|
grantPermission: 'access sitemap'
|
||
|
user.role.authenticated:
|
||
|
grantPermission: 'access sitemap'
|