PHPackages                             codeq/linkchecker - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. codeq/linkchecker

ActiveNeos-package[Utility &amp; Helpers](/categories/utility)

codeq/linkchecker
=================

Finds broken and misconfigured links in your Neos project

v3.1.0(1y ago)711.8k↑37.5%2[9 issues](https://github.com/code-q-web-factory/CodeQ.LinkChecker/issues)[1 PRs](https://github.com/code-q-web-factory/CodeQ.LinkChecker/pulls)GPL-3.0-or-laterPHPPHP ^8.1

Since Sep 19Pushed 8mo ago1 watchersCompare

[ Source](https://github.com/code-q-web-factory/CodeQ.LinkChecker)[ Packagist](https://packagist.org/packages/codeq/linkchecker)[ RSS](/packages/codeq-linkchecker/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (5)Dependencies (7)Versions (9)Used By (0)

[![Latest Stable Version](https://camo.githubusercontent.com/9048249cc21e7418a833c84c115829e21a0ebe7de173e9d203982ec614f99a7c/68747470733a2f2f706f7365722e707567782e6f72672f636f6465712f6c696e6b636865636b65722f762f737461626c65)](https://packagist.org/packages/codeq/linkchecker)[![License](https://camo.githubusercontent.com/3e573218020b8baaf091f3f0b7a70a5b2bf5b92224f32fc37736ce390b600479/68747470733a2f2f706f7365722e707567782e6f72672f636f6465712f6c696e6b636865636b65722f6c6963656e7365)](LICENSE)

CodeQ.LinkChecker
=================

[](#codeqlinkchecker)

Keep your Neos website free of broken links with this easy-to-use link checker
------------------------------------------------------------------------------

[](#keep-your-neos-website-free-of-broken-links-with-this-easy-to-use-link-checker)

CodeQ.LinkChecker makes sure all your links are working smoothly in Neos projects. It validates internal page and asset references, external links and phone numbers in node data, as well crawls all rendered pages to ensure that no hidden pages fall through the cracks!

[![Backend Module screenshot](screenshot.png)](screenshot.png)

The backend module allows you to mark errors as fixed and as to-be-ignored. Editing buttons directly open relevant pages in the Neos inline editing to easily fix the issues.

The link checker has the following methods to find broken links:

- The backend module can validate all internal page links `node://XXX` and assets `asset://XXX` in all node properties
    - Additionally, it validates phone numbers to be in international format (`+99 999999999`)
- The command controller `./flow checklinks:crawl` will crawl all in the settings configured domains and pages and check the following:
    - Do all internal links `node://XXX` point to visible pages (not hidden, not hidden via visible before or visible after)
    - Are all phone numbers in international format (`+99 999999999`)
    - Do external links point to valid pages (http status code 2xx)
- The command controller `./flow checklinks:crawlnodes` will only validate internal links, assets and phone numbers
- The command controller `./flow checklinks:crawlexternallinks` will crawl the website and validate external links

Installation
------------

[](#installation)

CodeQ.LinkChecker is available via packagist run `composer require codeq/linkchecker`. We use semantic versioning so every breaking change will increase the major-version number.

Usage
-----

[](#usage)

Configure the link checker sync in your settings, like this:

```
CodeQ:
  LinkChecker:
    # how many concurrent requests should the command controller perform
    # If set too high, you will DDoS your server
    concurrency: 10
```

Make sure the domains are also added in the "Sites Management"!

Setup a cronjob e.g. daily to execute `./flow checklinks:crawl`

### Email reports

[](#email-reports)

The link checker can also send an email if it finds broken links. To enable this, you need to configure the email service like this:

```
CodeQ:
  LinkChecker:
    notifications:
      enabled: true
      subject: 'Link checker results'
      minimumStatusCode: 300
      mail:
        sender:
          default:
            name: 'Link Checker'
            address: 'no-reply@example.com'
        recipient:
          default:
            name: 'John Doe'
            address: 'recipient@example.com'
```

Limitations and possible future Features:
-----------------------------------------

[](#limitations-and-possible-future-features)

- Support additional languages
- Use a job queue for crawling
- Update the link checks after a page is published via a job queue
- Check external links against malware oder security adviser lists
- Find all occurrences of external links to internal pages
- Check against deny list (e.g. list of competitors)
- Check for broken links in other workspaces

License
-------

[](#license)

The GNU GENERAL PUBLIC LICENSE, please see [License File](LICENSE) for more information.

Sponsors &amp; Contribution
---------------------------

[](#sponsors--contribution)

The development of this plugin was kindly sponsored by [Code Q](https://codeq.at/).

The package is based on the `Unikka/LinkChecker` package, which does a great job at finding all broken external links. This package extends the features a lot, offers a new UI and introduces new dependencies.

We will gladly accept contributions. Please send us pull requests.

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance28

Infrequent updates — may be unmaintained

Popularity31

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 70.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~157 days

Total

5

Last Release

709d ago

Major Versions

v1.0.1 → v2.0.02022-10-24

v2.0.0 → v3.0.02023-02-06

PHP version history (2 changes)v2.0.0PHP ^7.4 || ^8.0

v3.1.0PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/c898f86932821ebd9add02d4f01864bd4804e1a620083fbc5951af0bb3e9c850?d=identicon)[codeq](/maintainers/codeq)

---

Top Contributors

[![mhsdesign](https://avatars.githubusercontent.com/u/85400359?v=4)](https://github.com/mhsdesign "mhsdesign (43 commits)")[![gradinarufelix](https://avatars.githubusercontent.com/u/4405087?v=4)](https://github.com/gradinarufelix "gradinarufelix (7 commits)")[![rolandschuetz](https://avatars.githubusercontent.com/u/735982?v=4)](https://github.com/rolandschuetz "rolandschuetz (7 commits)")[![simonschaufi](https://avatars.githubusercontent.com/u/941794?v=4)](https://github.com/simonschaufi "simonschaufi (4 commits)")

### Embed Badge

![Health badge](/badges/codeq-linkchecker/health.svg)

```
[![Health](https://phpackages.com/badges/codeq-linkchecker/health.svg)](https://phpackages.com/packages/codeq-linkchecker)
```

###  Alternatives

[grumpydictator/firefly-iii

Firefly III: a personal finances manager.

22.8k69.3k](/packages/grumpydictator-firefly-iii)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

728272.9k20](/packages/civicrm-civicrm-core)[j0k3r/php-readability

Automatic article extraction from HTML

186808.8k6](/packages/j0k3r-php-readability)[spomky-labs/pwa-bundle

Progressive Web App Manifest Generator Bundle for Symfony.

6144.4k1](/packages/spomky-labs-pwa-bundle)[kaufmanndigital/gdpr-cookieconsent

A ready-to-run package, that integrates an advanced cookie consent banner into your Neos CMS site.

2540.7k](/packages/kaufmanndigital-gdpr-cookieconsent)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
