> ## Documentation Index
> Fetch the complete documentation index at: https://docs.filarank.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration

> Site-wide defaults, tag-rendering toggles, JSON-LD, disabled checks, and score persistence

Publish the config file to customize FilaRank:

```bash theme={null}
php artisan vendor:publish --tag=filarank-config
```

This creates `config/filarank.php`.

## Site defaults

Used as fallbacks by the `<x-filarank::tags />` component when a model has no SEO meta of its own.

```php theme={null}
'site' => [
    'name' => env('APP_NAME', 'Laravel'),
    'title_separator' => ' — ',
    'description' => null,
    'og_image' => null,
    'twitter_handle' => null, // e.g. '@yourbrand'
],
```

## Tag rendering

Toggle which tags `<x-filarank::tags />` renders, and pick the JSON-LD type.

```php theme={null}
'render' => [
    'title_tag' => true,    // Render the <title> element itself.
    'canonical' => true,
    'open_graph' => true,
    'twitter_cards' => true,
    'json_ld' => true,
    'json_ld_type' => 'Article', // Article | Page | Post …
],
```

## Analysis

Disable individual checks by id, and set `site_host` so internal/outbound link detection can classify absolute URLs pointing at your own domain (defaults to `APP_URL`'s host).

```php theme={null}
'analysis' => [
    'disabled_checks' => ['outbound-links', 'passive-voice'],
    'site_host' => null,
],
```

## Persistence

When `true`, the overall score is recalculated and stored on the `seo_metas` row every time the parent model is saved, so it can be shown in table columns without re-analysing.

```php theme={null}
'persist_score' => true,
```

## Cross-record reports

Models to include in the cannibalization scan and internal-linking reports. Each must use the `HasSeo` trait.

```php theme={null}
'scanned_models' => [
    \App\Models\Post::class => ['label' => 'title'],
],
```

## Redirects

```php theme={null}
'redirects' => [
    'enabled' => true,
    // Paths (supports * wildcard suffix) never logged as 404s.
    'ignore_paths' => ['/telescope*', '/horizon*', '/_debugbar*', '/livewire*'],
],
```

## Cornerstone

Minimum incoming internal links before a cornerstone stops being flagged as under-linked.

```php theme={null}
'cornerstone' => [
    'min_incoming_links' => 3,
],
```

<Tip>
  See [Internal Linking](/internal-linking), [Redirect Manager](/redirect-manager), and [Cornerstone Content](/cornerstone-content) for how `scanned_models`, `redirects`, and `cornerstone` are used.
</Tip>
