# Feature OP-19110 - Add rel="nofollow" to user-generated links to deter SEO spam   

Project: OpenProject
Status: closed
URL: https://community.openproject.org/work_packages/OP-19110

## Planning

| Attribute | Value |
| --- | --- |
| Date |  |
| Priority | Medium |
| Target versions | 17.3.0 |
| Sprint |  |
| Backlog bucket |  |
| Votes |  |
| List |  |
| Roadmap |  |
| Relevance |  |

## OPEN POINTS / FEEDBACK

_No work packages_

## Features and Chunks

_No work packages_

## Bugs and other work packages

_No work packages_

## Technical Details

| Attribute | Value |
| --- | --- |
| Module | Modules and project features / Text editor / CKEditor5 |
| Feature Flag |  |
| Requires doc change | No |
| Enterprise plan |  |

## Details

| Attribute | Value |
| --- | --- |
| Pull preview |  |
| Mockups |  |
| Found in mobile app version |  |
| Follow-up feedback e-mail |  |
| Accessibility | No |

## People

| Attribute | Value |
| --- | --- |
| Assignee | Wieland Lindenthal |
| Accountable |  |
| Product manager |  |
| Developers |  |
| Designer |  |
| Ordered by |  |
| Signed off by |  |
| Interest by |  |

## Estimates and progress

| Attribute | Value |
| --- | --- |
| PD (min) |  |
| PD (max) |  |
| Work |  |
| Labor costs |  |

## Description

**As** a community instance operator  
**I want to** have links posted by users in work packages, comments, and wiki pages carry `rel="nofollow"`
**so that** search engines do not pass PageRank through user-posted links, removing the economic incentive for SEO spammers to create accounts and post links.

**Acceptance criteria**

  - All links in user-generated content (work package descriptions, comments, wiki pages, forum posts) are rendered with `rel="noopener noreferrer nofollow"`

**Technical notes**

  - Change is in two places in the text formatting pipeline: `SanitizationFilter` (Markdown/HTML rendering) and `AutolinkFilter` (plain URL auto-linking)
    PR: opf/openproject\#22548

**Permissions and visibility considerations**

  - *To whom is this feature visible?* Not visible to users; only relevant to search engine crawlers
  - *When is it not visible?* N/A — applies to all rendered user content regardless of context

**Translation considerations**

  - *Key terms and phrases in the key languages* — No translatable strings involved

**Out of scope**

  - Selectively applying `nofollow` only to external links — not needed for the goal
  - Changes to navigation, header, or footer links (those are not user-generated)
