{"id":19045492,"url":"https://github.com/yoast/yoast-seo-for-neos","last_synced_at":"2025-04-30T09:24:22.558Z","repository":{"id":45396615,"uuid":"114837951","full_name":"Yoast/Yoast-SEO-for-Neos","owner":"Yoast","description":"Yoast SEO integration for Neos CMS","archived":false,"fork":false,"pushed_at":"2024-08-12T18:07:03.000Z","size":26283,"stargazers_count":24,"open_issues_count":11,"forks_count":19,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-03-30T14:51:12.755Z","etag":null,"topics":["hacktoberfest","neos-cms","seo","yoast-seo"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Yoast.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-20T03:19:56.000Z","updated_at":"2024-11-14T15:58:50.000Z","dependencies_parsed_at":"2024-03-28T12:00:28.213Z","dependency_job_id":"39031b74-75ee-487b-96e4-1832cd4565c8","html_url":"https://github.com/Yoast/Yoast-SEO-for-Neos","commit_stats":{"total_commits":274,"total_committers":14,"mean_commits":"19.571428571428573","dds":0.06934306569343063,"last_synced_commit":"92deb9ffe6b88c3fa23718eb1876252a08a18895"},"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yoast%2FYoast-SEO-for-Neos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yoast%2FYoast-SEO-for-Neos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yoast%2FYoast-SEO-for-Neos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yoast%2FYoast-SEO-for-Neos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Yoast","download_url":"https://codeload.github.com/Yoast/Yoast-SEO-for-Neos/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251675425,"owners_count":21625811,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","neos-cms","seo","yoast-seo"],"created_at":"2024-11-08T22:50:23.382Z","updated_at":"2025-04-30T09:24:22.537Z","avatar_url":"https://github.com/Yoast.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Yoast SEO integration for Neos CMS\n\n[![Latest Stable Version](https://poser.pugx.org/yoast/yoast-seo-for-neos/v/stable)](https://packagist.org/packages/yoast/yoast-seo-for-neos)\n[![Total Downloads](https://poser.pugx.org/yoast/yoast-seo-for-neos/downloads)](https://packagist.org/packages/yoast/yoast-seo-for-neos)\n[![License](https://poser.pugx.org/yoast/yoast-seo-for-neos/license)](https://packagist.org/packages/yoast/yoast-seo-for-neos)\n[![Build Status](https://travis-ci.com/Yoast/Yoast-SEO-for-Neos.svg?branch=master)](https://travis-ci.com/Yoast/Yoast-SEO-for-Neos)\n\n## What does it do\n\nThis package provides a new backend preview and inspector integration for [Neos CMS](https://neos.io) to look at \nyour page with the help of the [Yoast SEO](https://github.com/Yoast/YoastSEO.js) plugin.\n\nThis view will show you a preview snippet how the selected page will look in the Google search results\nand will give you insights and helpers to further improve the page for search engines.\n\nThese insights are generated via the official Open Source **Yoast SEO** javascript plugin by [Yoast](https://yoast.com).\nThis package is being developed in partnership with *Yoast BV* and has been moved into the Yoast namespace since version 1.0.\n\nWe try to keep this package up-to-date with releases by Yoast but depending on the compatibility and available time \nthis might take up to a few weeks after Yoast releases a new version of their library.\n\n## Examples\n\n![Preview in the Neos demo site](Documentation/snippet-preview.jpg) \n\n![Inspector view in a blog](Documentation/inspector.jpg) \n\n## Installation\n\nAdd the dependency to your site package like this\n\n```console\ncomposer require --no-update yoast/yoast-seo-for-neos\n```\n\nAnd then run `composer update` in your projects root folder.\n\n### Deploying to production\n\nAs the package adds some additional permissions to the system you should flush the session cache once after \nthe first deployment of your website which includes this package. This prevents errors for your logged in editors:\n\n```console\n./flow flow:session:destroyAll\n```\n    \nThis will force them to login again, so be careful and warn them before doing this.    \n    \n## Dependencies\n\nThis package currently only requires Neos \u003e= 3.0 but it's suggested to also have the `neos/seo` package installed.\nThis package expects some document node properties to be present like `titleOverride` and `metaDescription` which\nare provided via the `neos/seo` package. But you can of course provide them yourself if you don't want to use\nthe `neos/seo` package.\n\n## Supported languages\n\nThere are three different kinds of language support:\n\n### Backend localization for the Neos implementation\n\nThese are localizations for all Neos CMS specifics not related to the wordpress version of YoastSEO.\n\n* English ✅             \n* German ✅   \n\nIf you can provide the backend localizations for other languages than the ones provided in the \ntable above, please create a PR.                                                                                   \n\n### Supported languages of the analyzer results in the backend \n\nThese are localizations for the recommendations that the analysis provides and will be selected based on \nthe current users backend language.\n\nPlease consult [YoastSEO on wordpress](https://translate.wordpress.org/projects/wp-plugins/wordpress-seo).\n\n### Supported content languages for the analyzer                 \n\nThese are the content languages that the analyzer supports. If the language of your content is not contained in the\nlist the analysis will still work but not give the same quality of recommendations.\n\nPlease consult [YoastSEO.js readme](https://github.com/Yoast/YoastSEO.js/blob/develop/README.md).\n\n## Configuration\n\nIn your `Settings.yaml` you can override the following options:\n\n```yaml\nYoast:\n YoastSeoForNeos:\n   defaultContentLocale: en-US\n   languageToLocaleMapping: [...]\n```          \nand\n\n```yaml\nNeos:\n  Neos:\n    Ui:\n      frontendConfiguration:\n        Yoast.YoastSeoForNeos:\n          contentSelector: body\n```\n          \n### defaultContentLocale \n\nThe analyzer will use the `lang` attribute rendered by the `Neos.Seo` package of your website to detect the \nlanguage of your content. This option sets the default if `Neos.Seo` cannot detect it.\nIf no `lang` attribute is rendered the javascript part will use `en_US`.\n\nNote that the html standard requires a `-` in the locale while Neos and Yoast internally use `_` and convert if needed. \n\nCheck https://github.com/Yoast/YoastSEO.js#supported-languages for supported languages and the capabilities.\nIf you use a locale that Yoast doesn't understand don't expect perfect results. \n\n### languageToLocaleMapping\n\nThis array defines which translation should be used in the Yoast SEO analyzer depending on the selected interface\nlanguage of a Neos user.\n\nSee the `Settings.yaml` of this package and if you for example want a different version localized translation,\ncheck out the folder `Resources/Private/Languages` and see which ones are supported and then update the mapping\naccordingly.\n\nFor example the default mapping for `de` is `de_DE` but can be changed to Swiss German with the following configuration:\n\n```yaml\nYoast:\n  YoastSeoForNeos:\n    languageToLocaleMapping:\n      de: de_CH\n```\n            \n### contentSelector\n\nThis setting allows you to specify a different element in your rendered page where the analysis should retrieve it's\ncontent from. This can be used for example to select your content wrap to exclude hidden content for modals and other\nelements.\n\nExample:\n\n```yaml\nNeos:\n  Neos:\n    Ui:\n      frontendConfiguration:\n        Yoast.YoastSeoForNeos:\n          contentSelector: .my-content\n```\n\n## Usage \n\n### Preview mode\n\nAfter installation the new preview mode is available in the Neos backend which you can select form the `Edit / Preview` panel.\n\nThis is useful to check several pages after another and optimize SEO properties.\nThe preview also shows a preview how a page could look as Google search result.\n\n### Inspector\n\nIn the inspector a new group \"Yoast\" is added in the SEO-Tab with the following fields:\n\n* focusKeyword: The main keyword this document is optimized for. This is needed by yoast for calculating metrics.\n* isCornerstone: Mark the document as exceptionally important for yoast. This will enforce more strict content-rules.\n\nThe group also contains a live analyzer which will check your content and SEO data and show you the results.\nDepending on your nodetype configuration the analyzer will update after you change something and show you up-to-date\ninformation without needing a reload of the whole page.  \n\nThis view is helpful when optimizing a single page while working on it's content.\n\n## FAQ\n\n### I get a login modal after opening the Yoast tab in the inspector\n\nFirst try to log out and log in again as the session might be missing some policy information.\n\nIf that doesn't help then the policy file of this package might not have been loaded.\nClear your caches and make sure they appear when running `flow security:showeffectivepolicy --privilegeType \"Neos\\Flow\\Security\\Authorization\\Privilege\\Method\\MethodPrivilege\"`.\nThen logout and login again and everything should work again.\n\n## Contributing \u0026\u0026 issues\n\n* Contributions are very welcome. \n* Pull requests are even better!\n* Please open issues for [this project](https://github.com/Yoast/Yoast-SEO-for-Neos/issues) if you have problems with the backend module or other Neos specific features.\n* Please open issues for [Yoast SEO](https://github.com/Yoast/javascript/tree/master/packages/yoastseo) if you have problems with the analyzer itself or translations of any hints and warnings generated by the analyzer.\n\n### Building the assets\n\nFirst install dependencies with `yarn`:\n\n```console\nyarn\n```\n\nYou can generate the `js` and `css` files by running the following command:\n\n```console\nyarn build\n```    \n#### Building and watching the app for the edit mode\n\n```console\nyarn build:editMode\n```\n```console\nyarn watch:editMode\n```\n\n#### Building and watching the inspector view\n\n```console\nyarn build:inspectorView\n```\n```console\nyarn watch:inspectorView\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoast%2Fyoast-seo-for-neos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyoast%2Fyoast-seo-for-neos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoast%2Fyoast-seo-for-neos/lists"}