PHPackages                             cywolf/page\_link\_insights - 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. cywolf/page\_link\_insights

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

cywolf/page\_link\_insights
===========================

A TYPO3 extension that adds a backend module with a D3.js force diagram visualization for understanding page relationships and content themes

2.1.1(2w ago)22.7k↑56.3%2[4 issues](https://github.com/friteuseb/page_link_insights/issues)GPL-2.0-or-laterPHPPHP ^8.2

Since Feb 25Pushed 2w ago3 watchersCompare

[ Source](https://github.com/friteuseb/page_link_insights)[ Packagist](https://packagist.org/packages/cywolf/page_link_insights)[ RSS](/packages/cywolf-page-link-insights/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (5)Dependencies (12)Versions (28)Used By (0)

TYPO3 Page Link Insights Extension
==================================

[](#typo3-page-link-insights-extension)

[![Force Diagram Example](Resources/Public/Images/force-diagram-example.png)](Resources/Public/Images/force-diagram-example.png)

This TYPO3 extension helps you optimize your website's internal linking structure by providing a powerful visual representation of content-based page connections. Page Link Insights focuses specifically on links within your content elements, helping you understand and improve your site's semantic link structure and SEO performance.

Features
--------

[](#features)

### Comprehensive Link Analysis

[](#comprehensive-link-analysis)

- **Interactive Force Diagram**: Visualize page relationships with D3.js
- **Content-Based Analysis**: Focus on actual content links rather than navigation
- **Link Type Detection**: Identify different types of page references (HTML, typolink, content elements)
- **Fullscreen Mode**: Maximize graph visibility with one click (ESC to exit)
- **Linkvalidator Integration**: Optional integration with TYPO3's cms-linkvalidator for accurate broken link detection

### Advanced Page Metrics

[](#advanced-page-metrics)

- **PageRank Calculation**: See which pages carry the most authority
- **Centrality Scores**: Identify key junction pages in your content
- **Inbound/Outbound Links**: Track connection counts for each page
- **Broken Link Detection**: Automatically identify and visualize broken references (enhanced with linkvalidator data when available)

### Thematic Analysis

[](#thematic-analysis)

- **Keyword Extraction**: Automatically identify significant terms on each page
- **Theme Clustering**: Group related content by detected themes
- **Page-Theme Association**: See which themes are relevant to each page
- **NLP Integration**: Uses NlpTools for advanced text analysis

### Global Statistics

[](#global-statistics)

- **Network Density**: Understand overall interconnection level
- **Orphaned Pages**: Find pages with no incoming links
- **Link Averages**: Track average connections per page
- **SEO Insights**: Identify structural improvements

### Solr Integration

[](#solr-integration)

- **Enhanced Relevance**: Boost search results based on PageRank and link metrics
- **Custom Fields**: Add link metrics to Solr index
- **Sorting Options**: Allow sorting by page importance

### Scheduler Task

[](#scheduler-task)

- **Automated Analysis**: Schedule regular site structure analysis
- **Theme Processing**: Update thematic groupings automatically
- **Historical Tracking**: Maintain metrics history for trend analysis

Requirements
------------

[](#requirements)

- TYPO3 12.4 - 13.4
- PHP 8.1 - 8.4
- NlpTools extension (for thematic analysis)

### Optional

[](#optional)

- **cms-linkvalidator**: For enhanced broken link detection with actual HTTP validation
- **semantic\_suggestion**: For AI-powered semantic content relationships

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

[](#installation)

### Via Composer

[](#via-composer)

```
composer require cywolf/page_link_insights
```

### Via TYPO3 Extension Manager

[](#via-typo3-extension-manager)

1. Login to TYPO3 Backend
2. Go to Admin Tools &gt; Extensions
3. Click on "Get Extensions"
4. Search for "page\_link\_insights"
5. Click "Import and Install"

Configuration
-------------

[](#configuration)

The extension can be configured through the Extension Configuration in TYPO3 Backend:

[![Extension Configuration](Resources/Public/Images/extension-configuration.png)](Resources/Public/Images/extension-configuration.png)

1. Go to Admin Tools &gt; Settings &gt; Extension Configuration
2. Select "page\_link\_insights"
3. Configure the following options:

### Basic Options

[](#basic-options)

OptionDefaultDescription`colPosToAnalyze``0,2`Comma-separated list of content column positions to analyze`includeHidden``false`Include hidden pages and content elements`includeSemanticSuggestions``true`Show semantic suggestions in diagram (requires semantic\_suggestion extension)### Advanced Options

[](#advanced-options)

OptionDefaultDescription`includeShortcuts``false`Include shortcut pages (doktype 4) in diagrams`includeExternalLinks``false`Include external link pages (doktype 3) in diagrams`includeSysFolders``false`Include system folders (doktype 254) as nodes in diagrams. Enable this when sys-folders are used as menu entry points`includeSolrRecords``true`Include Solr-indexed records (e.g. news) as nodes with More-Like-This links`useLinkvalidator``true`Use TYPO3 linkvalidator for broken link detection (if available)> **Note**: The `useLinkvalidator` option provides more accurate broken link detection when cms-linkvalidator is installed and its scheduler task has been run. If linkvalidator is not available, the extension falls back to checking if target pages exist in the database.

### Scheduler Task

[](#scheduler-task-1)

The analysis can be run either **manually** or on a **recurring schedule** — there is no single "right" frequency.

To set it up:

1. Go to Scheduler module
2. Add a new task
3. Select "Analyze Page Links and Themes"
4. Configure the root page ID
5. Choose how the task should run (see below)

[![Scheduler Task](Resources/Public/Images/scheduler_task.png)](Resources/Public/Images/scheduler_task.png)

#### How often should it run?

[](#how-often-should-it-run)

The task simply recomputes the link/theme metrics for the configured subtree. Once it has run, the results stay available in the Page Link Insights backend module until the next run. So the frequency only depends on **how often your link structure changes** and how fresh you need the metrics to be:

- **Run it manually** (recommended for most users): just execute the task once whenever you want up-to-date metrics — typically right before reviewing your internal linking. No recurring schedule needed.
- **Daily / weekly**: useful if editors frequently add or restructure content and you want the metrics kept current automatically, without thinking about it. Daily is plenty for most editorial sites.
- **More frequently (e.g. hourly)** only makes sense on sites with constant content changes where you actively monitor linking in near-real-time.

> **Avoid very short intervals (e.g. every minute).** The task scans the whole subtree (pages, content elements, and optionally linkvalidator/Solr data) and writes the results to the database. Running it that often wastes resources for no practical benefit, since the analysis rarely changes between runs. Match the frequency to your editorial rhythm instead.

Usage
-----

[](#usage)

### Visualizing Page Links

[](#visualizing-page-links)

1. Open the TYPO3 Backend
2. Navigate to the Web &gt; Page Link Insights module
3. Select a page in the page tree
4. Explore the force diagram visualization:
    - Larger nodes indicate pages with more incoming links
    - Colors represent different link types
    - Dashed red lines indicate broken links
    - Hover over elements for detailed information

### Interactive Features

[](#interactive-features)

- **Zoom and Pan**: Navigate through complex diagrams using mouse wheel and drag
- **Drag Nodes**: Reposition elements for better visualization
- **Ctrl+Click**: Open the page directly in TYPO3 backend
- **Right-Click**: Remove node from visualization (temporary)
- **Tooltips**: Show detailed page and link information on hover

### Toolbar Buttons

[](#toolbar-buttons)

- **Filters**: Filter links by type (standard, semantic, broken, menu, HTML, typolink)
- **Help**: Display diagram legend and interaction guide
- **Fit to Window**: Auto-zoom to show all nodes
- **Fullscreen**: Maximize graph area (press ESC to exit)

### Compact Header

[](#compact-header)

The module header displays status badges that can be dismissed:

- **colPos badge**: Shows which column positions are being analyzed
- **Semantic badge**: Indicates if semantic suggestions are enabled/available

### Understanding Thematic Analysis

[](#understanding-thematic-analysis)

The extension now includes thematic analysis capabilities that:

- Automatically extract significant keywords from your pages
- Group these keywords into global themes
- Associate themes with relevant pages
- Visualize themes in the D3.js force diagram with color coding

Pages with similar content will be grouped together and colored according to their dominant theme, providing instant visual insights into your content structure.

#### NLP Support

[](#nlp-support)

- If the `cywolf/nlp-tools` extension is installed, it will be used for advanced linguistic analysis
- If this extension is not available or encounters errors, a fallback method is automatically used
- In all cases, relevant themes will be generated for your pages

The clustering visualization works in both TYPO3 v12 and v13, and is compatible with PHP 8.1 to 8.4.

### Linkvalidator Integration

[](#linkvalidator-integration)

When `cms-linkvalidator` is installed and configured:

1. Run the linkvalidator scheduler task to populate broken link data
2. Page Link Insights will automatically use this data for more accurate broken link detection
3. Broken links are marked with their source:
    - `linkvalidator`: Detected by TYPO3's linkvalidator (HTTP validated)
    - `page_not_found`: Target page doesn't exist in database (fallback method)

To disable linkvalidator integration, set `useLinkvalidator = 0` in extension configuration.

### Solr Integration

[](#solr-integration-1)

For search functionality enhancement, see [README\_SOLR.md](README_SOLR.md).

Troubleshooting
---------------

[](#troubleshooting)

- **Empty Visualization**: Ensure selected page has content with page references
- **Missing Links**: Check if links are in the analyzed column positions
- **Performance Issues**: Large sites may need higher PHP memory limits
- **Theme Analysis Errors**: Verify NlpTools extension is installed
- **Linkvalidator Not Working**: Ensure cms-linkvalidator scheduler task has been run at least once
- **Semantic Suggestions Missing**: Install and configure the semantic\_suggestion extension
- **Database Analyzer Loop**: The Database Analyzer (*Admin Tools → Maintenance → Analyze Database*) may keep suggesting the same `ALTER TABLE ... DOUBLE PRECISION` statements for the `weight`/`relevance` columns even after executing them. The cause was a default-value mismatch (`'0.00'` in the schema vs `'0'` stored by MySQL 8.x / MariaDB). This is fixed from this version onwards: the affected columns now use `DEFAULT '0'`, matching the value the database actually stores and the other `DOUBLE PRECISION` columns in the extension. If you upgraded an existing installation, run the Database Analyzer **once** to align your schema; the suggestion will then stop reappearing. See [issue #22](https://github.com/friteuseb/page_link_insights/issues/22).

Support and Contribution
------------------------

[](#support-and-contribution)

For bug reports and feature requests, please use the issue tracker on GitHub: [Project Issue Tracker](https://github.com/friteuseb/page_link_insights/issues)

License
-------

[](#license)

This project is licensed under the GNU General Public License v2.0.

###  Health Score

47

—

FairBetter than 93% of packages

Maintenance76

Regular maintenance activity

Popularity25

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 69.4% 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 ~26 days

Recently: every ~50 days

Total

19

Last Release

19d ago

Major Versions

v1.7.0 → 2.0.02025-12-25

v1.8.0 → 2.1.12026-06-15

PHP version history (2 changes)1.0.3PHP &gt;=8.2

2.0.0PHP ^8.2

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1471455?v=4)[Cyril Wolfangel](/maintainers/friteuseb)[@friteuseb](https://github.com/friteuseb)

---

Top Contributors

[![friteuseb](https://avatars.githubusercontent.com/u/1471455?v=4)](https://github.com/friteuseb "friteuseb (77 commits)")[![cyril-wolfangelTalanCOP](https://avatars.githubusercontent.com/u/220198517?v=4)](https://github.com/cyril-wolfangelTalanCOP "cyril-wolfangelTalanCOP (33 commits)")[![taieb123](https://avatars.githubusercontent.com/u/29729164?v=4)](https://github.com/taieb123 "taieb123 (1 commits)")

### Embed Badge

![Health badge](/badges/cywolf-page-link-insights/health.svg)

```
[![Health](https://phpackages.com/badges/cywolf-page-link-insights/health.svg)](https://phpackages.com/packages/cywolf-page-link-insights)
```

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k53](/packages/friendsoftypo3-content-blocks)[pagemachine/typo3-formlog

Form log for TYPO3

23238.6k8](/packages/pagemachine-typo3-formlog)[eliashaeussler/typo3-form-consent

Extension for TYPO3 CMS that adds double opt-in functionality to EXT:form

1595.5k](/packages/eliashaeussler-typo3-form-consent)[typo3/cms-install

TYPO3 CMS Install Tool - The Install Tool is used for installation, upgrade, system administration and setup tasks.

1812.3M496](/packages/typo3-cms-install)[netresearch/rte-ckeditor-image

Image support in CKEditor for the TYPO3 ecosystem - by Netresearch

611.1M8](/packages/netresearch-rte-ckeditor-image)[web-vision/wv_deepltranslate

DeepL Translate (CORE) - This extension provides option to translate content element, and TCA record texts to DeepL supported languages.

33304.3k](/packages/web-vision-wv-deepltranslate)

PHPackages © 2026

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