Performance issues with >100k links or with paragraphs module

Created on 2 July 2025, 29 days ago

Problem/Motivation

The Linkchecker module appears to cause performance issues when there are a large number of links or using a paragraph module. Maybe a combination of both.

The first thing I noticed is that the content entity is being used to store data, which is bad in many ways, and I do not see any valid reasons to use that. A simple database table with a schema should be the best way to handle this.

The slowness appeared with nodes that have many links and paragraphs. Because linkchecker uses hook_entity_update, it is also called when paragraphs are saved, so maybe it goes into some kind of loop.

I tried to use profiles and saw that HTML5 parser methods get a lot of calls, one example over 200k calls.

Uninstalling the module resolved the issue; nodes were saved under a second before it hit the execution time limit (60 seconds).

It started happening with the D11 upgrade.

I have not debugged this too much, but I did attach the XHProf screenshot for one node save. The link count on that node was probably around 100.

Steps to reproduce

1. A site with over 100k links to check.
2. Save a node with some nested paragraphs and many links.

🐛 Bug report
Status

Active

Version

2.1

Component

Code

Created by

🇪🇪Estonia rang501 Viljandi

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Production build 0.71.5 2024